User story / Problem statement
Currently a grant takes two submissions and two wallet prompts, because AmuletRules_Transfer consumes everything it is handed and the grant must name an exact self-split. The token-forge transfer returns the sender's leftover input as change, so that pre-split is dead weight.
Expected outcome
A grant is one submission naming holdings that over-cover it, and the backend exposes a faucet so a fresh account has something to vest.
Acceptance criteria
Technical notes
VestingProposal carries no admin or instrumentId, deriving both at Accept from a holding the receiver cannot read, so a pending grant cannot be filtered by instrument. Largest first so a grant names the fewest inputs: each one is a disclosure blob the receiver carries to Accept.
User story / Problem statement
Currently a grant takes two submissions and two wallet prompts, because
AmuletRules_Transferconsumes everything it is handed and the grant must name an exact self-split. The token-forge transfer returns the sender's leftover input as change, so that pre-split is dead weight.Expected outcome
A grant is one submission naming holdings that over-cover it, and the backend exposes a faucet so a fresh account has something to vest.
Acceptance criteria
createVestingmakes exactly one submissionbalanceOfsums holdings of this deployment's instrument onlyVestingBackend.tapexercises the faucet on the disclosed configtransferContext.ts,buildSplitCommandandVITE_WALLET_RPC_URLare goneTechnical notes
VestingProposalcarries noadminorinstrumentId, deriving both at Accept from a holding the receiver cannot read, so a pending grant cannot be filtered by instrument. Largest first so a grant names the fewest inputs: each one is a disclosure blob the receiver carries to Accept.