Shielded Withdrawal
Function Signature
function shieldedWithdrawal(
ShieldedWithdrawalParams calldata params,
bytes calldata proof
) external nonReentrantParameters Struct
struct ShieldedWithdrawalParams {
bytes32[6] noteNullifiers; // Spent note nullifiers
bytes32 txNullifier; // Transaction nullifier
bytes32 root; // Note Merkle tree root
bytes32 noteChangeCommitment; // Sender's change note
bytes32 noteFeeChangeCommitment; // Sender's fee change note
bytes32 value; // Withdrawal amount (public)
bytes32 recipientAddress; // Destination address (public)
bytes32 coinId; // Token address (public)
bytes32[9] ciphertextChange; // Encrypted change note
bytes32[9] ciphertextFeeChange; // Encrypted fee change note
GasFee gasFee; // Gas parameters
bytes32 nullifiersHash; // Hash of all 6 nullifiers
bytes32 fee; // Relayer fee amount
bytes32 feeTokenAddress; // Fee token address
}Execution Steps
Key Difference from Transfer
Last updated