All files / src/signer/methods relinquishOutputSdk.ts

18.18% Statements 2/11
0% Branches 0/1
0% Functions 0/1
18.18% Lines 2/11

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 2028x   28x                                  
import { sdk, table, verifyOne, WalletSigner } from '../..'
 
export async function relinquishOutputSdk(signer: WalletSigner, vargs: sdk.ValidRelinquishOutputArgs, originator?: sdk.OriginatorDomainNameStringUnder250Bytes)
  : Promise<sdk.RelinquishOutputResult> {
  const { txid, vout } = sdk.parseWalletOutpoint(vargs.output)
  const storage = signer.storage
  const { basketId } = verifyOne(await storage.findOutputBaskets({ partial: { name: vargs.basket, userId: vargs.userId } }))
  const partial: Partial<table.Output> = {
    userId: vargs.userId,
    basketId,
    vout,
    txid
  }
  const { outputId } = verifyOne(await storage.findOutputs({ partial }))
  const count = await storage.updateOutput(outputId, { basketId: undefined })
  Iif (count !== 1)
    throw new sdk.WERR_INTERNAL('failed to relinquish output ${outputId}')
  return { relinquished: true }
}