@aztec/stdlib 3.0.0-canary.a9708bd → 3.0.0-devnet.3
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 +30 -428
- 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 +17 -1
- 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 +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 +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_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/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 +2 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +5 -14
- 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/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 -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_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/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 +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 +14 -8
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +53 -31
- 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 +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/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 +6 -9
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +10 -11
- 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 +33 -51
- 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 +46 -1
- 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 +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.ts +1 -0
- package/src/interfaces/server_circuit_prover.ts +87 -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_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/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 +6 -16
- package/src/p2p/signature_utils.ts +1 -0
- 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} +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_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/slashing/types.ts +23 -0
- package/src/snapshots/download.ts +66 -2
- package/src/snapshots/upload.ts +1 -0
- package/src/stats/stats.ts +19 -13
- package/src/tests/factories.ts +217 -275
- package/src/tests/mocks.ts +87 -57
- 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 +1 -7
- package/src/tx/profiling.ts +0 -2
- package/src/tx/protocol_contracts.ts +70 -0
- package/src/tx/state_reference.ts +5 -1
- package/src/tx/tx.ts +12 -13
- 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/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/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
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
2
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
4
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
|
+
|
|
6
|
+
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
7
|
+
import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
|
|
8
|
+
import type { AvmProofData } from './avm_proof_data.js';
|
|
9
|
+
import { PublicBaseRollupHints } from './base_rollup_hints.js';
|
|
10
|
+
import { PublicTubePublicInputs } from './public_tube_public_inputs.js';
|
|
11
|
+
|
|
12
|
+
export class PublicTxBaseRollupPrivateInputs {
|
|
13
|
+
constructor(
|
|
14
|
+
public publicTubeProofData: RollupHonkProofData<PublicTubePublicInputs>,
|
|
15
|
+
public avmProofData: AvmProofData,
|
|
16
|
+
public hints: PublicBaseRollupHints,
|
|
17
|
+
) {}
|
|
18
|
+
|
|
19
|
+
static from(fields: FieldsOf<PublicTxBaseRollupPrivateInputs>): PublicTxBaseRollupPrivateInputs {
|
|
20
|
+
return new PublicTxBaseRollupPrivateInputs(...PublicTxBaseRollupPrivateInputs.getFields(fields));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static getFields(fields: FieldsOf<PublicTxBaseRollupPrivateInputs>) {
|
|
24
|
+
return [fields.publicTubeProofData, fields.avmProofData, fields.hints] as const;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static fromBuffer(buffer: Buffer | BufferReader): PublicTxBaseRollupPrivateInputs {
|
|
28
|
+
const reader = BufferReader.asReader(buffer);
|
|
29
|
+
return new PublicTxBaseRollupPrivateInputs(
|
|
30
|
+
ProofData.fromBuffer(reader, PublicTubePublicInputs),
|
|
31
|
+
ProofData.fromBuffer(reader, AvmCircuitPublicInputs),
|
|
32
|
+
reader.readObject(PublicBaseRollupHints),
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
toBuffer() {
|
|
37
|
+
return serializeToBuffer(...PublicTxBaseRollupPrivateInputs.getFields(this));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static fromString(str: string) {
|
|
41
|
+
return PublicTxBaseRollupPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
toString() {
|
|
45
|
+
return bufferToHex(this.toBuffer());
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/** Returns a representation for JSON serialization. */
|
|
49
|
+
toJSON() {
|
|
50
|
+
return this.toBuffer();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** Creates an instance from a string. */
|
|
54
|
+
static get schema() {
|
|
55
|
+
return bufferSchemaFor(PublicTxBaseRollupPrivateInputs);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
2
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
4
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
|
+
|
|
6
|
+
import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
|
|
7
|
+
import { CheckpointRollupPublicInputs } from './checkpoint_rollup_public_inputs.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents inputs of the root rollup circuit.
|
|
11
|
+
*/
|
|
12
|
+
export class RootRollupPrivateInputs {
|
|
13
|
+
constructor(
|
|
14
|
+
/**
|
|
15
|
+
* The previous rollup data.
|
|
16
|
+
* Note: Root rollup circuit is the latest circuit the chain of circuits and the previous rollup data is the data
|
|
17
|
+
* from 2 checkpoint root/merge/padding circuits.
|
|
18
|
+
*/
|
|
19
|
+
public previousRollups: [
|
|
20
|
+
RollupHonkProofData<CheckpointRollupPublicInputs>,
|
|
21
|
+
RollupHonkProofData<CheckpointRollupPublicInputs>,
|
|
22
|
+
],
|
|
23
|
+
) {}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Serializes the inputs to a buffer.
|
|
27
|
+
* @returns - The inputs serialized to a buffer.
|
|
28
|
+
*/
|
|
29
|
+
toBuffer() {
|
|
30
|
+
return serializeToBuffer(...RootRollupPrivateInputs.getFields(this));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Serializes the inputs to a hex string.
|
|
35
|
+
* @returns The instance serialized to a hex string.
|
|
36
|
+
*/
|
|
37
|
+
toString() {
|
|
38
|
+
return bufferToHex(this.toBuffer());
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Creates a new instance from fields.
|
|
43
|
+
* @param fields - Fields to create the instance from.
|
|
44
|
+
* @returns A new RootRollupPrivateInputs instance.
|
|
45
|
+
*/
|
|
46
|
+
static from(fields: FieldsOf<RootRollupPrivateInputs>) {
|
|
47
|
+
return new RootRollupPrivateInputs(...RootRollupPrivateInputs.getFields(fields));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Extracts fields from an instance.
|
|
52
|
+
* @param fields - Fields to create the instance from.
|
|
53
|
+
* @returns An array of fields.
|
|
54
|
+
*/
|
|
55
|
+
static getFields(fields: FieldsOf<RootRollupPrivateInputs>) {
|
|
56
|
+
return [fields.previousRollups] as const;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Deserializes the inputs from a buffer.
|
|
61
|
+
* @param buffer - A buffer to deserialize from.
|
|
62
|
+
* @returns A new RootRollupPrivateInputs instance.
|
|
63
|
+
*/
|
|
64
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
65
|
+
const reader = BufferReader.asReader(buffer);
|
|
66
|
+
return new RootRollupPrivateInputs([
|
|
67
|
+
ProofData.fromBuffer(reader, CheckpointRollupPublicInputs),
|
|
68
|
+
ProofData.fromBuffer(reader, CheckpointRollupPublicInputs),
|
|
69
|
+
]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Deserializes the inputs from a hex string.
|
|
74
|
+
* @param str - A hex string to deserialize from.
|
|
75
|
+
* @returns A new RootRollupPrivateInputs instance.
|
|
76
|
+
*/
|
|
77
|
+
static fromString(str: string) {
|
|
78
|
+
return RootRollupPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Returns a representation for JSON serialization. */
|
|
82
|
+
toJSON() {
|
|
83
|
+
return this.toBuffer();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** Creates an instance from a string. */
|
|
87
|
+
static get schema() {
|
|
88
|
+
return bufferSchemaFor(RootRollupPrivateInputs);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { FinalBlobAccumulator } from '@aztec/blob-lib/types';
|
|
2
|
+
import { AZTEC_MAX_EPOCH_DURATION } from '@aztec/constants';
|
|
3
|
+
import { makeTuple } from '@aztec/foundation/array';
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
6
|
+
import { BufferReader, type Tuple, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
7
|
+
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
8
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
9
|
+
|
|
10
|
+
import { FeeRecipient } from './checkpoint_rollup_public_inputs.js';
|
|
11
|
+
import { EpochConstantData } from './epoch_constant_data.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Represents public inputs of the root rollup circuit.
|
|
15
|
+
*
|
|
16
|
+
* NOTE: in practice, we'll hash all of this up into a single public input, for cheap onchain verification.
|
|
17
|
+
*/
|
|
18
|
+
export class RootRollupPublicInputs {
|
|
19
|
+
constructor(
|
|
20
|
+
/** Root of the archive tree before this rollup is processed */
|
|
21
|
+
public previousArchiveRoot: Fr,
|
|
22
|
+
/** Root of the archive tree after this rollup is processed */
|
|
23
|
+
public endArchiveRoot: Fr,
|
|
24
|
+
public checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
25
|
+
public fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
26
|
+
public constants: EpochConstantData,
|
|
27
|
+
public blobPublicInputs: FinalBlobAccumulator,
|
|
28
|
+
) {}
|
|
29
|
+
|
|
30
|
+
static getFields(fields: FieldsOf<RootRollupPublicInputs>) {
|
|
31
|
+
return [
|
|
32
|
+
fields.previousArchiveRoot,
|
|
33
|
+
fields.endArchiveRoot,
|
|
34
|
+
fields.checkpointHeaderHashes,
|
|
35
|
+
fields.fees,
|
|
36
|
+
fields.constants,
|
|
37
|
+
fields.blobPublicInputs,
|
|
38
|
+
] as const;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
toBuffer() {
|
|
42
|
+
return serializeToBuffer(...RootRollupPublicInputs.getFields(this));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
toFields(): Fr[] {
|
|
46
|
+
return serializeToFields(...RootRollupPublicInputs.getFields(this));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static from(fields: FieldsOf<RootRollupPublicInputs>): RootRollupPublicInputs {
|
|
50
|
+
return new RootRollupPublicInputs(...RootRollupPublicInputs.getFields(fields));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Deserializes a buffer into a `RootRollupPublicInputs` object.
|
|
55
|
+
* @param buffer - The buffer to deserialize.
|
|
56
|
+
* @returns The deserialized `RootRollupPublicInputs` object.
|
|
57
|
+
*/
|
|
58
|
+
public static fromBuffer(buffer: Buffer | BufferReader): RootRollupPublicInputs {
|
|
59
|
+
const reader = BufferReader.asReader(buffer);
|
|
60
|
+
return new RootRollupPublicInputs(
|
|
61
|
+
Fr.fromBuffer(reader),
|
|
62
|
+
Fr.fromBuffer(reader),
|
|
63
|
+
reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr),
|
|
64
|
+
reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient),
|
|
65
|
+
EpochConstantData.fromBuffer(reader),
|
|
66
|
+
reader.readObject(FinalBlobAccumulator),
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
toString() {
|
|
71
|
+
return bufferToHex(this.toBuffer());
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static fromString(str: string) {
|
|
75
|
+
return RootRollupPublicInputs.fromBuffer(hexToBuffer(str));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Returns a representation for JSON serialization. */
|
|
79
|
+
toJSON() {
|
|
80
|
+
return this.toBuffer();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Creates an instance from a string. */
|
|
84
|
+
static get schema() {
|
|
85
|
+
return bufferSchemaFor(RootRollupPublicInputs);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Creates a random instance. Used for testing only - will not prove/verify. */
|
|
89
|
+
static random() {
|
|
90
|
+
return new RootRollupPublicInputs(
|
|
91
|
+
Fr.random(),
|
|
92
|
+
Fr.random(),
|
|
93
|
+
makeTuple(AZTEC_MAX_EPOCH_DURATION, Fr.random),
|
|
94
|
+
makeTuple(AZTEC_MAX_EPOCH_DURATION, FeeRecipient.random),
|
|
95
|
+
new EpochConstantData(Fr.random(), Fr.random(), Fr.random(), Fr.random(), Fr.random()),
|
|
96
|
+
FinalBlobAccumulator.random(),
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
MAX_NULLIFIERS_PER_TX,
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH,
|
|
4
|
+
NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH,
|
|
5
5
|
NULLIFIER_TREE_HEIGHT,
|
|
6
6
|
PUBLIC_DATA_TREE_HEIGHT,
|
|
7
7
|
} from '@aztec/constants';
|
|
@@ -11,13 +11,17 @@ import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/s
|
|
|
11
11
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
12
12
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
13
13
|
|
|
14
|
-
import { NullifierLeafPreimage
|
|
14
|
+
import { NullifierLeafPreimage } from '../trees/index.js';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Hints used while proving state diff validity for the private base rollup.
|
|
18
18
|
*/
|
|
19
|
-
export class
|
|
19
|
+
export class TreeSnapshotDiffHints {
|
|
20
20
|
constructor(
|
|
21
|
+
/**
|
|
22
|
+
* Sibling path "pointing to" where the new note hash subtree should be inserted into the note hash tree.
|
|
23
|
+
*/
|
|
24
|
+
public noteHashSubtreeRootSiblingPath: Tuple<Fr, typeof NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH>,
|
|
21
25
|
/**
|
|
22
26
|
* The nullifiers which need to be updated to perform the batch insertion of the new nullifiers.
|
|
23
27
|
* See `StandardIndexedTree.batchInsert` function for more details.
|
|
@@ -39,44 +43,29 @@ export class PrivateBaseStateDiffHints {
|
|
|
39
43
|
* The indexes of the sorted nullifiers to the original ones.
|
|
40
44
|
*/
|
|
41
45
|
public sortedNullifierIndexes: Tuple<number, typeof MAX_NULLIFIERS_PER_TX>,
|
|
42
|
-
/**
|
|
43
|
-
* Sibling path "pointing to" where the new note hash subtree should be inserted into the note hash tree.
|
|
44
|
-
*/
|
|
45
|
-
public noteHashSubtreeSiblingPath: Tuple<Fr, typeof NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH>,
|
|
46
46
|
/**
|
|
47
47
|
* Sibling path "pointing to" where the new nullifiers subtree should be inserted into the nullifier tree.
|
|
48
48
|
*/
|
|
49
|
-
public
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Low leaf for the fee write in the public data tree.
|
|
53
|
-
*/
|
|
54
|
-
public feeWriteLowLeafPreimage: PublicDataTreeLeafPreimage,
|
|
55
|
-
/**
|
|
56
|
-
* Membership witness for the low leaf for the fee write in the public data tree.
|
|
57
|
-
*/
|
|
58
|
-
public feeWriteLowLeafMembershipWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>,
|
|
49
|
+
public nullifierSubtreeRootSiblingPath: Tuple<Fr, typeof NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH>,
|
|
59
50
|
/**
|
|
60
|
-
*
|
|
51
|
+
* Membership witness for the fee payer's balance leaf in the public data tree.
|
|
61
52
|
*/
|
|
62
|
-
public
|
|
53
|
+
public feePayerBalanceMembershipWitness: MembershipWitness<typeof PUBLIC_DATA_TREE_HEIGHT>,
|
|
63
54
|
) {}
|
|
64
55
|
|
|
65
|
-
static from(fields: FieldsOf<
|
|
66
|
-
return new
|
|
56
|
+
static from(fields: FieldsOf<TreeSnapshotDiffHints>): TreeSnapshotDiffHints {
|
|
57
|
+
return new TreeSnapshotDiffHints(...TreeSnapshotDiffHints.getFields(fields));
|
|
67
58
|
}
|
|
68
59
|
|
|
69
|
-
static getFields(fields: FieldsOf<
|
|
60
|
+
static getFields(fields: FieldsOf<TreeSnapshotDiffHints>) {
|
|
70
61
|
return [
|
|
62
|
+
fields.noteHashSubtreeRootSiblingPath,
|
|
71
63
|
fields.nullifierPredecessorPreimages,
|
|
72
64
|
fields.nullifierPredecessorMembershipWitnesses,
|
|
73
65
|
fields.sortedNullifiers,
|
|
74
66
|
fields.sortedNullifierIndexes,
|
|
75
|
-
fields.
|
|
76
|
-
fields.
|
|
77
|
-
fields.feeWriteLowLeafPreimage,
|
|
78
|
-
fields.feeWriteLowLeafMembershipWitness,
|
|
79
|
-
fields.feeWriteSiblingPath,
|
|
67
|
+
fields.nullifierSubtreeRootSiblingPath,
|
|
68
|
+
fields.feePayerBalanceMembershipWitness,
|
|
80
69
|
] as const;
|
|
81
70
|
}
|
|
82
71
|
|
|
@@ -85,42 +74,38 @@ export class PrivateBaseStateDiffHints {
|
|
|
85
74
|
* @returns A buffer of the serialized state diff hints.
|
|
86
75
|
*/
|
|
87
76
|
toBuffer(): Buffer {
|
|
88
|
-
return serializeToBuffer(...
|
|
77
|
+
return serializeToBuffer(...TreeSnapshotDiffHints.getFields(this));
|
|
89
78
|
}
|
|
90
79
|
|
|
91
80
|
/**
|
|
92
81
|
* Deserializes the state diff hints from a buffer.
|
|
93
82
|
* @param buffer - A buffer to deserialize from.
|
|
94
|
-
* @returns A new
|
|
83
|
+
* @returns A new TreeSnapshotDiffHints instance.
|
|
95
84
|
*/
|
|
96
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
85
|
+
static fromBuffer(buffer: Buffer | BufferReader): TreeSnapshotDiffHints {
|
|
97
86
|
const reader = BufferReader.asReader(buffer);
|
|
98
|
-
return new
|
|
87
|
+
return new TreeSnapshotDiffHints(
|
|
88
|
+
reader.readArray(NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
|
|
99
89
|
reader.readArray(MAX_NULLIFIERS_PER_TX, NullifierLeafPreimage),
|
|
100
90
|
reader.readArray(MAX_NULLIFIERS_PER_TX, {
|
|
101
91
|
fromBuffer: buffer => MembershipWitness.fromBuffer(buffer, NULLIFIER_TREE_HEIGHT),
|
|
102
92
|
}),
|
|
103
93
|
reader.readArray(MAX_NULLIFIERS_PER_TX, Fr),
|
|
104
94
|
reader.readNumbers(MAX_NULLIFIERS_PER_TX),
|
|
105
|
-
reader.readArray(
|
|
106
|
-
reader.readArray(NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, Fr),
|
|
107
|
-
reader.readObject(PublicDataTreeLeafPreimage),
|
|
95
|
+
reader.readArray(NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
|
|
108
96
|
MembershipWitness.fromBuffer(reader, PUBLIC_DATA_TREE_HEIGHT),
|
|
109
|
-
reader.readArray(PUBLIC_DATA_TREE_HEIGHT, Fr),
|
|
110
97
|
);
|
|
111
98
|
}
|
|
112
99
|
|
|
113
100
|
static empty() {
|
|
114
|
-
return new
|
|
101
|
+
return new TreeSnapshotDiffHints(
|
|
102
|
+
makeTuple(NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr.zero),
|
|
115
103
|
makeTuple(MAX_NULLIFIERS_PER_TX, NullifierLeafPreimage.empty),
|
|
116
104
|
makeTuple(MAX_NULLIFIERS_PER_TX, () => MembershipWitness.empty(NULLIFIER_TREE_HEIGHT)),
|
|
117
105
|
makeTuple(MAX_NULLIFIERS_PER_TX, Fr.zero),
|
|
118
106
|
makeTuple(MAX_NULLIFIERS_PER_TX, () => 0),
|
|
119
|
-
makeTuple(
|
|
120
|
-
makeTuple(NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, Fr.zero),
|
|
121
|
-
PublicDataTreeLeafPreimage.empty(),
|
|
107
|
+
makeTuple(NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr.zero),
|
|
122
108
|
MembershipWitness.empty(PUBLIC_DATA_TREE_HEIGHT),
|
|
123
|
-
makeTuple(PUBLIC_DATA_TREE_HEIGHT, Fr.zero),
|
|
124
109
|
);
|
|
125
110
|
}
|
|
126
111
|
}
|
|
@@ -2,17 +2,18 @@ import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
|
2
2
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
3
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { ProofData, type RollupHonkProofData } from '../proofs/proof_data.js';
|
|
6
|
+
import { TxRollupPublicInputs } from './tx_rollup_public_inputs.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Represents inputs of the merge rollup circuit.
|
|
9
10
|
*/
|
|
10
|
-
export class
|
|
11
|
+
export class TxMergeRollupPrivateInputs {
|
|
11
12
|
constructor(
|
|
12
13
|
/**
|
|
13
14
|
* Previous rollup data from the 2 merge or base rollup circuits that preceded this merge rollup circuit.
|
|
14
15
|
*/
|
|
15
|
-
public
|
|
16
|
+
public previousRollups: [RollupHonkProofData<TxRollupPublicInputs>, RollupHonkProofData<TxRollupPublicInputs>],
|
|
16
17
|
) {}
|
|
17
18
|
|
|
18
19
|
/**
|
|
@@ -20,7 +21,7 @@ export class MergeRollupInputs {
|
|
|
20
21
|
* @returns The inputs serialized to a buffer.
|
|
21
22
|
*/
|
|
22
23
|
toBuffer() {
|
|
23
|
-
return serializeToBuffer(this.
|
|
24
|
+
return serializeToBuffer(this.previousRollups);
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/**
|
|
@@ -34,20 +35,23 @@ export class MergeRollupInputs {
|
|
|
34
35
|
/**
|
|
35
36
|
* Deserializes the inputs from a buffer.
|
|
36
37
|
* @param buffer - The buffer to deserialize from.
|
|
37
|
-
* @returns A new
|
|
38
|
+
* @returns A new TxMergeRollupPrivateInputs instance.
|
|
38
39
|
*/
|
|
39
40
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
40
41
|
const reader = BufferReader.asReader(buffer);
|
|
41
|
-
return new
|
|
42
|
+
return new TxMergeRollupPrivateInputs([
|
|
43
|
+
ProofData.fromBuffer(reader, TxRollupPublicInputs),
|
|
44
|
+
ProofData.fromBuffer(reader, TxRollupPublicInputs),
|
|
45
|
+
]);
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
/**
|
|
45
49
|
* Deserializes the inputs from a hex string.
|
|
46
50
|
* @param str - A hex string to deserialize from.
|
|
47
|
-
* @returns A new
|
|
51
|
+
* @returns A new TxMergeRollupPrivateInputs instance.
|
|
48
52
|
*/
|
|
49
53
|
static fromString(str: string) {
|
|
50
|
-
return
|
|
54
|
+
return TxMergeRollupPrivateInputs.fromBuffer(hexToBuffer(str));
|
|
51
55
|
}
|
|
52
56
|
|
|
53
57
|
/** Returns a buffer representation for JSON serialization. */
|
|
@@ -57,6 +61,6 @@ export class MergeRollupInputs {
|
|
|
57
61
|
|
|
58
62
|
/** Creates an instance from a string. */
|
|
59
63
|
static get schema() {
|
|
60
|
-
return bufferSchemaFor(
|
|
64
|
+
return bufferSchemaFor(TxMergeRollupPrivateInputs);
|
|
61
65
|
}
|
|
62
66
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SpongeBlob } from '@aztec/blob-lib';
|
|
1
|
+
import { SpongeBlob } from '@aztec/blob-lib/types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
4
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -10,7 +10,7 @@ import { BlockConstantData } from './block_constant_data.js';
|
|
|
10
10
|
/**
|
|
11
11
|
* Output of the base and merge rollup circuits.
|
|
12
12
|
*/
|
|
13
|
-
export class
|
|
13
|
+
export class TxRollupPublicInputs {
|
|
14
14
|
constructor(
|
|
15
15
|
/**
|
|
16
16
|
* Number of txs in this rollup.
|
|
@@ -23,11 +23,11 @@ export class BaseOrMergeRollupPublicInputs {
|
|
|
23
23
|
/**
|
|
24
24
|
* Partial state reference at the start of the rollup circuit.
|
|
25
25
|
*/
|
|
26
|
-
public
|
|
26
|
+
public startTreeSnapshots: PartialStateReference,
|
|
27
27
|
/**
|
|
28
28
|
* Partial state reference at the end of the rollup circuit.
|
|
29
29
|
*/
|
|
30
|
-
public
|
|
30
|
+
public endTreeSnapshots: PartialStateReference,
|
|
31
31
|
/**
|
|
32
32
|
* Sponge state to absorb blob inputs at the start of the rollup circuit.
|
|
33
33
|
*/
|
|
@@ -37,7 +37,7 @@ export class BaseOrMergeRollupPublicInputs {
|
|
|
37
37
|
*/
|
|
38
38
|
public endSpongeBlob: SpongeBlob,
|
|
39
39
|
/**
|
|
40
|
-
* SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened
|
|
40
|
+
* SHA256 hash of L2 to L1 messages. Used to make public inputs constant-sized (to then be opened onchain).
|
|
41
41
|
* Note: Truncated to 31 bytes to fit in Fr.
|
|
42
42
|
*/
|
|
43
43
|
public outHash: Fr,
|
|
@@ -53,7 +53,7 @@ export class BaseOrMergeRollupPublicInputs {
|
|
|
53
53
|
|
|
54
54
|
/** Returns an empty instance. */
|
|
55
55
|
static empty() {
|
|
56
|
-
return new
|
|
56
|
+
return new TxRollupPublicInputs(
|
|
57
57
|
0,
|
|
58
58
|
BlockConstantData.empty(),
|
|
59
59
|
PartialStateReference.empty(),
|
|
@@ -72,9 +72,9 @@ export class BaseOrMergeRollupPublicInputs {
|
|
|
72
72
|
* @param buffer - Buffer or reader to read from.
|
|
73
73
|
* @returns The deserialized public inputs.
|
|
74
74
|
*/
|
|
75
|
-
static fromBuffer(buffer: Buffer | BufferReader):
|
|
75
|
+
static fromBuffer(buffer: Buffer | BufferReader): TxRollupPublicInputs {
|
|
76
76
|
const reader = BufferReader.asReader(buffer);
|
|
77
|
-
return new
|
|
77
|
+
return new TxRollupPublicInputs(
|
|
78
78
|
reader.readNumber(),
|
|
79
79
|
reader.readObject(BlockConstantData),
|
|
80
80
|
reader.readObject(PartialStateReference),
|
|
@@ -96,8 +96,8 @@ export class BaseOrMergeRollupPublicInputs {
|
|
|
96
96
|
this.numTxs,
|
|
97
97
|
this.constants,
|
|
98
98
|
|
|
99
|
-
this.
|
|
100
|
-
this.
|
|
99
|
+
this.startTreeSnapshots,
|
|
100
|
+
this.endTreeSnapshots,
|
|
101
101
|
|
|
102
102
|
this.startSpongeBlob,
|
|
103
103
|
this.endSpongeBlob,
|
|
@@ -120,10 +120,10 @@ export class BaseOrMergeRollupPublicInputs {
|
|
|
120
120
|
/**
|
|
121
121
|
* Deserializes from a hex string.
|
|
122
122
|
* @param str - A hex string to deserialize from.
|
|
123
|
-
* @returns A new
|
|
123
|
+
* @returns A new TxRollupPublicInputs instance.
|
|
124
124
|
*/
|
|
125
125
|
static fromString(str: string) {
|
|
126
|
-
return
|
|
126
|
+
return TxRollupPublicInputs.fromBuffer(hexToBuffer(str));
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
/** Returns a buffer representation for JSON serialization. */
|
|
@@ -133,6 +133,6 @@ export class BaseOrMergeRollupPublicInputs {
|
|
|
133
133
|
|
|
134
134
|
/** Creates an instance from a hex string. */
|
|
135
135
|
static get schema() {
|
|
136
|
-
return bufferSchemaFor(
|
|
136
|
+
return bufferSchemaFor(TxRollupPublicInputs);
|
|
137
137
|
}
|
|
138
138
|
}
|
package/src/slashing/types.ts
CHANGED
|
@@ -22,6 +22,29 @@ export enum OffenseType {
|
|
|
22
22
|
ATTESTED_DESCENDANT_OF_INVALID = 7,
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
export function getOffenseTypeName(offense: OffenseType) {
|
|
26
|
+
switch (offense) {
|
|
27
|
+
case OffenseType.UNKNOWN:
|
|
28
|
+
return 'unknown';
|
|
29
|
+
case OffenseType.DATA_WITHHOLDING:
|
|
30
|
+
return 'data_withholding';
|
|
31
|
+
case OffenseType.VALID_EPOCH_PRUNED:
|
|
32
|
+
return 'valid_epoch_pruned';
|
|
33
|
+
case OffenseType.INACTIVITY:
|
|
34
|
+
return 'inactivity';
|
|
35
|
+
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
36
|
+
return 'broadcasted_invalid_block_proposal';
|
|
37
|
+
case OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS:
|
|
38
|
+
return 'proposed_insufficient_attestations';
|
|
39
|
+
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
40
|
+
return 'proposed_incorrect_attestations';
|
|
41
|
+
case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
|
|
42
|
+
return 'attested_descendant_of_invalid';
|
|
43
|
+
default:
|
|
44
|
+
throw new Error(`Unknown offense type: ${offense}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
25
48
|
export const OffenseTypeSchema = z.nativeEnum(OffenseType);
|
|
26
49
|
|
|
27
50
|
export const OffenseToBigInt: Record<OffenseType, bigint> = {
|
|
@@ -2,6 +2,12 @@ import { fromEntries, getEntries, maxBy } from '@aztec/foundation/collection';
|
|
|
2
2
|
import { jsonParseWithSchema } from '@aztec/foundation/json-rpc';
|
|
3
3
|
import type { ReadOnlyFileStore } from '@aztec/stdlib/file-store';
|
|
4
4
|
|
|
5
|
+
import { createReadStream, createWriteStream } from 'fs';
|
|
6
|
+
import fs from 'fs/promises';
|
|
7
|
+
import pathMod from 'path';
|
|
8
|
+
import { pipeline } from 'stream/promises';
|
|
9
|
+
import { createGunzip, gunzipSync } from 'zlib';
|
|
10
|
+
|
|
5
11
|
import {
|
|
6
12
|
SnapshotDataKeys,
|
|
7
13
|
type SnapshotDataUrls,
|
|
@@ -20,7 +26,8 @@ export async function getSnapshotIndex(
|
|
|
20
26
|
try {
|
|
21
27
|
if (await store.exists(snapshotIndexPath)) {
|
|
22
28
|
const snapshotIndexData = await store.read(snapshotIndexPath);
|
|
23
|
-
|
|
29
|
+
const buf = maybeGunzip(snapshotIndexData);
|
|
30
|
+
return jsonParseWithSchema(buf.toString('utf-8'), SnapshotsIndexSchema);
|
|
24
31
|
} else {
|
|
25
32
|
return undefined;
|
|
26
33
|
}
|
|
@@ -50,10 +57,67 @@ export function makeSnapshotPaths(baseDir: string): SnapshotDataUrls {
|
|
|
50
57
|
return fromEntries(SnapshotDataKeys.map(key => [key, `${baseDir}/${key}.db`]));
|
|
51
58
|
}
|
|
52
59
|
|
|
60
|
+
function isGzipMagic(data: Buffer): boolean {
|
|
61
|
+
return data.length >= 2 && data[0] === 0x1f && data[1] === 0x8b;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function maybeGunzip(data: Buffer): Buffer {
|
|
65
|
+
const magicNumberIndicatesGzip = isGzipMagic(data);
|
|
66
|
+
|
|
67
|
+
if (magicNumberIndicatesGzip) {
|
|
68
|
+
try {
|
|
69
|
+
const out = gunzipSync(data);
|
|
70
|
+
return out;
|
|
71
|
+
} catch (err) {
|
|
72
|
+
throw new Error(`Decompression of gzipped data failed: ${(err as Error).message}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return data;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
async function detectGzip(localFilePathToPeek: string): Promise<boolean> {
|
|
79
|
+
// Peek the actual bytes we downloaded.
|
|
80
|
+
try {
|
|
81
|
+
const fd = await fs.open(localFilePathToPeek, 'r');
|
|
82
|
+
try {
|
|
83
|
+
const header = Buffer.alloc(2);
|
|
84
|
+
const { bytesRead } = await fd.read(header, 0, 2, 0);
|
|
85
|
+
return bytesRead >= 2 && isGzipMagic(header);
|
|
86
|
+
} finally {
|
|
87
|
+
await fd.close();
|
|
88
|
+
}
|
|
89
|
+
} catch {
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
53
94
|
export async function downloadSnapshot(
|
|
54
95
|
snapshot: Pick<SnapshotMetadata, 'dataUrls'>,
|
|
55
96
|
localPaths: Record<SnapshotDataKeys, string>,
|
|
56
97
|
store: ReadOnlyFileStore,
|
|
57
98
|
): Promise<void> {
|
|
58
|
-
await Promise.all(
|
|
99
|
+
await Promise.all(
|
|
100
|
+
getEntries(localPaths).map(async ([key, path]) => {
|
|
101
|
+
await fs.mkdir(pathMod.dirname(path), { recursive: true });
|
|
102
|
+
|
|
103
|
+
const tmpPath = `${path}.download`;
|
|
104
|
+
try {
|
|
105
|
+
const url = snapshot.dataUrls[key];
|
|
106
|
+
await store.download(url, tmpPath);
|
|
107
|
+
|
|
108
|
+
const isGzip = await detectGzip(tmpPath);
|
|
109
|
+
|
|
110
|
+
const read = createReadStream(tmpPath);
|
|
111
|
+
const write = createWriteStream(path);
|
|
112
|
+
if (isGzip) {
|
|
113
|
+
const gunzip = createGunzip();
|
|
114
|
+
await pipeline(read, gunzip, write);
|
|
115
|
+
} else {
|
|
116
|
+
await pipeline(read, write);
|
|
117
|
+
}
|
|
118
|
+
} finally {
|
|
119
|
+
await fs.unlink(tmpPath).catch(() => undefined);
|
|
120
|
+
}
|
|
121
|
+
}),
|
|
122
|
+
);
|
|
59
123
|
}
|
package/src/snapshots/upload.ts
CHANGED
|
@@ -48,6 +48,7 @@ export async function uploadSnapshotToIndex(
|
|
|
48
48
|
|
|
49
49
|
await store.save(getSnapshotIndexPath(metadata), Buffer.from(jsonStringify(snapshotsIndex, true)), {
|
|
50
50
|
public: true, // Make the index publicly accessible
|
|
51
|
+
compress: false, // Ensure index.json is not gzipped
|
|
51
52
|
metadata: { ['Cache-control']: 'no-store' }, // Do not cache object versions
|
|
52
53
|
});
|
|
53
54
|
return newSnapshotMetadata;
|