@aztec/stdlib 3.0.3-rc.3 → 4.0.0-devnet.1-patch.0
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 +602 -4
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +7 -7
- package/dest/abi/contract_artifact.d.ts +2 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +1 -1
- package/dest/abi/function_call.d.ts +47 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/abi/function_selector.d.ts +2 -1
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +7 -0
- package/dest/abi/selector.js +3 -1
- package/dest/abi/utils.d.ts +7 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +7 -0
- package/dest/auth_witness/auth_witness.d.ts +2 -1
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/avm/avm.d.ts +62 -62
- package/dest/avm/avm.js +1 -1
- package/dest/avm/avm_accumulated_data.d.ts +30 -3
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +5 -2
- package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
- package/dest/avm/avm_circuit_public_inputs.js +3 -1
- package/dest/avm/avm_proving_request.d.ts +299 -299
- package/dest/avm/contract_storage_read.d.ts +13 -1
- package/dest/avm/contract_storage_read.d.ts.map +1 -1
- package/dest/avm/contract_storage_update_request.d.ts +13 -1
- package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
- package/dest/avm/public_data_read.d.ts +10 -1
- package/dest/avm/public_data_read.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.d.ts +10 -1
- package/dest/avm/public_data_update_request.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.js +3 -1
- package/dest/avm/public_data_write.d.ts +7 -1
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.d.ts +4 -1
- package/dest/avm/public_inner_call_request.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.js +3 -1
- package/dest/avm/revert_code.d.ts +4 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +3 -1
- package/dest/aztec-address/index.js +4 -2
- package/dest/block/attestation_info.d.ts +5 -5
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +4 -4
- package/dest/block/block_hash.d.ts +18 -14
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +22 -20
- package/dest/block/block_parameter.d.ts +4 -3
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -0
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +5 -2
- package/dest/block/checkpointed_l2_block.d.ts +150 -0
- package/dest/block/checkpointed_l2_block.d.ts.map +1 -0
- package/dest/block/checkpointed_l2_block.js +46 -0
- package/dest/block/in_block.d.ts +9 -9
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/in_block.js +5 -5
- package/dest/block/index.d.ts +2 -4
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -3
- package/dest/block/l2_block.d.ts +57 -57
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +64 -108
- package/dest/block/l2_block_source.d.ts +344 -90
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +25 -6
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +13 -3
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +115 -32
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +478 -41
- package/dest/block/validate_block_result.d.ts +24 -24
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -17
- package/dest/checkpoint/checkpoint.d.ts +45 -20
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +59 -8
- package/dest/checkpoint/checkpoint_info.d.ts +38 -0
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_info.js +34 -0
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/published_checkpoint.d.ts +30 -22
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +14 -3
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/node-rpc-config.js +1 -1
- package/dest/config/sequencer-config.d.ts +10 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +12 -0
- package/dest/contract/complete_address.d.ts +4 -1
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +1 -1
- package/dest/contract/contract_class_id.d.ts +1 -1
- package/dest/contract/contract_class_id.js +2 -2
- package/dest/contract/contract_deployment_data.d.ts +5 -5
- package/dest/contract/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/contract/interfaces/contract_class.d.ts +11 -13
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_class.js +18 -18
- package/dest/contract/interfaces/contract_instance.d.ts +28 -29
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +5 -5
- package/dest/contract/interfaces/contract_instance_update.d.ts +6 -7
- package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance_update.js +5 -5
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +2 -3
- package/dest/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.js +1 -1
- package/dest/database-version/database_version.d.ts +58 -0
- package/dest/database-version/database_version.d.ts.map +1 -0
- package/dest/database-version/database_version.js +69 -0
- package/dest/database-version/version_manager.d.ts +3 -49
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -64
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
- package/dest/deserialization/index.d.ts +11 -0
- package/dest/deserialization/index.d.ts.map +1 -0
- package/dest/deserialization/index.js +10 -0
- package/dest/epoch-helpers/index.d.ts +7 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +12 -6
- package/dest/errors/proving_error.d.ts +2 -2
- package/dest/errors/proving_error.d.ts.map +1 -1
- package/dest/gas/gas.js +3 -1
- package/dest/gas/gas_fees.js +3 -1
- package/dest/hash/hash.d.ts +1 -9
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +2 -14
- package/dest/hash/map_slot.d.ts +1 -1
- package/dest/hash/map_slot.d.ts.map +1 -1
- package/dest/hash/map_slot.js +4 -3
- package/dest/interfaces/allowed_element.d.ts +7 -8
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/allowed_element.js +3 -3
- package/dest/interfaces/api_limit.d.ts +3 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +2 -0
- package/dest/interfaces/archiver.d.ts +6 -6
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +25 -15
- package/dest/interfaces/aztec-node-admin.d.ts +110 -41
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +6 -4
- package/dest/interfaces/aztec-node.d.ts +77 -79
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +16 -17
- package/dest/interfaces/block-builder.d.ts +22 -13
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +16 -1
- package/dest/interfaces/configs.d.ts +56 -27
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +12 -6
- package/dest/interfaces/get_logs_response.d.ts +27 -5
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- package/dest/interfaces/get_logs_response.js +5 -4
- package/dest/interfaces/l2_logs_source.d.ts +21 -8
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +7 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +3 -4
- package/dest/interfaces/prover-broker.d.ts +16 -1
- package/dest/interfaces/prover-broker.d.ts.map +1 -1
- package/dest/interfaces/prover-broker.js +4 -1
- package/dest/interfaces/prover-client.d.ts +19 -3
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +16 -4
- package/dest/interfaces/proving-job.d.ts +218 -218
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -7
- package/dest/interfaces/server_circuit_prover.d.ts +4 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/slasher.d.ts +9 -1
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +5 -3
- package/dest/interfaces/tx_provider.d.ts +3 -3
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +161 -26
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +12 -7
- package/dest/interfaces/world_state.d.ts +17 -8
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/claimed_length_array.js +3 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +19 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.js +1 -3
- package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +2 -1
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request.d.ts +7 -1
- package/dest/kernel/hints/read_request.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.d.ts +7 -1
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
- package/dest/kernel/log_hash.js +3 -1
- package/dest/kernel/private_accumulated_data.d.ts +23 -1
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.d.ts +25 -1
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_request.d.ts +16 -1
- package/dest/kernel/private_call_request.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +120 -47
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +59 -59
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.d.ts +7 -1
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +23 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_log_data.js +5 -2
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
- package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
- package/dest/kernel/private_to_public_accumulated_data.js +3 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.d.ts +10 -1
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +3 -1
- package/dest/kernel/public_call_request.d.ts +22 -1
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +5 -2
- package/dest/kernel/utils/optional_number.d.ts +7 -1
- package/dest/kernel/utils/optional_number.d.ts.map +1 -1
- package/dest/keys/derivation.d.ts +3 -3
- package/dest/keys/derivation.js +8 -8
- package/dest/keys/key_types.d.ts +1 -1
- package/dest/keys/public_keys.d.ts +5 -1
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/utils.d.ts +1 -1
- package/dest/keys/utils.d.ts.map +1 -1
- package/dest/keys/utils.js +7 -3
- package/dest/l1-contracts/slash_factory.d.ts +1 -1
- package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
- package/dest/l1-contracts/slash_factory.js +1 -0
- package/dest/logs/contract_class_log.js +3 -1
- package/dest/logs/extended_contract_class_log.d.ts +3 -1
- package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
- package/dest/logs/extended_public_log.d.ts +17 -3
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +3 -2
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +2 -1
- package/dest/logs/log_id.d.ts +22 -7
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +23 -13
- package/dest/logs/private_log.d.ts +1 -1
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +5 -2
- package/dest/logs/public_log.js +3 -1
- package/dest/logs/siloed_tag.d.ts +23 -0
- package/dest/logs/siloed_tag.d.ts.map +1 -0
- package/dest/logs/siloed_tag.js +31 -0
- package/dest/logs/tag.d.ts +21 -0
- package/dest/logs/tag.d.ts.map +1 -0
- package/dest/logs/tag.js +30 -0
- package/dest/logs/tx_scoped_l2_log.d.ts +24 -33
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +37 -43
- package/dest/messaging/in_hash.d.ts +4 -2
- package/dest/messaging/in_hash.d.ts.map +1 -1
- package/dest/messaging/in_hash.js +3 -1
- package/dest/messaging/inbox_leaf.d.ts +3 -1
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/l1_actor.d.ts +7 -1
- package/dest/messaging/l1_actor.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.d.ts +6 -1
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l2_actor.d.ts +7 -1
- package/dest/messaging/l2_actor.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +160 -42
- package/dest/messaging/out_hash.d.ts +41 -3
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +54 -19
- package/dest/note/note_dao.d.ts +36 -5
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +15 -12
- package/dest/p2p/attestation_utils.d.ts +3 -3
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +1 -1
- package/dest/p2p/block_proposal.d.ts +102 -23
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +140 -39
- package/dest/p2p/checkpoint_attestation.d.ts +81 -0
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
- package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
- package/dest/p2p/checkpoint_proposal.d.ts +174 -0
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
- package/dest/p2p/checkpoint_proposal.js +238 -0
- package/dest/p2p/consensus_payload.d.ts +9 -9
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +3 -5
- package/dest/p2p/constants.d.ts +5 -0
- package/dest/p2p/constants.d.ts.map +1 -0
- package/dest/p2p/constants.js +3 -0
- package/dest/p2p/gossipable.d.ts +4 -3
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +16 -5
- package/dest/p2p/index.d.ts +5 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +4 -1
- package/dest/p2p/message_validator.d.ts +18 -3
- package/dest/p2p/message_validator.d.ts.map +1 -1
- package/dest/p2p/message_validator.js +2 -1
- package/dest/p2p/signature_utils.d.ts +5 -3
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +3 -1
- package/dest/p2p/signed_txs.d.ts +42 -0
- package/dest/p2p/signed_txs.d.ts.map +1 -0
- package/dest/p2p/signed_txs.js +75 -0
- package/dest/p2p/topic_type.d.ts +3 -2
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +10 -3
- package/dest/parity/parity_base_private_inputs.d.ts +3 -1
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.d.ts +4 -1
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_root_private_inputs.d.ts +2 -1
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +1 -1
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +9 -4
- package/dest/proofs/proof.d.ts +4 -1
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/recursive_proof.d.ts +10 -1
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.d.ts +1 -3
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +1 -9
- package/dest/rollup/base_rollup_hints.d.ts +34 -1
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.d.ts +12 -1
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +8 -12
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.d.ts +11 -1
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.js +4 -1
- package/dest/rollup/checkpoint_header.d.ts +46 -12
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +53 -20
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +46 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
- package/dest/rollup/epoch_constant_data.d.ts +16 -1
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +21 -6
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +10 -4
- package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +5 -3
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +2 -1
- package/dest/slashing/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +2 -0
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +6 -0
- package/dest/slashing/tally.d.ts +2 -1
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +6 -2
- package/dest/slashing/types.d.ts +10 -7
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +18 -6
- package/dest/snapshots/types.d.ts +1 -1
- package/dest/snapshots/types.d.ts.map +1 -1
- package/dest/snapshots/types.js +5 -5
- package/dest/stats/stats.d.ts +10 -8
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +39 -10
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +81 -26
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +76 -20
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +139 -60
- package/dest/timetable/index.d.ts +37 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +39 -0
- package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +3 -1
- package/dest/trees/nullifier_leaf.d.ts +13 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +10 -1
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.d.ts +16 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +11 -1
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +21 -8
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +12 -2
- package/dest/tx/call_context.d.ts +13 -1
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/call_context.js +3 -1
- package/dest/tx/capsule.d.ts +4 -1
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/execution_payload.d.ts +9 -1
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -2
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +5 -3
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +14 -1
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +3 -1
- package/dest/tx/hashed_values.d.ts +7 -1
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +4 -4
- package/dest/tx/index.d.ts +1 -2
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- package/dest/tx/indexed_tx_effect.d.ts +5 -5
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +3 -2
- package/dest/tx/partial_state_reference.d.ts +4 -1
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/private_execution_result.d.ts +24 -7
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +4 -21
- package/dest/tx/private_tx_constant_data.d.ts +16 -1
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +149 -26
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +44 -7
- package/dest/tx/protocol_contracts.d.ts +1 -1
- package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.js +3 -1
- package/dest/tx/simulated_tx.d.ts +1031 -7
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/state_reference.d.ts +3 -1
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +3 -1
- package/dest/tx/tree_snapshots.js +3 -1
- package/dest/tx/tx.d.ts +33 -3
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +18 -6
- package/dest/tx/tx_context.d.ts +2 -1
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_effect.d.ts +32 -6
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +6 -9
- package/dest/tx/tx_execution_request.d.ts +30 -1
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_execution_request.js +6 -2
- package/dest/tx/tx_hash.d.ts +2 -1
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts +47 -13
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +46 -15
- package/dest/tx/tx_request.d.ts +6 -1
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/validator/empty_validator.d.ts +2 -2
- package/dest/tx/validator/empty_validator.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +2 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +2 -0
- package/dest/tx/validator/tx_validator.d.ts +2 -5
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/tx/validator/tx_validator.js +4 -4
- package/dest/types/shared.d.ts +4 -1
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/validators/schemas.d.ts +9 -9
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +13 -13
- package/dest/vks/verification_key.d.ts +22 -1
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/vk_data.d.ts +7 -1
- package/dest/vks/vk_data.d.ts.map +1 -1
- package/dest/zkpassport/index.d.ts +3 -4
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +9 -9
- package/package.json +27 -13
- package/src/abi/abi.ts +39 -33
- package/src/abi/contract_artifact.ts +10 -10
- package/src/abi/function_call.ts +25 -3
- package/src/abi/function_selector.ts +8 -0
- package/src/abi/utils.ts +17 -0
- package/src/avm/avm.ts +1 -1
- package/src/block/attestation_info.ts +9 -6
- package/src/block/block_hash.ts +26 -25
- package/src/block/block_parameter.ts +4 -2
- package/src/block/body.ts +2 -1
- package/src/block/checkpointed_l2_block.ts +70 -0
- package/src/block/in_block.ts +6 -6
- package/src/block/index.ts +1 -3
- package/src/block/l2_block.ts +102 -149
- package/src/block/l2_block_source.ts +175 -68
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +15 -4
- package/src/block/l2_block_stream/l2_block_stream.ts +139 -39
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
- package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
- package/src/block/test/l2_tips_store_test_suite.ts +480 -35
- package/src/block/validate_block_result.ts +40 -35
- package/src/checkpoint/checkpoint.ts +82 -12
- package/src/checkpoint/checkpoint_info.ts +52 -0
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/published_checkpoint.ts +22 -7
- package/src/config/index.ts +1 -0
- package/src/config/node-rpc-config.ts +1 -1
- package/src/config/sequencer-config.ts +19 -0
- package/src/contract/contract_address.ts +1 -1
- package/src/contract/contract_class_id.ts +2 -2
- package/src/contract/index.ts +0 -2
- package/src/contract/interfaces/contract_class.ts +59 -46
- package/src/contract/interfaces/contract_instance.ts +15 -13
- package/src/contract/interfaces/contract_instance_update.ts +11 -9
- package/src/contract/private_function.ts +2 -3
- package/src/contract/private_function_membership_proof.ts +1 -1
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
- package/src/deserialization/index.ts +21 -0
- package/src/epoch-helpers/index.ts +24 -10
- package/src/hash/hash.ts +2 -13
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/allowed_element.ts +9 -7
- package/src/interfaces/api_limit.ts +2 -0
- package/src/interfaces/archiver.ts +33 -23
- package/src/interfaces/aztec-node-admin.ts +10 -6
- package/src/interfaces/aztec-node.ts +118 -134
- package/src/interfaces/block-builder.ts +50 -23
- package/src/interfaces/configs.ts +67 -33
- package/src/interfaces/get_logs_response.ts +13 -9
- package/src/interfaces/l2_logs_source.ts +25 -7
- package/src/interfaces/merkle_tree_operations.ts +4 -1
- package/src/interfaces/p2p.ts +8 -12
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +35 -10
- package/src/interfaces/proving-job.ts +2 -11
- package/src/interfaces/server_circuit_prover.ts +3 -3
- package/src/interfaces/slasher.ts +28 -22
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +92 -31
- package/src/interfaces/world_state.ts +16 -9
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
- package/src/kernel/hints/find_private_kernel_reset_dimensions.ts +2 -4
- package/src/kernel/private_circuit_public_inputs.ts +85 -85
- package/src/keys/derivation.ts +8 -8
- package/src/keys/key_types.ts +1 -1
- package/src/keys/utils.ts +7 -3
- package/src/l1-contracts/slash_factory.ts +1 -0
- package/src/logs/index.ts +2 -1
- package/src/logs/log_id.ts +26 -12
- package/src/logs/private_log.ts +2 -1
- package/src/logs/siloed_tag.ts +45 -0
- package/src/logs/tag.ts +42 -0
- package/src/logs/tx_scoped_l2_log.ts +45 -43
- package/src/messaging/in_hash.ts +3 -1
- package/src/messaging/l1_to_l2_message.ts +1 -0
- package/src/messaging/l2_to_l1_membership.ts +178 -52
- package/src/messaging/out_hash.ts +62 -21
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +3 -3
- package/src/p2p/block_proposal.ts +213 -46
- package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
- package/src/p2p/checkpoint_proposal.ts +365 -0
- package/src/p2p/consensus_payload.ts +5 -7
- package/src/p2p/constants.ts +6 -0
- package/src/p2p/gossipable.ts +14 -4
- package/src/p2p/index.ts +4 -1
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/signature_utils.ts +3 -1
- package/src/p2p/signed_txs.ts +88 -0
- package/src/p2p/topic_type.ts +4 -3
- package/src/proofs/chonk_proof.ts +9 -5
- package/src/rollup/avm_proof_data.ts +0 -7
- package/src/rollup/block_headers_hash.ts +1 -1
- package/src/rollup/block_rollup_public_inputs.ts +5 -11
- package/src/rollup/checkpoint_constant_data.ts +1 -0
- package/src/rollup/checkpoint_header.ts +67 -20
- package/src/rollup/checkpoint_rollup_public_inputs.ts +17 -5
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +16 -7
- package/src/schemas/schemas.ts +4 -0
- package/src/slashing/empire.ts +3 -1
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/tally.ts +8 -2
- package/src/slashing/types.ts +38 -20
- package/src/snapshots/types.ts +33 -29
- package/src/stats/stats.ts +10 -7
- package/src/tests/factories.ts +103 -42
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +226 -92
- package/src/timetable/index.ts +66 -0
- package/src/tx/block_header.ts +21 -8
- package/src/tx/global_variable_builder.ts +9 -2
- package/src/tx/global_variables.ts +6 -0
- package/src/tx/index.ts +0 -1
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/private_execution_result.ts +2 -17
- package/src/tx/profiling.ts +46 -4
- package/src/tx/tx.ts +19 -11
- package/src/tx/tx_effect.ts +3 -10
- package/src/tx/tx_execution_request.ts +2 -0
- package/src/tx/tx_receipt.ts +75 -18
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +3 -0
- package/src/tx/validator/tx_validator.ts +9 -7
- package/src/validators/schemas.ts +54 -48
- package/src/zkpassport/index.ts +11 -12
- package/dest/block/l2_block_code_to_purge.d.ts +0 -12
- package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
- package/dest/block/l2_block_code_to_purge.js +0 -61
- package/dest/block/l2_block_header.d.ts +0 -98
- package/dest/block/l2_block_header.d.ts.map +0 -1
- package/dest/block/l2_block_header.js +0 -153
- package/dest/block/l2_block_new.d.ts +0 -130
- package/dest/block/l2_block_new.d.ts.map +0 -1
- package/dest/block/l2_block_new.js +0 -151
- package/dest/block/published_l2_block.d.ts +0 -130
- package/dest/block/published_l2_block.d.ts.map +0 -1
- package/dest/block/published_l2_block.js +0 -48
- package/dest/contract/contract_class_metadata.d.ts +0 -8
- package/dest/contract/contract_class_metadata.d.ts.map +0 -1
- package/dest/contract/contract_class_metadata.js +0 -1
- package/dest/contract/contract_metadata.d.ts +0 -7
- package/dest/contract/contract_metadata.d.ts.map +0 -1
- package/dest/contract/contract_metadata.js +0 -1
- package/dest/database-version/index.d.ts +0 -2
- package/dest/database-version/index.d.ts.map +0 -1
- package/dest/database-version/index.js +0 -1
- package/dest/logs/log_with_tx_data.d.ts +0 -19
- package/dest/logs/log_with_tx_data.d.ts.map +0 -1
- package/dest/logs/log_with_tx_data.js +0 -49
- package/dest/p2p/block_attestation.d.ts +0 -80
- package/dest/p2p/block_attestation.d.ts.map +0 -1
- package/dest/tx/content_commitment.d.ts +0 -49
- package/dest/tx/content_commitment.d.ts.map +0 -1
- package/dest/tx/content_commitment.js +0 -90
- package/src/block/l2_block_code_to_purge.ts +0 -88
- package/src/block/l2_block_header.ts +0 -246
- package/src/block/l2_block_new.ts +0 -197
- package/src/block/published_l2_block.ts +0 -65
- package/src/contract/contract_class_metadata.ts +0 -8
- package/src/contract/contract_metadata.ts +0 -7
- package/src/database-version/index.ts +0 -1
- package/src/logs/log_with_tx_data.ts +0 -46
- package/src/tx/content_commitment.ts +0 -113
|
@@ -5,57 +5,62 @@ import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
|
5
5
|
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
type CheckpointInfo,
|
|
10
|
+
CheckpointInfoSchema,
|
|
11
|
+
deserializeCheckpointInfo,
|
|
12
|
+
serializeCheckpointInfo,
|
|
13
|
+
} from '../checkpoint/checkpoint_info.js';
|
|
14
|
+
import { MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
|
|
9
15
|
import { CommitteeAttestation } from './proposal/committee_attestation.js';
|
|
10
16
|
|
|
11
|
-
/** Subtype for invalid
|
|
12
|
-
export type
|
|
17
|
+
/** Subtype for invalid checkpoint validation results */
|
|
18
|
+
export type ValidateCheckpointNegativeResult =
|
|
13
19
|
| {
|
|
14
20
|
valid: false;
|
|
15
|
-
/** Identifiers from the invalid
|
|
16
|
-
|
|
17
|
-
/** Committee members at the epoch this
|
|
21
|
+
/** Identifiers from the invalid checkpoint */
|
|
22
|
+
checkpoint: CheckpointInfo;
|
|
23
|
+
/** Committee members at the epoch this checkpoint was proposed */
|
|
18
24
|
committee: EthAddress[];
|
|
19
|
-
/** Epoch in which this
|
|
25
|
+
/** Epoch in which this checkpoint was proposed */
|
|
20
26
|
epoch: EpochNumber;
|
|
21
27
|
/** Proposer selection seed for the epoch */
|
|
22
28
|
seed: bigint;
|
|
23
|
-
/** List of committee members who signed this
|
|
29
|
+
/** List of committee members who signed this checkpoint proposal */
|
|
24
30
|
attestors: EthAddress[];
|
|
25
|
-
/** Committee attestations for this
|
|
31
|
+
/** Committee attestations for this checkpoint as they were posted to L1 */
|
|
26
32
|
attestations: CommitteeAttestation[];
|
|
27
|
-
/** Reason for the
|
|
33
|
+
/** Reason for the checkpoint being invalid: not enough attestations were posted */
|
|
28
34
|
reason: 'insufficient-attestations';
|
|
29
35
|
}
|
|
30
36
|
| {
|
|
31
37
|
valid: false;
|
|
32
|
-
/** Identifiers from the invalid
|
|
33
|
-
|
|
34
|
-
/** Committee members at the epoch this
|
|
38
|
+
/** Identifiers from the invalid checkpoint */
|
|
39
|
+
checkpoint: CheckpointInfo;
|
|
40
|
+
/** Committee members at the epoch this checkpoint was proposed */
|
|
35
41
|
committee: EthAddress[];
|
|
36
|
-
/** Epoch in which this
|
|
42
|
+
/** Epoch in which this checkpoint was proposed */
|
|
37
43
|
epoch: EpochNumber;
|
|
38
44
|
/** Proposer selection seed for the epoch */
|
|
39
45
|
seed: bigint;
|
|
40
|
-
/** List of committee members who signed this
|
|
46
|
+
/** List of committee members who signed this checkpoint proposal */
|
|
41
47
|
attestors: EthAddress[];
|
|
42
|
-
/** Committee attestations for this
|
|
48
|
+
/** Committee attestations for this checkpoint as they were posted to L1 */
|
|
43
49
|
attestations: CommitteeAttestation[];
|
|
44
|
-
/** Reason for the
|
|
50
|
+
/** Reason for the checkpoint being invalid: an invalid attestation was posted */
|
|
45
51
|
reason: 'invalid-attestation';
|
|
46
52
|
/** Index in the attestations array of the invalid attestation posted */
|
|
47
53
|
invalidIndex: number;
|
|
48
54
|
};
|
|
49
55
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
export type ValidateBlockResult = { valid: true } | ValidateBlockNegativeResult;
|
|
56
|
+
/** Result type for validating checkpoint attestations */
|
|
57
|
+
export type ValidateCheckpointResult = { valid: true } | ValidateCheckpointNegativeResult;
|
|
53
58
|
|
|
54
|
-
export const
|
|
59
|
+
export const ValidateCheckpointResultSchema: ZodFor<ValidateCheckpointResult> = z.union([
|
|
55
60
|
z.object({ valid: z.literal(true) }),
|
|
56
61
|
z.object({
|
|
57
62
|
valid: z.literal(false),
|
|
58
|
-
|
|
63
|
+
checkpoint: CheckpointInfoSchema,
|
|
59
64
|
committee: z.array(schemas.EthAddress),
|
|
60
65
|
epoch: EpochNumberSchema,
|
|
61
66
|
seed: schemas.BigInt,
|
|
@@ -65,7 +70,7 @@ export const ValidateBlockResultSchema: ZodFor<ValidateBlockResult> = z.union([
|
|
|
65
70
|
}),
|
|
66
71
|
z.object({
|
|
67
72
|
valid: z.literal(false),
|
|
68
|
-
|
|
73
|
+
checkpoint: CheckpointInfoSchema,
|
|
69
74
|
committee: z.array(schemas.EthAddress),
|
|
70
75
|
epoch: EpochNumberSchema,
|
|
71
76
|
seed: schemas.BigInt,
|
|
@@ -76,17 +81,17 @@ export const ValidateBlockResultSchema: ZodFor<ValidateBlockResult> = z.union([
|
|
|
76
81
|
}),
|
|
77
82
|
]);
|
|
78
83
|
|
|
79
|
-
export function
|
|
84
|
+
export function serializeValidateCheckpointResult(result: ValidateCheckpointResult): Buffer {
|
|
80
85
|
if (result.valid) {
|
|
81
86
|
return serializeToBuffer(true);
|
|
82
87
|
}
|
|
83
88
|
|
|
84
|
-
const
|
|
89
|
+
const checkpointBuffer = serializeCheckpointInfo(result.checkpoint);
|
|
85
90
|
return serializeToBuffer(
|
|
86
91
|
result.valid,
|
|
87
92
|
result.reason,
|
|
88
|
-
|
|
89
|
-
|
|
93
|
+
checkpointBuffer.length,
|
|
94
|
+
checkpointBuffer,
|
|
90
95
|
result.committee.length,
|
|
91
96
|
result.committee,
|
|
92
97
|
result.epoch,
|
|
@@ -99,24 +104,24 @@ export function serializeValidateBlockResult(result: ValidateBlockResult): Buffe
|
|
|
99
104
|
);
|
|
100
105
|
}
|
|
101
106
|
|
|
102
|
-
export function
|
|
107
|
+
export function deserializeValidateCheckpointResult(bufferOrReader: Buffer | BufferReader): ValidateCheckpointResult {
|
|
103
108
|
const reader = BufferReader.asReader(bufferOrReader);
|
|
104
109
|
const valid = reader.readBoolean();
|
|
105
110
|
if (valid) {
|
|
106
111
|
return { valid };
|
|
107
112
|
}
|
|
108
|
-
const reason = reader.readString() as 'insufficient-attestations' | 'invalid-attestation';
|
|
109
|
-
const
|
|
110
|
-
const committee = reader.readVector(EthAddress);
|
|
113
|
+
const reason = reader.readString(64) as 'insufficient-attestations' | 'invalid-attestation';
|
|
114
|
+
const checkpoint = deserializeCheckpointInfo(reader.readBuffer());
|
|
115
|
+
const committee = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
|
|
111
116
|
const epoch = EpochNumber(reader.readNumber());
|
|
112
117
|
const seed = reader.readBigInt();
|
|
113
|
-
const attestors = reader.readVector(EthAddress);
|
|
114
|
-
const attestations = reader.readVector(CommitteeAttestation);
|
|
118
|
+
const attestors = reader.readVector(EthAddress, MAX_COMMITTEE_SIZE);
|
|
119
|
+
const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
|
|
115
120
|
const invalidIndex = reader.readNumber();
|
|
116
121
|
if (reason === 'insufficient-attestations') {
|
|
117
|
-
return { valid, reason,
|
|
122
|
+
return { valid, reason, checkpoint, committee, epoch, seed, attestors, attestations };
|
|
118
123
|
} else if (reason === 'invalid-attestation') {
|
|
119
|
-
return { valid, reason,
|
|
124
|
+
return { valid, reason, checkpoint, committee, epoch, seed, attestors, invalidIndex, attestations };
|
|
120
125
|
} else {
|
|
121
126
|
const _: never = reason;
|
|
122
127
|
throw new Error(`Unknown reason: ${reason}`);
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import { encodeCheckpointBlobDataFromBlocks } from '@aztec/blob-lib/encoding';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
BlockNumber,
|
|
4
|
+
CheckpointNumber,
|
|
5
|
+
CheckpointNumberSchema,
|
|
6
|
+
IndexWithinCheckpoint,
|
|
7
|
+
SlotNumber,
|
|
8
|
+
} from '@aztec/foundation/branded-types';
|
|
9
|
+
import { sum } from '@aztec/foundation/collection';
|
|
3
10
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
11
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
12
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
6
13
|
|
|
7
14
|
import { z } from 'zod';
|
|
8
15
|
|
|
9
|
-
import {
|
|
16
|
+
import { L2Block } from '../block/l2_block.js';
|
|
17
|
+
import { MAX_BLOCKS_PER_CHECKPOINT } from '../deserialization/index.js';
|
|
18
|
+
import { computeCheckpointOutHash } from '../messaging/out_hash.js';
|
|
10
19
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
11
20
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
21
|
+
import type { CheckpointInfo } from './checkpoint_info.js';
|
|
22
|
+
|
|
23
|
+
type FieldsOfCheckpoint = Omit<FieldsOf<Checkpoint>, 'slot'>;
|
|
12
24
|
|
|
13
25
|
export class Checkpoint {
|
|
14
26
|
constructor(
|
|
@@ -17,27 +29,31 @@ export class Checkpoint {
|
|
|
17
29
|
/** Header of the checkpoint. */
|
|
18
30
|
public header: CheckpointHeader,
|
|
19
31
|
/** L2 blocks in the checkpoint. */
|
|
20
|
-
public blocks:
|
|
32
|
+
public blocks: L2Block[],
|
|
21
33
|
/** Number of the checkpoint. */
|
|
22
34
|
public number: CheckpointNumber,
|
|
23
35
|
) {}
|
|
24
36
|
|
|
37
|
+
get slot(): SlotNumber {
|
|
38
|
+
return this.header.slotNumber;
|
|
39
|
+
}
|
|
40
|
+
|
|
25
41
|
static get schema() {
|
|
26
42
|
return z
|
|
27
43
|
.object({
|
|
28
44
|
archive: AppendOnlyTreeSnapshot.schema,
|
|
29
45
|
header: CheckpointHeader.schema,
|
|
30
|
-
blocks: z.array(
|
|
46
|
+
blocks: z.array(L2Block.schema),
|
|
31
47
|
number: CheckpointNumberSchema,
|
|
32
48
|
})
|
|
33
49
|
.transform(({ archive, header, blocks, number }) => new Checkpoint(archive, header, blocks, number));
|
|
34
50
|
}
|
|
35
51
|
|
|
36
|
-
static from(fields:
|
|
52
|
+
static from(fields: FieldsOfCheckpoint) {
|
|
37
53
|
return new Checkpoint(...Checkpoint.getFields(fields));
|
|
38
54
|
}
|
|
39
55
|
|
|
40
|
-
static getFields(fields:
|
|
56
|
+
static getFields(fields: FieldsOfCheckpoint) {
|
|
41
57
|
return [fields.archive, fields.header, fields.blocks, fields.number] as const;
|
|
42
58
|
}
|
|
43
59
|
|
|
@@ -46,7 +62,7 @@ export class Checkpoint {
|
|
|
46
62
|
return new Checkpoint(
|
|
47
63
|
reader.readObject(AppendOnlyTreeSnapshot),
|
|
48
64
|
reader.readObject(CheckpointHeader),
|
|
49
|
-
reader.readVector(
|
|
65
|
+
reader.readVector(L2Block, MAX_BLOCKS_PER_CHECKPOINT),
|
|
50
66
|
CheckpointNumber(reader.readNumber()),
|
|
51
67
|
);
|
|
52
68
|
}
|
|
@@ -64,24 +80,78 @@ export class Checkpoint {
|
|
|
64
80
|
return this.header.hash();
|
|
65
81
|
}
|
|
66
82
|
|
|
83
|
+
// Returns the out hash computed from all l2-to-l1 messages in this checkpoint.
|
|
84
|
+
// Note: This value is different from the out hash in the header, which is the **accumulated** out hash over all
|
|
85
|
+
// checkpoints up to and including this one in the epoch.
|
|
86
|
+
public getCheckpointOutHash(): Fr {
|
|
87
|
+
const msgs = this.blocks.map(block => block.body.txEffects.map(txEffect => txEffect.l2ToL1Msgs));
|
|
88
|
+
return computeCheckpointOutHash(msgs);
|
|
89
|
+
}
|
|
90
|
+
|
|
67
91
|
public getState() {
|
|
68
92
|
return this.blocks.at(-1)!.header.state;
|
|
69
93
|
}
|
|
70
94
|
|
|
95
|
+
public toCheckpointInfo(): CheckpointInfo {
|
|
96
|
+
return {
|
|
97
|
+
archive: this.archive.root,
|
|
98
|
+
lastArchive: this.header.lastArchiveRoot,
|
|
99
|
+
slotNumber: this.header.slotNumber,
|
|
100
|
+
checkpointNumber: this.number,
|
|
101
|
+
timestamp: this.header.timestamp,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/** Returns stats used for logging */
|
|
106
|
+
public getStats() {
|
|
107
|
+
const txEffects = this.blocks.flatMap(block => block.body.txEffects);
|
|
108
|
+
|
|
109
|
+
const logsStats = {
|
|
110
|
+
privateLogCount: sum(txEffects.map(tx => tx.privateLogs.length)),
|
|
111
|
+
publicLogCount: sum(txEffects.map(tx => tx.publicLogs.length)),
|
|
112
|
+
contractClassLogCount: sum(txEffects.map(tx => tx.contractClassLogs.length)),
|
|
113
|
+
contractClassLogSize: sum(txEffects.map(tx => sum(tx.contractClassLogs.map(log => log.emittedLength)))),
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
return {
|
|
117
|
+
txCount: txEffects.length,
|
|
118
|
+
blockCount: this.blocks.length,
|
|
119
|
+
slotNumber: this.header.slotNumber,
|
|
120
|
+
checkpointNumber: this.number,
|
|
121
|
+
timestamp: this.header.timestamp,
|
|
122
|
+
...logsStats,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
71
126
|
static async random(
|
|
72
127
|
checkpointNumber = CheckpointNumber(1),
|
|
73
128
|
{
|
|
74
129
|
numBlocks = 1,
|
|
75
130
|
startBlockNumber = 1,
|
|
131
|
+
previousArchive,
|
|
76
132
|
...options
|
|
77
|
-
}: {
|
|
78
|
-
|
|
133
|
+
}: {
|
|
134
|
+
numBlocks?: number;
|
|
135
|
+
startBlockNumber?: number;
|
|
136
|
+
previousArchive?: AppendOnlyTreeSnapshot;
|
|
137
|
+
} & Partial<Parameters<typeof CheckpointHeader.random>[0]> &
|
|
138
|
+
Partial<Parameters<typeof L2Block.random>[1]> = {},
|
|
79
139
|
) {
|
|
80
140
|
const header = CheckpointHeader.random(options);
|
|
81
141
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
142
|
+
// Create blocks sequentially to chain archive roots properly.
|
|
143
|
+
// Each block's header.lastArchive must equal the previous block's archive.
|
|
144
|
+
const blocks: L2Block[] = [];
|
|
145
|
+
let lastArchive = previousArchive;
|
|
146
|
+
for (let i = 0; i < numBlocks; i++) {
|
|
147
|
+
const block = await L2Block.random(BlockNumber(startBlockNumber + i), {
|
|
148
|
+
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
149
|
+
...options,
|
|
150
|
+
...(lastArchive ? { lastArchive } : {}),
|
|
151
|
+
});
|
|
152
|
+
lastArchive = block.archive;
|
|
153
|
+
blocks.push(block);
|
|
154
|
+
}
|
|
85
155
|
|
|
86
156
|
return new Checkpoint(AppendOnlyTreeSnapshot.random(), header, blocks, checkpointNumber);
|
|
87
157
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CheckpointNumber,
|
|
3
|
+
CheckpointNumberSchema,
|
|
4
|
+
SlotNumber,
|
|
5
|
+
SlotNumberSchema,
|
|
6
|
+
} from '@aztec/foundation/branded-types';
|
|
7
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
8
|
+
import { schemas } from '@aztec/foundation/schemas';
|
|
9
|
+
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
10
|
+
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
|
|
13
|
+
export type CheckpointInfo = {
|
|
14
|
+
archive: Fr;
|
|
15
|
+
lastArchive: Fr;
|
|
16
|
+
slotNumber: SlotNumber;
|
|
17
|
+
checkpointNumber: CheckpointNumber;
|
|
18
|
+
timestamp: bigint;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export function randomCheckpointInfo(checkpointNumber?: CheckpointNumber | number): CheckpointInfo {
|
|
22
|
+
return {
|
|
23
|
+
archive: Fr.random(),
|
|
24
|
+
lastArchive: Fr.random(),
|
|
25
|
+
slotNumber: SlotNumber(Math.floor(Math.random() * 100000) + 1),
|
|
26
|
+
checkpointNumber: CheckpointNumber(checkpointNumber ?? Math.floor(Math.random() * 100000) + 1),
|
|
27
|
+
timestamp: BigInt(Math.floor(Date.now() / 1000)),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const CheckpointInfoSchema = z.object({
|
|
32
|
+
archive: schemas.Fr,
|
|
33
|
+
lastArchive: schemas.Fr,
|
|
34
|
+
slotNumber: SlotNumberSchema,
|
|
35
|
+
checkpointNumber: CheckpointNumberSchema,
|
|
36
|
+
timestamp: schemas.BigInt,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
export function serializeCheckpointInfo(info: CheckpointInfo): Buffer {
|
|
40
|
+
return serializeToBuffer(info.archive, info.lastArchive, info.slotNumber, info.checkpointNumber, info.timestamp);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function deserializeCheckpointInfo(buffer: Buffer | BufferReader): CheckpointInfo {
|
|
44
|
+
const reader = BufferReader.asReader(buffer);
|
|
45
|
+
return {
|
|
46
|
+
archive: reader.readObject(Fr),
|
|
47
|
+
lastArchive: reader.readObject(Fr),
|
|
48
|
+
slotNumber: SlotNumber(reader.readNumber()),
|
|
49
|
+
checkpointNumber: CheckpointNumber(reader.readNumber()),
|
|
50
|
+
timestamp: reader.readBigInt(),
|
|
51
|
+
};
|
|
52
|
+
}
|
package/src/checkpoint/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
|
|
10
10
|
import { CommitteeAttestation } from '../block/proposal/committee_attestation.js';
|
|
11
|
+
import { MAX_BLOCK_HASH_STRING_LENGTH, MAX_COMMITTEE_SIZE } from '../deserialization/index.js';
|
|
11
12
|
import { Checkpoint } from './checkpoint.js';
|
|
12
13
|
|
|
13
14
|
export class L1PublishedData {
|
|
@@ -18,11 +19,13 @@ export class L1PublishedData {
|
|
|
18
19
|
) {}
|
|
19
20
|
|
|
20
21
|
static get schema() {
|
|
21
|
-
return z
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
return z
|
|
23
|
+
.object({
|
|
24
|
+
blockNumber: schemas.BigInt,
|
|
25
|
+
timestamp: schemas.BigInt,
|
|
26
|
+
blockHash: z.string(),
|
|
27
|
+
})
|
|
28
|
+
.transform(obj => L1PublishedData.fromFields(obj));
|
|
26
29
|
}
|
|
27
30
|
|
|
28
31
|
static random() {
|
|
@@ -36,6 +39,18 @@ export class L1PublishedData {
|
|
|
36
39
|
static fromFields(fields: FieldsOf<L1PublishedData>) {
|
|
37
40
|
return new L1PublishedData(fields.blockNumber, fields.timestamp, fields.blockHash);
|
|
38
41
|
}
|
|
42
|
+
|
|
43
|
+
static fromBuffer(bufferOrReader: Buffer | BufferReader): L1PublishedData {
|
|
44
|
+
const reader = BufferReader.asReader(bufferOrReader);
|
|
45
|
+
const l1BlockNumber = reader.readBigInt();
|
|
46
|
+
const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
|
|
47
|
+
const l1Timestamp = reader.readBigInt();
|
|
48
|
+
return new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public toBuffer(): Buffer {
|
|
52
|
+
return serializeToBuffer(this.blockNumber, this.blockHash, this.timestamp);
|
|
53
|
+
}
|
|
39
54
|
}
|
|
40
55
|
|
|
41
56
|
export class PublishedCheckpoint {
|
|
@@ -68,9 +83,9 @@ export class PublishedCheckpoint {
|
|
|
68
83
|
const reader = BufferReader.asReader(bufferOrReader);
|
|
69
84
|
const checkpoint = reader.readObject(Checkpoint);
|
|
70
85
|
const l1BlockNumber = reader.readBigInt();
|
|
71
|
-
const l1BlockHash = reader.readString();
|
|
86
|
+
const l1BlockHash = reader.readString(MAX_BLOCK_HASH_STRING_LENGTH);
|
|
72
87
|
const l1Timestamp = reader.readBigInt();
|
|
73
|
-
const attestations = reader.readVector(CommitteeAttestation);
|
|
88
|
+
const attestations = reader.readVector(CommitteeAttestation, MAX_COMMITTEE_SIZE);
|
|
74
89
|
return new PublishedCheckpoint(
|
|
75
90
|
checkpoint,
|
|
76
91
|
new L1PublishedData(l1BlockNumber, l1Timestamp, l1BlockHash),
|
package/src/config/index.ts
CHANGED
|
@@ -21,7 +21,7 @@ export const nodeRpcConfigMappings: ConfigMappingsType<NodeRPCConfig> = {
|
|
|
21
21
|
rpcMaxBodySize: {
|
|
22
22
|
env: 'RPC_MAX_BODY_SIZE',
|
|
23
23
|
description: 'Maximum allowed batch size for JSON RPC batch requests.',
|
|
24
|
-
defaultValue: '
|
|
24
|
+
defaultValue: '1mb',
|
|
25
25
|
},
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ConfigMappingsType } from '@aztec/foundation/config';
|
|
2
|
+
|
|
3
|
+
import type { SequencerConfig } from '../interfaces/configs.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Partial sequencer config mappings for fields that need to be shared across packages.
|
|
7
|
+
* The full sequencer config mappings remain in sequencer-client, but shared fields
|
|
8
|
+
* (like blockDurationMs needed by both p2p and sequencer-client) are defined here
|
|
9
|
+
* to avoid duplication.
|
|
10
|
+
*/
|
|
11
|
+
export const sharedSequencerConfigMappings: ConfigMappingsType<Pick<SequencerConfig, 'blockDurationMs'>> = {
|
|
12
|
+
blockDurationMs: {
|
|
13
|
+
env: 'SEQ_BLOCK_DURATION_MS',
|
|
14
|
+
description:
|
|
15
|
+
'Duration per block in milliseconds when building multiple blocks per slot. ' +
|
|
16
|
+
'If undefined (default), builds a single block per slot using the full slot duration.',
|
|
17
|
+
parseEnv: (val: string) => (val ? parseInt(val, 10) : undefined),
|
|
18
|
+
},
|
|
19
|
+
};
|
|
@@ -87,5 +87,5 @@ export async function computeInitializationHashFromEncodedArgs(
|
|
|
87
87
|
encodedArgs: Fr[],
|
|
88
88
|
): Promise<Fr> {
|
|
89
89
|
const argsHash = await computeVarArgsHash(encodedArgs);
|
|
90
|
-
return poseidon2HashWithSeparator([initFn, argsHash], GeneratorIndex.
|
|
90
|
+
return poseidon2HashWithSeparator([initFn, argsHash], GeneratorIndex.INITIALIZER);
|
|
91
91
|
}
|
|
@@ -13,7 +13,7 @@ import { computePrivateFunctionsRoot } from './private_function.js';
|
|
|
13
13
|
*
|
|
14
14
|
* ```
|
|
15
15
|
* version = 1
|
|
16
|
-
* private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash],
|
|
16
|
+
* private_function_leaves = private_functions.map(fn => pedersen([fn.function_selector as Field, fn.vk_hash], GENERATOR__PRIVATE_FUNCTION_LEAF))
|
|
17
17
|
* private_functions_root = merkleize(private_function_leaves)
|
|
18
18
|
* bytecode_commitment = calculate_commitment(packed_bytecode)
|
|
19
19
|
* contract_class_id = pedersen([version, artifact_hash, private_functions_root, bytecode_commitment], GENERATOR__CLASS_IDENTIFIER)
|
|
@@ -40,7 +40,7 @@ export async function computeContractClassIdWithPreimage(
|
|
|
40
40
|
: await computePublicBytecodeCommitment(contractClass.packedBytecode);
|
|
41
41
|
const id = await poseidon2HashWithSeparator(
|
|
42
42
|
[artifactHash, privateFunctionsRoot, publicBytecodeCommitment],
|
|
43
|
-
GeneratorIndex.
|
|
43
|
+
GeneratorIndex.CONTRACT_CLASS_ID,
|
|
44
44
|
);
|
|
45
45
|
return { id, artifactHash, privateFunctionsRoot, publicBytecodeCommitment };
|
|
46
46
|
}
|
package/src/contract/index.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
export * from './artifact_hash.js';
|
|
2
2
|
export * from './contract_address.js';
|
|
3
3
|
export * from './contract_class.js';
|
|
4
|
-
export * from './contract_class_metadata.js';
|
|
5
4
|
export * from './contract_class_id.js';
|
|
6
5
|
export * from './contract_deployment_data.js';
|
|
7
6
|
export * from './contract_instance.js';
|
|
8
|
-
export * from './contract_metadata.js';
|
|
9
7
|
export * from './contract_instance_update.js';
|
|
10
8
|
export * from './private_function.js';
|
|
11
9
|
export * from './private_function_membership_proof.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import {
|
|
2
|
+
import { schemas, zodFor } from '@aztec/foundation/schemas';
|
|
3
3
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
|
|
@@ -35,10 +35,12 @@ export interface PrivateFunction {
|
|
|
35
35
|
vkHash: Fr;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
const PrivateFunctionSchema =
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
const PrivateFunctionSchema = zodFor<PrivateFunction>()(
|
|
39
|
+
z.object({
|
|
40
|
+
selector: FunctionSelector.schema,
|
|
41
|
+
vkHash: schemas.Fr,
|
|
42
|
+
}),
|
|
43
|
+
);
|
|
42
44
|
|
|
43
45
|
/** Private function definition with executable bytecode. */
|
|
44
46
|
export interface ExecutablePrivateFunction extends PrivateFunction {
|
|
@@ -46,9 +48,9 @@ export interface ExecutablePrivateFunction extends PrivateFunction {
|
|
|
46
48
|
bytecode: Buffer;
|
|
47
49
|
}
|
|
48
50
|
|
|
49
|
-
const ExecutablePrivateFunctionSchema =
|
|
50
|
-
z.object({ bytecode: schemas.Buffer }),
|
|
51
|
-
)
|
|
51
|
+
const ExecutablePrivateFunctionSchema = zodFor<ExecutablePrivateFunction>()(
|
|
52
|
+
PrivateFunctionSchema.and(z.object({ bytecode: schemas.Buffer })),
|
|
53
|
+
);
|
|
52
54
|
|
|
53
55
|
/** Utility function definition. */
|
|
54
56
|
export interface UtilityFunction {
|
|
@@ -58,11 +60,12 @@ export interface UtilityFunction {
|
|
|
58
60
|
bytecode: Buffer;
|
|
59
61
|
}
|
|
60
62
|
|
|
61
|
-
const UtilityFunctionSchema =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
})
|
|
63
|
+
const UtilityFunctionSchema = zodFor<UtilityFunction>()(
|
|
64
|
+
z.object({
|
|
65
|
+
selector: FunctionSelector.schema,
|
|
66
|
+
bytecode: schemas.Buffer,
|
|
67
|
+
}),
|
|
68
|
+
);
|
|
66
69
|
|
|
67
70
|
/** Sibling paths and sibling commitments for proving membership of a private function within a contract class. */
|
|
68
71
|
export type PrivateFunctionMembershipProof = {
|
|
@@ -75,15 +78,17 @@ export type PrivateFunctionMembershipProof = {
|
|
|
75
78
|
artifactTreeLeafIndex: number;
|
|
76
79
|
};
|
|
77
80
|
|
|
78
|
-
const PrivateFunctionMembershipProofSchema =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
const PrivateFunctionMembershipProofSchema = zodFor<PrivateFunctionMembershipProof>()(
|
|
82
|
+
z.object({
|
|
83
|
+
artifactMetadataHash: schemas.Fr,
|
|
84
|
+
functionMetadataHash: schemas.Fr,
|
|
85
|
+
utilityFunctionsTreeRoot: schemas.Fr,
|
|
86
|
+
privateFunctionTreeSiblingPath: z.array(schemas.Fr),
|
|
87
|
+
privateFunctionTreeLeafIndex: schemas.Integer,
|
|
88
|
+
artifactTreeSiblingPath: z.array(schemas.Fr),
|
|
89
|
+
artifactTreeLeafIndex: schemas.Integer,
|
|
90
|
+
}),
|
|
91
|
+
);
|
|
87
92
|
|
|
88
93
|
/** A private function with a membership proof. */
|
|
89
94
|
export type ExecutablePrivateFunctionWithMembershipProof = ExecutablePrivateFunction & PrivateFunctionMembershipProof;
|
|
@@ -97,23 +102,27 @@ export type UtilityFunctionMembershipProof = {
|
|
|
97
102
|
artifactTreeLeafIndex: number;
|
|
98
103
|
};
|
|
99
104
|
|
|
100
|
-
const UtilityFunctionMembershipProofSchema =
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
105
|
+
const UtilityFunctionMembershipProofSchema = zodFor<UtilityFunctionMembershipProof>()(
|
|
106
|
+
z.object({
|
|
107
|
+
artifactMetadataHash: schemas.Fr,
|
|
108
|
+
functionMetadataHash: schemas.Fr,
|
|
109
|
+
privateFunctionsArtifactTreeRoot: schemas.Fr,
|
|
110
|
+
artifactTreeSiblingPath: z.array(schemas.Fr),
|
|
111
|
+
artifactTreeLeafIndex: schemas.Integer,
|
|
112
|
+
}),
|
|
113
|
+
);
|
|
107
114
|
|
|
108
115
|
/** A utility function with a membership proof. */
|
|
109
116
|
export type UtilityFunctionWithMembershipProof = UtilityFunction & UtilityFunctionMembershipProof;
|
|
110
117
|
|
|
111
|
-
export const ContractClassSchema =
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
118
|
+
export const ContractClassSchema = zodFor<ContractClass>()(
|
|
119
|
+
z.object({
|
|
120
|
+
version: z.literal(VERSION),
|
|
121
|
+
artifactHash: schemas.Fr,
|
|
122
|
+
privateFunctions: z.array(PrivateFunctionSchema),
|
|
123
|
+
packedBytecode: schemas.Buffer,
|
|
124
|
+
}),
|
|
125
|
+
);
|
|
117
126
|
|
|
118
127
|
/** Commitments to fields of a contract class. */
|
|
119
128
|
interface ContractClassCommitments {
|
|
@@ -128,9 +137,11 @@ interface ContractClassCommitments {
|
|
|
128
137
|
/** A contract class with its precomputed id. */
|
|
129
138
|
export type ContractClassWithId = ContractClass & Pick<ContractClassCommitments, 'id'>;
|
|
130
139
|
|
|
131
|
-
export const ContractClassWithIdSchema =
|
|
132
|
-
|
|
133
|
-
|
|
140
|
+
export const ContractClassWithIdSchema = zodFor<ContractClassWithId>()(
|
|
141
|
+
ContractClassSchema.extend({
|
|
142
|
+
id: schemas.Fr,
|
|
143
|
+
}),
|
|
144
|
+
);
|
|
134
145
|
|
|
135
146
|
/** A contract class with public bytecode information, and optional private and utility functions. */
|
|
136
147
|
export type ContractClassPublic = {
|
|
@@ -142,14 +153,16 @@ export type ContractClassPublic = {
|
|
|
142
153
|
export type ContractClassPublicWithCommitment = ContractClassPublic &
|
|
143
154
|
Pick<ContractClassCommitments, 'publicBytecodeCommitment'>;
|
|
144
155
|
|
|
145
|
-
export const ContractClassPublicSchema =
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
156
|
+
export const ContractClassPublicSchema = zodFor<ContractClassPublic>()(
|
|
157
|
+
z
|
|
158
|
+
.object({
|
|
159
|
+
id: schemas.Fr,
|
|
160
|
+
privateFunctionsRoot: schemas.Fr,
|
|
161
|
+
privateFunctions: z.array(ExecutablePrivateFunctionSchema.and(PrivateFunctionMembershipProofSchema)),
|
|
162
|
+
utilityFunctions: z.array(UtilityFunctionSchema.and(UtilityFunctionMembershipProofSchema)),
|
|
163
|
+
})
|
|
164
|
+
.and(ContractClassSchema.omit({ privateFunctions: true })),
|
|
165
|
+
);
|
|
153
166
|
|
|
154
167
|
/** The contract class with the block it was initially deployed at */
|
|
155
168
|
export type ContractClassPublicWithBlockNumber = { l2BlockNumber: number } & ContractClassPublic;
|