@aztec/stdlib 3.0.0-canary.a9708bd → 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 +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
package/src/noir/index.ts
CHANGED
|
@@ -64,6 +64,8 @@ interface NoirFunctionEntry {
|
|
|
64
64
|
export interface NoirCompiledContract {
|
|
65
65
|
/** The name of the contract. */
|
|
66
66
|
name: string;
|
|
67
|
+
/** Is the contract's public bytecode transpiled? */
|
|
68
|
+
transpiled?: boolean;
|
|
67
69
|
/** The functions of the contract. */
|
|
68
70
|
functions: NoirFunctionEntry[];
|
|
69
71
|
/** The events of the contract */
|
|
@@ -87,6 +89,15 @@ export interface NoirCompiledCircuit {
|
|
|
87
89
|
abi: NoirFunctionAbi;
|
|
88
90
|
/** The bytecode of the circuit in base64. */
|
|
89
91
|
bytecode: string;
|
|
92
|
+
/** The verification key of the circuit. */
|
|
93
|
+
verificationKey: {
|
|
94
|
+
/** hex-encoded binary */
|
|
95
|
+
bytes: string;
|
|
96
|
+
/** list of hex-encoded fields */
|
|
97
|
+
fields: string[];
|
|
98
|
+
/** The hex-encoded hash. */
|
|
99
|
+
hash: string;
|
|
100
|
+
};
|
|
90
101
|
/** The debug information, compressed and base64 encoded. */
|
|
91
102
|
debug_symbols: string;
|
|
92
103
|
/** The map of file ID to the source code and path of the file. */
|
package/src/note/index.ts
CHANGED
package/src/note/notes_filter.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { z } from 'zod';
|
|
|
4
4
|
|
|
5
5
|
import type { AztecAddress } from '../aztec-address/index.js';
|
|
6
6
|
import { type ZodFor, schemas } from '../schemas/index.js';
|
|
7
|
-
import { TxHash } from '../tx/tx_hash.js';
|
|
8
7
|
import { NoteStatus } from './note_status.js';
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -17,12 +16,8 @@ export type NotesFilter = {
|
|
|
17
16
|
* @remarks Providing a contract address is required as we need that information to trigger private state sync.
|
|
18
17
|
*/
|
|
19
18
|
contractAddress: AztecAddress;
|
|
20
|
-
/** Hash of a transaction from which to fetch the notes. */
|
|
21
|
-
txHash?: TxHash;
|
|
22
19
|
/** The specific storage location of the note on the contract. */
|
|
23
20
|
storageSlot?: Fr;
|
|
24
|
-
/** The recipient of the note (whose public key was used to encrypt the note). */
|
|
25
|
-
recipient?: AztecAddress;
|
|
26
21
|
/** The status of the note. Defaults to 'ACTIVE'. */
|
|
27
22
|
status?: NoteStatus;
|
|
28
23
|
/** The siloed nullifier for the note. */
|
|
@@ -33,9 +28,7 @@ export type NotesFilter = {
|
|
|
33
28
|
|
|
34
29
|
export const NotesFilterSchema: ZodFor<NotesFilter> = z.object({
|
|
35
30
|
contractAddress: schemas.AztecAddress,
|
|
36
|
-
txHash: TxHash.schema.optional(),
|
|
37
31
|
storageSlot: schemas.Fr.optional(),
|
|
38
|
-
recipient: schemas.AztecAddress.optional(),
|
|
39
32
|
status: z.nativeEnum(NoteStatus).optional(),
|
|
40
33
|
siloedNullifier: schemas.Fr.optional(),
|
|
41
34
|
scopes: z.array(schemas.AztecAddress).optional(),
|
|
@@ -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,37 +68,68 @@ 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
|
+
/**
|
|
85
|
+
* Lazily evaluate and cache the proposer of the block
|
|
86
|
+
* @returns The proposer of the block
|
|
87
|
+
*/
|
|
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);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return this.proposer;
|
|
97
|
+
}
|
|
98
|
+
|
|
84
99
|
getPayload(): Buffer {
|
|
85
100
|
return this.payload.getPayloadToSign(SignatureDomainSeparator.blockAttestation);
|
|
86
101
|
}
|
|
87
102
|
|
|
88
103
|
toBuffer(): Buffer {
|
|
89
|
-
return serializeToBuffer([this.
|
|
104
|
+
return serializeToBuffer([this.payload, this.signature, this.proposerSignature]);
|
|
90
105
|
}
|
|
91
106
|
|
|
92
107
|
static fromBuffer(buf: Buffer | BufferReader): BlockAttestation {
|
|
93
108
|
const reader = BufferReader.asReader(buf);
|
|
94
|
-
return new BlockAttestation(
|
|
109
|
+
return new BlockAttestation(
|
|
110
|
+
reader.readObject(ConsensusPayload),
|
|
111
|
+
reader.readObject(Signature),
|
|
112
|
+
reader.readObject(Signature),
|
|
113
|
+
);
|
|
95
114
|
}
|
|
96
115
|
|
|
97
116
|
static empty(): BlockAttestation {
|
|
98
|
-
return new BlockAttestation(
|
|
117
|
+
return new BlockAttestation(ConsensusPayload.empty(), Signature.empty(), Signature.empty());
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
static random(): BlockAttestation {
|
|
121
|
+
return new BlockAttestation(ConsensusPayload.random(), Signature.random(), Signature.random());
|
|
99
122
|
}
|
|
100
123
|
|
|
101
124
|
getSize(): number {
|
|
102
|
-
return
|
|
125
|
+
return this.payload.getSize() + this.signature.getSize() + this.proposerSignature.getSize();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
toInspect() {
|
|
129
|
+
return {
|
|
130
|
+
payload: this.payload.toInspect(),
|
|
131
|
+
signature: this.signature.toString(),
|
|
132
|
+
proposerSignature: this.proposerSignature.toString(),
|
|
133
|
+
};
|
|
103
134
|
}
|
|
104
135
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
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';
|
|
6
6
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
7
7
|
|
|
8
|
-
import type {
|
|
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,17 +69,17 @@ export class BlockProposal extends Gossipable {
|
|
|
71
69
|
return this.payload.header.slotNumber;
|
|
72
70
|
}
|
|
73
71
|
|
|
74
|
-
toBlockInfo():
|
|
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,
|
|
76
|
+
timestamp: this.payload.header.timestamp,
|
|
77
|
+
archive: this.archive,
|
|
79
78
|
txCount: this.txHashes.length,
|
|
80
79
|
};
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
static async createProposalFromSigner(
|
|
84
|
-
blockNumber: UInt32,
|
|
85
83
|
payload: ConsensusPayload,
|
|
86
84
|
txHashes: TxHash[],
|
|
87
85
|
// Note(md): Provided separately to tx hashes such that this function can be optional
|
|
@@ -91,17 +89,18 @@ export class BlockProposal extends Gossipable {
|
|
|
91
89
|
const hashed = getHashedSignaturePayload(payload, SignatureDomainSeparator.blockProposal);
|
|
92
90
|
const sig = await payloadSigner(hashed);
|
|
93
91
|
|
|
94
|
-
return new BlockProposal(
|
|
92
|
+
return new BlockProposal(payload, sig, txHashes, txs);
|
|
95
93
|
}
|
|
96
94
|
|
|
97
95
|
/**Get Sender
|
|
98
96
|
* Lazily evaluate the sender of the proposal; result is cached
|
|
97
|
+
* @returns The sender address, or undefined if signature recovery fails
|
|
99
98
|
*/
|
|
100
|
-
getSender() {
|
|
99
|
+
getSender(): EthAddress | undefined {
|
|
101
100
|
if (!this.sender) {
|
|
102
101
|
const hashed = getHashedSignaturePayloadEthSignedMessage(this.payload, SignatureDomainSeparator.blockProposal);
|
|
103
102
|
// Cache the sender for later use
|
|
104
|
-
this.sender =
|
|
103
|
+
this.sender = tryRecoverAddress(hashed, this.signature);
|
|
105
104
|
}
|
|
106
105
|
|
|
107
106
|
return this.sender;
|
|
@@ -112,7 +111,7 @@ export class BlockProposal extends Gossipable {
|
|
|
112
111
|
}
|
|
113
112
|
|
|
114
113
|
toBuffer(): Buffer {
|
|
115
|
-
const buffer: any[] = [this.
|
|
114
|
+
const buffer: any[] = [this.payload, this.signature, this.txHashes.length, this.txHashes];
|
|
116
115
|
if (this.txs) {
|
|
117
116
|
buffer.push(this.txs.length);
|
|
118
117
|
buffer.push(this.txs);
|
|
@@ -123,22 +122,20 @@ export class BlockProposal extends Gossipable {
|
|
|
123
122
|
static fromBuffer(buf: Buffer | BufferReader): BlockProposal {
|
|
124
123
|
const reader = BufferReader.asReader(buf);
|
|
125
124
|
|
|
126
|
-
const blockNumber = reader.readNumber();
|
|
127
125
|
const payload = reader.readObject(ConsensusPayload);
|
|
128
126
|
const sig = reader.readObject(Signature);
|
|
129
127
|
const txHashes = reader.readArray(reader.readNumber(), TxHash);
|
|
130
128
|
|
|
131
129
|
if (!reader.isEmpty()) {
|
|
132
130
|
const txs = reader.readArray(reader.readNumber(), Tx);
|
|
133
|
-
return new BlockProposal(
|
|
131
|
+
return new BlockProposal(payload, sig, txHashes, txs);
|
|
134
132
|
}
|
|
135
133
|
|
|
136
|
-
return new BlockProposal(
|
|
134
|
+
return new BlockProposal(payload, sig, txHashes);
|
|
137
135
|
}
|
|
138
136
|
|
|
139
137
|
getSize(): number {
|
|
140
138
|
return (
|
|
141
|
-
4 /* blockNumber */ +
|
|
142
139
|
this.payload.getSize() +
|
|
143
140
|
this.signature.getSize() +
|
|
144
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
|
})
|
|
@@ -60,18 +61,25 @@ export class ConsensusPayload implements Signable {
|
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
toBuffer(): Buffer {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
return serializeToBuffer([this.header, this.archive, this.stateReference]);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public equals(other: ConsensusPayload): boolean {
|
|
68
|
+
return (
|
|
69
|
+
this.header.equals(other.header) &&
|
|
70
|
+
this.archive.equals(other.archive) &&
|
|
71
|
+
this.stateReference.equals(other.stateReference)
|
|
72
|
+
);
|
|
66
73
|
}
|
|
67
74
|
|
|
68
75
|
static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload {
|
|
69
76
|
const reader = BufferReader.asReader(buf);
|
|
70
|
-
|
|
71
|
-
reader.readObject(
|
|
77
|
+
const payload = new ConsensusPayload(
|
|
78
|
+
reader.readObject(CheckpointHeader),
|
|
72
79
|
reader.readObject(Fr),
|
|
73
80
|
reader.readObject(StateReference),
|
|
74
81
|
);
|
|
82
|
+
return payload;
|
|
75
83
|
}
|
|
76
84
|
|
|
77
85
|
static fromFields(fields: FieldsOf<ConsensusPayload>): ConsensusPayload {
|
|
@@ -79,11 +87,15 @@ export class ConsensusPayload implements Signable {
|
|
|
79
87
|
}
|
|
80
88
|
|
|
81
89
|
static fromBlock(block: L2Block): ConsensusPayload {
|
|
82
|
-
return new ConsensusPayload(block.header.
|
|
90
|
+
return new ConsensusPayload(block.header.toCheckpointHeader(), block.archive.root, block.header.state);
|
|
83
91
|
}
|
|
84
92
|
|
|
85
93
|
static empty(): ConsensusPayload {
|
|
86
|
-
return new ConsensusPayload(
|
|
94
|
+
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, StateReference.empty());
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
static random(): ConsensusPayload {
|
|
98
|
+
return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), StateReference.random());
|
|
87
99
|
}
|
|
88
100
|
|
|
89
101
|
/**
|
|
@@ -99,6 +111,14 @@ export class ConsensusPayload implements Signable {
|
|
|
99
111
|
return this.size;
|
|
100
112
|
}
|
|
101
113
|
|
|
114
|
+
toInspect() {
|
|
115
|
+
return {
|
|
116
|
+
header: this.header.toInspect(),
|
|
117
|
+
archive: this.archive.toString(),
|
|
118
|
+
stateReference: this.stateReference.toInspect(),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
102
122
|
toString() {
|
|
103
123
|
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, stateReference: ${this.stateReference.l1ToL2MessageTree.root.toString()}`;
|
|
104
124
|
}
|
package/src/p2p/gossipable.ts
CHANGED
|
@@ -1,33 +1,23 @@
|
|
|
1
1
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
-
import { BufferReader,
|
|
2
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
3
|
|
|
4
4
|
import type { TopicType } from './topic_type.js';
|
|
5
5
|
|
|
6
6
|
export class P2PMessage {
|
|
7
|
-
constructor(
|
|
8
|
-
public readonly publishTime: Date,
|
|
9
|
-
public readonly id: Buffer32,
|
|
10
|
-
public readonly payload: Buffer,
|
|
11
|
-
) {}
|
|
7
|
+
constructor(public readonly payload: Buffer) {}
|
|
12
8
|
|
|
13
|
-
static
|
|
14
|
-
return new P2PMessage(
|
|
9
|
+
static fromGossipable(message: Gossipable): P2PMessage {
|
|
10
|
+
return new P2PMessage(message.toBuffer());
|
|
15
11
|
}
|
|
16
12
|
|
|
17
13
|
static fromMessageData(messageData: Buffer): P2PMessage {
|
|
18
14
|
const reader = new BufferReader(messageData);
|
|
19
|
-
const publishTime = reader.readUInt64();
|
|
20
|
-
const id = Buffer32.fromBuffer(reader);
|
|
21
15
|
const payload = reader.readBuffer();
|
|
22
|
-
return new P2PMessage(
|
|
16
|
+
return new P2PMessage(payload);
|
|
23
17
|
}
|
|
24
18
|
|
|
25
19
|
toMessageData(): Buffer {
|
|
26
|
-
return serializeToBuffer([
|
|
27
|
-
bigintToUInt64BE(BigInt(this.publishTime.getTime())),
|
|
28
|
-
this.id,
|
|
29
|
-
serializeToBuffer(this.payload.length, this.payload),
|
|
30
|
-
]);
|
|
20
|
+
return serializeToBuffer([serializeToBuffer(this.payload.length, this.payload)]);
|
|
31
21
|
}
|
|
32
22
|
}
|
|
33
23
|
|
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
|
}
|