exec
This action executes a sequence of ZActions.
Parameters
- : A sequence of zaction tuples
Flow
The following steps specify the flow of 'exec'.
Step 0
The 'exec' action is always executed as an inline action of a step action which always follows the execution of a begin, where the proof bundle is verified which validates all subsequent zactions.
Step 1
Let loop through the sequence of zactions and check :
-
if MINTFT execute step 9 and step 10 of the corresponding action flow:
- The zero knowledge proof is already verified by the begin action
- Do the public inputs of this zaction represent the correct asset which is held in the asset buffer? I.e. are the following statements true:
- Check if the NFT flag is unset ()?
- The UTXO commitment is already added to the Commitment Tree by the begin action
- The new root of the Commitment Tree is already added to the Commitment Tree Root Set by the begin action
- The UTXO ciphertext is already added to the Transmitted UTXO Ciphertext List by the begin action
-
if MINTNFT execute step 9 and step 10 of the corresponding action flow:
- The zero knowledge proof is already verified by the begin action
- Do the public inputs of this zaction represent the correct asset which is held in the asset buffer? I.e. are the following statements true:
- Check if the NFT flag is set ()?
- The UTXO commitment is already added to the Commitment Tree by the begin action
- The new root of the Commitment Tree is already added to the Commitment Tree Root Set by the begin action
- The UTXO ciphertext is already added to the Transmitted UTXO Ciphertext List by the begin action
-
if MINTAT execute step 4 of the corresponding action flow:
- The UTXO ciphertext is already added to the Transmitted UTXO Ciphertext List by the begin action
-
if TRANSFERFT execute step 11 and step 12 of the corresponding action flow:
- The zero knowledge proof is already verified by the begin action
- Check if the NFT flag is unset ()?
- Add to the Nullifier Set
- The UTXO commitments are already added to the Commitment Tree by the begin action
- The new root of the Commitment Tree is already added to the Commitment Tree Root Set by the begin action
- The UTXO ciphertexts are already added to the Transmitted UTXO Ciphertext List by the begin action
-
if TRANSFERNFT execute step 11 and step 12 of the corresponding action flow:
- The zero knowledge proof is already verified by the begin action
- Check if the NFT flag is set ()?
- Add to the Nullifier Set
- The UTXO commitment is already added to the Commitment Tree by the begin action
- The new root of the Commitment Tree is already added to the Commitment Tree Root Set by the begin action
- The UTXO ciphertext is already added to the Transmitted UTXO Ciphertext List by the begin action
-
if BURNFT execute step 11 and step 12 of the corresponding action flow:
- The zero knowledge proof is already verified by the begin action
- Check if the NFT flag is unset ()?
- Add to the Nullifier Set
- The UTXO commitment is already added to the Commitment Tree by the begin action
- The new root of the Commitment Tree is already added to the Commitment Tree Root Set by the begin action
- The UTXO ciphertext is already added to the Transmitted UTXO Ciphertext List by the begin action
- Continue to loop with and perform above steps to sum up all the amounts while:
- equals BURNFT
- remains the same (i.e. same token symbol)
- remains the same (i.e. same token contract)
- Transfer the sum of all amounts as one EOSIO/Antelope 'transfer' action of smart contract using as the memo into the EOSIO/Antelope account . The loop ensures that burning multiple UTXOs of the same currency is combined into one EOSIO/Antelope transfer action.
-
if BURNFT2 execute step 10 and step 11 of the corresponding action flow:
- TODO: Not yet finalized.
-
if BURNNFT execute step 10 and step 11 of the corresponding action flow:
- The zero knowledge proof is already verified by the begin action
- Check if the NFT flag is set ()?
- Add to the Nullifier Set
- The UTXO ciphertext is already added to the Transmitted UTXO Ciphertext List by the begin action
- Transfer the non-fungible asset (, , ) into the EOSIO/Antelope account .
-
if BURNAT execute step 7 and step 8 of the corresponding action flow:
- The zero knowledge proof is already verified by the begin action
- Check if the NFT flag is set ()?
- The UTXO ciphertext is already added to the Transmitted UTXO Ciphertext List by the begin action