Skip to content

WalletStealthAuthorizer

Defined in: ootle/src/stealth/authorizer.ts:91

Authorizes a StealthTransferSpec produced by StealthTransfer: unblinds any stealth inputs, signs the balance proof, hydrates + patches the statement, then returns an AuthorizedTransfer that produces one-time spend-key authorizations and seals the envelope. Handles both the revealed-only path and the full stealth-input spend path.

prepare(provider): Promise<AuthorizedTransfer>

Defined in: ootle/src/stealth/authorizer.ts:131

Hydrate + sign the transfer:

  1. resolve each stealth input — fetch its UTXO, unblind it to recover the mask, and remember the sender public nonce (revealed-only → no inputs, no fetch);
  2. aggregate the input masks (Mask.zero() when there are no stealth inputs);
  3. sign the balance proof over the (already-canonical) inputs/outputs statement JSONs;
  4. build the complete (hydrated) statement and pre-flight validateTransfer;
  5. patch the unsigned tx’s sole stealth instruction with the hydrated statement.

Returns an AuthorizedTransfer that owns the hydrated state and can produce one-time spend-key authorizations or seal the envelope. The authorizer is not mutated.

Provider

Read-only chain access (fetches the input UTXOs).

Promise<AuthorizedTransfer>


static fromSpec(wallet, spec, options?): WalletStealthAuthorizer

Defined in: ootle/src/stealth/authorizer.ts:107

Build an authorizer from a builder spec.

OotleWallet

The multi-signer wallet (supplies the account-key + one-time signatures).

StealthTransferSpec

The spec from StealthTransfer.prepare.

WalletStealthAuthorizerOptions = {}

Optional viewSecret, account-signature toggle, crypto seam.

WalletStealthAuthorizer