@aztec/stdlib 3.0.0-canary.a9708bd → 3.0.0-manual.20251030
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/abi/abi.d.ts +8 -8
- package/dest/abi/abi.js +1 -1
- package/dest/abi/contract_artifact.js +3 -0
- package/dest/abi/event_metadata_definition.d.ts +8 -0
- package/dest/abi/event_metadata_definition.d.ts.map +1 -0
- package/dest/abi/event_metadata_definition.js +1 -0
- package/dest/abi/function_call.d.ts +7 -2
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +6 -2
- package/dest/abi/index.d.ts +1 -0
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +1 -0
- package/dest/avm/avm.d.ts +132 -73
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +10 -6
- package/dest/avm/avm_accumulated_data.d.ts +10 -21
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +19 -22
- package/dest/avm/avm_circuit_public_inputs.d.ts +30 -13
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +17 -6
- package/dest/avm/avm_proving_request.d.ts +96 -48
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/index.d.ts +1 -1
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +1 -1
- package/dest/avm/message_pack.d.ts +1 -0
- package/dest/avm/message_pack.d.ts.map +1 -1
- package/dest/avm/message_pack.js +28 -5
- package/dest/block/attestation_info.d.ts +30 -0
- package/dest/block/attestation_info.d.ts.map +1 -0
- package/dest/block/attestation_info.js +39 -0
- package/dest/block/body.d.ts +4 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +17 -15
- package/dest/block/in_block.d.ts +5 -5
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/index.d.ts +4 -0
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +4 -0
- package/dest/block/l2_block.d.ts +21 -13
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +33 -10
- package/dest/block/l2_block_code_to_purge.d.ts +3 -14
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +23 -13
- package/dest/block/l2_block_header.d.ts +100 -0
- package/dest/block/l2_block_header.d.ts.map +1 -0
- package/dest/block/l2_block_header.js +146 -0
- package/dest/block/l2_block_info.d.ts +41 -0
- package/dest/block/l2_block_info.d.ts.map +1 -0
- package/dest/block/l2_block_info.js +40 -0
- package/dest/block/l2_block_source.d.ts +35 -433
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +0 -28
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
- package/dest/block/proposal/attestations_and_signers.d.ts +48 -0
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -0
- package/dest/block/proposal/attestations_and_signers.js +99 -0
- package/dest/block/proposal/index.d.ts +1 -0
- package/dest/block/proposal/index.d.ts.map +1 -1
- package/dest/block/proposal/index.js +1 -0
- package/dest/block/published_l2_block.d.ts +27 -5
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +20 -7
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +3 -4
- package/dest/block/validate_block_result.d.ts +222 -0
- package/dest/block/validate_block_result.d.ts.map +1 -0
- package/dest/block/validate_block_result.js +83 -0
- package/dest/checkpoint/checkpoint_body.d.ts +4 -0
- package/dest/checkpoint/checkpoint_body.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_body.js +9 -0
- package/dest/checkpoint/index.d.ts +2 -0
- package/dest/checkpoint/index.d.ts.map +1 -0
- package/dest/checkpoint/index.js +1 -0
- package/dest/config/node-rpc-config.d.ts +2 -0
- package/dest/config/node-rpc-config.d.ts.map +1 -1
- package/dest/config/node-rpc-config.js +6 -0
- package/dest/contract/contract_address.d.ts +1 -1
- package/dest/contract/contract_address.js +1 -1
- package/dest/contract/contract_class_metadata.d.ts +8 -0
- package/dest/contract/contract_class_metadata.d.ts.map +1 -0
- package/dest/contract/contract_class_metadata.js +1 -0
- package/dest/contract/contract_instance.d.ts +9 -8
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +1 -2
- package/dest/contract/contract_metadata.d.ts +7 -0
- package/dest/contract/contract_metadata.d.ts.map +1 -0
- package/dest/contract/contract_metadata.js +1 -0
- package/dest/contract/index.d.ts +2 -0
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +2 -0
- package/dest/contract/interfaces/contract_class.d.ts +4 -4
- package/dest/contract/interfaces/contract_instance.d.ts +2 -2
- package/dest/epoch-helpers/index.d.ts +8 -2
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +9 -0
- package/dest/fees/transaction_fee.d.ts.map +1 -1
- package/dest/fees/transaction_fee.js +3 -0
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +18 -0
- package/dest/file-store/interface.d.ts +8 -2
- package/dest/file-store/interface.d.ts.map +1 -1
- package/dest/file-store/s3.d.ts +26 -0
- package/dest/file-store/s3.d.ts.map +1 -0
- package/dest/file-store/s3.js +252 -0
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +0 -3
- package/dest/interfaces/archiver.d.ts +43 -0
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +20 -4
- package/dest/interfaces/aztec-node-admin.d.ts +87 -40
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +7 -1
- package/dest/interfaces/aztec-node.d.ts +35 -2
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +8 -1
- package/dest/interfaces/block-builder.d.ts +7 -8
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/client.d.ts +0 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +0 -1
- package/dest/interfaces/configs.d.ts +10 -0
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +3 -1
- package/dest/interfaces/epoch-prover.d.ts +29 -12
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +5 -0
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +2 -0
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +2 -1
- package/dest/interfaces/private_kernel_prover.d.ts +2 -2
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +349 -200
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +131 -113
- package/dest/interfaces/server.d.ts +1 -0
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +1 -0
- package/dest/interfaces/server_circuit_prover.d.ts +34 -34
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/slasher.d.ts +4 -0
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +1 -0
- package/dest/interfaces/tx_provider.d.ts +1 -1
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +163 -0
- package/dest/interfaces/validator.d.ts.map +1 -0
- package/dest/interfaces/validator.js +18 -0
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -2
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts +4 -3
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/nullifier.d.ts +2 -2
- package/dest/kernel/nullifier.d.ts.map +1 -1
- package/dest/kernel/nullifier.js +11 -11
- package/dest/kernel/private_call_data.d.ts +4 -24
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.js +4 -16
- package/dest/kernel/private_circuit_public_inputs.d.ts +5 -5
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_context_inputs.d.ts +2 -2
- package/dest/kernel/private_context_inputs.d.ts.map +1 -1
- package/dest/kernel/private_context_inputs.js +4 -4
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +3 -3
- package/dest/kernel/private_kernel_data.js +2 -2
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +5 -4
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.js +7 -6
- package/dest/kernel/private_kernel_prover_output.d.ts +4 -4
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +1 -0
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -1
- package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +2 -0
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -0
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +1 -1
- package/dest/keys/derivation.d.ts +0 -2
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +3 -24
- package/dest/logs/contract_class_log.d.ts +1 -1
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +1 -3
- package/dest/logs/debug_log.d.ts +13 -0
- package/dest/logs/debug_log.d.ts.map +1 -0
- package/dest/logs/debug_log.js +26 -0
- package/dest/logs/directional_app_tagging_secret.d.ts +40 -0
- package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/directional_app_tagging_secret.js +63 -0
- package/dest/logs/index.d.ts +3 -1
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +3 -1
- package/dest/logs/log_with_tx_data.d.ts +9 -12
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.js +18 -23
- package/dest/logs/pre_tag.d.ts +34 -0
- package/dest/logs/pre_tag.d.ts.map +1 -0
- package/dest/logs/pre_tag.js +7 -0
- package/dest/logs/public_log.d.ts +23 -10
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +117 -42
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +2 -4
- package/dest/messaging/inbox_leaf.d.ts +2 -0
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/inbox_leaf.js +3 -0
- package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +16 -18
- package/dest/noir/index.d.ts +11 -0
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/index.d.ts +1 -1
- package/dest/note/index.d.ts.map +1 -1
- package/dest/note/index.js +1 -1
- package/dest/note/notes_filter.d.ts +0 -5
- package/dest/note/notes_filter.d.ts.map +1 -1
- package/dest/note/notes_filter.js +0 -3
- package/dest/note/unique_note.d.ts +43 -0
- package/dest/note/unique_note.d.ts.map +1 -0
- package/dest/note/{extended_note.js → unique_note.js} +9 -48
- package/dest/p2p/block_attestation.d.ts +45 -9
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/block_attestation.js +37 -15
- package/dest/p2p/block_proposal.d.ts +7 -9
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +13 -14
- package/dest/p2p/consensus_payload.d.ts +35 -6
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +21 -8
- package/dest/p2p/gossipable.d.ts +6 -16
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +9 -21
- package/dest/p2p/signature_utils.d.ts +2 -1
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +1 -0
- package/dest/p2p/topic_type.d.ts +4 -8
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +14 -8
- package/dest/parity/index.d.ts +2 -3
- package/dest/parity/index.d.ts.map +1 -1
- package/dest/parity/index.js +2 -3
- package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +7 -7
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
- package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +10 -6
- package/dest/parity/parity_root_private_inputs.d.ts +39 -0
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
- package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
- package/dest/proofs/chonk_proof.d.ts +28 -0
- package/dest/proofs/chonk_proof.d.ts.map +1 -0
- package/dest/proofs/chonk_proof.js +101 -0
- package/dest/proofs/index.d.ts +2 -1
- package/dest/proofs/index.d.ts.map +1 -1
- package/dest/proofs/index.js +2 -1
- package/dest/proofs/proof_data.d.ts +21 -0
- package/dest/proofs/proof_data.d.ts.map +1 -0
- package/dest/proofs/proof_data.js +22 -0
- package/dest/proofs/proving_request_type.d.ts +17 -13
- package/dest/proofs/proving_request_type.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.js +17 -12
- package/dest/rollup/avm_proof_data.d.ts +2 -12
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +0 -24
- package/dest/rollup/base_rollup_hints.d.ts +17 -17
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +26 -26
- package/dest/rollup/block_constant_data.d.ts +24 -10
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.js +18 -10
- package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +17 -10
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
- package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/block_rollup_public_inputs.js +85 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +236 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
- package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
- package/dest/rollup/checkpoint_constant_data.js +55 -0
- package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +12 -11
- package/dest/rollup/checkpoint_header.d.ts.map +1 -0
- package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +14 -8
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +30 -0
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +106 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.js +108 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +123 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +178 -0
- package/dest/rollup/epoch_constant_data.d.ts +23 -6
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/epoch_constant_data.js +25 -12
- package/dest/rollup/index.d.ts +17 -16
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +17 -16
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +21 -0
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/private_tx_base_rollup_private_inputs.js +42 -0
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +21 -0
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -0
- package/dest/rollup/public_chonk_verifier_private_inputs.js +43 -0
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +20 -0
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -0
- package/dest/rollup/public_chonk_verifier_public_inputs.js +42 -0
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +23 -0
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/public_tx_base_rollup_private_inputs.js +46 -0
- package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/root_rollup_private_inputs.js +69 -0
- package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/root_rollup_public_inputs.js +71 -0
- package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
- package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
- package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
- package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +14 -14
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +15 -15
- package/dest/slashing/types.d.ts +1 -0
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +22 -0
- package/dest/snapshots/download.d.ts.map +1 -1
- package/dest/snapshots/download.js +58 -2
- package/dest/snapshots/upload.d.ts.map +1 -1
- package/dest/snapshots/upload.js +1 -0
- package/dest/stats/stats.d.ts +3 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +43 -75
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +149 -171
- package/dest/tests/mocks.d.ts +16 -10
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +55 -33
- package/dest/trees/index.d.ts +0 -1
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +0 -1
- package/dest/trees/merkle_tree_id.d.ts +4 -4
- package/dest/trees/nullifier_membership_witness.d.ts +3 -3
- package/dest/tx/block_header.d.ts +12 -13
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +16 -21
- package/dest/tx/content_commitment.d.ts +1 -0
- package/dest/tx/content_commitment.d.ts.map +1 -1
- package/dest/tx/content_commitment.js +3 -0
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +0 -1
- package/dest/tx/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +2 -1
- package/dest/tx/indexed_tx_effect.d.ts +3 -3
- package/dest/tx/partial_state_reference.d.ts +1 -0
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.js +3 -0
- package/dest/tx/private_execution_result.d.ts +7 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +10 -6
- package/dest/tx/private_tx_constant_data.d.ts +60 -0
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -0
- package/dest/tx/private_tx_constant_data.js +69 -0
- package/dest/tx/processed_tx.d.ts +2 -3
- package/dest/tx/processed_tx.d.ts.map +1 -1
- package/dest/tx/processed_tx.js +3 -8
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +0 -2
- package/dest/tx/protocol_contracts.d.ts +29 -0
- package/dest/tx/protocol_contracts.d.ts.map +1 -0
- package/dest/tx/protocol_contracts.js +49 -0
- package/dest/tx/proven_tx.d.ts +7 -7
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +8 -8
- package/dest/tx/simulated_tx.d.ts +3 -3
- package/dest/tx/simulated_tx.js +2 -2
- package/dest/tx/state_reference.d.ts +1 -0
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +4 -1
- package/dest/tx/tx.d.ts +9 -12
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +21 -22
- package/dest/tx/tx_constant_data.d.ts +6 -38
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_constant_data.js +11 -20
- package/dest/tx/tx_effect.d.ts +3 -36
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +63 -202
- package/dest/tx/validator/error_texts.d.ts +1 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +1 -1
- package/dest/update-checker/update-checker.d.ts +1 -1
- package/dest/update-checker/update-checker.d.ts.map +1 -1
- package/dest/update-checker/update-checker.js +1 -1
- package/dest/validators/schemas.d.ts +42 -4
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +5 -4
- package/dest/validators/types.d.ts +8 -10
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.d.ts +2 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +18 -13
- package/dest/world-state/index.d.ts +2 -0
- package/dest/world-state/index.d.ts.map +1 -0
- package/dest/world-state/index.js +1 -0
- package/dest/world-state/world_state_revision.d.ts +22 -0
- package/dest/world-state/world_state_revision.d.ts.map +1 -0
- package/dest/world-state/world_state_revision.js +21 -0
- package/dest/zkpassport/index.d.ts +17 -11
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +21 -15
- package/package.json +15 -11
- package/src/abi/abi.ts +1 -1
- package/src/abi/contract_artifact.ts +3 -0
- package/src/abi/event_metadata_definition.ts +8 -0
- package/src/abi/function_call.ts +5 -1
- package/src/abi/index.ts +1 -0
- package/src/avm/avm.ts +15 -7
- package/src/avm/avm_accumulated_data.ts +25 -29
- package/src/avm/avm_circuit_public_inputs.ts +21 -0
- package/src/avm/index.ts +1 -1
- package/src/avm/message_pack.ts +25 -1
- package/src/block/attestation_info.ts +62 -0
- package/src/block/body.ts +25 -23
- package/src/block/index.ts +4 -0
- package/src/block/l2_block.ts +39 -19
- package/src/block/l2_block_code_to_purge.ts +30 -31
- package/src/block/l2_block_header.ts +232 -0
- package/src/block/l2_block_info.ts +63 -0
- package/src/block/l2_block_source.ts +38 -56
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
- package/src/block/proposal/attestations_and_signers.ts +121 -0
- package/src/block/proposal/index.ts +1 -0
- package/src/block/published_l2_block.ts +37 -15
- package/src/block/test/l2_tips_store_test_suite.ts +7 -7
- package/src/block/validate_block_result.ts +122 -0
- package/src/checkpoint/checkpoint_body.ts +10 -0
- package/src/checkpoint/index.ts +1 -0
- package/src/config/node-rpc-config.ts +9 -0
- package/src/contract/contract_address.ts +1 -1
- package/src/contract/contract_class_metadata.ts +8 -0
- package/src/contract/contract_instance.ts +11 -10
- package/src/contract/contract_metadata.ts +7 -0
- package/src/contract/index.ts +2 -0
- package/src/contract/interfaces/contract_class.ts +1 -1
- package/src/epoch-helpers/index.ts +24 -2
- package/src/fees/transaction_fee.ts +11 -0
- package/src/file-store/factory.ts +15 -0
- package/src/file-store/interface.ts +8 -2
- package/src/file-store/s3.ts +254 -0
- package/src/hash/hash.ts +0 -4
- package/src/interfaces/archiver.ts +49 -4
- package/src/interfaces/aztec-node-admin.ts +17 -1
- package/src/interfaces/aztec-node.ts +53 -2
- package/src/interfaces/block-builder.ts +11 -12
- package/src/interfaces/client.ts +0 -1
- package/src/interfaces/configs.ts +6 -0
- package/src/interfaces/epoch-prover.ts +38 -14
- package/src/interfaces/merkle_tree_operations.ts +6 -0
- package/src/interfaces/p2p.ts +4 -0
- package/src/interfaces/private_kernel_prover.ts +2 -2
- package/src/interfaces/proving-job.ts +218 -134
- package/src/interfaces/server.ts +1 -0
- package/src/interfaces/server_circuit_prover.ts +89 -61
- package/src/interfaces/slasher.ts +2 -0
- package/src/interfaces/tx_provider.ts +1 -0
- package/src/interfaces/validator.ts +95 -0
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +3 -2
- package/src/kernel/hints/nullifier_read_request_hints.ts +3 -3
- package/src/kernel/nullifier.ts +8 -8
- package/src/kernel/private_call_data.ts +2 -21
- package/src/kernel/private_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_context_inputs.ts +2 -2
- package/src/kernel/private_kernel_circuit_public_inputs.ts +4 -4
- package/src/kernel/private_kernel_data.ts +2 -2
- package/src/kernel/private_kernel_init_circuit_private_inputs.ts +5 -4
- package/src/kernel/private_kernel_prover_output.ts +4 -4
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +8 -2
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +9 -0
- package/src/keys/derivation.ts +3 -29
- package/src/logs/contract_class_log.ts +2 -3
- package/src/logs/debug_log.ts +32 -0
- package/src/logs/directional_app_tagging_secret.ts +77 -0
- package/src/logs/index.ts +3 -1
- package/src/logs/log_with_tx_data.ts +14 -24
- package/src/logs/pre_tag.ts +25 -0
- package/src/logs/public_log.ts +120 -58
- package/src/logs/shared_secret_derivation.ts +2 -4
- package/src/messaging/inbox_leaf.ts +5 -0
- package/src/messaging/l2_to_l1_membership.ts +20 -26
- package/src/noir/index.ts +11 -0
- package/src/note/index.ts +1 -1
- package/src/note/notes_filter.ts +0 -7
- package/src/note/{extended_note.ts → unique_note.ts} +14 -75
- package/src/p2p/block_attestation.ts +46 -15
- package/src/p2p/block_proposal.ts +15 -18
- package/src/p2p/consensus_payload.ts +30 -10
- package/src/p2p/gossipable.ts +10 -28
- package/src/p2p/signature_utils.ts +1 -0
- package/src/p2p/topic_type.ts +15 -8
- package/src/parity/index.ts +2 -3
- package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +13 -11
- package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
- package/src/proofs/chonk_proof.ts +118 -0
- package/src/proofs/index.ts +2 -1
- package/src/proofs/proof_data.ts +36 -0
- package/src/proofs/proving_request_type.ts +14 -10
- package/src/rollup/avm_proof_data.ts +2 -31
- package/src/rollup/base_rollup_hints.ts +22 -22
- package/src/rollup/block_constant_data.ts +16 -6
- package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
- package/src/rollup/block_rollup_public_inputs.ts +123 -0
- package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
- package/src/rollup/checkpoint_constant_data.ts +84 -0
- package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +40 -15
- package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
- package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +30 -52
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +218 -0
- package/src/rollup/epoch_constant_data.ts +28 -10
- package/src/rollup/index.ts +17 -16
- package/src/rollup/private_tx_base_rollup_private_inputs.ts +53 -0
- package/src/rollup/public_chonk_verifier_private_inputs.ts +54 -0
- package/src/rollup/public_chonk_verifier_public_inputs.ts +53 -0
- package/src/rollup/public_tx_base_rollup_private_inputs.ts +57 -0
- package/src/rollup/root_rollup_private_inputs.ts +90 -0
- package/src/rollup/root_rollup_public_inputs.ts +99 -0
- package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
- package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
- package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +13 -13
- package/src/slashing/types.ts +23 -0
- package/src/snapshots/download.ts +66 -2
- package/src/snapshots/upload.ts +1 -0
- package/src/stats/stats.ts +21 -15
- package/src/tests/factories.ts +226 -283
- package/src/tests/mocks.ts +90 -60
- package/src/trees/index.ts +0 -1
- package/src/tx/block_header.ts +17 -32
- package/src/tx/content_commitment.ts +4 -0
- package/src/tx/global_variables.ts +0 -1
- package/src/tx/index.ts +2 -1
- package/src/tx/partial_state_reference.ts +8 -0
- package/src/tx/private_execution_result.ts +9 -3
- package/src/tx/private_tx_constant_data.ts +94 -0
- package/src/tx/processed_tx.ts +5 -11
- package/src/tx/profiling.ts +0 -2
- package/src/tx/protocol_contracts.ts +70 -0
- package/src/tx/proven_tx.ts +6 -6
- package/src/tx/simulated_tx.ts +2 -2
- package/src/tx/state_reference.ts +5 -1
- package/src/tx/tx.ts +21 -22
- package/src/tx/tx_constant_data.ts +8 -21
- package/src/tx/tx_effect.ts +64 -213
- package/src/tx/validator/error_texts.ts +1 -1
- package/src/update-checker/update-checker.ts +1 -1
- package/src/validators/schemas.ts +6 -4
- package/src/validators/types.ts +9 -10
- package/src/versioning/versioning.ts +20 -15
- package/src/world-state/index.ts +1 -0
- package/src/world-state/world_state_revision.ts +21 -0
- package/src/zkpassport/index.ts +42 -30
- package/dest/avm/public_data_hint.d.ts +0 -16
- package/dest/avm/public_data_hint.d.ts.map +0 -1
- package/dest/avm/public_data_hint.js +0 -27
- package/dest/interfaces/pxe.d.ts +0 -329
- package/dest/interfaces/pxe.d.ts.map +0 -1
- package/dest/interfaces/pxe.js +0 -100
- package/dest/logs/indexed_tagging_secret.d.ts +0 -28
- package/dest/logs/indexed_tagging_secret.d.ts.map +0 -1
- package/dest/logs/indexed_tagging_secret.js +0 -50
- package/dest/note/extended_note.d.ts +0 -111
- package/dest/note/extended_note.d.ts.map +0 -1
- package/dest/parity/base_parity_inputs.d.ts.map +0 -1
- package/dest/parity/root_parity_input.d.ts +0 -52
- package/dest/parity/root_parity_input.d.ts.map +0 -1
- package/dest/parity/root_parity_input.js +0 -50
- package/dest/parity/root_parity_inputs.d.ts +0 -37
- package/dest/parity/root_parity_inputs.d.ts.map +0 -1
- package/dest/proofs/client_ivc_proof.d.ts +0 -18
- package/dest/proofs/client_ivc_proof.d.ts.map +0 -1
- package/dest/proofs/client_ivc_proof.js +0 -41
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
- package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
- package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
- package/dest/rollup/block_root_rollup.d.ts +0 -283
- package/dest/rollup/block_root_rollup.d.ts.map +0 -1
- package/dest/rollup/block_root_rollup.js +0 -306
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
- package/dest/rollup/merge_rollup.d.ts.map +0 -1
- package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
- package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
- package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
- package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_block_data.js +0 -37
- package/dest/rollup/previous_rollup_data.d.ts +0 -47
- package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_data.js +0 -37
- package/dest/rollup/private_base_rollup_inputs.d.ts +0 -21
- package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/private_base_rollup_inputs.js +0 -44
- package/dest/rollup/private_tube_data.d.ts +0 -15
- package/dest/rollup/private_tube_data.d.ts.map +0 -1
- package/dest/rollup/private_tube_data.js +0 -25
- package/dest/rollup/public_base_rollup_inputs.d.ts +0 -23
- package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/public_base_rollup_inputs.js +0 -48
- package/dest/rollup/public_tube_data.d.ts +0 -15
- package/dest/rollup/public_tube_data.d.ts.map +0 -1
- package/dest/rollup/public_tube_data.js +0 -25
- package/dest/rollup/root_rollup.d.ts +0 -106
- package/dest/rollup/root_rollup.d.ts.map +0 -1
- package/dest/rollup/root_rollup.js +0 -147
- package/dest/rollup/state_diff_hints.d.ts.map +0 -1
- package/dest/rollup/state_diff_hints.js +0 -85
- package/dest/rollup/tube_inputs.d.ts +0 -43
- package/dest/rollup/tube_inputs.d.ts.map +0 -1
- package/dest/rollup/tube_inputs.js +0 -63
- package/dest/trees/protocol_contract_leaf.d.ts +0 -84
- package/dest/trees/protocol_contract_leaf.d.ts.map +0 -1
- package/dest/trees/protocol_contract_leaf.js +0 -100
- package/dest/tx/proposed_block_header.d.ts.map +0 -1
- package/src/avm/public_data_hint.ts +0 -38
- package/src/interfaces/pxe.ts +0 -532
- package/src/logs/indexed_tagging_secret.ts +0 -48
- package/src/parity/root_parity_input.ts +0 -71
- package/src/proofs/client_ivc_proof.ts +0 -51
- package/src/rollup/block_root_rollup.ts +0 -380
- package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
- package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
- package/src/rollup/previous_rollup_block_data.ts +0 -48
- package/src/rollup/previous_rollup_data.ts +0 -48
- package/src/rollup/private_base_rollup_inputs.ts +0 -53
- package/src/rollup/private_tube_data.ts +0 -35
- package/src/rollup/public_base_rollup_inputs.ts +0 -59
- package/src/rollup/public_tube_data.ts +0 -35
- package/src/rollup/root_rollup.ts +0 -195
- package/src/rollup/tube_inputs.ts +0 -77
- package/src/trees/protocol_contract_leaf.ts +0 -128
package/src/tests/mocks.ts
CHANGED
|
@@ -6,13 +6,15 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
6
6
|
|
|
7
7
|
import type { ContractArtifact } from '../abi/abi.js';
|
|
8
8
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
9
|
-
import { CommitteeAttestation } from '../block/index.js';
|
|
9
|
+
import { CommitteeAttestation, L1PublishedData, L2BlockHeader } from '../block/index.js';
|
|
10
10
|
import { L2Block } from '../block/l2_block.js';
|
|
11
|
-
import type {
|
|
11
|
+
import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
|
|
12
|
+
import { PublishedL2Block } from '../block/published_l2_block.js';
|
|
12
13
|
import { computeContractAddressFromInstance } from '../contract/contract_address.js';
|
|
13
14
|
import { getContractClassFromArtifact } from '../contract/contract_class.js';
|
|
14
15
|
import { SerializableContractInstance } from '../contract/contract_instance.js';
|
|
15
16
|
import type { ContractInstanceWithAddress } from '../contract/index.js';
|
|
17
|
+
import { Gas } from '../gas/gas.js';
|
|
16
18
|
import { GasFees } from '../gas/gas_fees.js';
|
|
17
19
|
import { GasSettings } from '../gas/gas_settings.js';
|
|
18
20
|
import { Nullifier } from '../kernel/nullifier.js';
|
|
@@ -22,45 +24,22 @@ import {
|
|
|
22
24
|
PrivateKernelTailCircuitPublicInputs,
|
|
23
25
|
} from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
24
26
|
import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
|
|
25
|
-
import { ExtendedNote, UniqueNote } from '../note/extended_note.js';
|
|
26
27
|
import { Note } from '../note/note.js';
|
|
28
|
+
import { UniqueNote } from '../note/unique_note.js';
|
|
27
29
|
import { BlockAttestation } from '../p2p/block_attestation.js';
|
|
28
30
|
import { BlockProposal } from '../p2p/block_proposal.js';
|
|
29
31
|
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
30
32
|
import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
BlockHeader,
|
|
34
|
-
HashedValues,
|
|
35
|
-
PrivateCallExecutionResult,
|
|
36
|
-
PrivateExecutionResult,
|
|
37
|
-
StateReference,
|
|
38
|
-
Tx,
|
|
39
|
-
} from '../tx/index.js';
|
|
33
|
+
import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
34
|
+
import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, StateReference, Tx } from '../tx/index.js';
|
|
40
35
|
import { PublicSimulationOutput } from '../tx/public_simulation_output.js';
|
|
41
36
|
import { TxSimulationResult, accumulatePrivateReturnValues } from '../tx/simulated_tx.js';
|
|
42
37
|
import { TxEffect } from '../tx/tx_effect.js';
|
|
43
38
|
import { TxHash } from '../tx/tx_hash.js';
|
|
44
|
-
import { makeGas, makeGlobalVariables,
|
|
39
|
+
import { makeGas, makeGlobalVariables, makeL2BlockHeader, makePublicCallRequest } from './factories.js';
|
|
45
40
|
|
|
46
41
|
export const randomTxHash = (): TxHash => TxHash.random();
|
|
47
42
|
|
|
48
|
-
export const randomExtendedNote = async ({
|
|
49
|
-
note = Note.random(),
|
|
50
|
-
recipient = undefined,
|
|
51
|
-
contractAddress = undefined,
|
|
52
|
-
txHash = randomTxHash(),
|
|
53
|
-
storageSlot = Fr.random(),
|
|
54
|
-
}: Partial<ExtendedNote> = {}) => {
|
|
55
|
-
return new ExtendedNote(
|
|
56
|
-
note,
|
|
57
|
-
recipient ?? (await AztecAddress.random()),
|
|
58
|
-
contractAddress ?? (await AztecAddress.random()),
|
|
59
|
-
storageSlot,
|
|
60
|
-
txHash,
|
|
61
|
-
);
|
|
62
|
-
};
|
|
63
|
-
|
|
64
43
|
export const randomUniqueNote = async ({
|
|
65
44
|
note = Note.random(),
|
|
66
45
|
recipient = undefined,
|
|
@@ -88,12 +67,13 @@ export const mockTx = async (
|
|
|
88
67
|
hasPublicTeardownCallRequest = false,
|
|
89
68
|
publicCalldataSize = 2,
|
|
90
69
|
feePayer,
|
|
91
|
-
|
|
70
|
+
chonkProof = ChonkProof.random(),
|
|
92
71
|
maxPriorityFeesPerGas,
|
|
72
|
+
gasUsed = Gas.empty(),
|
|
93
73
|
chainId = Fr.ZERO,
|
|
94
74
|
version = Fr.ZERO,
|
|
95
75
|
vkTreeRoot = Fr.ZERO,
|
|
96
|
-
|
|
76
|
+
protocolContractsHash = Fr.ZERO,
|
|
97
77
|
}: {
|
|
98
78
|
numberOfNonRevertiblePublicCallRequests?: number;
|
|
99
79
|
numberOfRevertiblePublicCallRequests?: number;
|
|
@@ -101,12 +81,13 @@ export const mockTx = async (
|
|
|
101
81
|
hasPublicTeardownCallRequest?: boolean;
|
|
102
82
|
publicCalldataSize?: number;
|
|
103
83
|
feePayer?: AztecAddress;
|
|
104
|
-
|
|
84
|
+
chonkProof?: ChonkProof;
|
|
105
85
|
maxPriorityFeesPerGas?: GasFees;
|
|
86
|
+
gasUsed?: Gas;
|
|
106
87
|
chainId?: Fr;
|
|
107
88
|
version?: Fr;
|
|
108
89
|
vkTreeRoot?: Fr;
|
|
109
|
-
|
|
90
|
+
protocolContractsHash?: Fr;
|
|
110
91
|
} = {},
|
|
111
92
|
) => {
|
|
112
93
|
const totalPublicCallRequests =
|
|
@@ -115,16 +96,17 @@ export const mockTx = async (
|
|
|
115
96
|
(hasPublicTeardownCallRequest ? 1 : 0);
|
|
116
97
|
const isForPublic = totalPublicCallRequests > 0;
|
|
117
98
|
const data = PrivateKernelTailCircuitPublicInputs.empty();
|
|
118
|
-
const firstNullifier = new Nullifier(new Fr(seed + 1),
|
|
99
|
+
const firstNullifier = new Nullifier(new Fr(seed + 1), Fr.ZERO, 0);
|
|
119
100
|
data.constants.txContext.gasSettings = GasSettings.default({
|
|
120
101
|
maxFeesPerGas: new GasFees(10, 10),
|
|
121
102
|
maxPriorityFeesPerGas,
|
|
122
103
|
});
|
|
123
104
|
data.feePayer = feePayer ?? (await AztecAddress.random());
|
|
105
|
+
data.gasUsed = gasUsed;
|
|
124
106
|
data.constants.txContext.chainId = chainId;
|
|
125
107
|
data.constants.txContext.version = version;
|
|
126
108
|
data.constants.vkTreeRoot = vkTreeRoot;
|
|
127
|
-
data.constants.
|
|
109
|
+
data.constants.protocolContractsHash = protocolContractsHash;
|
|
128
110
|
|
|
129
111
|
// Set includeByTimestamp to the maximum allowed duration from the current time.
|
|
130
112
|
data.includeByTimestamp = BigInt(Math.floor(Date.now() / 1000) + MAX_INCLUDE_BY_TIMESTAMP_DURATION);
|
|
@@ -157,7 +139,7 @@ export const mockTx = async (
|
|
|
157
139
|
.build();
|
|
158
140
|
|
|
159
141
|
for (let i = 0; i < numberOfRevertibleNullifiers; i++) {
|
|
160
|
-
const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i),
|
|
142
|
+
const revertibleNullifier = new Nullifier(new Fr(seed + 2 + i), Fr.ZERO, 0);
|
|
161
143
|
revertibleBuilder.pushNullifier(revertibleNullifier.value);
|
|
162
144
|
}
|
|
163
145
|
|
|
@@ -168,7 +150,7 @@ export const mockTx = async (
|
|
|
168
150
|
|
|
169
151
|
return await Tx.create({
|
|
170
152
|
data,
|
|
171
|
-
|
|
153
|
+
chonkProof,
|
|
172
154
|
contractClassLogFields: [],
|
|
173
155
|
publicFunctionCalldata,
|
|
174
156
|
});
|
|
@@ -190,6 +172,7 @@ const emptyPrivateCallExecutionResult = () =>
|
|
|
190
172
|
[],
|
|
191
173
|
[],
|
|
192
174
|
[],
|
|
175
|
+
[],
|
|
193
176
|
);
|
|
194
177
|
|
|
195
178
|
const emptyPrivateExecutionResult = () => new PrivateExecutionResult(emptyPrivateCallExecutionResult(), Fr.zero(), []);
|
|
@@ -247,7 +230,9 @@ export const randomDeployedContract = async () => {
|
|
|
247
230
|
|
|
248
231
|
export interface MakeConsensusPayloadOptions {
|
|
249
232
|
signer?: Secp256k1Signer;
|
|
250
|
-
|
|
233
|
+
attesterSigner?: Secp256k1Signer;
|
|
234
|
+
proposerSigner?: Secp256k1Signer;
|
|
235
|
+
header?: L2BlockHeader;
|
|
251
236
|
archive?: Fr;
|
|
252
237
|
stateReference?: StateReference;
|
|
253
238
|
txHashes?: TxHash[];
|
|
@@ -258,11 +243,11 @@ const makeAndSignConsensusPayload = (
|
|
|
258
243
|
domainSeparator: SignatureDomainSeparator,
|
|
259
244
|
options?: MakeConsensusPayloadOptions,
|
|
260
245
|
) => {
|
|
261
|
-
const header = options?.header ??
|
|
246
|
+
const header = options?.header ?? makeL2BlockHeader(1);
|
|
262
247
|
const { signer = Secp256k1Signer.random(), archive = Fr.random(), stateReference = header.state } = options ?? {};
|
|
263
248
|
|
|
264
249
|
const payload = ConsensusPayload.fromFields({
|
|
265
|
-
header: header.
|
|
250
|
+
header: header.toCheckpointHeader(),
|
|
266
251
|
archive,
|
|
267
252
|
stateReference,
|
|
268
253
|
});
|
|
@@ -273,32 +258,77 @@ const makeAndSignConsensusPayload = (
|
|
|
273
258
|
return { blockNumber: header.globalVariables.blockNumber, payload, signature };
|
|
274
259
|
};
|
|
275
260
|
|
|
276
|
-
export const
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
261
|
+
export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
262
|
+
attestationsAndSigners: CommitteeAttestationsAndSigners,
|
|
263
|
+
signer: Secp256k1Signer = Secp256k1Signer.random(),
|
|
264
|
+
) => {
|
|
265
|
+
const hash = getHashedSignaturePayloadEthSignedMessage(
|
|
266
|
+
attestationsAndSigners,
|
|
267
|
+
SignatureDomainSeparator.attestationsAndSigners,
|
|
280
268
|
);
|
|
269
|
+
return signer.sign(hash);
|
|
270
|
+
};
|
|
271
|
+
|
|
272
|
+
export const makeBlockProposal = (options?: MakeConsensusPayloadOptions): BlockProposal => {
|
|
273
|
+
const { payload, signature } = makeAndSignConsensusPayload(SignatureDomainSeparator.blockProposal, options);
|
|
281
274
|
const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
282
|
-
return new BlockProposal(
|
|
275
|
+
return new BlockProposal(payload, signature, txHashes, options?.txs ?? []);
|
|
283
276
|
};
|
|
284
277
|
|
|
285
278
|
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/8028)
|
|
286
279
|
export const makeBlockAttestation = (options?: MakeConsensusPayloadOptions): BlockAttestation => {
|
|
287
|
-
const
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
280
|
+
const header = options?.header ?? makeL2BlockHeader(1);
|
|
281
|
+
const {
|
|
282
|
+
signer,
|
|
283
|
+
attesterSigner = signer ?? Secp256k1Signer.random(),
|
|
284
|
+
proposerSigner = signer ?? Secp256k1Signer.random(),
|
|
285
|
+
archive = Fr.random(),
|
|
286
|
+
stateReference = header.state,
|
|
287
|
+
} = options ?? {};
|
|
288
|
+
|
|
289
|
+
const payload = ConsensusPayload.fromFields({
|
|
290
|
+
header: header.toCheckpointHeader(),
|
|
291
|
+
archive,
|
|
292
|
+
stateReference,
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
// Sign as attester
|
|
296
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
|
|
297
|
+
const attestationSignature = attesterSigner.sign(attestationHash);
|
|
298
|
+
|
|
299
|
+
// Sign as proposer
|
|
300
|
+
const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
|
|
301
|
+
const proposerSignature = proposerSigner.sign(proposalHash);
|
|
302
|
+
|
|
303
|
+
return new BlockAttestation(payload, attestationSignature, proposerSignature);
|
|
292
304
|
};
|
|
293
305
|
|
|
294
|
-
export const makeBlockAttestationFromBlock = (
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
306
|
+
export const makeBlockAttestationFromBlock = (
|
|
307
|
+
block: L2Block,
|
|
308
|
+
attesterSigner?: Secp256k1Signer,
|
|
309
|
+
proposerSigner?: Secp256k1Signer,
|
|
310
|
+
): BlockAttestation => {
|
|
311
|
+
const header = block.header;
|
|
312
|
+
const archive = block.archive.root;
|
|
313
|
+
const stateReference = block.header.state;
|
|
314
|
+
|
|
315
|
+
const payload = ConsensusPayload.fromFields({
|
|
316
|
+
header: header.toCheckpointHeader(),
|
|
317
|
+
archive,
|
|
318
|
+
stateReference,
|
|
301
319
|
});
|
|
320
|
+
|
|
321
|
+
// Sign as attester
|
|
322
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockAttestation);
|
|
323
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
324
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
325
|
+
|
|
326
|
+
// Sign as proposer
|
|
327
|
+
const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
|
|
328
|
+
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
329
|
+
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
330
|
+
|
|
331
|
+
return new BlockAttestation(payload, attestationSignature, proposerSignature);
|
|
302
332
|
};
|
|
303
333
|
|
|
304
334
|
export async function randomPublishedL2Block(
|
|
@@ -306,16 +336,16 @@ export async function randomPublishedL2Block(
|
|
|
306
336
|
opts: { signers?: Secp256k1Signer[] } = {},
|
|
307
337
|
): Promise<PublishedL2Block> {
|
|
308
338
|
const block = await L2Block.random(l2BlockNumber);
|
|
309
|
-
const l1 = {
|
|
339
|
+
const l1 = L1PublishedData.fromFields({
|
|
310
340
|
blockNumber: BigInt(block.number),
|
|
311
341
|
timestamp: block.header.globalVariables.timestamp,
|
|
312
342
|
blockHash: Buffer32.random().toString(),
|
|
313
|
-
};
|
|
343
|
+
});
|
|
314
344
|
|
|
315
345
|
const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
|
|
316
346
|
const atts = await Promise.all(signers.map(signer => makeBlockAttestationFromBlock(block, signer)));
|
|
317
347
|
const attestations = atts.map(
|
|
318
348
|
(attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
|
|
319
349
|
);
|
|
320
|
-
return
|
|
350
|
+
return new PublishedL2Block(block, l1, attestations);
|
|
321
351
|
}
|
package/src/trees/index.ts
CHANGED
package/src/tx/block_header.ts
CHANGED
|
@@ -10,9 +10,7 @@ import { inspect } from 'util';
|
|
|
10
10
|
import { z } from 'zod';
|
|
11
11
|
|
|
12
12
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
13
|
-
import { ContentCommitment } from './content_commitment.js';
|
|
14
13
|
import { GlobalVariables } from './global_variables.js';
|
|
15
|
-
import { ProposedBlockHeader } from './proposed_block_header.js';
|
|
16
14
|
import { StateReference } from './state_reference.js';
|
|
17
15
|
|
|
18
16
|
/** A header of an L2 block. */
|
|
@@ -20,10 +18,13 @@ export class BlockHeader {
|
|
|
20
18
|
constructor(
|
|
21
19
|
/** Snapshot of archive before the block is applied. */
|
|
22
20
|
public lastArchive: AppendOnlyTreeSnapshot,
|
|
23
|
-
/** Hash of the body of an L2 block. */
|
|
24
|
-
public contentCommitment: ContentCommitment,
|
|
25
21
|
/** State reference. */
|
|
26
22
|
public state: StateReference,
|
|
23
|
+
/**
|
|
24
|
+
* Hash of the sponge blob after the tx effects of this block has been applied.
|
|
25
|
+
* May contain tx effects from the previous blocks in the same checkpoint.
|
|
26
|
+
*/
|
|
27
|
+
public spongeBlobHash: Fr,
|
|
27
28
|
/** Global variables of an L2 block. */
|
|
28
29
|
public globalVariables: GlobalVariables,
|
|
29
30
|
/** Total fees in the block, computed by the root rollup circuit */
|
|
@@ -36,8 +37,8 @@ export class BlockHeader {
|
|
|
36
37
|
return z
|
|
37
38
|
.object({
|
|
38
39
|
lastArchive: AppendOnlyTreeSnapshot.schema,
|
|
39
|
-
contentCommitment: ContentCommitment.schema,
|
|
40
40
|
state: StateReference.schema,
|
|
41
|
+
spongeBlobHash: schemas.Fr,
|
|
41
42
|
globalVariables: GlobalVariables.schema,
|
|
42
43
|
totalFees: schemas.Fr,
|
|
43
44
|
totalManaUsed: schemas.Fr,
|
|
@@ -46,11 +47,10 @@ export class BlockHeader {
|
|
|
46
47
|
}
|
|
47
48
|
|
|
48
49
|
static getFields(fields: FieldsOf<BlockHeader>) {
|
|
49
|
-
// Note: The order here must match the order in the ProposedHeaderLib solidity library.
|
|
50
50
|
return [
|
|
51
51
|
fields.lastArchive,
|
|
52
|
-
fields.contentCommitment,
|
|
53
52
|
fields.state,
|
|
53
|
+
fields.spongeBlobHash,
|
|
54
54
|
fields.globalVariables,
|
|
55
55
|
fields.totalFees,
|
|
56
56
|
fields.totalManaUsed,
|
|
@@ -72,8 +72,8 @@ export class BlockHeader {
|
|
|
72
72
|
getSize() {
|
|
73
73
|
return (
|
|
74
74
|
this.lastArchive.getSize() +
|
|
75
|
-
this.contentCommitment.getSize() +
|
|
76
75
|
this.state.getSize() +
|
|
76
|
+
this.spongeBlobHash.size +
|
|
77
77
|
this.globalVariables.getSize() +
|
|
78
78
|
this.totalFees.size +
|
|
79
79
|
this.totalManaUsed.size
|
|
@@ -101,8 +101,8 @@ export class BlockHeader {
|
|
|
101
101
|
|
|
102
102
|
return new BlockHeader(
|
|
103
103
|
reader.readObject(AppendOnlyTreeSnapshot),
|
|
104
|
-
reader.readObject(ContentCommitment),
|
|
105
104
|
reader.readObject(StateReference),
|
|
105
|
+
reader.readObject(Fr),
|
|
106
106
|
reader.readObject(GlobalVariables),
|
|
107
107
|
reader.readObject(Fr),
|
|
108
108
|
reader.readObject(Fr),
|
|
@@ -114,8 +114,8 @@ export class BlockHeader {
|
|
|
114
114
|
|
|
115
115
|
return new BlockHeader(
|
|
116
116
|
AppendOnlyTreeSnapshot.fromFields(reader),
|
|
117
|
-
ContentCommitment.fromFields(reader),
|
|
118
117
|
StateReference.fromFields(reader),
|
|
118
|
+
reader.readField(),
|
|
119
119
|
GlobalVariables.fromFields(reader),
|
|
120
120
|
reader.readField(),
|
|
121
121
|
reader.readField(),
|
|
@@ -125,8 +125,8 @@ export class BlockHeader {
|
|
|
125
125
|
static empty(fields: Partial<FieldsOf<BlockHeader>> = {}): BlockHeader {
|
|
126
126
|
return BlockHeader.from({
|
|
127
127
|
lastArchive: AppendOnlyTreeSnapshot.empty(),
|
|
128
|
-
contentCommitment: ContentCommitment.empty(),
|
|
129
128
|
state: StateReference.empty(),
|
|
129
|
+
spongeBlobHash: Fr.ZERO,
|
|
130
130
|
globalVariables: GlobalVariables.empty(),
|
|
131
131
|
totalFees: Fr.ZERO,
|
|
132
132
|
totalManaUsed: Fr.ZERO,
|
|
@@ -137,8 +137,8 @@ export class BlockHeader {
|
|
|
137
137
|
isEmpty(): boolean {
|
|
138
138
|
return (
|
|
139
139
|
this.lastArchive.isEmpty() &&
|
|
140
|
-
this.contentCommitment.isEmpty() &&
|
|
141
140
|
this.state.isEmpty() &&
|
|
141
|
+
this.spongeBlobHash.isZero() &&
|
|
142
142
|
this.globalVariables.isEmpty() &&
|
|
143
143
|
this.totalFees.isZero() &&
|
|
144
144
|
this.totalManaUsed.isZero()
|
|
@@ -161,24 +161,11 @@ export class BlockHeader {
|
|
|
161
161
|
return poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH);
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
toPropose(): ProposedBlockHeader {
|
|
165
|
-
return new ProposedBlockHeader(
|
|
166
|
-
this.lastArchive.root,
|
|
167
|
-
this.contentCommitment,
|
|
168
|
-
this.globalVariables.slotNumber,
|
|
169
|
-
this.globalVariables.timestamp,
|
|
170
|
-
this.globalVariables.coinbase,
|
|
171
|
-
this.globalVariables.feeRecipient,
|
|
172
|
-
this.globalVariables.gasFees,
|
|
173
|
-
this.totalManaUsed,
|
|
174
|
-
);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
164
|
toInspect() {
|
|
178
165
|
return {
|
|
179
166
|
lastArchive: this.lastArchive.root.toString(),
|
|
180
|
-
contentCommitment: this.contentCommitment.toInspect(),
|
|
181
167
|
state: this.state.toInspect(),
|
|
168
|
+
spongeBlobHash: this.spongeBlobHash.toBigInt(),
|
|
182
169
|
globalVariables: this.globalVariables.toInspect(),
|
|
183
170
|
totalFees: this.totalFees.toBigInt(),
|
|
184
171
|
totalManaUsed: this.totalManaUsed.toBigInt(),
|
|
@@ -188,13 +175,11 @@ export class BlockHeader {
|
|
|
188
175
|
[inspect.custom]() {
|
|
189
176
|
return `Header {
|
|
190
177
|
lastArchive: ${inspect(this.lastArchive)},
|
|
191
|
-
contentCommitment.blobsHash: ${inspect(this.contentCommitment.blobsHash)},
|
|
192
|
-
contentCommitment.inHash: ${inspect(this.contentCommitment.inHash)},
|
|
193
|
-
contentCommitment.outHash: ${inspect(this.contentCommitment.outHash)},
|
|
194
178
|
state.l1ToL2MessageTree: ${inspect(this.state.l1ToL2MessageTree)},
|
|
195
179
|
state.noteHashTree: ${inspect(this.state.partial.noteHashTree)},
|
|
196
180
|
state.nullifierTree: ${inspect(this.state.partial.nullifierTree)},
|
|
197
181
|
state.publicDataTree: ${inspect(this.state.partial.publicDataTree)},
|
|
182
|
+
spongeBlobHash: ${this.spongeBlobHash},
|
|
198
183
|
globalVariables: ${inspect(this.globalVariables)},
|
|
199
184
|
totalFees: ${this.totalFees},
|
|
200
185
|
totalManaUsed: ${this.totalManaUsed},
|
|
@@ -203,12 +188,12 @@ export class BlockHeader {
|
|
|
203
188
|
|
|
204
189
|
public equals(other: this): boolean {
|
|
205
190
|
return (
|
|
206
|
-
this.
|
|
191
|
+
this.lastArchive.equals(other.lastArchive) &&
|
|
207
192
|
this.state.equals(other.state) &&
|
|
193
|
+
this.spongeBlobHash.equals(other.spongeBlobHash) &&
|
|
208
194
|
this.globalVariables.equals(other.globalVariables) &&
|
|
209
195
|
this.totalFees.equals(other.totalFees) &&
|
|
210
|
-
this.totalManaUsed.equals(other.totalManaUsed)
|
|
211
|
-
this.lastArchive.equals(other.lastArchive)
|
|
196
|
+
this.totalManaUsed.equals(other.totalManaUsed)
|
|
212
197
|
);
|
|
213
198
|
}
|
|
214
199
|
}
|
|
@@ -75,6 +75,10 @@ export class ContentCommitment {
|
|
|
75
75
|
return new ContentCommitment(reader.readField(), reader.readField(), reader.readField());
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
+
static random(): ContentCommitment {
|
|
79
|
+
return new ContentCommitment(Fr.random(), Fr.random(), Fr.random());
|
|
80
|
+
}
|
|
81
|
+
|
|
78
82
|
static empty(): ContentCommitment {
|
|
79
83
|
return new ContentCommitment(Fr.zero(), Fr.zero(), Fr.zero());
|
|
80
84
|
}
|
package/src/tx/index.ts
CHANGED
|
@@ -6,11 +6,11 @@ export * from './state_reference.js';
|
|
|
6
6
|
export * from './partial_state_reference.js';
|
|
7
7
|
export * from './function_data.js';
|
|
8
8
|
export * from './tree_snapshots.js';
|
|
9
|
+
export * from './private_tx_constant_data.js';
|
|
9
10
|
export * from './tx_constant_data.js';
|
|
10
11
|
export * from './tx_context.js';
|
|
11
12
|
export * from './tx_request.js';
|
|
12
13
|
export * from './private_execution_result.js';
|
|
13
|
-
export * from './proposed_block_header.js';
|
|
14
14
|
export * from './public_call_request_with_calldata.js';
|
|
15
15
|
export * from './tx_hash.js';
|
|
16
16
|
export * from './tx_receipt.js';
|
|
@@ -30,3 +30,4 @@ export * from './hashed_values.js';
|
|
|
30
30
|
export * from './indexed_tx_effect.js';
|
|
31
31
|
export * from './offchain_effect.js';
|
|
32
32
|
export * from './profiling.js';
|
|
33
|
+
export * from './protocol_contracts.js';
|
|
@@ -64,6 +64,14 @@ export class PartialStateReference {
|
|
|
64
64
|
);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
static random(): PartialStateReference {
|
|
68
|
+
return new PartialStateReference(
|
|
69
|
+
AppendOnlyTreeSnapshot.random(),
|
|
70
|
+
AppendOnlyTreeSnapshot.random(),
|
|
71
|
+
AppendOnlyTreeSnapshot.random(),
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
67
75
|
toViem(): ViemPartialStateReference {
|
|
68
76
|
return {
|
|
69
77
|
noteHashTree: this.noteHashTree.toViem(),
|
|
@@ -10,6 +10,7 @@ import { PrivateCircuitPublicInputs } from '../kernel/private_circuit_public_inp
|
|
|
10
10
|
import type { IsEmpty } from '../kernel/utils/interfaces.js';
|
|
11
11
|
import { sortByCounter } from '../kernel/utils/order_and_comparison.js';
|
|
12
12
|
import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
|
|
13
|
+
import { type PreTag, PreTagSchema } from '../logs/pre_tag.js';
|
|
13
14
|
import { Note } from '../note/note.js';
|
|
14
15
|
import { type ZodFor, mapSchema, schemas } from '../schemas/index.js';
|
|
15
16
|
import type { UInt32 } from '../types/index.js';
|
|
@@ -103,10 +104,10 @@ export class PrivateExecutionResult {
|
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
/**
|
|
106
|
-
* The block number that this execution was simulated with.
|
|
107
|
+
* The anchor block number that this execution was simulated with.
|
|
107
108
|
*/
|
|
108
|
-
|
|
109
|
-
return this.entrypoint.publicInputs.
|
|
109
|
+
getSimulationAnchorBlockNumber(): UInt32 {
|
|
110
|
+
return this.entrypoint.publicInputs.anchorBlockHeader.globalVariables.blockNumber;
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
|
|
@@ -135,6 +136,8 @@ export class PrivateCallExecutionResult {
|
|
|
135
136
|
public returnValues: Fr[],
|
|
136
137
|
/** The offchain effects emitted during execution of this function call via the `emit_offchain_effect` oracle. */
|
|
137
138
|
public offchainEffects: { data: Fr[] }[],
|
|
139
|
+
/** The pre tags used in this tx to compute tags for private logs */
|
|
140
|
+
public preTags: PreTag[],
|
|
138
141
|
/** The nested executions. */
|
|
139
142
|
public nestedExecutionResults: PrivateCallExecutionResult[],
|
|
140
143
|
/**
|
|
@@ -158,6 +161,7 @@ export class PrivateCallExecutionResult {
|
|
|
158
161
|
noteHashNullifierCounterMap: mapSchema(z.coerce.number(), z.number()),
|
|
159
162
|
returnValues: z.array(schemas.Fr),
|
|
160
163
|
offchainEffects: z.array(z.object({ data: z.array(schemas.Fr) })),
|
|
164
|
+
preTags: z.array(PreTagSchema),
|
|
161
165
|
nestedExecutionResults: z.array(z.lazy(() => PrivateCallExecutionResult.schema)),
|
|
162
166
|
contractClassLogs: z.array(CountedContractClassLog.schema),
|
|
163
167
|
})
|
|
@@ -175,6 +179,7 @@ export class PrivateCallExecutionResult {
|
|
|
175
179
|
fields.noteHashNullifierCounterMap,
|
|
176
180
|
fields.returnValues,
|
|
177
181
|
fields.offchainEffects,
|
|
182
|
+
fields.preTags,
|
|
178
183
|
fields.nestedExecutionResults,
|
|
179
184
|
fields.contractClassLogs,
|
|
180
185
|
);
|
|
@@ -195,6 +200,7 @@ export class PrivateCallExecutionResult {
|
|
|
195
200
|
data: [Fr.random()],
|
|
196
201
|
},
|
|
197
202
|
],
|
|
203
|
+
[],
|
|
198
204
|
await timesParallel(nested, () => PrivateCallExecutionResult.random(0)),
|
|
199
205
|
[new CountedContractClassLog(await ContractClassLog.random(), randomInt(10))],
|
|
200
206
|
);
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { TX_CONSTANT_DATA_LENGTH } from '@aztec/constants';
|
|
2
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
4
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
|
+
|
|
6
|
+
import { BlockHeader } from './block_header.js';
|
|
7
|
+
import { ProtocolContracts } from './protocol_contracts.js';
|
|
8
|
+
import { TxContext } from './tx_context.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Data that is constant/not modified by neither of the kernels.
|
|
12
|
+
*/
|
|
13
|
+
export class PrivateTxConstantData {
|
|
14
|
+
constructor(
|
|
15
|
+
/** Header of a block whose state is used during execution (not the block the transaction is included in). */
|
|
16
|
+
public anchorBlockHeader: BlockHeader,
|
|
17
|
+
/**
|
|
18
|
+
* Context of the transaction.
|
|
19
|
+
*
|
|
20
|
+
* Note: `chainId` and `version` in txContext are not redundant to the values in
|
|
21
|
+
* self.anchor_block_header.global_variables because they can be different in case of a protocol upgrade. In such
|
|
22
|
+
* a situation we could be using header from a block before the upgrade took place but be using the updated
|
|
23
|
+
* protocol to execute and prove the transaction.
|
|
24
|
+
*/
|
|
25
|
+
public txContext: TxContext,
|
|
26
|
+
/**
|
|
27
|
+
* Root of the vk tree for the protocol circuits.
|
|
28
|
+
*/
|
|
29
|
+
public vkTreeRoot: Fr,
|
|
30
|
+
/**
|
|
31
|
+
* List of protocol contracts.
|
|
32
|
+
*/
|
|
33
|
+
public protocolContracts: ProtocolContracts,
|
|
34
|
+
) {}
|
|
35
|
+
|
|
36
|
+
static from(fields: FieldsOf<PrivateTxConstantData>) {
|
|
37
|
+
return new PrivateTxConstantData(...PrivateTxConstantData.getFields(fields));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static getFields(fields: FieldsOf<PrivateTxConstantData>) {
|
|
41
|
+
return [fields.anchorBlockHeader, fields.txContext, fields.vkTreeRoot, fields.protocolContracts] as const;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static fromFields(fields: Fr[] | FieldReader): PrivateTxConstantData {
|
|
45
|
+
const reader = FieldReader.asReader(fields);
|
|
46
|
+
return new PrivateTxConstantData(
|
|
47
|
+
reader.readObject(BlockHeader),
|
|
48
|
+
reader.readObject(TxContext),
|
|
49
|
+
reader.readField(),
|
|
50
|
+
reader.readObject(ProtocolContracts),
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
toFields(): Fr[] {
|
|
55
|
+
const fields = serializeToFields(...PrivateTxConstantData.getFields(this));
|
|
56
|
+
if (fields.length !== TX_CONSTANT_DATA_LENGTH) {
|
|
57
|
+
throw new Error(
|
|
58
|
+
`Invalid number of fields for PrivateTxConstantData. Expected ${TX_CONSTANT_DATA_LENGTH}, got ${fields.length}`,
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
return fields;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static fromBuffer(buffer: Buffer | BufferReader): PrivateTxConstantData {
|
|
65
|
+
const reader = BufferReader.asReader(buffer);
|
|
66
|
+
return new PrivateTxConstantData(
|
|
67
|
+
reader.readObject(BlockHeader),
|
|
68
|
+
reader.readObject(TxContext),
|
|
69
|
+
Fr.fromBuffer(reader),
|
|
70
|
+
reader.readObject(ProtocolContracts),
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
toBuffer() {
|
|
75
|
+
return serializeToBuffer(...PrivateTxConstantData.getFields(this));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static empty() {
|
|
79
|
+
return new PrivateTxConstantData(BlockHeader.empty(), TxContext.empty(), Fr.ZERO, ProtocolContracts.empty());
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
getSize() {
|
|
83
|
+
return (
|
|
84
|
+
this.anchorBlockHeader.getSize() +
|
|
85
|
+
this.txContext.getSize() +
|
|
86
|
+
this.vkTreeRoot.size +
|
|
87
|
+
this.protocolContracts.getSize()
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
clone(): PrivateTxConstantData {
|
|
92
|
+
return PrivateTxConstantData.fromBuffer(this.toBuffer());
|
|
93
|
+
}
|
|
94
|
+
}
|