Action: Spend
The Spend
action allows a user to spend a note, adding to the transactions-value balance. The action contains the following fields.
body
— the body of the spend, containing the balance commitment, nullifier, and randomized verification keyauth_sig
— the signature to be verified by the randomized verification keyproof
— a zero-knowledge proof to verify that the supplied balance commitment, nullifier, verification key, and transactions anchor are valid
Spend::check_stateless
verifies the spend auth signature and that the supplied proof
matches the public inputs.
Spend::check_stateful
checks that the nullifier has not been used before (also see ref↗).
Spend::execute
will add the supplied note payload into the state commitment tree and emit an event.