/** * Standard-scriptPubKey validation for registry-supplied payout destinations. * * RFC-006 lets an operator register an arbitrary payout scriptPubKey, so the * bytes we pin a `PayoutTx` output against are now chosen by that operator * rather than derived by us. Pinning an output to them without checking the * shape would let a keeper that registered a garbage or unspendable script get * the depositor to pre-sign a payout nobody can ever claim. * * This bound is ours alone — it is deliberately NOT parity with `vaultd`. * `vaultd` uses registry scripts verbatim at graph-build time and documents * why: applying a predicate the contract does not apply would block every * peg-in for an operator the instant the two disagreed. The registry itself * only bounds length to 1..128 bytes, and the registration CLI has an * `--allow-non-standard` escape hatch. * * We hold the stricter line because we occupy a different position: we are the * party being asked to *pre-sign* against these bytes, and a depositor * signature pinned to a provably unspendable output is not recoverable. The * bound is also load-bearing for the payout fee band — capping a standard * output at 34 bytes is what lets `assertPayoutFeeBand` reason about `outs[1]` * without a separate length cap. * * The deliberate consequence: an operator that registers a non-standard script * via `--allow-non-standard` can have its graphs built by `vaultd` and still be * refused here, blocking deposits against that operator in this dApp. That is * fail-closed by choice — the alternative is pre-signing into a destination we * cannot verify is spendable. * * @module primitives/psbt/standardPayoutScript */ /** * Assert a registry-supplied scriptPubKey is a standard, spendable output type * (P2TR, P2WPKH, P2WSH, P2PKH, or P2SH). * * Rejects empty scripts, `OP_RETURN` (provably unspendable), and anything else * that is not one of the five standard forms. `label` names the source in the * error, e.g. `vault keeper payout script (admin=0x…)`. */ export declare function assertStandardPayoutScript(scriptHex: string, label: string): void; //# sourceMappingURL=standardPayoutScript.d.ts.map