All files / src/profiles/services serviceUtils.ts

92.59% Statements 25/27
77.78% Branches 14/18
100% Functions 2/2
92% Lines 23/25

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78        1x 12x       12x   12x 1x     11x     11x 10x     11x                                     11x 77x 77x 8x       3x           3x             1x 12x   12x       12x 12x 12x 6x       6x    
/**
 * 
 * @ignore
 */
export function containsValidProofStatement(searchText: string, name: string | null = null) {
  Iif (!name) {
    return false
  }
 
  searchText = searchText.toLowerCase()
 
  if (name.split('.').length < 2) {
    throw new Error('Please provide the fully qualified Blockstack name.')
  }
 
  let username = null
 
  // support legacy Blockstack ID proofs
  if (name.endsWith('.id')) {
    username = name.split('.id')[0]
  }
 
  const verificationStyles = username != null ? [
    `verifying myself: my bitcoin username is +${username}`,
    `verifying myself: my bitcoin username is ${username}`,
    `verifying myself: my openname is ${username}`,
    `verifying that +${username} is my bitcoin username`,
    `verifying that ${username} is my bitcoin username`,
    `verifying that ${username} is my openname`,
    `verifying that +${username} is my openname`,
    `verifying i am +${username} on my passcard`,
    `verifying that +${username} is my blockchain id`,
    `verifying that "${name}" is my blockstack id`, // id
    `verifying that ${name} is my blockstack id`,
    `verifying that &quot;${name}&quot; is my blockstack id`
  ] : [ // only these formats are valid for non-.id tlds
    `verifying that "${name}" is my blockstack id`, // id
    `verifying that ${name} is my blockstack id`,
    `verifying that &quot;${name}&quot; is my blockstack id`
  ]
 
  for (let i = 0; i < verificationStyles.length; i++) {
    const verificationStyle = verificationStyles[i]
    if (searchText.includes(verificationStyle)) {
      return true
    }
  }
 
  Iif (username != null
      && searchText.includes('verifymyonename')
      && searchText.includes(`+${username}`)) {
    return true
  }
 
  return false
}
 
/**
 * 
 * @ignore
 */
export function containsValidAddressProofStatement(proofStatement: string, address: string) {
  proofStatement = proofStatement.split(address)[0].toLowerCase() + address
 
  const verificationStyles = [
    `verifying my blockstack id is secured with the address ${address}`
  ]
 
  for (let i = 0; i < verificationStyles.length; i++) {
    const verificationStyle = verificationStyles[i]
    if (proofStatement.includes(verificationStyle)) {
      return true
    }
  }
 
  return false
}