Skip to content

@armada/sdk / index / PlanTransferParams

Interface: PlanTransferParams

Defined in: src/tx/plan.ts:27

Properties

txos

readonly txos: readonly TXO[]

Defined in: src/tx/plan.ts:29

Candidate spendable notes (typically the wallet's unspent TXOs for the chain).


tokenAddress

readonly tokenAddress: `0x${string}`

Defined in: src/tx/plan.ts:30


outputs

readonly outputs: readonly TransferOutputRequest[]

Defined in: src/tx/plan.ts:31


fee?

readonly optional fee?: FeeRequest

Defined in: src/tx/plan.ts:32


unshield?

readonly optional unshield?: object

Defined in: src/tx/plan.ts:46

Unshield output — sends value to an EVM recipient (funds leave the pool). Modelled as the LAST output commitment (a public UnshieldNoteERC20, npk = recipient), so it counts toward the spend target + circuit shape but carries no ciphertext.

adaptParams binds a destination commitment into boundParams.adaptParams (a SNARK public input) — e.g. the cross-chain-unshield CCTP tuple from encodeCctpBinding, or a yield re-shield binding. Omitted for a plain same-chain unshield (defaults to ZERO_BYTES32).

adaptContract is the cross-contract-call target committed by the proof. Defaults to ZERO_ADDRESS (a plain unshield-to-pool). Set it to the adapter address for a relay-adapt call (e.g. the yield adapter for lendAndShield/redeemAndShield), where recipient is that adapter.

recipient

readonly recipient: `0x${string}`

value

readonly value: bigint

adaptParams?

readonly optional adaptParams?: `0x${string}`

adaptContract?

readonly optional adaptContract?: `0x${string}`

adaptBinding?

readonly optional adaptBinding?: CctpBinding

The DECODED cross-chain binding matching adaptParams — carried through to the signer as boundParams.decodedAdaptParams so an external/policy signer can inspect the CCTP destination it authorizes. When provided it MUST encode to adaptParams (asserted), else the plan is rejected.


roots

readonly roots: ReadonlyMap<number, bigint>

Defined in: src/tx/plan.ts:59

Per-tree merkle roots (the input notes' tree must have an entry).


chainID

readonly chainID: bigint

Defined in: src/tx/plan.ts:60


minGasPrice?

readonly optional minGasPrice?: bigint

Defined in: src/tx/plan.ts:61


supportedShapes?

readonly optional supportedShapes?: ReadonlySet<string>

Defined in: src/tx/plan.ts:67

Shape keys (<nullifiers>x<commitments>) the deployment has circuit artifacts for. When provided, planTransfer rejects a plan whose shape isn't in the set with UnsupportedCircuitShapeError — fail-fast, before the signer is asked and 30s of proving is spent. Omit to skip the check.