@aztec/stdlib 0.0.1-commit.2ed92850 → 0.0.1-commit.2f68f620
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 +142 -1081
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +41 -18
- package/dest/abi/authorization_selector.d.ts +4 -7
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/buffer.d.ts +14 -4
- package/dest/abi/buffer.d.ts.map +1 -1
- package/dest/abi/buffer.js +25 -4
- package/dest/abi/contract_artifact.d.ts +1 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +14 -7
- package/dest/abi/decoder.d.ts +6 -45
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +17 -70
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +64 -7
- package/dest/abi/event_metadata_definition.d.ts +3 -1
- package/dest/abi/event_metadata_definition.d.ts.map +1 -1
- package/dest/abi/event_metadata_definition.js +1 -1
- package/dest/abi/event_selector.d.ts +4 -7
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_call.d.ts +22 -10
- 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 +3 -6
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.js +2 -4
- package/dest/abi/function_signature_decoder.d.ts +43 -0
- package/dest/abi/function_signature_decoder.d.ts.map +1 -0
- package/dest/abi/function_signature_decoder.js +66 -0
- package/dest/abi/index.d.ts +2 -1
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +1 -0
- package/dest/abi/note_selector.d.ts +4 -7
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/note_selector.js +1 -3
- package/dest/abi/selector.d.ts +2 -2
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/selector.js +1 -1
- package/dest/abi/utils.d.ts +14 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +16 -1
- package/dest/auth_witness/auth_witness.d.ts +2 -2
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/avm/avm.d.ts +1756 -10463
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +6 -3
- package/dest/avm/avm_accumulated_data.d.ts +22 -86
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_proving_request.d.ts +674 -5467
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/index.d.ts +1 -6
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +0 -5
- package/dest/avm/message_pack.js +12 -3
- package/dest/avm/public_data_write.d.ts +6 -12
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +6 -7
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +13 -21
- package/dest/aztec-address/index.d.ts +8 -8
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +9 -6
- package/dest/block/attestation_info.d.ts +3 -2
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +7 -5
- package/dest/block/block_data.d.ts +27 -0
- package/dest/block/block_data.d.ts.map +1 -0
- package/dest/block/block_data.js +12 -0
- package/dest/block/block_hash.d.ts +20 -22
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +22 -34
- package/dest/block/block_parameter.d.ts +38 -5
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +55 -4
- package/dest/block/in_block.d.ts +9 -28
- 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 -2
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -1
- package/dest/block/l2_block.d.ts +23 -42
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +14 -5
- package/dest/block/l2_block_info.d.ts +10 -29
- package/dest/block/l2_block_info.d.ts.map +1 -1
- package/dest/block/l2_block_info.js +6 -5
- package/dest/block/l2_block_source.d.ts +216 -337
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +67 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +49 -12
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
- 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 +3 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +43 -11
- package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +26 -18
- package/dest/block/proposal/committee_attestation.d.ts +6 -12
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
- 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 +5 -4
- package/dest/checkpoint/checkpoint.d.ts +48 -99
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +41 -17
- package/dest/checkpoint/checkpoint_data.d.ts +97 -0
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_data.js +38 -0
- package/dest/checkpoint/checkpoint_info.d.ts +7 -23
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
- package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
- package/dest/checkpoint/digest.d.ts +18 -0
- package/dest/checkpoint/digest.d.ts.map +1 -0
- package/dest/checkpoint/digest.js +12 -0
- package/dest/checkpoint/index.d.ts +6 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +5 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
- package/dest/checkpoint/published_checkpoint.d.ts +53 -190
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +1 -2
- package/dest/checkpoint/validate.d.ts +36 -0
- package/dest/checkpoint/validate.d.ts.map +1 -0
- package/dest/checkpoint/validate.js +120 -0
- package/dest/config/chain-config.d.ts +4 -9
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +13 -12
- 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/sequencer-config.d.ts +14 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +38 -0
- package/dest/contract/complete_address.d.ts +3 -2
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/complete_address.js +6 -2
- package/dest/contract/contract_address.d.ts +6 -6
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +9 -8
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class_id.d.ts +3 -3
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +7 -6
- package/dest/contract/contract_deployment_data.d.ts +15 -61
- package/dest/contract/contract_deployment_data.d.ts.map +1 -1
- package/dest/contract/contract_instance.d.ts +4 -2
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +10 -3
- package/dest/contract/index.d.ts +1 -4
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -3
- package/dest/contract/interfaces/contract_class.d.ts +17 -241
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_class.js +1 -28
- package/dest/contract/interfaces/contract_instance.d.ts +41 -95
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +4 -2
- package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
- package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.d.ts +3 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +2 -1
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
- 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 +4 -6
- package/dest/database-version/database_version.d.ts +52 -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 +7 -51
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +13 -67
- package/dest/epoch-helpers/index.d.ts +16 -18
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +22 -2
- package/dest/file-store/factory.d.ts +4 -3
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +2 -2
- package/dest/file-store/http.d.ts +9 -2
- package/dest/file-store/http.d.ts.map +1 -1
- package/dest/file-store/http.js +20 -9
- package/dest/file-store/index.d.ts +2 -1
- package/dest/file-store/index.d.ts.map +1 -1
- package/dest/file-store/local.d.ts +3 -3
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/file-store/local.js +13 -4
- package/dest/file-store/s3.d.ts +1 -1
- package/dest/file-store/s3.d.ts.map +1 -1
- package/dest/file-store/s3.js +11 -3
- package/dest/gas/fee_math.d.ts +49 -0
- package/dest/gas/fee_math.d.ts.map +1 -0
- package/dest/gas/fee_math.js +80 -0
- package/dest/gas/gas.d.ts +9 -14
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas.js +6 -3
- package/dest/gas/gas_fees.d.ts +13 -14
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +20 -4
- package/dest/gas/gas_settings.d.ts +66 -86
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +56 -9
- package/dest/gas/index.d.ts +2 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +1 -0
- package/dest/ha-signing/config.d.ts +72 -0
- package/dest/ha-signing/config.d.ts.map +1 -0
- package/dest/ha-signing/config.js +88 -0
- package/dest/ha-signing/index.d.ts +4 -0
- package/dest/ha-signing/index.d.ts.map +1 -0
- package/dest/ha-signing/index.js +3 -0
- package/dest/ha-signing/local_config.d.ts +32 -0
- package/dest/ha-signing/local_config.d.ts.map +1 -0
- package/dest/ha-signing/local_config.js +24 -0
- package/dest/ha-signing/types.d.ts +90 -0
- package/dest/ha-signing/types.d.ts.map +1 -0
- package/dest/ha-signing/types.js +39 -0
- package/dest/hash/hash.d.ts +35 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +78 -11
- 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 +17 -35
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/allowed_element.js +8 -8
- package/dest/interfaces/api_limit.d.ts +1 -1
- package/dest/interfaces/api_limit.js +1 -1
- package/dest/interfaces/archiver.d.ts +22 -32
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +215 -64
- package/dest/interfaces/aztec-node-admin.d.ts +106 -255
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +68 -17
- package/dest/interfaces/aztec-node-debug.d.ts +21 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +21 -0
- package/dest/interfaces/aztec-node.d.ts +142 -154
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +313 -74
- package/dest/interfaces/block-builder.d.ts +46 -11
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +16 -2
- package/dest/interfaces/block_response.d.ts +90 -0
- package/dest/interfaces/block_response.d.ts.map +1 -0
- package/dest/interfaces/block_response.js +30 -0
- package/dest/interfaces/chain_tips.d.ts +50 -0
- package/dest/interfaces/chain_tips.d.ts.map +1 -0
- package/dest/interfaces/chain_tips.js +11 -0
- package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
- package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_parameter.js +18 -0
- package/dest/interfaces/checkpoint_response.d.ts +122 -0
- package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_response.js +26 -0
- package/dest/interfaces/client.d.ts +8 -2
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +7 -1
- package/dest/interfaces/configs.d.ts +73 -117
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +18 -3
- package/dest/interfaces/l1_publish_info.d.ts +29 -0
- package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
- package/dest/interfaces/l1_publish_info.js +26 -0
- package/dest/interfaces/l2_logs_source.d.ts +14 -34
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/l2_logs_source.js +5 -0
- package/dest/interfaces/merkle_tree_operations.d.ts +21 -24
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p-bootstrap.js +8 -2
- package/dest/interfaces/p2p.d.ts +18 -13
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +28 -5
- package/dest/interfaces/private_kernel_prover.d.ts +62 -2
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.d.ts +5 -23
- package/dest/interfaces/prover-agent.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.js +4 -1
- 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 +12 -23
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +12 -4
- package/dest/interfaces/prover-node.js +22 -8
- package/dest/interfaces/proving-job-source.js +24 -4
- package/dest/interfaces/proving-job.d.ts +763 -5814
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -1
- package/dest/interfaces/public_storage_override.d.ts +22 -0
- package/dest/interfaces/public_storage_override.d.ts.map +1 -0
- package/dest/interfaces/public_storage_override.js +7 -0
- package/dest/interfaces/server.d.ts +6 -2
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +5 -1
- package/dest/interfaces/slasher.d.ts +27 -59
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +10 -4
- package/dest/interfaces/tx_provider.d.ts +6 -1
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +77 -169
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +16 -5
- package/dest/interfaces/world_state.d.ts +6 -5
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
- 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 +13 -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 +13 -10
- package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -3
- package/dest/kernel/hints/index.d.ts +3 -4
- package/dest/kernel/hints/index.d.ts.map +1 -1
- package/dest/kernel/hints/index.js +2 -3
- package/dest/kernel/hints/key_validation_request.d.ts +12 -8
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.js +20 -18
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts +24 -0
- package/dest/kernel/hints/key_validation_request_and_separator.d.ts.map +1 -0
- package/dest/kernel/hints/{key_validation_request_and_generator.js → key_validation_request_and_separator.js} +12 -15
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts → scoped_key_validation_request_and_separator.d.ts} +8 -8
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.d.ts.map → scoped_key_validation_request_and_separator.d.ts.map} +1 -1
- package/dest/kernel/hints/{scoped_key_validation_request_and_generator.js → scoped_key_validation_request_and_separator.js} +6 -6
- package/dest/kernel/index.d.ts +5 -1
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +4 -0
- package/dest/kernel/log_hash.d.ts +6 -2
- package/dest/kernel/log_hash.d.ts.map +1 -1
- package/dest/kernel/log_hash.js +21 -9
- package/dest/kernel/private_circuit_public_inputs.d.ts +10 -10
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +16 -16
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +4 -4
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +4 -4
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
- package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_simulated_output.d.ts +1 -7
- package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_simulated_output.js +2 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +12 -8
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +32 -13
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
- package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
- package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_public_accumulated_data.js +6 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +7 -6
- 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 +13 -9
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +7 -6
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +13 -9
- package/dest/kernel/private_validation_requests.d.ts +3 -3
- package/dest/kernel/private_validation_requests.js +9 -9
- package/dest/kernel/public_call_request.d.ts +15 -30
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +16 -7
- package/dest/kernel/utils/index.d.ts +1 -2
- package/dest/kernel/utils/index.d.ts.map +1 -1
- package/dest/kernel/utils/index.js +0 -1
- package/dest/keys/derivation.d.ts +9 -5
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +28 -18
- package/dest/keys/key_types.d.ts +3 -3
- package/dest/keys/key_types.d.ts.map +1 -1
- package/dest/keys/public_key.d.ts +22 -3
- package/dest/keys/public_key.d.ts.map +1 -1
- package/dest/keys/public_key.js +20 -1
- package/dest/keys/public_keys.d.ts +55 -82
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +102 -74
- package/dest/keys/utils.d.ts +1 -1
- package/dest/keys/utils.d.ts.map +1 -1
- package/dest/keys/utils.js +8 -4
- package/dest/kv-store/config.d.ts +14 -0
- package/dest/kv-store/config.d.ts.map +1 -0
- package/dest/kv-store/config.js +21 -0
- package/dest/kv-store/index.d.ts +2 -0
- package/dest/kv-store/index.d.ts.map +1 -0
- package/dest/kv-store/index.js +1 -0
- package/dest/l1-contracts/index.d.ts +2 -2
- package/dest/l1-contracts/index.d.ts.map +1 -1
- package/dest/l1-contracts/index.js +1 -1
- package/dest/logs/app_tagging_secret.d.ts +46 -0
- package/dest/logs/app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret.js +109 -0
- package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
- package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret_kind.js +17 -0
- package/dest/logs/contract_class_log.d.ts +16 -34
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +11 -9
- package/dest/logs/debug_log_store.d.ts +30 -0
- package/dest/logs/debug_log_store.d.ts.map +1 -0
- package/dest/logs/debug_log_store.js +30 -0
- package/dest/logs/index.d.ts +9 -7
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +8 -6
- package/dest/logs/log_cursor.d.ts +51 -0
- package/dest/logs/log_cursor.d.ts.map +1 -0
- package/dest/logs/log_cursor.js +82 -0
- package/dest/logs/log_result.d.ts +54 -0
- package/dest/logs/log_result.d.ts.map +1 -0
- package/dest/logs/log_result.js +56 -0
- package/dest/logs/logs_query.d.ts +82 -0
- package/dest/logs/logs_query.d.ts.map +1 -0
- package/dest/logs/logs_query.js +50 -0
- package/dest/logs/message_context.d.ts +6 -8
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +27 -9
- package/dest/logs/pending_tagged_log.d.ts +2 -3
- package/dest/logs/pending_tagged_log.d.ts.map +1 -1
- package/dest/logs/pending_tagged_log.js +2 -2
- package/dest/logs/pre_tag.d.ts +14 -22
- package/dest/logs/pre_tag.d.ts.map +1 -1
- package/dest/logs/pre_tag.js +2 -2
- package/dest/logs/private_log.d.ts +8 -13
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +6 -3
- package/dest/logs/public_log.d.ts +4 -3
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +2 -1
- package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
- package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
- package/dest/logs/query_all_logs_by_tags.js +64 -0
- package/dest/logs/shared_secret_derivation.d.ts +11 -10
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +15 -9
- package/dest/logs/siloed_tag.d.ts +12 -9
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +18 -6
- package/dest/logs/tag.d.ts +5 -6
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +5 -1
- package/dest/logs/tagging_index_range.d.ts +22 -0
- package/dest/logs/tagging_index_range.d.ts.map +1 -0
- package/dest/logs/tagging_index_range.js +8 -0
- package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
- package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
- package/dest/messaging/append_l1_to_l2_messages.js +12 -0
- package/dest/messaging/index.d.ts +2 -1
- package/dest/messaging/index.d.ts.map +1 -1
- package/dest/messaging/index.js +1 -0
- package/dest/messaging/l1_to_l2_message.d.ts +3 -2
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.js +11 -13
- package/dest/messaging/l1_to_l2_message_source.d.ts +4 -2
- package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +72 -9
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +133 -30
- package/dest/messaging/l2_to_l1_message.d.ts +38 -112
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.js +21 -12
- package/dest/noir/index.d.ts +5 -3
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/index.d.ts +1 -2
- package/dest/note/index.d.ts.map +1 -1
- package/dest/note/index.js +0 -1
- package/dest/note/note.d.ts +2 -2
- package/dest/note/note.d.ts.map +1 -1
- package/dest/note/note_dao.d.ts +1 -1
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +1 -4
- package/dest/p2p/attestation_utils.d.ts +11 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +45 -0
- package/dest/p2p/block_proposal.d.ts +41 -17
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +58 -42
- package/dest/p2p/checkpoint_attestation.d.ts +16 -9
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +23 -24
- package/dest/p2p/checkpoint_proposal.d.ts +59 -26
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +77 -65
- package/dest/p2p/client_type.d.ts +2 -5
- package/dest/p2p/client_type.d.ts.map +1 -1
- package/dest/p2p/client_type.js +0 -7
- package/dest/p2p/consensus_payload.d.ts +32 -17
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +47 -21
- package/dest/p2p/constants.d.ts +3 -1
- package/dest/p2p/constants.d.ts.map +1 -1
- package/dest/p2p/constants.js +1 -0
- package/dest/p2p/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/index.d.ts +1 -3
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +0 -2
- package/dest/p2p/peer_error.d.ts +3 -1
- package/dest/p2p/peer_error.d.ts.map +1 -1
- package/dest/p2p/peer_error.js +5 -0
- package/dest/p2p/signature_utils.d.ts +28 -19
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +118 -21
- package/dest/p2p/signed_txs.d.ts +15 -13
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +26 -24
- package/dest/p2p/topic_type.d.ts +3 -4
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +7 -24
- package/dest/parity/parity_base_private_inputs.d.ts +8 -4
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.js +7 -5
- package/dest/parity/parity_public_inputs.d.ts +8 -4
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.js +6 -3
- package/dest/parity/parity_root_private_inputs.d.ts +2 -2
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +57 -7
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +112 -15
- package/dest/proofs/recursive_proof.d.ts +2 -2
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.d.ts +1 -1
- package/dest/rollup/block_headers_hash.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +8 -2
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +12 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.d.ts +2 -2
- package/dest/rollup/checkpoint_header.js +2 -2
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +14 -7
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +6 -6
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +7 -7
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +3 -3
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +32 -78
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +2 -2
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +16 -7
- package/dest/slashing/index.d.ts +2 -3
- package/dest/slashing/index.d.ts.map +1 -1
- package/dest/slashing/index.js +1 -2
- package/dest/slashing/serialization.d.ts +2 -6
- package/dest/slashing/serialization.d.ts.map +1 -1
- package/dest/slashing/serialization.js +0 -60
- package/dest/slashing/types.d.ts +21 -111
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +28 -24
- package/dest/slashing/{tally.d.ts → votes.d.ts} +8 -2
- package/dest/slashing/votes.d.ts.map +1 -0
- package/dest/slashing/{tally.js → votes.js} +35 -3
- package/dest/snapshots/types.d.ts +15 -78
- package/dest/snapshots/types.d.ts.map +1 -1
- package/dest/stats/stats.d.ts +2 -4
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +25 -56
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +94 -116
- package/dest/tests/mocks.d.ts +19 -7
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +71 -72
- package/dest/timetable/index.d.ts +84 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +209 -0
- package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +6 -3
- package/dest/trees/nullifier_leaf.d.ts +19 -42
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.js +3 -0
- package/dest/trees/nullifier_membership_witness.d.ts +16 -59
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.js +2 -14
- package/dest/trees/public_data_leaf.d.ts +22 -53
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +7 -6
- package/dest/trees/public_data_witness.d.ts +16 -58
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +9 -6
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +14 -7
- package/dest/tx/call_context.d.ts +4 -14
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +7 -3
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/capsule.js +9 -3
- package/dest/tx/fee_provider.d.ts +10 -0
- package/dest/tx/fee_provider.d.ts.map +1 -0
- package/dest/tx/fee_provider.js +1 -0
- package/dest/tx/function_data.d.ts +4 -10
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +3 -4
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +19 -52
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +8 -12
- package/dest/tx/hashed_values.d.ts +4 -3
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/hashed_values.js +6 -3
- package/dest/tx/in_tx.d.ts +6 -18
- package/dest/tx/in_tx.d.ts.map +1 -1
- package/dest/tx/index.d.ts +2 -2
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -1
- package/dest/tx/indexed_tx_effect.d.ts +10 -21
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +10 -6
- package/dest/tx/partial_state_reference.d.ts +22 -65
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.js +6 -3
- package/dest/tx/private_execution_result.d.ts +11 -21
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +6 -6
- package/dest/tx/profiling.d.ts +70 -356
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +19 -9
- package/dest/tx/protocol_contracts.d.ts +5 -9
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +2 -2
- package/dest/tx/proven_tx.d.ts +30 -74
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +6 -0
- package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.js +6 -3
- package/dest/tx/public_simulation_output.d.ts +4 -2
- package/dest/tx/public_simulation_output.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.js +7 -3
- package/dest/tx/simulated_tx.d.ts +68 -1144
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +17 -12
- package/dest/tx/state_reference.d.ts +30 -117
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +6 -4
- package/dest/tx/tree_snapshots.d.ts +27 -84
- package/dest/tx/tree_snapshots.d.ts.map +1 -1
- package/dest/tx/tree_snapshots.js +6 -4
- package/dest/tx/tx.d.ts +19 -17
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +48 -29
- package/dest/tx/tx_constant_data.d.ts +4 -3
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_constant_data.js +6 -3
- package/dest/tx/tx_context.d.ts +32 -131
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_context.js +6 -6
- package/dest/tx/tx_hash.d.ts +6 -4
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_hash.js +13 -5
- package/dest/tx/tx_receipt.d.ts +152 -52
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +146 -52
- package/dest/tx/tx_request.js +2 -2
- package/dest/tx/validator/error_texts.d.ts +10 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +11 -1
- package/dest/tx/validator/tx_validator.d.ts +6 -28
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/tx/validator/tx_validator.js +0 -4
- package/dest/types/shared.d.ts +4 -12
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +6 -12
- package/dest/update-checker/dev_version.d.ts +3 -0
- package/dest/update-checker/dev_version.d.ts.map +1 -0
- package/dest/update-checker/dev_version.js +1 -0
- package/dest/update-checker/index.d.ts +4 -2
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +3 -1
- package/dest/update-checker/package_version.d.ts +6 -0
- package/dest/update-checker/package_version.d.ts.map +1 -0
- package/dest/update-checker/package_version.js +13 -0
- package/dest/update-checker/version_checker.d.ts +25 -0
- package/dest/update-checker/version_checker.d.ts.map +1 -0
- package/dest/update-checker/version_checker.js +50 -0
- package/dest/validators/errors.d.ts +6 -1
- package/dest/validators/errors.d.ts.map +1 -1
- package/dest/validators/errors.js +7 -0
- package/dest/validators/schemas.d.ts +147 -614
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +9 -6
- package/dest/validators/types.d.ts +21 -4
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.d.ts +4 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +5 -2
- package/dest/vks/verification_key.d.ts +4 -139
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/verification_key.js +5 -126
- package/dest/world-state/genesis_data.d.ts +13 -0
- package/dest/world-state/genesis_data.d.ts.map +1 -0
- package/dest/world-state/genesis_data.js +7 -0
- package/dest/world-state/index.d.ts +2 -1
- package/dest/world-state/index.d.ts.map +1 -1
- package/dest/world-state/index.js +1 -0
- package/dest/world-state/world_state_revision.d.ts +11 -39
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +7 -21
- package/package.json +29 -15
- package/src/abi/abi.ts +78 -21
- package/src/abi/authorization_selector.ts +2 -8
- package/src/abi/buffer.ts +25 -4
- package/src/abi/contract_artifact.ts +11 -6
- package/src/abi/decoder.ts +36 -82
- package/src/abi/encoder.ts +85 -6
- package/src/abi/event_metadata_definition.ts +2 -0
- package/src/abi/event_selector.ts +2 -8
- package/src/abi/function_call.ts +25 -3
- package/src/abi/function_selector.ts +4 -13
- package/src/abi/function_signature_decoder.ts +77 -0
- package/src/abi/index.ts +1 -0
- package/src/abi/note_selector.ts +3 -12
- package/src/abi/selector.ts +1 -1
- package/src/abi/utils.ts +31 -4
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/avm/avm.ts +5 -0
- package/src/avm/index.ts +0 -5
- package/src/avm/message_pack.ts +12 -3
- package/src/avm/revert_code.ts +20 -25
- package/src/aztec-address/index.ts +15 -12
- package/src/block/attestation_info.ts +11 -11
- package/src/block/block_data.ts +25 -0
- package/src/block/block_hash.ts +31 -49
- package/src/block/block_parameter.ts +73 -5
- package/src/block/in_block.ts +6 -6
- package/src/block/index.ts +1 -1
- package/src/block/l2_block.ts +16 -4
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_source.ts +214 -122
- package/src/block/l2_block_stream/interfaces.ts +6 -2
- package/src/block/l2_block_stream/l2_block_stream.ts +49 -17
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
- package/src/block/l2_block_stream/l2_tips_store_base.ts +53 -19
- package/src/block/proposal/attestations_and_signers.ts +32 -17
- package/src/block/test/l2_tips_store_test_suite.ts +10 -3
- package/src/checkpoint/checkpoint.ts +54 -17
- package/src/checkpoint/checkpoint_data.ts +91 -0
- package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
- package/src/checkpoint/digest.ts +28 -0
- package/src/checkpoint/index.ts +5 -0
- package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
- package/src/checkpoint/published_checkpoint.ts +3 -1
- package/src/checkpoint/validate.ts +230 -0
- package/src/config/chain-config.ts +13 -16
- package/src/config/index.ts +1 -0
- package/src/config/sequencer-config.ts +65 -0
- package/src/contract/complete_address.ts +7 -3
- package/src/contract/contract_address.ts +10 -10
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +7 -6
- package/src/contract/contract_instance.ts +11 -2
- package/src/contract/index.ts +0 -3
- package/src/contract/interfaces/contract_class.ts +2 -82
- package/src/contract/interfaces/contract_instance.ts +6 -2
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +5 -3
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +18 -77
- package/src/epoch-helpers/index.ts +39 -0
- package/src/file-store/factory.ts +13 -4
- package/src/file-store/http.ts +29 -10
- package/src/file-store/index.ts +1 -0
- package/src/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/gas/README.md +154 -0
- package/src/gas/fee_math.ts +120 -0
- package/src/gas/gas.ts +8 -3
- package/src/gas/gas_fees.ts +29 -10
- package/src/gas/gas_settings.ts +73 -15
- package/src/gas/index.ts +1 -0
- package/src/ha-signing/config.ts +152 -0
- package/src/ha-signing/index.ts +29 -0
- package/src/ha-signing/local_config.ts +46 -0
- package/src/ha-signing/types.ts +126 -0
- package/src/hash/hash.ts +76 -11
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/allowed_element.ts +29 -9
- package/src/interfaces/api_limit.ts +1 -1
- package/src/interfaces/archiver.ts +90 -87
- package/src/interfaces/aztec-node-admin.ts +57 -18
- package/src/interfaces/aztec-node-debug.ts +40 -0
- package/src/interfaces/aztec-node.ts +346 -329
- package/src/interfaces/block-builder.ts +70 -11
- package/src/interfaces/block_response.ts +92 -0
- package/src/interfaces/chain_tips.ts +24 -0
- package/src/interfaces/checkpoint_parameter.ts +20 -0
- package/src/interfaces/checkpoint_response.ts +84 -0
- package/src/interfaces/client.ts +7 -1
- package/src/interfaces/configs.ts +75 -8
- package/src/interfaces/l1_publish_info.ts +40 -0
- package/src/interfaces/l2_logs_source.ts +13 -39
- package/src/interfaces/merkle_tree_operations.ts +21 -23
- package/src/interfaces/p2p-bootstrap.ts +2 -2
- package/src/interfaces/p2p.ts +38 -29
- package/src/interfaces/private_kernel_prover.ts +88 -0
- package/src/interfaces/prover-agent.ts +1 -1
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +17 -5
- package/src/interfaces/prover-node.ts +7 -7
- package/src/interfaces/proving-job-source.ts +4 -4
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/public_storage_override.ts +26 -0
- package/src/interfaces/server.ts +5 -1
- package/src/interfaces/slasher.ts +21 -10
- package/src/interfaces/tx_provider.ts +6 -0
- package/src/interfaces/validator.ts +87 -37
- package/src/interfaces/world_state.ts +5 -4
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
- package/src/kernel/hints/build_transient_data_hints.ts +17 -2
- package/src/kernel/hints/index.ts +2 -3
- package/src/kernel/hints/key_validation_request.ts +18 -16
- package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
- package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
- package/src/kernel/index.ts +4 -0
- package/src/kernel/log_hash.ts +29 -9
- package/src/kernel/private_circuit_public_inputs.ts +14 -14
- package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
- package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
- package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
- package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
- package/src/kernel/private_kernel_simulated_output.ts +0 -7
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +42 -18
- package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
- package/src/kernel/private_to_public_accumulated_data.ts +9 -3
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +14 -8
- package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +13 -13
- package/src/kernel/private_validation_requests.ts +8 -8
- package/src/kernel/public_call_request.ts +22 -7
- package/src/kernel/utils/index.ts +0 -1
- package/src/keys/derivation.ts +33 -21
- package/src/keys/key_types.ts +6 -2
- package/src/keys/public_key.ts +26 -2
- package/src/keys/public_keys.ts +125 -111
- package/src/keys/utils.ts +8 -4
- package/src/kv-store/config.ts +29 -0
- package/src/kv-store/index.ts +1 -0
- package/src/l1-contracts/index.ts +1 -1
- package/src/logs/app_tagging_secret.ts +137 -0
- package/src/logs/app_tagging_secret_kind.ts +21 -0
- package/src/logs/contract_class_log.ts +15 -5
- package/src/logs/debug_log_store.ts +54 -0
- package/src/logs/index.ts +8 -6
- package/src/logs/log_cursor.ts +110 -0
- package/src/logs/log_result.ts +104 -0
- package/src/logs/logs_query.ts +138 -0
- package/src/logs/message_context.ts +22 -8
- package/src/logs/pending_tagged_log.ts +1 -3
- package/src/logs/pre_tag.ts +3 -6
- package/src/logs/private_log.ts +9 -3
- package/src/logs/public_log.ts +4 -2
- package/src/logs/query_all_logs_by_tags.ts +98 -0
- package/src/logs/shared_secret_derivation.ts +21 -10
- package/src/logs/siloed_tag.ts +28 -13
- package/src/logs/tag.ts +9 -9
- package/src/logs/tagging_index_range.ts +18 -0
- package/src/messaging/append_l1_to_l2_messages.ts +21 -0
- package/src/messaging/index.ts +1 -0
- package/src/messaging/l1_to_l2_message.ts +12 -9
- package/src/messaging/l1_to_l2_message_source.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +192 -38
- package/src/messaging/l2_to_l1_message.ts +29 -9
- package/src/noir/index.ts +4 -2
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +1 -4
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +121 -41
- package/src/p2p/checkpoint_attestation.ts +33 -32
- package/src/p2p/checkpoint_proposal.ts +168 -88
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/consensus_payload.ts +68 -24
- package/src/p2p/constants.ts +3 -0
- package/src/p2p/gossipable.ts +4 -4
- package/src/p2p/index.ts +0 -2
- package/src/p2p/peer_error.ts +7 -0
- package/src/p2p/signature_utils.ts +110 -25
- package/src/p2p/signed_txs.ts +46 -28
- package/src/p2p/topic_type.ts +8 -15
- package/src/parity/parity_base_private_inputs.ts +10 -4
- package/src/parity/parity_public_inputs.ts +9 -2
- package/src/proofs/chonk_proof.ts +132 -12
- package/src/rollup/block_headers_hash.ts +11 -2
- package/src/rollup/block_rollup_public_inputs.ts +13 -0
- package/src/rollup/checkpoint_header.ts +2 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +15 -5
- package/src/rollup/root_rollup_public_inputs.ts +7 -7
- package/src/schemas/schemas.ts +6 -1
- package/src/slashing/helpers.ts +21 -9
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +38 -49
- package/src/slashing/{tally.ts → votes.ts} +41 -2
- package/src/stats/stats.ts +4 -2
- package/src/tests/factories.ts +120 -157
- package/src/tests/mocks.ts +111 -87
- package/src/timetable/index.ts +304 -0
- package/src/trees/append_only_tree_snapshot.ts +8 -3
- package/src/trees/nullifier_leaf.ts +4 -0
- package/src/trees/nullifier_membership_witness.ts +2 -12
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +22 -11
- package/src/tx/capsule.ts +10 -2
- package/src/tx/fee_provider.ts +10 -0
- package/src/tx/global_variable_builder.ts +2 -3
- package/src/tx/global_variables.ts +13 -21
- package/src/tx/hashed_values.ts +8 -3
- package/src/tx/index.ts +1 -1
- package/src/tx/indexed_tx_effect.ts +19 -6
- package/src/tx/partial_state_reference.ts +8 -3
- package/src/tx/private_execution_result.ts +5 -5
- package/src/tx/profiling.ts +18 -9
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/proven_tx.ts +6 -0
- package/src/tx/public_call_request_with_calldata.ts +8 -3
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/simulated_tx.ts +30 -22
- package/src/tx/state_reference.ts +9 -4
- package/src/tx/tree_snapshots.ts +9 -4
- package/src/tx/tx.ts +63 -35
- package/src/tx/tx_constant_data.ts +8 -3
- package/src/tx/tx_context.ts +8 -3
- package/src/tx/tx_hash.ts +20 -5
- package/src/tx/tx_receipt.ts +270 -75
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/error_texts.ts +13 -1
- package/src/tx/validator/tx_validator.ts +2 -6
- package/src/types/shared.ts +8 -13
- package/src/update-checker/dev_version.ts +2 -0
- package/src/update-checker/index.ts +3 -1
- package/src/update-checker/package_version.ts +17 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/errors.ts +9 -0
- package/src/validators/schemas.ts +13 -4
- package/src/validators/types.ts +25 -5
- package/src/versioning/versioning.ts +5 -2
- package/src/vks/verification_key.ts +5 -184
- package/src/world-state/genesis_data.ts +27 -0
- package/src/world-state/index.ts +1 -0
- package/src/world-state/world_state_revision.ts +9 -34
- package/dest/abi/mocked_keys.d.ts +0 -2
- package/dest/abi/mocked_keys.d.ts.map +0 -1
- package/dest/abi/mocked_keys.js +0 -1
- package/dest/avm/contract_storage_read.d.ts +0 -58
- package/dest/avm/contract_storage_read.d.ts.map +0 -1
- package/dest/avm/contract_storage_read.js +0 -65
- package/dest/avm/contract_storage_update_request.d.ts +0 -65
- package/dest/avm/contract_storage_update_request.d.ts.map +0 -1
- package/dest/avm/contract_storage_update_request.js +0 -80
- package/dest/avm/public_call_stack_item_compressed.d.ts +0 -43
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +0 -1
- package/dest/avm/public_call_stack_item_compressed.js +0 -70
- package/dest/avm/public_data_update_request.d.ts +0 -62
- package/dest/avm/public_data_update_request.d.ts.map +0 -1
- package/dest/avm/public_data_update_request.js +0 -67
- package/dest/avm/public_inner_call_request.d.ts +0 -50
- package/dest/avm/public_inner_call_request.d.ts.map +0 -1
- package/dest/avm/public_inner_call_request.js +0 -74
- package/dest/block/checkpointed_l2_block.d.ts +0 -150
- package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
- package/dest/block/checkpointed_l2_block.js +0 -46
- package/dest/contract/deployment_info.d.ts +0 -24
- package/dest/contract/deployment_info.d.ts.map +0 -1
- package/dest/contract/deployment_info.js +0 -3
- package/dest/contract/private_function_membership_proof.d.ts +0 -32
- package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/private_function_membership_proof.js +0 -124
- package/dest/contract/utility_function_membership_proof.d.ts +0 -27
- package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/utility_function_membership_proof.js +0 -87
- 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/interfaces/get_logs_response.d.ts +0 -90
- package/dest/interfaces/get_logs_response.d.ts.map +0 -1
- package/dest/interfaces/get_logs_response.js +0 -12
- package/dest/interfaces/prover-coordination.d.ts +0 -15
- package/dest/interfaces/prover-coordination.d.ts.map +0 -1
- package/dest/interfaces/prover-coordination.js +0 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -30
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
- package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -14
- package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +0 -1
- package/dest/kernel/hints/tree_leaf_read_request.js +0 -33
- package/dest/kernel/utils/optional_number.d.ts +0 -31
- package/dest/kernel/utils/optional_number.d.ts.map +0 -1
- package/dest/kernel/utils/optional_number.js +0 -42
- package/dest/l1-contracts/slash_factory.d.ts +0 -45
- package/dest/l1-contracts/slash_factory.d.ts.map +0 -1
- package/dest/l1-contracts/slash_factory.js +0 -157
- package/dest/logs/directional_app_tagging_secret.d.ts +0 -40
- package/dest/logs/directional_app_tagging_secret.d.ts.map +0 -1
- package/dest/logs/directional_app_tagging_secret.js +0 -64
- package/dest/logs/extended_contract_class_log.d.ts +0 -51
- package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
- package/dest/logs/extended_contract_class_log.js +0 -67
- package/dest/logs/extended_public_log.d.ts +0 -100
- package/dest/logs/extended_public_log.d.ts.map +0 -1
- package/dest/logs/extended_public_log.js +0 -73
- package/dest/logs/log_filter.d.ts +0 -22
- package/dest/logs/log_filter.d.ts.map +0 -1
- package/dest/logs/log_filter.js +0 -11
- package/dest/logs/log_id.d.ts +0 -82
- package/dest/logs/log_id.d.ts.map +0 -1
- package/dest/logs/log_id.js +0 -91
- package/dest/logs/tx_scoped_l2_log.d.ts +0 -49
- package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
- package/dest/logs/tx_scoped_l2_log.js +0 -70
- package/dest/note/notes_filter.d.ts +0 -27
- package/dest/note/notes_filter.d.ts.map +0 -1
- package/dest/note/notes_filter.js +0 -11
- package/dest/p2p/interface.d.ts +0 -5
- package/dest/p2p/interface.d.ts.map +0 -1
- package/dest/p2p/interface.js +0 -1
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -85
- package/dest/slashing/tally.d.ts.map +0 -1
- package/dest/tx/validator/empty_validator.d.ts +0 -5
- package/dest/tx/validator/empty_validator.d.ts.map +0 -1
- package/dest/tx/validator/empty_validator.js +0 -7
- package/dest/update-checker/update-checker.d.ts +0 -49
- package/dest/update-checker/update-checker.d.ts.map +0 -1
- package/dest/update-checker/update-checker.js +0 -130
- package/src/abi/mocked_keys.ts +0 -2
- package/src/avm/contract_storage_read.ts +0 -77
- package/src/avm/contract_storage_update_request.ts +0 -93
- package/src/avm/public_call_stack_item_compressed.ts +0 -113
- package/src/avm/public_data_update_request.ts +0 -106
- package/src/avm/public_inner_call_request.ts +0 -85
- package/src/block/checkpointed_l2_block.ts +0 -70
- package/src/contract/deployment_info.ts +0 -25
- package/src/contract/private_function_membership_proof.ts +0 -167
- package/src/contract/utility_function_membership_proof.ts +0 -118
- package/src/database-version/index.ts +0 -1
- package/src/interfaces/get_logs_response.ts +0 -35
- package/src/interfaces/prover-coordination.ts +0 -17
- package/src/kernel/hints/tree_leaf_read_request.ts +0 -35
- package/src/kernel/utils/optional_number.ts +0 -50
- package/src/l1-contracts/slash_factory.ts +0 -179
- package/src/logs/directional_app_tagging_secret.ts +0 -79
- package/src/logs/extended_contract_class_log.ts +0 -87
- package/src/logs/extended_public_log.ts +0 -94
- package/src/logs/log_filter.ts +0 -31
- package/src/logs/log_id.ts +0 -121
- package/src/logs/tx_scoped_l2_log.ts +0 -98
- package/src/note/notes_filter.ts +0 -38
- package/src/p2p/interface.ts +0 -4
- package/src/slashing/empire.ts +0 -102
- package/src/tx/validator/empty_validator.ts +0 -7
- package/src/update-checker/update-checker.ts +0 -166
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
|
|
@@ -13,9 +13,9 @@ import type { ContractInstance } from './interfaces/contract_instance.js';
|
|
|
13
13
|
/**
|
|
14
14
|
* Returns the deployment address for a given contract instance.
|
|
15
15
|
* ```
|
|
16
|
-
* salted_initialization_hash =
|
|
17
|
-
* partial_address =
|
|
18
|
-
* address = ((
|
|
16
|
+
* salted_initialization_hash = poseidon2(DOM_SEP__SALTED_INITIALIZATION_HASH, [salt, initialization_hash, deployer, immutables_hash])
|
|
17
|
+
* partial_address = poseidon2(DOM_SEP__PARTIAL_ADDRESS, [contract_class_id, salted_initialization_hash])
|
|
18
|
+
* address = ((poseidon2(DOM_SEP__CONTRACT_ADDRESS_V2, [public_keys_hash, partial_address]) * G) + ivpk_m).x <- the x-coordinate of the address point
|
|
19
19
|
* ```
|
|
20
20
|
* @param instance - A contract instance for which to calculate the deployment address.
|
|
21
21
|
*/
|
|
@@ -34,7 +34,7 @@ export async function computeContractAddressFromInstance(
|
|
|
34
34
|
*/
|
|
35
35
|
export async function computePartialAddress(
|
|
36
36
|
instance:
|
|
37
|
-
| Pick<ContractInstance, 'originalContractClassId' | 'initializationHash' | 'salt' | 'deployer'>
|
|
37
|
+
| Pick<ContractInstance, 'originalContractClassId' | 'initializationHash' | 'salt' | 'deployer' | 'immutablesHash'>
|
|
38
38
|
| { originalContractClassId: Fr; saltedInitializationHash: Fr },
|
|
39
39
|
): Promise<Fr> {
|
|
40
40
|
const saltedInitializationHash =
|
|
@@ -44,7 +44,7 @@ export async function computePartialAddress(
|
|
|
44
44
|
|
|
45
45
|
return poseidon2HashWithSeparator(
|
|
46
46
|
[instance.originalContractClassId, saltedInitializationHash],
|
|
47
|
-
|
|
47
|
+
DomainSeparator.PARTIAL_ADDRESS,
|
|
48
48
|
);
|
|
49
49
|
}
|
|
50
50
|
|
|
@@ -53,11 +53,11 @@ export async function computePartialAddress(
|
|
|
53
53
|
* @param instance - Contract instance for which to compute the salted initialization hash.
|
|
54
54
|
*/
|
|
55
55
|
export function computeSaltedInitializationHash(
|
|
56
|
-
instance: Pick<ContractInstance, 'initializationHash' | 'salt' | 'deployer'>,
|
|
56
|
+
instance: Pick<ContractInstance, 'initializationHash' | 'salt' | 'deployer' | 'immutablesHash'>,
|
|
57
57
|
): Promise<Fr> {
|
|
58
58
|
return poseidon2HashWithSeparator(
|
|
59
|
-
[instance.salt, instance.initializationHash, instance.deployer],
|
|
60
|
-
|
|
59
|
+
[instance.salt, instance.initializationHash, instance.deployer, instance.immutablesHash],
|
|
60
|
+
DomainSeparator.SALTED_INITIALIZATION_HASH,
|
|
61
61
|
);
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -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],
|
|
90
|
+
return poseidon2HashWithSeparator([initFn, argsHash], DomainSeparator.INITIALIZER);
|
|
91
91
|
}
|
|
@@ -8,7 +8,7 @@ import { type ContractClassIdPreimage, computeContractClassIdWithPreimage } from
|
|
|
8
8
|
import type { ContractClass, ContractClassWithId } from './interfaces/index.js';
|
|
9
9
|
|
|
10
10
|
/** Contract artifact including its artifact hash */
|
|
11
|
-
type ContractArtifactWithHash = ContractArtifact & { artifactHash: Fr };
|
|
11
|
+
export type ContractArtifactWithHash = ContractArtifact & { artifactHash: Fr };
|
|
12
12
|
|
|
13
13
|
const cmpFunctionArtifacts = <T extends { selector: FunctionSelector }>(a: T, b: T) =>
|
|
14
14
|
a.selector.toField().cmp(b.selector.toField());
|
|
@@ -35,8 +35,8 @@ export async function getContractClassFromArtifact(
|
|
|
35
35
|
|
|
36
36
|
privateArtifactFunctions.sort(cmpFunctionArtifacts);
|
|
37
37
|
|
|
38
|
-
const contractClass
|
|
39
|
-
version: 1,
|
|
38
|
+
const contractClass = {
|
|
39
|
+
version: 1 as const,
|
|
40
40
|
artifactHash,
|
|
41
41
|
packedBytecode,
|
|
42
42
|
privateFunctions: privateArtifactFunctions,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator, MAX_PACKED_PUBLIC_BYTECODE_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
|
|
@@ -13,10 +13,10 @@ import { computePrivateFunctionsRoot } from './private_function.js';
|
|
|
13
13
|
*
|
|
14
14
|
* ```
|
|
15
15
|
* version = 1
|
|
16
|
-
* private_function_leaves = private_functions.map(fn =>
|
|
16
|
+
* private_function_leaves = private_functions.map(fn => poseidon2(DOM_SEP__PRIVATE_FUNCTION_LEAF, [fn.function_selector as Field, fn.vk_hash]))
|
|
17
17
|
* private_functions_root = merkleize(private_function_leaves)
|
|
18
18
|
* bytecode_commitment = calculate_commitment(packed_bytecode)
|
|
19
|
-
* contract_class_id =
|
|
19
|
+
* contract_class_id = poseidon2(DOM_SEP__CONTRACT_CLASS_ID, [version, artifact_hash, private_functions_root, bytecode_commitment])
|
|
20
20
|
* ```
|
|
21
21
|
* @param contractClass - Contract class.
|
|
22
22
|
* @returns The 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
|
-
|
|
43
|
+
DomainSeparator.CONTRACT_CLASS_ID,
|
|
44
44
|
);
|
|
45
45
|
return { id, artifactHash, privateFunctionsRoot, publicBytecodeCommitment };
|
|
46
46
|
}
|
|
@@ -60,7 +60,7 @@ export type ContractClassIdPreimage = {
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
|
|
63
|
-
// Encode the buffer into field elements (chunked into
|
|
63
|
+
// Encode the buffer into field elements (chunked into 31 bytes each)
|
|
64
64
|
// The first element is the length of the bytecode (in bytes)
|
|
65
65
|
const [bytecodeLengthAsField, ...bytecodeAsFields] = bufferAsFields(
|
|
66
66
|
packedBytecode,
|
|
@@ -72,5 +72,6 @@ export async function computePublicBytecodeCommitment(packedBytecode: Buffer) {
|
|
|
72
72
|
|
|
73
73
|
// NOTE: hash the bytecode here only up to the actual length of the bytecode.
|
|
74
74
|
// We do not hash the entire max bytecode length!
|
|
75
|
-
|
|
75
|
+
const sep = BigInt(DomainSeparator.PUBLIC_BYTECODE) + (bytecodeLengthAsField.toBigInt() << 32n);
|
|
76
|
+
return await poseidon2HashWithSeparator(bytecodeAsFields.slice(0, bytecodeLength), new Fr(sep).toNumber());
|
|
76
77
|
}
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
} from './contract_address.js';
|
|
21
21
|
import type { ContractInstance, ContractInstanceWithAddress } from './interfaces/contract_instance.js';
|
|
22
22
|
|
|
23
|
-
const VERSION =
|
|
23
|
+
const VERSION = 2 as const;
|
|
24
24
|
|
|
25
25
|
export type ContractInstantiationData = {
|
|
26
26
|
constructorArtifact?: FunctionAbi | string;
|
|
@@ -29,6 +29,7 @@ export type ContractInstantiationData = {
|
|
|
29
29
|
salt: Fr;
|
|
30
30
|
publicKeys?: PublicKeys;
|
|
31
31
|
deployer?: AztecAddress;
|
|
32
|
+
immutablesHash?: Fr;
|
|
32
33
|
};
|
|
33
34
|
|
|
34
35
|
export class SerializableContractInstance {
|
|
@@ -38,6 +39,7 @@ export class SerializableContractInstance {
|
|
|
38
39
|
public readonly currentContractClassId: Fr;
|
|
39
40
|
public readonly originalContractClassId: Fr;
|
|
40
41
|
public readonly initializationHash: Fr;
|
|
42
|
+
public readonly immutablesHash: Fr;
|
|
41
43
|
public readonly publicKeys: PublicKeys;
|
|
42
44
|
|
|
43
45
|
constructor(instance: ContractInstance) {
|
|
@@ -49,6 +51,7 @@ export class SerializableContractInstance {
|
|
|
49
51
|
this.currentContractClassId = instance.currentContractClassId;
|
|
50
52
|
this.originalContractClassId = instance.originalContractClassId;
|
|
51
53
|
this.initializationHash = instance.initializationHash;
|
|
54
|
+
this.immutablesHash = instance.immutablesHash;
|
|
52
55
|
this.publicKeys = instance.publicKeys;
|
|
53
56
|
}
|
|
54
57
|
|
|
@@ -60,6 +63,7 @@ export class SerializableContractInstance {
|
|
|
60
63
|
this.currentContractClassId,
|
|
61
64
|
this.originalContractClassId,
|
|
62
65
|
this.initializationHash,
|
|
66
|
+
this.immutablesHash,
|
|
63
67
|
this.publicKeys,
|
|
64
68
|
);
|
|
65
69
|
}
|
|
@@ -78,6 +82,7 @@ export class SerializableContractInstance {
|
|
|
78
82
|
currentContractClassId: reader.readObject(Fr),
|
|
79
83
|
originalContractClassId: reader.readObject(Fr),
|
|
80
84
|
initializationHash: reader.readObject(Fr),
|
|
85
|
+
immutablesHash: reader.readObject(Fr),
|
|
81
86
|
publicKeys: reader.readObject(PublicKeys),
|
|
82
87
|
});
|
|
83
88
|
}
|
|
@@ -90,6 +95,7 @@ export class SerializableContractInstance {
|
|
|
90
95
|
currentContractClassId: Fr.random(),
|
|
91
96
|
originalContractClassId: Fr.random(),
|
|
92
97
|
initializationHash: Fr.random(),
|
|
98
|
+
immutablesHash: Fr.random(),
|
|
93
99
|
publicKeys: await PublicKeys.random(),
|
|
94
100
|
...opts,
|
|
95
101
|
});
|
|
@@ -103,6 +109,7 @@ export class SerializableContractInstance {
|
|
|
103
109
|
currentContractClassId: Fr.zero(),
|
|
104
110
|
originalContractClassId: Fr.zero(),
|
|
105
111
|
initializationHash: Fr.zero(),
|
|
112
|
+
immutablesHash: Fr.zero(),
|
|
106
113
|
publicKeys: PublicKeys.default(),
|
|
107
114
|
});
|
|
108
115
|
}
|
|
@@ -130,15 +137,17 @@ export async function getContractInstanceFromInstantiationParams(
|
|
|
130
137
|
)
|
|
131
138
|
: await computeInitializationHash(constructorArtifact, args);
|
|
132
139
|
const publicKeys = opts.publicKeys ?? PublicKeys.default();
|
|
140
|
+
const immutablesHash = opts.immutablesHash ?? Fr.ZERO;
|
|
133
141
|
|
|
134
142
|
const instance: ContractInstance = {
|
|
135
143
|
currentContractClassId: contractClass.id,
|
|
136
144
|
originalContractClassId: contractClass.id,
|
|
137
145
|
initializationHash,
|
|
146
|
+
immutablesHash,
|
|
138
147
|
publicKeys,
|
|
139
148
|
salt: opts.salt,
|
|
140
149
|
deployer,
|
|
141
|
-
version:
|
|
150
|
+
version: 2,
|
|
142
151
|
};
|
|
143
152
|
|
|
144
153
|
return { ...instance, address: await computeContractAddressFromInstance(instance) };
|
package/src/contract/index.ts
CHANGED
|
@@ -6,10 +6,7 @@ export * from './contract_deployment_data.js';
|
|
|
6
6
|
export * from './contract_instance.js';
|
|
7
7
|
export * from './contract_instance_update.js';
|
|
8
8
|
export * from './private_function.js';
|
|
9
|
-
export * from './private_function_membership_proof.js';
|
|
10
|
-
export * from './utility_function_membership_proof.js';
|
|
11
9
|
export * from './interfaces/index.js';
|
|
12
10
|
export * from './contract_function_dao.js';
|
|
13
11
|
export * from './partial_address.js';
|
|
14
|
-
export * from './deployment_info.js';
|
|
15
12
|
export * from './complete_address.js';
|
|
@@ -42,79 +42,6 @@ const PrivateFunctionSchema = zodFor<PrivateFunction>()(
|
|
|
42
42
|
}),
|
|
43
43
|
);
|
|
44
44
|
|
|
45
|
-
/** Private function definition with executable bytecode. */
|
|
46
|
-
export interface ExecutablePrivateFunction extends PrivateFunction {
|
|
47
|
-
/** ACIR and Brillig bytecode */
|
|
48
|
-
bytecode: Buffer;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const ExecutablePrivateFunctionSchema = zodFor<ExecutablePrivateFunction>()(
|
|
52
|
-
PrivateFunctionSchema.and(z.object({ bytecode: schemas.Buffer })),
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
/** Utility function definition. */
|
|
56
|
-
export interface UtilityFunction {
|
|
57
|
-
/** Selector of the function. Calculated as the hash of the method name and parameters. The specification of this is not enforced by the protocol. */
|
|
58
|
-
selector: FunctionSelector;
|
|
59
|
-
/** Brillig. */
|
|
60
|
-
bytecode: Buffer;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const UtilityFunctionSchema = zodFor<UtilityFunction>()(
|
|
64
|
-
z.object({
|
|
65
|
-
selector: FunctionSelector.schema,
|
|
66
|
-
bytecode: schemas.Buffer,
|
|
67
|
-
}),
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
/** Sibling paths and sibling commitments for proving membership of a private function within a contract class. */
|
|
71
|
-
export type PrivateFunctionMembershipProof = {
|
|
72
|
-
artifactMetadataHash: Fr;
|
|
73
|
-
functionMetadataHash: Fr;
|
|
74
|
-
utilityFunctionsTreeRoot: Fr;
|
|
75
|
-
privateFunctionTreeSiblingPath: Fr[];
|
|
76
|
-
privateFunctionTreeLeafIndex: number;
|
|
77
|
-
artifactTreeSiblingPath: Fr[];
|
|
78
|
-
artifactTreeLeafIndex: number;
|
|
79
|
-
};
|
|
80
|
-
|
|
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
|
-
);
|
|
92
|
-
|
|
93
|
-
/** A private function with a membership proof. */
|
|
94
|
-
export type ExecutablePrivateFunctionWithMembershipProof = ExecutablePrivateFunction & PrivateFunctionMembershipProof;
|
|
95
|
-
|
|
96
|
-
/** Sibling paths and commitments for proving membership of a utility function within a contract class. */
|
|
97
|
-
export type UtilityFunctionMembershipProof = {
|
|
98
|
-
artifactMetadataHash: Fr;
|
|
99
|
-
functionMetadataHash: Fr;
|
|
100
|
-
privateFunctionsArtifactTreeRoot: Fr;
|
|
101
|
-
artifactTreeSiblingPath: Fr[];
|
|
102
|
-
artifactTreeLeafIndex: number;
|
|
103
|
-
};
|
|
104
|
-
|
|
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
|
-
);
|
|
114
|
-
|
|
115
|
-
/** A utility function with a membership proof. */
|
|
116
|
-
export type UtilityFunctionWithMembershipProof = UtilityFunction & UtilityFunctionMembershipProof;
|
|
117
|
-
|
|
118
45
|
export const ContractClassSchema = zodFor<ContractClass>()(
|
|
119
46
|
z.object({
|
|
120
47
|
version: z.literal(VERSION),
|
|
@@ -143,11 +70,8 @@ export const ContractClassWithIdSchema = zodFor<ContractClassWithId>()(
|
|
|
143
70
|
}),
|
|
144
71
|
);
|
|
145
72
|
|
|
146
|
-
/** A contract class with public bytecode information
|
|
147
|
-
export type ContractClassPublic =
|
|
148
|
-
privateFunctions: ExecutablePrivateFunctionWithMembershipProof[];
|
|
149
|
-
utilityFunctions: UtilityFunctionWithMembershipProof[];
|
|
150
|
-
} & Pick<ContractClassCommitments, 'id' | 'privateFunctionsRoot'> &
|
|
73
|
+
/** A contract class with public bytecode information. */
|
|
74
|
+
export type ContractClassPublic = Pick<ContractClassCommitments, 'id' | 'privateFunctionsRoot'> &
|
|
151
75
|
Omit<ContractClass, 'privateFunctions'>;
|
|
152
76
|
|
|
153
77
|
export type ContractClassPublicWithCommitment = ContractClassPublic &
|
|
@@ -158,8 +82,6 @@ export const ContractClassPublicSchema = zodFor<ContractClassPublic>()(
|
|
|
158
82
|
.object({
|
|
159
83
|
id: schemas.Fr,
|
|
160
84
|
privateFunctionsRoot: schemas.Fr,
|
|
161
|
-
privateFunctions: z.array(ExecutablePrivateFunctionSchema.and(PrivateFunctionMembershipProofSchema)),
|
|
162
|
-
utilityFunctions: z.array(UtilityFunctionSchema.and(UtilityFunctionMembershipProofSchema)),
|
|
163
85
|
})
|
|
164
86
|
.and(ContractClassSchema.omit({ privateFunctions: true })),
|
|
165
87
|
);
|
|
@@ -179,8 +101,6 @@ export function contractClassPublicFromPlainObject(obj: any): ContractClassPubli
|
|
|
179
101
|
version: 1,
|
|
180
102
|
artifactHash: Fr.fromPlainObject(obj.artifactHash),
|
|
181
103
|
privateFunctionsRoot: Fr.fromPlainObject(obj.privateFunctionsRoot),
|
|
182
|
-
privateFunctions: [],
|
|
183
|
-
utilityFunctions: [],
|
|
184
104
|
packedBytecode: obj.packedBytecode instanceof Buffer ? obj.packedBytecode : Buffer.from(obj.packedBytecode),
|
|
185
105
|
};
|
|
186
106
|
}
|
|
@@ -6,7 +6,7 @@ import { AztecAddress } from '../../aztec-address/index.js';
|
|
|
6
6
|
import { PublicKeys } from '../../keys/public_keys.js';
|
|
7
7
|
import { schemas, zodFor } from '../../schemas/index.js';
|
|
8
8
|
|
|
9
|
-
const VERSION =
|
|
9
|
+
const VERSION = 2 as const;
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A contract instance is a concrete deployment of a contract class. It always references a contract class,
|
|
@@ -26,6 +26,8 @@ export interface ContractInstance {
|
|
|
26
26
|
originalContractClassId: Fr;
|
|
27
27
|
/** Hash of the selector and arguments to the constructor. */
|
|
28
28
|
initializationHash: Fr;
|
|
29
|
+
/** Hash of Immutables Values the contract is deployed with. */
|
|
30
|
+
immutablesHash: Fr;
|
|
29
31
|
/** Public keys associated with this instance. */
|
|
30
32
|
publicKeys: PublicKeys;
|
|
31
33
|
}
|
|
@@ -40,6 +42,7 @@ export const ContractInstanceSchema = zodFor<ContractInstance>()(
|
|
|
40
42
|
currentContractClassId: schemas.Fr,
|
|
41
43
|
originalContractClassId: schemas.Fr,
|
|
42
44
|
initializationHash: schemas.Fr,
|
|
45
|
+
immutablesHash: schemas.Fr,
|
|
43
46
|
publicKeys: PublicKeys.schema,
|
|
44
47
|
}),
|
|
45
48
|
);
|
|
@@ -54,12 +57,13 @@ export const ContractInstanceWithAddressSchema = zodFor<ContractInstanceWithAddr
|
|
|
54
57
|
*/
|
|
55
58
|
export function contractInstanceFromPlainObject(obj: any): ContractInstance {
|
|
56
59
|
return {
|
|
57
|
-
version:
|
|
60
|
+
version: 2,
|
|
58
61
|
salt: Fr.fromPlainObject(obj.salt),
|
|
59
62
|
deployer: AztecAddress.fromPlainObject(obj.deployer),
|
|
60
63
|
currentContractClassId: Fr.fromPlainObject(obj.currentContractClassId),
|
|
61
64
|
originalContractClassId: Fr.fromPlainObject(obj.originalContractClassId),
|
|
62
65
|
initializationHash: Fr.fromPlainObject(obj.initializationHash),
|
|
66
|
+
immutablesHash: Fr.fromPlainObject(obj.immutablesHash),
|
|
63
67
|
publicKeys: PublicKeys.fromPlainObject(obj.publicKeys),
|
|
64
68
|
};
|
|
65
69
|
}
|
|
@@ -19,6 +19,8 @@ export interface NodeInfo {
|
|
|
19
19
|
l1ContractAddresses: L1ContractAddresses;
|
|
20
20
|
/** Protocol contract addresses */
|
|
21
21
|
protocolContractAddresses: ProtocolContractAddresses;
|
|
22
|
+
/** Whether the node requires real proofs for transaction submission. */
|
|
23
|
+
realProofs: boolean;
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
export const NodeInfoSchema: ZodFor<NodeInfo> = z
|
|
@@ -29,5 +31,6 @@ export const NodeInfoSchema: ZodFor<NodeInfo> = z
|
|
|
29
31
|
enr: z.string().optional(),
|
|
30
32
|
l1ContractAddresses: L1ContractAddressesSchema,
|
|
31
33
|
protocolContractAddresses: ProtocolContractAddressesSchema,
|
|
34
|
+
realProofs: z.boolean(),
|
|
32
35
|
})
|
|
33
36
|
.transform(obj => ({ enr: undefined, ...obj }));
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { DomainSeparator, FUNCTION_TREE_HEIGHT } from '@aztec/constants';
|
|
2
2
|
import { poseidon2Hash, poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { type MerkleTree, MerkleTreeCalculator } from '@aztec/foundation/trees';
|
|
5
5
|
|
|
6
|
+
import { computeMerkleHash } from '../hash/hash.js';
|
|
6
7
|
import type { PrivateFunction } from './interfaces/contract_class.js';
|
|
7
8
|
|
|
8
9
|
// Memoize the merkle tree calculators to avoid re-computing the zero-hash for each level in each call
|
|
@@ -31,7 +32,7 @@ function computePrivateFunctionLeaves(fns: PrivateFunction[]): Promise<Buffer[]>
|
|
|
31
32
|
|
|
32
33
|
/** Returns the leaf for a given private function. */
|
|
33
34
|
export async function computePrivateFunctionLeaf(fn: PrivateFunction): Promise<Buffer> {
|
|
34
|
-
return (await poseidon2HashWithSeparator([fn.selector, fn.vkHash],
|
|
35
|
+
return (await poseidon2HashWithSeparator([fn.selector, fn.vkHash], DomainSeparator.PRIVATE_FUNCTION_LEAF)).toBuffer();
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
async function getPrivateFunctionTreeCalculator(): Promise<MerkleTreeCalculator> {
|
|
@@ -42,7 +43,8 @@ async function getPrivateFunctionTreeCalculator(): Promise<MerkleTreeCalculator>
|
|
|
42
43
|
privateFunctionTreeCalculator = await MerkleTreeCalculator.create(
|
|
43
44
|
FUNCTION_TREE_HEIGHT,
|
|
44
45
|
functionTreeZeroLeaf,
|
|
45
|
-
async (left, right) =>
|
|
46
|
+
async (left, right) =>
|
|
47
|
+
(await computeMerkleHash(Fr.fromBuffer(left), Fr.fromBuffer(right))).toBuffer() as Buffer<ArrayBuffer>,
|
|
46
48
|
);
|
|
47
49
|
}
|
|
48
50
|
return privateFunctionTreeCalculator;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
|
+
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Symbol for Node.js custom inspect. Using Symbol.for() is the documented way to
|
|
8
|
+
* reference this without importing node:util. In browsers, objects with this symbol
|
|
9
|
+
* simply won't have custom inspect behavior (which is fine).
|
|
10
|
+
* @see https://nodejs.org/api/util.html#utilinspectcustom
|
|
11
|
+
*/
|
|
12
|
+
const inspectCustomSymbol = Symbol.for('nodejs.util.inspect.custom');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Represents a version record for storing in a version file.
|
|
16
|
+
*/
|
|
17
|
+
export class DatabaseVersion {
|
|
18
|
+
constructor(
|
|
19
|
+
/** The version of the data on disk. Used to perform upgrades */
|
|
20
|
+
public readonly schemaVersion: number,
|
|
21
|
+
/** The rollup the data pertains to */
|
|
22
|
+
public readonly rollupAddress: EthAddress,
|
|
23
|
+
) {}
|
|
24
|
+
|
|
25
|
+
public toBuffer(): Buffer {
|
|
26
|
+
return Buffer.from(jsonStringify(this));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public static fromBuffer(buf: Buffer): DatabaseVersion {
|
|
30
|
+
try {
|
|
31
|
+
return jsonParseWithSchema(buf.toString('utf-8'), DatabaseVersion.schema);
|
|
32
|
+
} catch (err) {
|
|
33
|
+
throw new Error(`Failed to deserialize version information: ${err}`, { cause: err });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Compares two versions. If the rollups addresses are different then it returns undefined
|
|
39
|
+
*/
|
|
40
|
+
public cmp(other: DatabaseVersion): undefined | -1 | 0 | 1 {
|
|
41
|
+
if (this.rollupAddress.equals(other.rollupAddress)) {
|
|
42
|
+
if (this.schemaVersion < other.schemaVersion) {
|
|
43
|
+
return -1;
|
|
44
|
+
} else if (this.schemaVersion > other.schemaVersion) {
|
|
45
|
+
return 1;
|
|
46
|
+
} else {
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Checks if two versions exactly match
|
|
55
|
+
*/
|
|
56
|
+
public equals(other: DatabaseVersion): boolean {
|
|
57
|
+
return this.cmp(other) === 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Returns the schema for this class
|
|
62
|
+
*/
|
|
63
|
+
static get schema() {
|
|
64
|
+
return z
|
|
65
|
+
.object({
|
|
66
|
+
schemaVersion: z.number(),
|
|
67
|
+
rollupAddress: EthAddress.schema,
|
|
68
|
+
})
|
|
69
|
+
.transform(({ schemaVersion, rollupAddress }) => new DatabaseVersion(schemaVersion, rollupAddress));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** Allows for better introspection in Node.js console. Ignored in browser envs. */
|
|
73
|
+
public [inspectCustomSymbol](): string {
|
|
74
|
+
return this.toString();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
public toString(): string {
|
|
78
|
+
return `DatabaseVersion{schemaVersion=${this.schemaVersion},rollupAddress=${this.rollupAddress}"}`;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Returns an empty instance
|
|
83
|
+
*/
|
|
84
|
+
static empty() {
|
|
85
|
+
return new DatabaseVersion(0, EthAddress.ZERO);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1,90 +1,15 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
2
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
4
3
|
|
|
5
4
|
import fs from 'fs/promises';
|
|
6
|
-
import { inspect } from 'node:util';
|
|
7
5
|
import { join } from 'path';
|
|
8
|
-
import { z } from 'zod';
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
* Represents a version record for storing in a version file.
|
|
12
|
-
*/
|
|
13
|
-
export class DatabaseVersion {
|
|
14
|
-
constructor(
|
|
15
|
-
/** The version of the data on disk. Used to perform upgrades */
|
|
16
|
-
public readonly schemaVersion: number,
|
|
17
|
-
/** The rollup the data pertains to */
|
|
18
|
-
public readonly rollupAddress: EthAddress,
|
|
19
|
-
) {}
|
|
20
|
-
|
|
21
|
-
public toBuffer(): Buffer {
|
|
22
|
-
return Buffer.from(jsonStringify(this));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
public static fromBuffer(buf: Buffer): DatabaseVersion {
|
|
26
|
-
try {
|
|
27
|
-
return jsonParseWithSchema(buf.toString('utf-8'), DatabaseVersion.schema);
|
|
28
|
-
} catch (err) {
|
|
29
|
-
throw new Error(`Failed to deserialize version information: ${err}`, { cause: err });
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Compares two versions. If the rollups addresses are different then it returns undefined
|
|
35
|
-
*/
|
|
36
|
-
public cmp(other: DatabaseVersion): undefined | -1 | 0 | 1 {
|
|
37
|
-
if (this.rollupAddress.equals(other.rollupAddress)) {
|
|
38
|
-
if (this.schemaVersion < other.schemaVersion) {
|
|
39
|
-
return -1;
|
|
40
|
-
} else if (this.schemaVersion > other.schemaVersion) {
|
|
41
|
-
return 1;
|
|
42
|
-
} else {
|
|
43
|
-
return 0;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return undefined;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Checks if two versions exactly match
|
|
51
|
-
*/
|
|
52
|
-
public equals(other: DatabaseVersion): boolean {
|
|
53
|
-
return this.cmp(other) === 0;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Returns the schema for this class
|
|
58
|
-
*/
|
|
59
|
-
static get schema() {
|
|
60
|
-
return z
|
|
61
|
-
.object({
|
|
62
|
-
schemaVersion: z.number(),
|
|
63
|
-
rollupAddress: EthAddress.schema,
|
|
64
|
-
})
|
|
65
|
-
.transform(({ schemaVersion, rollupAddress }) => new DatabaseVersion(schemaVersion, rollupAddress));
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/** Allows for better introspection. */
|
|
69
|
-
public [inspect.custom](): string {
|
|
70
|
-
return this.toString();
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
public toString(): string {
|
|
74
|
-
return `DatabaseVersion{schemaVersion=${this.schemaVersion},rollupAddress=${this.rollupAddress}"}`;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Returns an empty instance
|
|
79
|
-
*/
|
|
80
|
-
static empty() {
|
|
81
|
-
return new DatabaseVersion(0, EthAddress.ZERO);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
7
|
+
import { DatabaseVersion } from './database_version.js';
|
|
84
8
|
|
|
85
9
|
export type DatabaseVersionManagerFs = Pick<typeof fs, 'readFile' | 'writeFile' | 'rm' | 'mkdir'>;
|
|
86
10
|
|
|
87
11
|
export const DATABASE_VERSION_FILE_NAME = 'db_version';
|
|
12
|
+
export type SchemaVersionMismatchPolicy = 'reset' | 'throw';
|
|
88
13
|
|
|
89
14
|
export type DatabaseVersionManagerOptions<T> = {
|
|
90
15
|
schemaVersion: number;
|
|
@@ -92,6 +17,7 @@ export type DatabaseVersionManagerOptions<T> = {
|
|
|
92
17
|
dataDirectory: string;
|
|
93
18
|
onOpen: (dataDir: string) => Promise<T>;
|
|
94
19
|
onUpgrade?: (dataDir: string, currentVersion: number, latestVersion: number) => Promise<void>;
|
|
20
|
+
schemaVersionMismatchPolicy?: SchemaVersionMismatchPolicy;
|
|
95
21
|
fileSystem?: DatabaseVersionManagerFs;
|
|
96
22
|
log?: Logger;
|
|
97
23
|
};
|
|
@@ -110,6 +36,7 @@ export class DatabaseVersionManager<T> {
|
|
|
110
36
|
private dataDirectory: string;
|
|
111
37
|
private onOpen: (dataDir: string) => Promise<T>;
|
|
112
38
|
private onUpgrade?: (dataDir: string, currentVersion: number, latestVersion: number) => Promise<void>;
|
|
39
|
+
private schemaVersionMismatchPolicy: SchemaVersionMismatchPolicy;
|
|
113
40
|
private fileSystem: DatabaseVersionManagerFs;
|
|
114
41
|
private log: Logger;
|
|
115
42
|
|
|
@@ -121,6 +48,7 @@ export class DatabaseVersionManager<T> {
|
|
|
121
48
|
* @param dataDirectory - The directory where version information will be stored
|
|
122
49
|
* @param onOpen - A callback to the open the database at the given location
|
|
123
50
|
* @param onUpgrade - An optional callback to upgrade the database before opening. If not provided it will reset the database
|
|
51
|
+
* @param schemaVersionMismatchPolicy - Whether schema mismatches should reset data or throw
|
|
124
52
|
* @param fileSystem - An interface to access the filesystem
|
|
125
53
|
* @param log - Optional custom logger
|
|
126
54
|
* @param options - Configuration options
|
|
@@ -131,6 +59,7 @@ export class DatabaseVersionManager<T> {
|
|
|
131
59
|
dataDirectory,
|
|
132
60
|
onOpen,
|
|
133
61
|
onUpgrade,
|
|
62
|
+
schemaVersionMismatchPolicy = 'reset',
|
|
134
63
|
fileSystem = fs,
|
|
135
64
|
log = createLogger(`foundation:version-manager`),
|
|
136
65
|
}: DatabaseVersionManagerOptions<T>) {
|
|
@@ -144,6 +73,7 @@ export class DatabaseVersionManager<T> {
|
|
|
144
73
|
this.dataDirectory = dataDirectory;
|
|
145
74
|
this.onOpen = onOpen;
|
|
146
75
|
this.onUpgrade = onUpgrade;
|
|
76
|
+
this.schemaVersionMismatchPolicy = schemaVersionMismatchPolicy;
|
|
147
77
|
this.fileSystem = fileSystem;
|
|
148
78
|
this.log = log;
|
|
149
79
|
}
|
|
@@ -191,10 +121,21 @@ export class DatabaseVersionManager<T> {
|
|
|
191
121
|
try {
|
|
192
122
|
await this.onUpgrade(this.dataDirectory, storedVersion.schemaVersion, this.currentVersion.schemaVersion);
|
|
193
123
|
} catch (error) {
|
|
124
|
+
if (this.schemaVersionMismatchPolicy === 'throw') {
|
|
125
|
+
throw new Error(
|
|
126
|
+
`Failed to upgrade database at ${this.dataDirectory} from schema version ${storedVersion.schemaVersion} to ${this.currentVersion.schemaVersion}`,
|
|
127
|
+
{ cause: error },
|
|
128
|
+
);
|
|
129
|
+
}
|
|
194
130
|
this.log.error(`Failed to upgrade: ${error}. Falling back to reset.`);
|
|
195
131
|
needsReset = true;
|
|
196
132
|
}
|
|
197
133
|
} else if (cmp !== 0) {
|
|
134
|
+
if (this.schemaVersionMismatchPolicy === 'throw') {
|
|
135
|
+
throw new Error(
|
|
136
|
+
`Cannot open database at ${this.dataDirectory}: stored schema version ${storedVersion.schemaVersion} is incompatible with expected schema version ${this.currentVersion.schemaVersion}`,
|
|
137
|
+
);
|
|
138
|
+
}
|
|
198
139
|
if (shouldLogDataReset) {
|
|
199
140
|
this.log.info(
|
|
200
141
|
`Can't upgrade from version ${storedVersion} to ${this.currentVersion}. Resetting database at ${this.dataDirectory}`,
|