@aztec/stdlib 2.1.0-rc.9 → 3.0.0-devnet.2
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 +131 -72
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +8 -4
- 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/index.d.ts +2 -0
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +2 -0
- package/dest/block/l2_block.d.ts +19 -5
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +28 -7
- 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_source.d.ts +29 -0
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
- package/dest/block/proposal/attestations_and_signers.d.ts +1 -1
- package/dest/block/proposal/attestations_and_signers.js +1 -1
- package/dest/block/proposal/committee_attestation.d.ts +0 -1
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
- package/dest/block/proposal/committee_attestation.js +0 -3
- package/dest/block/published_l2_block.d.ts +2 -8
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +0 -9
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +1 -3
- 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 +1 -1
- package/dest/contract/interfaces/contract_instance.d.ts +2 -2
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +0 -3
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +7 -0
- package/dest/interfaces/aztec-node-admin.d.ts +40 -36
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +2 -2
- package/dest/interfaces/aztec-node.d.ts +30 -0
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +7 -1
- package/dest/interfaces/block-builder.d.ts +1 -2
- 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 +5 -0
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -0
- package/dest/interfaces/epoch-prover.d.ts +26 -9
- 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 +343 -194
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +131 -113
- package/dest/interfaces/server_circuit_prover.d.ts +34 -34
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- 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 +99 -3
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +7 -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_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 +1 -1
- 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 +1 -21
- 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 +64 -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/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 +13 -13
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/block_attestation.js +27 -25
- package/dest/p2p/block_proposal.d.ts +6 -8
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +10 -13
- package/dest/p2p/consensus_payload.d.ts +7 -6
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +7 -6
- 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/client_ivc_proof.d.ts +17 -7
- package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
- package/dest/proofs/client_ivc_proof.js +78 -19
- package/dest/proofs/index.d.ts +1 -0
- package/dest/proofs/index.d.ts.map +1 -1
- package/dest/proofs/index.js +1 -0
- 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 -13
- package/dest/rollup/checkpoint_header.d.ts.map +1 -0
- package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +9 -9
- 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_tube_private_inputs.d.ts +21 -0
- package/dest/rollup/public_tube_private_inputs.d.ts.map +1 -0
- package/dest/rollup/public_tube_private_inputs.js +42 -0
- package/dest/rollup/public_tube_public_inputs.d.ts +20 -0
- package/dest/rollup/public_tube_public_inputs.d.ts.map +1 -0
- package/dest/rollup/public_tube_public_inputs.js +41 -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/stats/stats.d.ts +1 -1
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +42 -74
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +144 -167
- package/dest/tests/mocks.d.ts +11 -7
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +44 -23
- 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/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/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 +0 -1
- package/dest/tx/processed_tx.d.ts.map +1 -1
- package/dest/tx/processed_tx.js +1 -6
- 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/simulated_tx.d.ts +3 -3
- package/dest/tx/tx.d.ts +6 -2
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +10 -3
- 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/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 +15 -9
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +17 -11
- package/package.json +12 -10
- 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 +13 -2
- 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 +2 -0
- package/src/block/l2_block.ts +33 -8
- 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_source.ts +32 -0
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
- package/src/block/proposal/attestations_and_signers.ts +1 -1
- package/src/block/proposal/committee_attestation.ts +0 -4
- package/src/block/published_l2_block.ts +0 -17
- package/src/block/test/l2_tips_store_test_suite.ts +1 -2
- 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/hash/hash.ts +0 -4
- package/src/interfaces/archiver.ts +9 -1
- package/src/interfaces/aztec-node-admin.ts +2 -2
- package/src/interfaces/aztec-node.ts +45 -0
- package/src/interfaces/block-builder.ts +1 -6
- package/src/interfaces/client.ts +0 -1
- package/src/interfaces/configs.ts +3 -0
- package/src/interfaces/epoch-prover.ts +35 -11
- 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 +215 -134
- package/src/interfaces/server_circuit_prover.ts +87 -61
- package/src/interfaces/tx_provider.ts +1 -0
- package/src/interfaces/validator.ts +19 -4
- 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_init_circuit_private_inputs.ts +5 -4
- package/src/kernel/private_kernel_prover_output.ts +1 -1
- 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 +1 -26
- 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 +78 -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/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 +31 -24
- package/src/p2p/block_proposal.ts +11 -16
- package/src/p2p/consensus_payload.ts +8 -7
- 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/client_ivc_proof.ts +86 -20
- package/src/proofs/index.ts +1 -0
- 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} +17 -18
- 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_tube_private_inputs.ts +53 -0
- package/src/rollup/public_tube_public_inputs.ts +52 -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/stats/stats.ts +19 -13
- package/src/tests/factories.ts +217 -275
- package/src/tests/mocks.ts +71 -53
- package/src/trees/index.ts +0 -1
- package/src/tx/block_header.ts +17 -32
- package/src/tx/global_variables.ts +0 -1
- package/src/tx/index.ts +2 -1
- 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 +1 -7
- package/src/tx/profiling.ts +0 -2
- package/src/tx/protocol_contracts.ts +70 -0
- package/src/tx/tx.ts +12 -3
- 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/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 +40 -28
- 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 -336
- package/dest/interfaces/pxe.d.ts.map +0 -1
- package/dest/interfaces/pxe.js +0 -101
- 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/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 -541
- package/src/logs/indexed_tagging_secret.ts +0 -48
- package/src/parity/root_parity_input.ts +0 -71
- 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
|
@@ -10,13 +10,13 @@ import { TxHash } from '../tx/tx_hash.js';
|
|
|
10
10
|
import { Note } from './note.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
|
-
* A note with contextual data.
|
|
13
|
+
* A note with contextual data and a nonce that makes it unique.
|
|
14
14
|
*/
|
|
15
|
-
export class
|
|
15
|
+
export class UniqueNote {
|
|
16
16
|
constructor(
|
|
17
17
|
/** The note as emitted from the Noir contract. */
|
|
18
18
|
public note: Note,
|
|
19
|
-
/** The
|
|
19
|
+
/** The recipient whose public key was used to encrypt the note. */
|
|
20
20
|
public recipient: AztecAddress,
|
|
21
21
|
/** The contract address this note is created in. */
|
|
22
22
|
public contractAddress: AztecAddress,
|
|
@@ -24,76 +24,11 @@ export class ExtendedNote {
|
|
|
24
24
|
public storageSlot: Fr,
|
|
25
25
|
/** The hash of the tx the note was created in. */
|
|
26
26
|
public txHash: TxHash,
|
|
27
|
-
) {}
|
|
28
|
-
|
|
29
|
-
toBuffer(): Buffer {
|
|
30
|
-
return serializeToBuffer([this.note, this.recipient, this.contractAddress, this.storageSlot, this.txHash]);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
34
|
-
const reader = BufferReader.asReader(buffer);
|
|
35
|
-
|
|
36
|
-
const note = reader.readObject(Note);
|
|
37
|
-
const recipient = reader.readObject(AztecAddress);
|
|
38
|
-
const contractAddress = reader.readObject(AztecAddress);
|
|
39
|
-
const storageSlot = reader.readObject(Fr);
|
|
40
|
-
const txHash = reader.readObject(TxHash);
|
|
41
|
-
|
|
42
|
-
return new this(note, recipient, contractAddress, storageSlot, txHash);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
static get schema(): ZodFor<ExtendedNote> {
|
|
46
|
-
return z
|
|
47
|
-
.object({
|
|
48
|
-
note: Note.schema,
|
|
49
|
-
recipient: schemas.AztecAddress,
|
|
50
|
-
contractAddress: schemas.AztecAddress,
|
|
51
|
-
storageSlot: schemas.Fr,
|
|
52
|
-
txHash: TxHash.schema,
|
|
53
|
-
})
|
|
54
|
-
.transform(({ note, recipient, contractAddress, storageSlot, txHash }) => {
|
|
55
|
-
return new ExtendedNote(note, recipient, contractAddress, storageSlot, txHash);
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
toString() {
|
|
60
|
-
return bufferToHex(this.toBuffer());
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
static fromString(str: string) {
|
|
64
|
-
return ExtendedNote.fromBuffer(hexToBuffer(str));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
static async random() {
|
|
68
|
-
return new ExtendedNote(
|
|
69
|
-
Note.random(),
|
|
70
|
-
await AztecAddress.random(),
|
|
71
|
-
await AztecAddress.random(),
|
|
72
|
-
Fr.random(),
|
|
73
|
-
TxHash.random(),
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export class UniqueNote extends ExtendedNote {
|
|
79
|
-
constructor(
|
|
80
|
-
/** The note as emitted from the Noir contract. */
|
|
81
|
-
note: Note,
|
|
82
|
-
/** The recipient whose public key was used to encrypt the note. */
|
|
83
|
-
recipient: AztecAddress,
|
|
84
|
-
/** The contract address this note is created in. */
|
|
85
|
-
contractAddress: AztecAddress,
|
|
86
|
-
/** The specific storage location of the note on the contract. */
|
|
87
|
-
storageSlot: Fr,
|
|
88
|
-
/** The hash of the tx the note was created in. */
|
|
89
|
-
txHash: TxHash,
|
|
90
27
|
/** The nonce that was injected into the note hash preimage in order to guarantee uniqueness. */
|
|
91
28
|
public noteNonce: Fr,
|
|
92
|
-
) {
|
|
93
|
-
super(note, recipient, contractAddress, storageSlot, txHash);
|
|
94
|
-
}
|
|
29
|
+
) {}
|
|
95
30
|
|
|
96
|
-
static
|
|
31
|
+
static get schema(): ZodFor<UniqueNote> {
|
|
97
32
|
return z
|
|
98
33
|
.object({
|
|
99
34
|
note: Note.schema,
|
|
@@ -108,7 +43,7 @@ export class UniqueNote extends ExtendedNote {
|
|
|
108
43
|
});
|
|
109
44
|
}
|
|
110
45
|
|
|
111
|
-
|
|
46
|
+
toBuffer(): Buffer {
|
|
112
47
|
return serializeToBuffer([
|
|
113
48
|
this.note,
|
|
114
49
|
this.recipient,
|
|
@@ -119,7 +54,7 @@ export class UniqueNote extends ExtendedNote {
|
|
|
119
54
|
]);
|
|
120
55
|
}
|
|
121
56
|
|
|
122
|
-
static
|
|
57
|
+
static async random() {
|
|
123
58
|
return new UniqueNote(
|
|
124
59
|
Note.random(),
|
|
125
60
|
await AztecAddress.random(),
|
|
@@ -130,7 +65,7 @@ export class UniqueNote extends ExtendedNote {
|
|
|
130
65
|
);
|
|
131
66
|
}
|
|
132
67
|
|
|
133
|
-
static
|
|
68
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
134
69
|
const reader = BufferReader.asReader(buffer);
|
|
135
70
|
|
|
136
71
|
const note = reader.readObject(Note);
|
|
@@ -140,10 +75,14 @@ export class UniqueNote extends ExtendedNote {
|
|
|
140
75
|
const txHash = reader.readObject(TxHash);
|
|
141
76
|
const noteNonce = reader.readObject(Fr);
|
|
142
77
|
|
|
143
|
-
return new
|
|
78
|
+
return new UniqueNote(note, recipient, contractAddress, storageSlot, txHash, noteNonce);
|
|
144
79
|
}
|
|
145
80
|
|
|
146
|
-
static
|
|
81
|
+
static fromString(str: string) {
|
|
147
82
|
return UniqueNote.fromBuffer(hexToBuffer(str));
|
|
148
83
|
}
|
|
84
|
+
|
|
85
|
+
toString() {
|
|
86
|
+
return bufferToHex(this.toBuffer());
|
|
87
|
+
}
|
|
149
88
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
-
import { keccak256,
|
|
2
|
+
import { keccak256, tryRecoverAddress } from '@aztec/foundation/crypto';
|
|
3
3
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -7,8 +7,7 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
7
7
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
|
|
10
|
-
import {
|
|
11
|
-
import type { UInt32 } from '../types/index.js';
|
|
10
|
+
import type { ZodFor } from '../schemas/index.js';
|
|
12
11
|
import { ConsensusPayload } from './consensus_payload.js';
|
|
13
12
|
import { Gossipable } from './gossipable.js';
|
|
14
13
|
import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from './signature_utils.js';
|
|
@@ -30,16 +29,17 @@ export class BlockAttestation extends Gossipable {
|
|
|
30
29
|
static override p2pTopic = TopicType.block_attestation;
|
|
31
30
|
|
|
32
31
|
private sender: EthAddress | undefined;
|
|
32
|
+
private proposer: EthAddress | undefined;
|
|
33
33
|
|
|
34
34
|
constructor(
|
|
35
|
-
/** The block number of the attestation. */
|
|
36
|
-
public readonly blockNumber: UInt32,
|
|
37
|
-
|
|
38
35
|
/** The payload of the message, and what the signature is over */
|
|
39
36
|
public readonly payload: ConsensusPayload,
|
|
40
37
|
|
|
41
38
|
/** The signature of the block attester */
|
|
42
39
|
public readonly signature: Signature,
|
|
40
|
+
|
|
41
|
+
/** The signature from the block proposer */
|
|
42
|
+
public readonly proposerSignature: Signature,
|
|
43
43
|
) {
|
|
44
44
|
super();
|
|
45
45
|
}
|
|
@@ -47,11 +47,11 @@ export class BlockAttestation extends Gossipable {
|
|
|
47
47
|
static get schema(): ZodFor<BlockAttestation> {
|
|
48
48
|
return z
|
|
49
49
|
.object({
|
|
50
|
-
blockNumber: schemas.UInt32,
|
|
51
50
|
payload: ConsensusPayload.schema,
|
|
52
51
|
signature: Signature.schema,
|
|
52
|
+
proposerSignature: Signature.schema,
|
|
53
53
|
})
|
|
54
|
-
.transform(obj => new BlockAttestation(obj.
|
|
54
|
+
.transform(obj => new BlockAttestation(obj.payload, obj.signature, obj.proposerSignature));
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
override generateP2PMessageIdentifier(): Promise<Buffer32> {
|
|
@@ -68,29 +68,32 @@ export class BlockAttestation extends Gossipable {
|
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
70
|
* Lazily evaluate and cache the signer of the attestation
|
|
71
|
-
* @returns The signer of the attestation
|
|
71
|
+
* @returns The signer of the attestation, or undefined if signature recovery fails
|
|
72
72
|
*/
|
|
73
|
-
getSender(): EthAddress {
|
|
73
|
+
getSender(): EthAddress | undefined {
|
|
74
74
|
if (!this.sender) {
|
|
75
75
|
// Recover the sender from the attestation
|
|
76
76
|
const hashed = getHashedSignaturePayloadEthSignedMessage(this.payload, SignatureDomainSeparator.blockAttestation);
|
|
77
77
|
// Cache the sender for later use
|
|
78
|
-
this.sender =
|
|
78
|
+
this.sender = tryRecoverAddress(hashed, this.signature);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
return this.sender;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
/**
|
|
85
|
-
*
|
|
86
|
-
* @returns The
|
|
85
|
+
* Lazily evaluate and cache the proposer of the block
|
|
86
|
+
* @returns The proposer of the block
|
|
87
87
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
getProposer(): EthAddress | undefined {
|
|
89
|
+
if (!this.proposer) {
|
|
90
|
+
// Recover the proposer from the proposal signature
|
|
91
|
+
const hashed = getHashedSignaturePayloadEthSignedMessage(this.payload, SignatureDomainSeparator.blockProposal);
|
|
92
|
+
// Cache the proposer for later use
|
|
93
|
+
this.proposer = tryRecoverAddress(hashed, this.proposerSignature);
|
|
93
94
|
}
|
|
95
|
+
|
|
96
|
+
return this.proposer;
|
|
94
97
|
}
|
|
95
98
|
|
|
96
99
|
getPayload(): Buffer {
|
|
@@ -98,31 +101,35 @@ export class BlockAttestation extends Gossipable {
|
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
toBuffer(): Buffer {
|
|
101
|
-
return serializeToBuffer([this.
|
|
104
|
+
return serializeToBuffer([this.payload, this.signature, this.proposerSignature]);
|
|
102
105
|
}
|
|
103
106
|
|
|
104
107
|
static fromBuffer(buf: Buffer | BufferReader): BlockAttestation {
|
|
105
108
|
const reader = BufferReader.asReader(buf);
|
|
106
|
-
return new BlockAttestation(
|
|
109
|
+
return new BlockAttestation(
|
|
110
|
+
reader.readObject(ConsensusPayload),
|
|
111
|
+
reader.readObject(Signature),
|
|
112
|
+
reader.readObject(Signature),
|
|
113
|
+
);
|
|
107
114
|
}
|
|
108
115
|
|
|
109
116
|
static empty(): BlockAttestation {
|
|
110
|
-
return new BlockAttestation(
|
|
117
|
+
return new BlockAttestation(ConsensusPayload.empty(), Signature.empty(), Signature.empty());
|
|
111
118
|
}
|
|
112
119
|
|
|
113
120
|
static random(): BlockAttestation {
|
|
114
|
-
return new BlockAttestation(
|
|
121
|
+
return new BlockAttestation(ConsensusPayload.random(), Signature.random(), Signature.random());
|
|
115
122
|
}
|
|
116
123
|
|
|
117
124
|
getSize(): number {
|
|
118
|
-
return
|
|
125
|
+
return this.payload.getSize() + this.signature.getSize() + this.proposerSignature.getSize();
|
|
119
126
|
}
|
|
120
127
|
|
|
121
128
|
toInspect() {
|
|
122
129
|
return {
|
|
123
|
-
blockNumber: this.blockNumber,
|
|
124
130
|
payload: this.payload.toInspect(),
|
|
125
131
|
signature: this.signature.toString(),
|
|
132
|
+
proposerSignature: this.proposerSignature.toString(),
|
|
126
133
|
};
|
|
127
134
|
}
|
|
128
135
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
-
import { keccak256,
|
|
2
|
+
import { keccak256, tryRecoverAddress } from '@aztec/foundation/crypto';
|
|
3
3
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -8,7 +8,6 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
8
8
|
import type { L2BlockInfo } from '../block/l2_block_info.js';
|
|
9
9
|
import { TxHash } from '../tx/index.js';
|
|
10
10
|
import { Tx } from '../tx/tx.js';
|
|
11
|
-
import type { UInt32 } from '../types/index.js';
|
|
12
11
|
import { ConsensusPayload } from './consensus_payload.js';
|
|
13
12
|
import { Gossipable } from './gossipable.js';
|
|
14
13
|
import {
|
|
@@ -26,6 +25,8 @@ export class BlockProposalHash extends Buffer32 {
|
|
|
26
25
|
|
|
27
26
|
export type BlockProposalOptions = {
|
|
28
27
|
publishFullTxs: boolean;
|
|
28
|
+
/** Whether to generate an invalid block proposal for broadcasting. Use only for testing. */
|
|
29
|
+
broadcastInvalidBlockProposal?: boolean;
|
|
29
30
|
};
|
|
30
31
|
|
|
31
32
|
/**
|
|
@@ -40,9 +41,6 @@ export class BlockProposal extends Gossipable {
|
|
|
40
41
|
private sender: EthAddress | undefined;
|
|
41
42
|
|
|
42
43
|
constructor(
|
|
43
|
-
/** The number of the block */
|
|
44
|
-
public readonly blockNumber: UInt32,
|
|
45
|
-
|
|
46
44
|
/** The payload of the message, and what the signature is over */
|
|
47
45
|
public readonly payload: ConsensusPayload,
|
|
48
46
|
|
|
@@ -71,9 +69,8 @@ export class BlockProposal extends Gossipable {
|
|
|
71
69
|
return this.payload.header.slotNumber;
|
|
72
70
|
}
|
|
73
71
|
|
|
74
|
-
toBlockInfo(): L2BlockInfo {
|
|
72
|
+
toBlockInfo(): Omit<L2BlockInfo, 'blockNumber'> {
|
|
75
73
|
return {
|
|
76
|
-
blockNumber: this.blockNumber,
|
|
77
74
|
slotNumber: this.slotNumber.toNumber(),
|
|
78
75
|
lastArchive: this.payload.header.lastArchiveRoot,
|
|
79
76
|
timestamp: this.payload.header.timestamp,
|
|
@@ -83,7 +80,6 @@ export class BlockProposal extends Gossipable {
|
|
|
83
80
|
}
|
|
84
81
|
|
|
85
82
|
static async createProposalFromSigner(
|
|
86
|
-
blockNumber: UInt32,
|
|
87
83
|
payload: ConsensusPayload,
|
|
88
84
|
txHashes: TxHash[],
|
|
89
85
|
// Note(md): Provided separately to tx hashes such that this function can be optional
|
|
@@ -93,17 +89,18 @@ export class BlockProposal extends Gossipable {
|
|
|
93
89
|
const hashed = getHashedSignaturePayload(payload, SignatureDomainSeparator.blockProposal);
|
|
94
90
|
const sig = await payloadSigner(hashed);
|
|
95
91
|
|
|
96
|
-
return new BlockProposal(
|
|
92
|
+
return new BlockProposal(payload, sig, txHashes, txs);
|
|
97
93
|
}
|
|
98
94
|
|
|
99
95
|
/**Get Sender
|
|
100
96
|
* Lazily evaluate the sender of the proposal; result is cached
|
|
97
|
+
* @returns The sender address, or undefined if signature recovery fails
|
|
101
98
|
*/
|
|
102
|
-
getSender() {
|
|
99
|
+
getSender(): EthAddress | undefined {
|
|
103
100
|
if (!this.sender) {
|
|
104
101
|
const hashed = getHashedSignaturePayloadEthSignedMessage(this.payload, SignatureDomainSeparator.blockProposal);
|
|
105
102
|
// Cache the sender for later use
|
|
106
|
-
this.sender =
|
|
103
|
+
this.sender = tryRecoverAddress(hashed, this.signature);
|
|
107
104
|
}
|
|
108
105
|
|
|
109
106
|
return this.sender;
|
|
@@ -114,7 +111,7 @@ export class BlockProposal extends Gossipable {
|
|
|
114
111
|
}
|
|
115
112
|
|
|
116
113
|
toBuffer(): Buffer {
|
|
117
|
-
const buffer: any[] = [this.
|
|
114
|
+
const buffer: any[] = [this.payload, this.signature, this.txHashes.length, this.txHashes];
|
|
118
115
|
if (this.txs) {
|
|
119
116
|
buffer.push(this.txs.length);
|
|
120
117
|
buffer.push(this.txs);
|
|
@@ -125,22 +122,20 @@ export class BlockProposal extends Gossipable {
|
|
|
125
122
|
static fromBuffer(buf: Buffer | BufferReader): BlockProposal {
|
|
126
123
|
const reader = BufferReader.asReader(buf);
|
|
127
124
|
|
|
128
|
-
const blockNumber = reader.readNumber();
|
|
129
125
|
const payload = reader.readObject(ConsensusPayload);
|
|
130
126
|
const sig = reader.readObject(Signature);
|
|
131
127
|
const txHashes = reader.readArray(reader.readNumber(), TxHash);
|
|
132
128
|
|
|
133
129
|
if (!reader.isEmpty()) {
|
|
134
130
|
const txs = reader.readArray(reader.readNumber(), Tx);
|
|
135
|
-
return new BlockProposal(
|
|
131
|
+
return new BlockProposal(payload, sig, txHashes, txs);
|
|
136
132
|
}
|
|
137
133
|
|
|
138
|
-
return new BlockProposal(
|
|
134
|
+
return new BlockProposal(payload, sig, txHashes);
|
|
139
135
|
}
|
|
140
136
|
|
|
141
137
|
getSize(): number {
|
|
142
138
|
return (
|
|
143
|
-
4 /* blockNumber */ +
|
|
144
139
|
this.payload.getSize() +
|
|
145
140
|
this.signature.getSize() +
|
|
146
141
|
4 /* txHashes.length */ +
|
|
@@ -8,7 +8,8 @@ import { encodeAbiParameters, parseAbiParameters } from 'viem';
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
|
|
10
10
|
import type { L2Block } from '../block/l2_block.js';
|
|
11
|
-
import {
|
|
11
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
12
|
+
import { StateReference } from '../tx/state_reference.js';
|
|
12
13
|
import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
|
|
13
14
|
|
|
14
15
|
export class ConsensusPayload implements Signable {
|
|
@@ -16,7 +17,7 @@ export class ConsensusPayload implements Signable {
|
|
|
16
17
|
|
|
17
18
|
constructor(
|
|
18
19
|
/** The proposed block header the attestation is made over */
|
|
19
|
-
public readonly header:
|
|
20
|
+
public readonly header: CheckpointHeader,
|
|
20
21
|
/** The archive root after the block is added */
|
|
21
22
|
public readonly archive: Fr,
|
|
22
23
|
/** The state reference after the block is added */
|
|
@@ -26,7 +27,7 @@ export class ConsensusPayload implements Signable {
|
|
|
26
27
|
static get schema() {
|
|
27
28
|
return z
|
|
28
29
|
.object({
|
|
29
|
-
header:
|
|
30
|
+
header: CheckpointHeader.schema,
|
|
30
31
|
archive: schemas.Fr,
|
|
31
32
|
stateReference: StateReference.schema,
|
|
32
33
|
})
|
|
@@ -74,7 +75,7 @@ export class ConsensusPayload implements Signable {
|
|
|
74
75
|
static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload {
|
|
75
76
|
const reader = BufferReader.asReader(buf);
|
|
76
77
|
const payload = new ConsensusPayload(
|
|
77
|
-
reader.readObject(
|
|
78
|
+
reader.readObject(CheckpointHeader),
|
|
78
79
|
reader.readObject(Fr),
|
|
79
80
|
reader.readObject(StateReference),
|
|
80
81
|
);
|
|
@@ -86,15 +87,15 @@ export class ConsensusPayload implements Signable {
|
|
|
86
87
|
}
|
|
87
88
|
|
|
88
89
|
static fromBlock(block: L2Block): ConsensusPayload {
|
|
89
|
-
return new ConsensusPayload(block.header.
|
|
90
|
+
return new ConsensusPayload(block.header.toCheckpointHeader(), block.archive.root, block.header.state);
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
static empty(): ConsensusPayload {
|
|
93
|
-
return new ConsensusPayload(
|
|
94
|
+
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, StateReference.empty());
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
static random(): ConsensusPayload {
|
|
97
|
-
return new ConsensusPayload(
|
|
98
|
+
return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), StateReference.random());
|
|
98
99
|
}
|
|
99
100
|
|
|
100
101
|
/**
|
package/src/parity/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './parity_base_private_inputs.js';
|
|
2
2
|
export * from './parity_public_inputs.js';
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './root_parity_inputs.js';
|
|
3
|
+
export * from './parity_root_private_inputs.js';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NUM_MSGS_PER_BASE_PARITY } from '@aztec/constants';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
4
4
|
import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
5
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
6
6
|
|
|
7
|
-
export class
|
|
7
|
+
export class ParityBasePrivateInputs {
|
|
8
8
|
constructor(
|
|
9
9
|
/** Aggregated proof of all the parity circuit iterations. */
|
|
10
10
|
public readonly msgs: Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>,
|
|
@@ -12,15 +12,17 @@ export class BaseParityInputs {
|
|
|
12
12
|
public readonly vkTreeRoot: Fr,
|
|
13
13
|
) {}
|
|
14
14
|
|
|
15
|
-
public static fromSlice(
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
public static fromSlice(array: Fr[], index: number, vkTreeRoot: Fr): ParityBasePrivateInputs {
|
|
16
|
+
// Can't use Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP> due to length
|
|
17
|
+
if (array.length !== NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) {
|
|
18
|
+
throw new Error(
|
|
19
|
+
`Msgs array length must be NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP=${NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP}`,
|
|
20
|
+
);
|
|
21
|
+
}
|
|
20
22
|
const start = index * NUM_MSGS_PER_BASE_PARITY;
|
|
21
23
|
const end = start + NUM_MSGS_PER_BASE_PARITY;
|
|
22
24
|
const msgs = array.slice(start, end);
|
|
23
|
-
return new
|
|
25
|
+
return new ParityBasePrivateInputs(msgs as Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>, vkTreeRoot);
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
/** Serializes the inputs to a buffer. */
|
|
@@ -39,7 +41,7 @@ export class BaseParityInputs {
|
|
|
39
41
|
*/
|
|
40
42
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
41
43
|
const reader = BufferReader.asReader(buffer);
|
|
42
|
-
return new
|
|
44
|
+
return new ParityBasePrivateInputs(reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader));
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
/**
|
|
@@ -48,7 +50,7 @@ export class BaseParityInputs {
|
|
|
48
50
|
* @returns - The deserialized inputs.
|
|
49
51
|
*/
|
|
50
52
|
static fromString(str: string) {
|
|
51
|
-
return
|
|
53
|
+
return ParityBasePrivateInputs.fromBuffer(hexToBuffer(str));
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
/** Returns a buffer representation for JSON serialization. */
|
|
@@ -58,6 +60,6 @@ export class BaseParityInputs {
|
|
|
58
60
|
|
|
59
61
|
/** Creates an instance from a hex string. */
|
|
60
62
|
static get schema() {
|
|
61
|
-
return bufferSchemaFor(
|
|
63
|
+
return bufferSchemaFor(ParityBasePrivateInputs);
|
|
62
64
|
}
|
|
63
65
|
}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { NUM_BASE_PARITY_PER_ROOT_PARITY
|
|
1
|
+
import { NUM_BASE_PARITY_PER_ROOT_PARITY } from '@aztec/constants';
|
|
2
|
+
import { makeTuple } from '@aztec/foundation/array';
|
|
2
3
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
3
4
|
import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
5
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
5
6
|
|
|
6
|
-
import {
|
|
7
|
+
import { ProofData, type UltraHonkProofData } from '../proofs/proof_data.js';
|
|
8
|
+
import { ParityPublicInputs } from './parity_public_inputs.js';
|
|
7
9
|
|
|
8
|
-
export
|
|
10
|
+
export type ParityBaseProofData = UltraHonkProofData<ParityPublicInputs>;
|
|
11
|
+
|
|
12
|
+
export class ParityRootPrivateInputs {
|
|
9
13
|
constructor(
|
|
10
|
-
/** Public inputs of
|
|
11
|
-
public readonly children: Tuple<
|
|
12
|
-
RootParityInput<typeof RECURSIVE_PROOF_LENGTH>,
|
|
13
|
-
typeof NUM_BASE_PARITY_PER_ROOT_PARITY
|
|
14
|
-
>,
|
|
14
|
+
/** Public inputs of the parity base circuits and their proofs and vk data. */
|
|
15
|
+
public readonly children: Tuple<ParityBaseProofData, typeof NUM_BASE_PARITY_PER_ROOT_PARITY>,
|
|
15
16
|
) {}
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -19,7 +20,7 @@ export class RootParityInputs {
|
|
|
19
20
|
* @returns The inputs serialized to a buffer.
|
|
20
21
|
*/
|
|
21
22
|
toBuffer() {
|
|
22
|
-
return serializeToBuffer(
|
|
23
|
+
return serializeToBuffer(this.children);
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/**
|
|
@@ -33,25 +34,22 @@ export class RootParityInputs {
|
|
|
33
34
|
/**
|
|
34
35
|
* Deserializes the inputs from a buffer.
|
|
35
36
|
* @param buffer - The buffer to deserialize from.
|
|
36
|
-
* @returns A new
|
|
37
|
+
* @returns A new ParityRootPrivateInputs instance.
|
|
37
38
|
*/
|
|
38
39
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
39
40
|
const reader = BufferReader.asReader(buffer);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
);
|
|
43
|
-
return new RootParityInputs(
|
|
44
|
-
tuple as Tuple<RootParityInput<typeof RECURSIVE_PROOF_LENGTH>, typeof NUM_BASE_PARITY_PER_ROOT_PARITY>,
|
|
41
|
+
return new ParityRootPrivateInputs(
|
|
42
|
+
makeTuple(NUM_BASE_PARITY_PER_ROOT_PARITY, () => ProofData.fromBuffer(reader, ParityPublicInputs)),
|
|
45
43
|
);
|
|
46
44
|
}
|
|
47
45
|
|
|
48
46
|
/**
|
|
49
47
|
* Deserializes the inputs from a hex string.
|
|
50
48
|
* @param str - A hex string to deserialize from.
|
|
51
|
-
* @returns A new
|
|
49
|
+
* @returns A new ParityRootPrivateInputs instance.
|
|
52
50
|
*/
|
|
53
51
|
static fromString(str: string) {
|
|
54
|
-
return
|
|
52
|
+
return ParityRootPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
/** Returns a buffer representation for JSON serialization. */
|
|
@@ -61,6 +59,6 @@ export class RootParityInputs {
|
|
|
61
59
|
|
|
62
60
|
/** Creates an instance from a hex string. */
|
|
63
61
|
static get schema() {
|
|
64
|
-
return bufferSchemaFor(
|
|
62
|
+
return bufferSchemaFor(ParityRootPrivateInputs);
|
|
65
63
|
}
|
|
66
64
|
}
|