All files / src/signer/methods relinquishCertificateSdk.ts

25% Statements 2/8
0% Branches 0/1
0% Functions 0/1
25% Lines 2/8

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 1828x   28x                              
import { sdk, table, verifyOne, WalletSigner } from '../..'
 
export async function relinquishCertificateSdk(signer: WalletSigner, vargs: sdk.ValidRelinquishCertificateArgs, originator?: sdk.OriginatorDomainNameStringUnder250Bytes)
: Promise<sdk.RelinquishCertificateResult>
{
  const partial: Partial<table.Certificate> = {
    userId: vargs.userId,
    type: vargs.type,
    serialNumber: vargs.serialNumber,
    certifier: vargs.certifier
  }
  const cert = verifyOne(await signer.storage.findCertificates({ partial }))
  const count = await signer.storage.updateCertificate(cert.certificateId, { isDeleted: true })
  Iif (count !== 1)
    throw new sdk.WERR_INTERNAL('failed to relinquish certificate ${cert.certificateId}')
  return { relinquished: true }
}