@aztec/stdlib 5.0.0-private.20260319 → 5.0.0-rc.1
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 +14 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +31 -7
- package/dest/abi/decoder.d.ts +5 -44
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +12 -67
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +32 -6
- 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 +7 -25
- package/dest/abi/function_call.d.ts.map +1 -1
- 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 +1 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +1 -1
- package/dest/auth_witness/auth_witness.d.ts +2 -2
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- 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 +653 -5446
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- 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 +5 -21
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +12 -30
- 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 +13 -38
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_data.js +2 -2
- package/dest/block/block_hash.d.ts +11 -10
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +10 -9
- package/dest/block/block_parameter.d.ts +37 -4
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +53 -2
- package/dest/block/in_block.d.ts +5 -24
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/index.d.ts +1 -2
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +0 -1
- package/dest/block/l2_block.d.ts +13 -41
- package/dest/block/l2_block.d.ts.map +1 -1
- 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 -357
- 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 +46 -7
- 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 +57 -21
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +8 -12
- 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 +11 -32
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +12 -18
- 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 +66 -40
- 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 +202 -33
- package/dest/checkpoint/checkpoint.d.ts +30 -96
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +11 -3
- package/dest/checkpoint/checkpoint_data.d.ts +68 -91
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.js +12 -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 +4 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +3 -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 +42 -194
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/validate.d.ts +11 -3
- package/dest/checkpoint/validate.d.ts.map +1 -1
- package/dest/checkpoint/validate.js +9 -6
- 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 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -1
- package/dest/config/network-consensus-config.d.ts +72 -0
- package/dest/config/network-consensus-config.d.ts.map +1 -0
- package/dest/config/network-consensus-config.js +231 -0
- package/dest/config/sequencer-config.d.ts +7 -3
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +38 -5
- 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 +5 -5
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +5 -4
- 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 -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 +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 +11 -1
- package/dest/contract/interfaces/node-info.d.ts.map +1 -1
- package/dest/contract/interfaces/node-info.js +7 -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 +2 -4
- package/dest/database-version/database_version.d.ts +5 -11
- package/dest/database-version/database_version.d.ts.map +1 -1
- package/dest/database-version/version_manager.d.ts +6 -2
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +12 -1
- package/dest/deserialization/index.d.ts +35 -3
- package/dest/deserialization/index.d.ts.map +1 -1
- package/dest/deserialization/index.js +32 -1
- package/dest/epoch-helpers/index.d.ts +10 -22
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +12 -0
- 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/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 +17 -4
- package/dest/gas/gas_settings.d.ts +60 -86
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +49 -9
- package/dest/gas/index.d.ts +3 -1
- package/dest/gas/index.d.ts.map +1 -1
- package/dest/gas/index.js +2 -0
- package/dest/gas/tx_gas_limits.d.ts +72 -0
- package/dest/gas/tx_gas_limits.d.ts.map +1 -0
- package/dest/gas/tx_gas_limits.js +85 -0
- package/dest/ha-signing/config.d.ts +11 -75
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +9 -18
- package/dest/ha-signing/index.d.ts +2 -2
- package/dest/ha-signing/index.d.ts.map +1 -1
- package/dest/ha-signing/index.js +1 -1
- package/dest/ha-signing/local_config.d.ts +3 -34
- package/dest/ha-signing/local_config.d.ts.map +1 -1
- package/dest/ha-signing/local_config.js +2 -2
- package/dest/ha-signing/types.d.ts +37 -32
- package/dest/ha-signing/types.d.ts.map +1 -1
- package/dest/ha-signing/types.js +13 -6
- package/dest/hash/hash.d.ts +19 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +39 -2
- package/dest/interfaces/allowed_element.d.ts +4 -28
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/api_limit.d.ts +1 -1
- package/dest/interfaces/api_limit.js +1 -1
- package/dest/interfaces/archiver.d.ts +20 -32
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +215 -70
- package/dest/interfaces/aztec-node-admin.d.ts +71 -305
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +60 -17
- package/dest/interfaces/aztec-node-debug.d.ts +34 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +29 -0
- package/dest/interfaces/aztec-node.d.ts +156 -112
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +354 -71
- package/dest/interfaces/block-builder.d.ts +5 -1
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- 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 +9 -2
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +7 -1
- package/dest/interfaces/configs.d.ts +63 -134
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +13 -2
- package/dest/interfaces/get_tx_by_hash_options.d.ts +9 -0
- package/dest/interfaces/get_tx_by_hash_options.d.ts.map +1 -0
- package/dest/interfaces/get_tx_by_hash_options.js +4 -0
- 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 -36
- 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 +4 -3
- 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 +46 -7
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +41 -6
- 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-client.d.ts +7 -29
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +0 -3
- package/dest/interfaces/prover-node.d.ts +8 -3
- package/dest/interfaces/prover-node.d.ts.map +1 -1
- package/dest/interfaces/prover-node.js +30 -14
- 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 +25 -65
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +8 -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 +55 -248
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +8 -2
- package/dest/interfaces/world_state.d.ts +2 -2
- package/dest/interfaces/world_state.d.ts.map +1 -1
- 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/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 +2 -2
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- 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_tail_circuit_public_inputs.d.ts +9 -6
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
- 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 +5 -4
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
- 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 +5 -4
- 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 +7 -3
- 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/keys/derivation.d.ts +6 -2
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +16 -6
- 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/kv-store/config.d.ts +3 -6
- package/dest/kv-store/config.d.ts.map +1 -1
- package/dest/kv-store/config.js +2 -7
- 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/index.d.ts +7 -7
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +6 -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 +11 -24
- 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 +7 -12
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +6 -3
- 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 +8 -7
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +13 -3
- package/dest/logs/tag.d.ts +5 -6
- package/dest/logs/tag.d.ts.map +1 -1
- package/dest/logs/tag.js +4 -0
- package/dest/logs/tagging_index_range.d.ts +13 -31
- package/dest/logs/tagging_index_range.d.ts.map +1 -1
- package/dest/logs/tagging_index_range.js +2 -2
- 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/l2_to_l1_membership.d.ts +43 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +72 -12
- 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 +3 -1
- package/dest/noir/index.d.ts.map +1 -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/block_proposal.d.ts +31 -14
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +57 -39
- package/dest/p2p/checkpoint_attestation.d.ts +15 -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 +35 -16
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +59 -51
- package/dest/p2p/consensus_payload.d.ts +26 -20
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +38 -19
- package/dest/p2p/gossipable.d.ts +4 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- 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/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_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 +9 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
- 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 +2 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- 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 +10 -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 +18 -112
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +16 -24
- package/dest/slashing/{tally.d.ts → votes.d.ts} +1 -1
- package/dest/slashing/{tally.d.ts.map → votes.d.ts.map} +1 -1
- package/dest/slashing/{tally.js → votes.js} +1 -1
- package/dest/snapshots/types.d.ts +15 -78
- package/dest/snapshots/types.d.ts.map +1 -1
- package/dest/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +25 -32
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +85 -82
- package/dest/tests/mocks.d.ts +8 -5
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +45 -56
- package/dest/timetable/budgets.d.ts +57 -0
- package/dest/timetable/budgets.d.ts.map +1 -0
- package/dest/timetable/budgets.js +56 -0
- package/dest/timetable/build_proposer_timetable.d.ts +21 -0
- package/dest/timetable/build_proposer_timetable.d.ts.map +1 -0
- package/dest/timetable/build_proposer_timetable.js +17 -0
- package/dest/timetable/consensus_timetable.d.ts +70 -0
- package/dest/timetable/consensus_timetable.d.ts.map +1 -0
- package/dest/timetable/consensus_timetable.js +89 -0
- package/dest/timetable/index.d.ts +5 -37
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +4 -39
- package/dest/timetable/proposer_timetable.d.ts +106 -0
- package/dest/timetable/proposer_timetable.d.ts.map +1 -0
- package/dest/timetable/proposer_timetable.js +132 -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 +21 -53
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- 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 +5 -4
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +7 -4
- 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 +16 -49
- 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 +5 -17
- package/dest/tx/in_tx.d.ts.map +1 -1
- package/dest/tx/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +1 -0
- package/dest/tx/indexed_tx_effect.d.ts +8 -19
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +9 -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 +6 -16
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +54 -352
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +4 -4
- package/dest/tx/protocol_contracts.d.ts +5 -9
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- 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/simulated_tx.d.ts +64 -1143
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +13 -11
- 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 +22 -13
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +44 -22
- 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 +144 -63
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +143 -60
- package/dest/tx/validator/error_texts.d.ts +6 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +7 -1
- package/dest/tx/validator/tx_validator.d.ts +5 -27
- 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 +2 -1
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +1 -0
- package/dest/update-checker/package_version.d.ts +6 -3
- package/dest/update-checker/package_version.d.ts.map +1 -1
- package/dest/update-checker/package_version.js +8 -19
- package/dest/validators/schemas.d.ts +147 -614
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +6 -4
- package/dest/validators/types.d.ts +20 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.js +1 -1
- 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 +15 -26
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +7 -1
- package/package.json +12 -11
- 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 +30 -6
- package/src/abi/decoder.ts +23 -78
- package/src/abi/encoder.ts +42 -6
- package/src/abi/event_selector.ts +2 -8
- 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 +6 -4
- package/src/avm/avm.ts +5 -0
- package/src/avm/message_pack.ts +12 -3
- package/src/avm/revert_code.ts +19 -39
- package/src/aztec-address/index.ts +15 -12
- package/src/block/attestation_info.ts +11 -11
- package/src/block/block_data.ts +3 -4
- package/src/block/block_hash.ts +21 -14
- package/src/block/block_parameter.ts +72 -4
- package/src/block/index.ts +0 -1
- package/src/block/l2_block_info.ts +8 -6
- package/src/block/l2_block_source.ts +216 -147
- package/src/block/l2_block_stream/interfaces.ts +42 -6
- package/src/block/l2_block_stream/l2_block_stream.ts +60 -31
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +17 -41
- package/src/block/l2_block_stream/l2_tips_store_base.ts +64 -60
- package/src/block/proposal/attestations_and_signers.ts +32 -17
- package/src/block/test/l2_tips_store_test_suite.ts +198 -18
- package/src/checkpoint/checkpoint.ts +13 -3
- package/src/checkpoint/checkpoint_data.ts +44 -4
- package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
- package/src/checkpoint/digest.ts +28 -0
- package/src/checkpoint/index.ts +3 -0
- package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
- package/src/checkpoint/validate.ts +16 -6
- package/src/config/chain-config.ts +13 -16
- package/src/config/index.ts +1 -1
- package/src/config/network-consensus-config.ts +302 -0
- package/src/config/sequencer-config.ts +68 -9
- package/src/contract/complete_address.ts +7 -3
- package/src/contract/contract_address.ts +6 -6
- package/src/contract/contract_instance.ts +11 -2
- package/src/contract/index.ts +0 -2
- 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 +11 -0
- package/src/contract/private_function.ts +3 -1
- package/src/database-version/version_manager.ts +17 -0
- package/src/deserialization/index.ts +35 -2
- package/src/epoch-helpers/index.ts +24 -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/gas/README.md +123 -0
- package/src/gas/fee_math.ts +120 -0
- package/src/gas/gas.ts +8 -3
- package/src/gas/gas_fees.ts +26 -13
- package/src/gas/gas_settings.ts +63 -15
- package/src/gas/index.ts +2 -0
- package/src/gas/tx_gas_limits.ts +123 -0
- package/src/ha-signing/config.ts +14 -18
- package/src/ha-signing/index.ts +3 -1
- package/src/ha-signing/local_config.ts +2 -2
- package/src/ha-signing/types.ts +48 -34
- package/src/hash/hash.ts +34 -2
- package/src/interfaces/api_limit.ts +1 -1
- package/src/interfaces/archiver.ts +88 -93
- package/src/interfaces/aztec-node-admin.ts +36 -21
- package/src/interfaces/aztec-node-debug.ts +55 -0
- package/src/interfaces/aztec-node.ts +389 -259
- package/src/interfaces/block-builder.ts +4 -0
- 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 +8 -1
- package/src/interfaces/configs.ts +64 -7
- package/src/interfaces/get_tx_by_hash_options.ts +14 -0
- package/src/interfaces/l1_publish_info.ts +40 -0
- package/src/interfaces/l2_logs_source.ts +13 -42
- package/src/interfaces/merkle_tree_operations.ts +3 -2
- package/src/interfaces/p2p-bootstrap.ts +2 -2
- package/src/interfaces/p2p.ts +59 -19
- package/src/interfaces/private_kernel_prover.ts +88 -0
- package/src/interfaces/prover-agent.ts +1 -1
- package/src/interfaces/prover-client.ts +3 -8
- package/src/interfaces/prover-node.ts +19 -12
- 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 +17 -10
- package/src/interfaces/tx_provider.ts +6 -0
- package/src/interfaces/validator.ts +45 -15
- package/src/interfaces/world_state.ts +1 -1
- package/src/kernel/hints/key_validation_request.ts +18 -16
- package/src/kernel/index.ts +4 -0
- package/src/kernel/log_hash.ts +29 -9
- 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_tail_circuit_public_inputs.ts +29 -14
- 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 +10 -4
- package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
- package/src/kernel/public_call_request.ts +22 -7
- package/src/keys/derivation.ts +21 -9
- package/src/keys/public_key.ts +26 -2
- package/src/keys/public_keys.ts +124 -110
- package/src/kv-store/config.ts +3 -10
- 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/index.ts +6 -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/query_all_logs_by_tags.ts +98 -0
- package/src/logs/shared_secret_derivation.ts +21 -10
- package/src/logs/siloed_tag.ts +20 -11
- package/src/logs/tag.ts +8 -8
- package/src/logs/tagging_index_range.ts +4 -10
- 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/l2_to_l1_membership.ts +108 -19
- package/src/messaging/l2_to_l1_message.ts +29 -9
- package/src/noir/index.ts +2 -0
- package/src/note/note_dao.ts +1 -4
- package/src/p2p/block_proposal.ts +111 -36
- package/src/p2p/checkpoint_attestation.ts +27 -31
- package/src/p2p/checkpoint_proposal.ts +128 -73
- package/src/p2p/consensus_payload.ts +59 -28
- package/src/p2p/gossipable.ts +4 -4
- package/src/p2p/signature_utils.ts +110 -25
- package/src/p2p/signed_txs.ts +46 -28
- 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_rollup_public_inputs.ts +10 -0
- package/src/schemas/schemas.ts +6 -1
- package/src/slashing/helpers.ts +13 -9
- package/src/slashing/index.ts +1 -2
- package/src/slashing/serialization.ts +1 -81
- package/src/slashing/types.ts +24 -49
- package/src/slashing/{tally.ts → votes.ts} +1 -1
- package/src/stats/stats.ts +4 -0
- package/src/tests/factories.ts +109 -111
- package/src/tests/mocks.ts +72 -71
- package/src/timetable/README.md +609 -0
- package/src/timetable/budgets.ts +87 -0
- package/src/timetable/build_proposer_timetable.ts +42 -0
- package/src/timetable/consensus_timetable.ts +126 -0
- package/src/timetable/index.ts +4 -66
- package/src/timetable/proposer_timetable.ts +190 -0
- package/src/timetable/timetable-example.svg +108 -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/tx/block_header.ts +10 -5
- 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 +10 -18
- package/src/tx/hashed_values.ts +8 -3
- package/src/tx/index.ts +1 -0
- package/src/tx/indexed_tx_effect.ts +18 -6
- package/src/tx/partial_state_reference.ts +8 -3
- package/src/tx/profiling.ts +4 -4
- package/src/tx/proven_tx.ts +6 -0
- package/src/tx/public_call_request_with_calldata.ts +8 -3
- package/src/tx/simulated_tx.ts +22 -21
- package/src/tx/state_reference.ts +9 -4
- package/src/tx/tree_snapshots.ts +9 -4
- package/src/tx/tx.ts +60 -24
- 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 +265 -85
- package/src/tx/validator/error_texts.ts +10 -1
- package/src/tx/validator/tx_validator.ts +1 -5
- package/src/types/shared.ts +8 -13
- package/src/update-checker/dev_version.ts +2 -0
- package/src/update-checker/index.ts +1 -0
- package/src/update-checker/package_version.ts +10 -23
- package/src/validators/schemas.ts +6 -4
- package/src/validators/types.ts +21 -2
- package/src/versioning/versioning.ts +1 -1
- 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 -1
- 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/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/config/pipelining-config.d.ts +0 -19
- package/dest/config/pipelining-config.d.ts.map +0 -1
- package/dest/config/pipelining-config.js +0 -18
- 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/interfaces/epoch-prover.d.ts +0 -57
- package/dest/interfaces/epoch-prover.d.ts.map +0 -1
- package/dest/interfaces/epoch-prover.js +0 -1
- package/dest/interfaces/get_logs_response.d.ts +0 -97
- package/dest/interfaces/get_logs_response.d.ts.map +0 -1
- package/dest/interfaces/get_logs_response.js +0 -12
- 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 -158
- 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_directional_app_tagging_secret.d.ts +0 -47
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
- package/dest/logs/extended_directional_app_tagging_secret.js +0 -72
- package/dest/logs/extended_public_log.d.ts +0 -106
- 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 -25
- package/dest/logs/log_filter.d.ts.map +0 -1
- package/dest/logs/log_filter.js +0 -12
- package/dest/logs/log_id.d.ts +0 -85
- package/dest/logs/log_id.d.ts.map +0 -1
- package/dest/logs/log_id.js +0 -94
- package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
- package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
- package/dest/logs/tx_scoped_l2_log.js +0 -77
- package/dest/slashing/empire.d.ts +0 -31
- package/dest/slashing/empire.d.ts.map +0 -1
- package/dest/slashing/empire.js +0 -87
- package/src/abi/mocked_keys.ts +0 -2
- package/src/block/checkpointed_l2_block.ts +0 -70
- package/src/config/pipelining-config.ts +0 -31
- package/src/contract/private_function_membership_proof.ts +0 -167
- package/src/contract/utility_function_membership_proof.ts +0 -118
- package/src/interfaces/epoch-prover.ts +0 -72
- package/src/interfaces/get_logs_response.ts +0 -35
- package/src/l1-contracts/slash_factory.ts +0 -180
- package/src/logs/extended_contract_class_log.ts +0 -87
- package/src/logs/extended_directional_app_tagging_secret.ts +0 -87
- package/src/logs/extended_public_log.ts +0 -94
- package/src/logs/log_filter.ts +0 -36
- package/src/logs/log_id.ts +0 -125
- package/src/logs/tx_scoped_l2_log.ts +0 -114
- package/src/slashing/empire.ts +0 -104
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import { computeRootFromSiblingPath } from '@aztec/foundation/trees';
|
|
4
|
-
|
|
5
|
-
import { type ContractArtifact, FunctionSelector, FunctionType } from '../abi/index.js';
|
|
6
|
-
import {
|
|
7
|
-
computeArtifactFunctionTree,
|
|
8
|
-
computeArtifactHash,
|
|
9
|
-
computeArtifactHashPreimage,
|
|
10
|
-
computeFunctionArtifactHash,
|
|
11
|
-
computeFunctionMetadataHash,
|
|
12
|
-
getArtifactMerkleTreeHasher,
|
|
13
|
-
} from './artifact_hash.js';
|
|
14
|
-
import type {
|
|
15
|
-
ContractClassPublic,
|
|
16
|
-
UtilityFunctionMembershipProof,
|
|
17
|
-
UtilityFunctionWithMembershipProof,
|
|
18
|
-
} from './interfaces/index.js';
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Creates a membership proof for a utility function in a contract class, to be verified via `isValidUtilityFunctionMembershipProof`.
|
|
22
|
-
* @param selector - Selector of the function to create the proof for.
|
|
23
|
-
* @param artifact - Artifact of the contract class where the function is defined.
|
|
24
|
-
*/
|
|
25
|
-
export async function createUtilityFunctionMembershipProof(
|
|
26
|
-
selector: FunctionSelector,
|
|
27
|
-
artifact: ContractArtifact,
|
|
28
|
-
): Promise<UtilityFunctionMembershipProof> {
|
|
29
|
-
const log = createLogger('circuits:function_membership_proof');
|
|
30
|
-
|
|
31
|
-
// Locate function artifact
|
|
32
|
-
const utilityFunctions = artifact.functions.filter(fn => fn.functionType === FunctionType.UTILITY);
|
|
33
|
-
const utilityFunctionsAndSelectors = await Promise.all(
|
|
34
|
-
utilityFunctions.map(async fn => ({ fn, selector: await FunctionSelector.fromNameAndParameters(fn) })),
|
|
35
|
-
);
|
|
36
|
-
const fn = utilityFunctionsAndSelectors.find(fnAndSelector => selector.equals(fnAndSelector.selector))?.fn;
|
|
37
|
-
if (!fn) {
|
|
38
|
-
throw new Error(`Utility function with selector ${selector.toString()} not found`);
|
|
39
|
-
}
|
|
40
|
-
// Compute preimage for the artifact hash
|
|
41
|
-
const { privateFunctionRoot: privateFunctionsArtifactTreeRoot, metadataHash: artifactMetadataHash } =
|
|
42
|
-
await computeArtifactHashPreimage(artifact);
|
|
43
|
-
|
|
44
|
-
// Compute the sibling path for the "artifact tree"
|
|
45
|
-
const functionMetadataHash = computeFunctionMetadataHash(fn);
|
|
46
|
-
const functionArtifactHash = await computeFunctionArtifactHash({ ...fn, functionMetadataHash });
|
|
47
|
-
const artifactTree = (await computeArtifactFunctionTree(artifact, FunctionType.UTILITY))!;
|
|
48
|
-
const artifactTreeLeafIndex = artifactTree.getIndex(functionArtifactHash.toBuffer());
|
|
49
|
-
const artifactTreeSiblingPath = artifactTree.getSiblingPath(artifactTreeLeafIndex).map(Fr.fromBuffer);
|
|
50
|
-
|
|
51
|
-
log.debug(`Computed proof for utility function with selector ${selector.toString()}`, {
|
|
52
|
-
functionArtifactHash,
|
|
53
|
-
functionMetadataHash,
|
|
54
|
-
artifactMetadataHash,
|
|
55
|
-
artifactFunctionTreeSiblingPath: artifactTreeSiblingPath.map(fr => fr.toString()).join(','),
|
|
56
|
-
privateFunctionsArtifactTreeRoot,
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
return {
|
|
60
|
-
artifactTreeSiblingPath,
|
|
61
|
-
artifactTreeLeafIndex,
|
|
62
|
-
artifactMetadataHash,
|
|
63
|
-
functionMetadataHash,
|
|
64
|
-
privateFunctionsArtifactTreeRoot,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Verifies that a utility function with a membership proof as emitted by the ClassRegistry contract is valid,
|
|
70
|
-
* as defined in the protocol specs at contract-deployment/classes:
|
|
71
|
-
*
|
|
72
|
-
* ```
|
|
73
|
-
* // Load contract class from local db
|
|
74
|
-
* contract_class = db.get_contract_class(contract_class_id)
|
|
75
|
-
*
|
|
76
|
-
* // Compute artifact leaf and assert it belongs to the artifact
|
|
77
|
-
* artifact_function_leaf = sha256(selector, metadata_hash, sha256(bytecode))
|
|
78
|
-
* computed_artifact_utility_function_tree_root = compute_root(artifact_function_leaf, artifact_function_tree_sibling_path, artifact_function_tree_leaf_index)
|
|
79
|
-
* computed_artifact_hash = sha256(private_functions_artifact_tree_root, computed_artifact_utility_function_tree_root, artifact_metadata_hash)
|
|
80
|
-
* assert computed_artifact_hash == contract_class.artifact_hash
|
|
81
|
-
* ```
|
|
82
|
-
* @param fn - Function to check membership proof for.
|
|
83
|
-
* @param contractClass - In which contract class the function is expected to be.
|
|
84
|
-
*/
|
|
85
|
-
export async function isValidUtilityFunctionMembershipProof(
|
|
86
|
-
fn: UtilityFunctionWithMembershipProof,
|
|
87
|
-
contractClass: Pick<ContractClassPublic, 'artifactHash'>,
|
|
88
|
-
) {
|
|
89
|
-
const log = createLogger('circuits:function_membership_proof');
|
|
90
|
-
|
|
91
|
-
const functionArtifactHash = await computeFunctionArtifactHash(fn);
|
|
92
|
-
const computedArtifactFunctionTreeRootBuffer = await computeRootFromSiblingPath(
|
|
93
|
-
functionArtifactHash.toBuffer(),
|
|
94
|
-
fn.artifactTreeSiblingPath.map(fr => fr.toBuffer()),
|
|
95
|
-
fn.artifactTreeLeafIndex,
|
|
96
|
-
getArtifactMerkleTreeHasher(),
|
|
97
|
-
);
|
|
98
|
-
const computedArtifactFunctionTreeRoot = Fr.fromBuffer(computedArtifactFunctionTreeRootBuffer);
|
|
99
|
-
const computedArtifactHash = await computeArtifactHash({
|
|
100
|
-
privateFunctionRoot: fn.privateFunctionsArtifactTreeRoot,
|
|
101
|
-
utilityFunctionRoot: computedArtifactFunctionTreeRoot,
|
|
102
|
-
metadataHash: fn.artifactMetadataHash,
|
|
103
|
-
});
|
|
104
|
-
if (!contractClass.artifactHash.equals(computedArtifactHash)) {
|
|
105
|
-
log.debug(`Artifact hash mismatch`, {
|
|
106
|
-
expected: contractClass.artifactHash,
|
|
107
|
-
computedArtifactHash,
|
|
108
|
-
computedFunctionArtifactHash: functionArtifactHash,
|
|
109
|
-
computedArtifactFunctionTreeRoot,
|
|
110
|
-
privateFunctionsArtifactTreeRoot: fn.privateFunctionsArtifactTreeRoot,
|
|
111
|
-
metadataHash: fn.artifactMetadataHash,
|
|
112
|
-
artifactFunctionTreeSiblingPath: fn.artifactTreeSiblingPath.map(fr => fr.toString()).join(','),
|
|
113
|
-
});
|
|
114
|
-
return false;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { BatchedBlob, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
|
|
2
|
-
import type { BlockNumber, EpochNumber } from '@aztec/foundation/branded-types';
|
|
3
|
-
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
-
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
|
-
|
|
6
|
-
import type { Proof } from '../proofs/proof.js';
|
|
7
|
-
import type { CheckpointConstantData } from '../rollup/checkpoint_constant_data.js';
|
|
8
|
-
import type { RootRollupPublicInputs } from '../rollup/root_rollup_public_inputs.js';
|
|
9
|
-
import type { BlockHeader } from '../tx/block_header.js';
|
|
10
|
-
import type { Tx } from '../tx/tx.js';
|
|
11
|
-
import type { UInt64 } from '../types/index.js';
|
|
12
|
-
import type { IBlockFactory } from './block-builder.js';
|
|
13
|
-
|
|
14
|
-
/** Coordinates the proving of an entire epoch. */
|
|
15
|
-
export interface EpochProver extends Omit<IBlockFactory, 'setBlockCompleted' | 'startNewBlock'> {
|
|
16
|
-
/**
|
|
17
|
-
* Starts a new epoch. Must be the first method to be called.
|
|
18
|
-
* @param epochNumber - The epoch number.
|
|
19
|
-
* @param totalNumCheckpoints - The total number of checkpoints expected in the epoch (must be at least one).
|
|
20
|
-
* @param finalBlobBatchingChallenges - The final blob batching challenges for the epoch.
|
|
21
|
-
**/
|
|
22
|
-
startNewEpoch(
|
|
23
|
-
epochNumber: EpochNumber,
|
|
24
|
-
totalNumCheckpoints: number,
|
|
25
|
-
finalBlobBatchingChallenges: FinalBlobBatchingChallenges,
|
|
26
|
-
): void;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Starts a new checkpoint.
|
|
30
|
-
* @param checkpointIndex - The index of the checkpoint in the epoch.
|
|
31
|
-
* @param constants - The constants for this checkpoint.
|
|
32
|
-
* @param l1ToL2Messages - The set of L1 to L2 messages to be included in this checkpoint.
|
|
33
|
-
* @param totalNumBlocks - The total number of blocks expected in the checkpoint (must be at least one).
|
|
34
|
-
* @param headerOfLastBlockInPreviousCheckpoint - The header of the last block in the previous checkpoint.
|
|
35
|
-
*/
|
|
36
|
-
startNewCheckpoint(
|
|
37
|
-
checkpointIndex: number,
|
|
38
|
-
constants: CheckpointConstantData,
|
|
39
|
-
l1ToL2Messages: Fr[],
|
|
40
|
-
totalNumBlocks: number,
|
|
41
|
-
headerOfLastBlockInPreviousCheckpoint: BlockHeader,
|
|
42
|
-
): Promise<void>;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Starts a new block.
|
|
46
|
-
* @param blockNumber - The block number.
|
|
47
|
-
* @param timestamp - The timestamp of the block.
|
|
48
|
-
* @param totalNumTxs - The total number of txs in the block.
|
|
49
|
-
*/
|
|
50
|
-
startNewBlock(blockNumber: BlockNumber, timestamp: UInt64, totalNumTxs: number): Promise<void>;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Kickstarts chonk verifier circuits for the specified txs. These will be used during epoch proving.
|
|
54
|
-
* Note that if the chonk verifier circuits are not started this way, they will be started nonetheless after processing.
|
|
55
|
-
*/
|
|
56
|
-
startChonkVerifierCircuits(txs: Tx[]): Promise<void>;
|
|
57
|
-
|
|
58
|
-
/** Returns the block. */
|
|
59
|
-
setBlockCompleted(blockNumber: BlockNumber, expectedBlockHeader?: BlockHeader): Promise<BlockHeader>;
|
|
60
|
-
|
|
61
|
-
/** Pads the epoch with empty block roots if needed and blocks until proven. Throws if proving has failed. */
|
|
62
|
-
finalizeEpoch(): Promise<{ publicInputs: RootRollupPublicInputs; proof: Proof; batchedBlobInputs: BatchedBlob }>;
|
|
63
|
-
|
|
64
|
-
/** Cancels all proving jobs. */
|
|
65
|
-
cancel(): void;
|
|
66
|
-
|
|
67
|
-
/** Returns an identifier for the prover or zero if not set. */
|
|
68
|
-
getProverId(): EthAddress;
|
|
69
|
-
|
|
70
|
-
/** Called when no longer required, cleans up internal resources */
|
|
71
|
-
stop(): Promise<void>;
|
|
72
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
|
|
3
|
-
import { ExtendedContractClassLog } from '../logs/extended_contract_class_log.js';
|
|
4
|
-
import { ExtendedPublicLog } from '../logs/extended_public_log.js';
|
|
5
|
-
import { zodFor } from '../schemas/index.js';
|
|
6
|
-
|
|
7
|
-
/** Response for the getContractClassLogs archiver call. */
|
|
8
|
-
export type GetContractClassLogsResponse = {
|
|
9
|
-
/** An array of ExtendedContractClassLog elements. */
|
|
10
|
-
logs: ExtendedContractClassLog[];
|
|
11
|
-
/** Indicates if a limit has been reached. */
|
|
12
|
-
maxLogsHit: boolean;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const GetContractClassLogsResponseSchema = zodFor<GetContractClassLogsResponse>()(
|
|
16
|
-
z.object({
|
|
17
|
-
logs: z.array(ExtendedContractClassLog.schema),
|
|
18
|
-
maxLogsHit: z.boolean(),
|
|
19
|
-
}),
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
/** Response for the getPublicLogs archiver call. */
|
|
23
|
-
export type GetPublicLogsResponse = {
|
|
24
|
-
/** An array of ExtendedPublicLog elements. */
|
|
25
|
-
logs: ExtendedPublicLog[];
|
|
26
|
-
/** Indicates if a limit has been reached. */
|
|
27
|
-
maxLogsHit: boolean;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const GetPublicLogsResponseSchema = zodFor<GetPublicLogsResponse>()(
|
|
31
|
-
z.object({
|
|
32
|
-
logs: z.array(ExtendedPublicLog.schema),
|
|
33
|
-
maxLogsHit: z.boolean(),
|
|
34
|
-
}),
|
|
35
|
-
);
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import type { L1TxRequest } from '@aztec/ethereum/l1-tx-utils';
|
|
2
|
-
import type { ViemClient } from '@aztec/ethereum/types';
|
|
3
|
-
import { tryExtractEvent } from '@aztec/ethereum/utils';
|
|
4
|
-
import { maxBigint } from '@aztec/foundation/bigint';
|
|
5
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
7
|
-
import { SlashFactoryAbi } from '@aztec/l1-artifacts/SlashFactoryAbi';
|
|
8
|
-
|
|
9
|
-
import { type GetContractReturnType, type Hex, type Log, encodeFunctionData, getContract } from 'viem';
|
|
10
|
-
|
|
11
|
-
import type { L1RollupConstants } from '../epoch-helpers/index.js';
|
|
12
|
-
import {
|
|
13
|
-
OffenseToBigInt,
|
|
14
|
-
type SlashPayload,
|
|
15
|
-
type ValidatorSlash,
|
|
16
|
-
type ValidatorSlashOffense,
|
|
17
|
-
bigIntToOffense,
|
|
18
|
-
} from '../slashing/index.js';
|
|
19
|
-
|
|
20
|
-
export class SlashFactoryContract {
|
|
21
|
-
private readonly logger = createLogger('contracts:slash_factory');
|
|
22
|
-
private readonly contract: GetContractReturnType<typeof SlashFactoryAbi, ViemClient>;
|
|
23
|
-
|
|
24
|
-
constructor(
|
|
25
|
-
public readonly client: ViemClient,
|
|
26
|
-
address: Hex | EthAddress,
|
|
27
|
-
) {
|
|
28
|
-
this.contract = getContract({
|
|
29
|
-
address: typeof address === 'string' ? address : address.toString(),
|
|
30
|
-
abi: SlashFactoryAbi,
|
|
31
|
-
client,
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
public get address() {
|
|
36
|
-
return EthAddress.fromString(this.contract.address);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public buildCreatePayloadRequest(slashes: ValidatorSlash[]): L1TxRequest {
|
|
40
|
-
const sorted = this.sortSlashes(slashes);
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
to: this.contract.address,
|
|
44
|
-
abi: SlashFactoryAbi,
|
|
45
|
-
data: encodeFunctionData({
|
|
46
|
-
abi: SlashFactoryAbi,
|
|
47
|
-
functionName: 'createSlashPayload',
|
|
48
|
-
args: [
|
|
49
|
-
sorted.map(d => d.validator.toString()),
|
|
50
|
-
sorted.map(d => d.amount),
|
|
51
|
-
sorted.map(d => d.offenses.map(packValidatorSlashOffense)),
|
|
52
|
-
],
|
|
53
|
-
}),
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/** Tries to extract a SlashPayloadCreated event from the given logs. */
|
|
58
|
-
public tryExtractSlashPayloadCreatedEvent(logs: Log[]) {
|
|
59
|
-
return tryExtractEvent(logs, this.address.toString(), SlashFactoryAbi, 'SlashPayloadCreated');
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
public async getSlashPayloadCreatedEvents(): Promise<SlashPayload[]> {
|
|
63
|
-
const events = await this.contract.getEvents.SlashPayloadCreated();
|
|
64
|
-
return Promise.all(
|
|
65
|
-
events.map(async event => {
|
|
66
|
-
const { validators, amounts, offenses } = event.args;
|
|
67
|
-
const slashes: ValidatorSlash[] = validators!.map((validator, i) => ({
|
|
68
|
-
validator: EthAddress.fromString(validator),
|
|
69
|
-
amount: amounts![i],
|
|
70
|
-
offenses: offenses![i].map(unpackValidatorSlashOffense),
|
|
71
|
-
}));
|
|
72
|
-
|
|
73
|
-
const block = await this.client.getBlock({ blockNumber: event.blockNumber, includeTransactions: false });
|
|
74
|
-
return { address: EthAddress.fromString(event.args.payloadAddress!), slashes, timestamp: block.timestamp };
|
|
75
|
-
}),
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Searches for a slash payload in the events emitted by the contract.
|
|
81
|
-
* This method cannot query for historical payload events, it queries for payloads that have not yet expired.
|
|
82
|
-
* @param payloadAddress The address of the payload to search for.
|
|
83
|
-
* @param constants The L1 rollup constants needed for time calculations.
|
|
84
|
-
*/
|
|
85
|
-
public async getSlashPayloadFromEvents(
|
|
86
|
-
payloadAddress: EthAddress,
|
|
87
|
-
settings: {
|
|
88
|
-
logsBatchSize?: number;
|
|
89
|
-
slashingRoundSize: number;
|
|
90
|
-
slashingPayloadLifetimeInRounds: number;
|
|
91
|
-
} & Pick<L1RollupConstants, 'slotDuration' | 'ethereumSlotDuration'>,
|
|
92
|
-
): Promise<Omit<SlashPayload, 'votes'> | undefined> {
|
|
93
|
-
// We query for the log where the payload was emitted walking backwards until we go past payload expiration time
|
|
94
|
-
// Note that all log queries require a block range, and RPC providers cap the max range (eg quicknode is 10k blocks).
|
|
95
|
-
const { slashingRoundSize, slashingPayloadLifetimeInRounds, slotDuration, ethereumSlotDuration } = settings;
|
|
96
|
-
const currentBlockNumber = await this.client.getBlockNumber({ cacheTime: 0 });
|
|
97
|
-
|
|
98
|
-
// Why the +1 below? Just for good measure. Better err on the safe side.
|
|
99
|
-
const earliestBlockNumber = maxBigint(
|
|
100
|
-
0n,
|
|
101
|
-
currentBlockNumber -
|
|
102
|
-
((BigInt(slashingPayloadLifetimeInRounds) + 1n) * BigInt(slashingRoundSize) * BigInt(slotDuration)) /
|
|
103
|
-
BigInt(ethereumSlotDuration),
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
this.logger.trace(
|
|
107
|
-
`Starting search for slash payload ${payloadAddress} from block ${currentBlockNumber} with earliest block ${earliestBlockNumber}`,
|
|
108
|
-
);
|
|
109
|
-
const batchSize = BigInt(settings.logsBatchSize ?? 10000);
|
|
110
|
-
let toBlock = currentBlockNumber;
|
|
111
|
-
|
|
112
|
-
do {
|
|
113
|
-
const fromBlock = maxBigint(earliestBlockNumber, toBlock - batchSize);
|
|
114
|
-
this.logger.trace(`Searching for slash payload ${payloadAddress} in blocks ${fromBlock} to ${toBlock}`);
|
|
115
|
-
const logs = await this.contract.getEvents.SlashPayloadCreated(
|
|
116
|
-
{ payloadAddress: payloadAddress.toString() },
|
|
117
|
-
{ fromBlock, toBlock, strict: true },
|
|
118
|
-
);
|
|
119
|
-
|
|
120
|
-
// We found the payload, return it
|
|
121
|
-
if (logs.length > 0) {
|
|
122
|
-
const log = logs[0];
|
|
123
|
-
const { validators, amounts, offenses } = log.args;
|
|
124
|
-
|
|
125
|
-
// Convert the data to our internal types
|
|
126
|
-
const slashes: ValidatorSlash[] = validators!.map((validator, i) => ({
|
|
127
|
-
validator: EthAddress.fromString(validator),
|
|
128
|
-
amount: amounts![i],
|
|
129
|
-
offenses: offenses![i].map(unpackValidatorSlashOffense),
|
|
130
|
-
}));
|
|
131
|
-
|
|
132
|
-
// Get the timestamp from the block
|
|
133
|
-
const block = await this.client.getBlock({ blockNumber: log.blockNumber, includeTransactions: false });
|
|
134
|
-
|
|
135
|
-
return { address: payloadAddress, slashes, timestamp: block.timestamp };
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// If not found, we go back one batch
|
|
139
|
-
toBlock -= batchSize;
|
|
140
|
-
} while (toBlock > earliestBlockNumber);
|
|
141
|
-
|
|
142
|
-
return undefined;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
public async getAddressAndIsDeployed(
|
|
146
|
-
slashes: ValidatorSlash[],
|
|
147
|
-
): Promise<{ address: EthAddress; salt: Hex; isDeployed: boolean }> {
|
|
148
|
-
const sortedSlashes = this.sortSlashes(slashes);
|
|
149
|
-
const [address, salt, isDeployed] = await this.contract.read.getAddressAndIsDeployed([
|
|
150
|
-
sortedSlashes.map(s => s.validator.toString()),
|
|
151
|
-
sortedSlashes.map(s => s.amount),
|
|
152
|
-
sortedSlashes.map(s => s.offenses.map(packValidatorSlashOffense)),
|
|
153
|
-
]);
|
|
154
|
-
return { address: EthAddress.fromString(address), salt, isDeployed };
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
private sortSlashes(slashes: ValidatorSlash[]): ValidatorSlash[] {
|
|
158
|
-
const offenseSorter = (a: ValidatorSlashOffense, b: ValidatorSlashOffense) => {
|
|
159
|
-
return a.epochOrSlot === b.epochOrSlot ? a.offenseType - b.offenseType : Number(a.epochOrSlot - b.epochOrSlot);
|
|
160
|
-
};
|
|
161
|
-
return [...slashes]
|
|
162
|
-
.map(slash => ({ ...slash, offenses: [...slash.offenses].sort(offenseSorter) }))
|
|
163
|
-
.sort((a, b) => a.validator.toString().localeCompare(b.validator.toString()));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
export function packValidatorSlashOffense(offense: ValidatorSlashOffense): bigint {
|
|
168
|
-
const offenseId = OffenseToBigInt[offense.offenseType];
|
|
169
|
-
if (offenseId > (1 << 8) - 1) {
|
|
170
|
-
throw new Error(`Offense type ${offense.offenseType} cannot be packed into 8 bits`);
|
|
171
|
-
}
|
|
172
|
-
return (offenseId << 120n) + offense.epochOrSlot;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
export function unpackValidatorSlashOffense(packed: bigint): ValidatorSlashOffense {
|
|
176
|
-
const offenseId = (packed >> 120n) & 0xffn;
|
|
177
|
-
const epochOrSlot = packed & ((1n << 120n) - 1n);
|
|
178
|
-
const offenseType = bigIntToOffense(offenseId);
|
|
179
|
-
return { epochOrSlot, offenseType };
|
|
180
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import type { ZodFor } from '@aztec/foundation/schemas';
|
|
2
|
-
import { BufferReader } from '@aztec/foundation/serialize';
|
|
3
|
-
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
4
|
-
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
|
-
|
|
6
|
-
import isEqual from 'lodash.isequal';
|
|
7
|
-
import { z } from 'zod';
|
|
8
|
-
|
|
9
|
-
import { ContractClassLog } from './contract_class_log.js';
|
|
10
|
-
import { LogId } from './log_id.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Represents an individual contract class log entry extended with info about the block and tx it was emitted in.
|
|
14
|
-
*/
|
|
15
|
-
export class ExtendedContractClassLog {
|
|
16
|
-
constructor(
|
|
17
|
-
/** Globally unique id of the log. */
|
|
18
|
-
public readonly id: LogId,
|
|
19
|
-
/** The data contents of the log. */
|
|
20
|
-
public readonly log: ContractClassLog,
|
|
21
|
-
) {}
|
|
22
|
-
|
|
23
|
-
static async random() {
|
|
24
|
-
return new ExtendedContractClassLog(LogId.random(), await ContractClassLog.random());
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
static get schema(): ZodFor<ExtendedContractClassLog> {
|
|
28
|
-
return z
|
|
29
|
-
.object({
|
|
30
|
-
id: LogId.schema,
|
|
31
|
-
log: ContractClassLog.schema,
|
|
32
|
-
})
|
|
33
|
-
.transform(ExtendedContractClassLog.from);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
static from(fields: FieldsOf<ExtendedContractClassLog>) {
|
|
37
|
-
return new ExtendedContractClassLog(fields.id, fields.log);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Serializes log to a buffer.
|
|
42
|
-
* @returns A buffer containing the serialized log.
|
|
43
|
-
*/
|
|
44
|
-
public toBuffer(): Buffer {
|
|
45
|
-
return Buffer.concat([this.id.toBuffer(), this.log.toBuffer()]);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Serializes log to a string.
|
|
50
|
-
* @returns A string containing the serialized log.
|
|
51
|
-
*/
|
|
52
|
-
public toString(): string {
|
|
53
|
-
return bufferToHex(this.toBuffer());
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Checks if two ExtendedContractClassLog objects are equal.
|
|
58
|
-
* @param other - Another ExtendedContractClassLog object to compare with.
|
|
59
|
-
* @returns True if the two objects are equal, false otherwise.
|
|
60
|
-
*/
|
|
61
|
-
public equals(other: ExtendedContractClassLog): boolean {
|
|
62
|
-
return isEqual(this, other);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Deserializes log from a buffer.
|
|
67
|
-
* @param buffer - The buffer or buffer reader containing the log.
|
|
68
|
-
* @returns Deserialized instance of `Log`.
|
|
69
|
-
*/
|
|
70
|
-
public static fromBuffer(buffer: Buffer | BufferReader): ExtendedContractClassLog {
|
|
71
|
-
const reader = BufferReader.asReader(buffer);
|
|
72
|
-
|
|
73
|
-
const logId = LogId.fromBuffer(reader);
|
|
74
|
-
const log = ContractClassLog.fromBuffer(reader);
|
|
75
|
-
|
|
76
|
-
return new ExtendedContractClassLog(logId, log);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Deserializes `ExtendedContractClassLog` object from a hex string representation.
|
|
81
|
-
* @param data - A hex string representation of the log.
|
|
82
|
-
* @returns An `ExtendedContractClassLog` object.
|
|
83
|
-
*/
|
|
84
|
-
public static fromString(data: string): ExtendedContractClassLog {
|
|
85
|
-
return ExtendedContractClassLog.fromBuffer(hexToBuffer(data));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { Grumpkin } from '@aztec/foundation/crypto/grumpkin';
|
|
2
|
-
import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
3
|
-
import { type Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
-
import type { Point } from '@aztec/foundation/curves/grumpkin';
|
|
5
|
-
|
|
6
|
-
import { z } from 'zod';
|
|
7
|
-
|
|
8
|
-
import { AztecAddress } from '../aztec-address/index.js';
|
|
9
|
-
import type { CompleteAddress } from '../contract/complete_address.js';
|
|
10
|
-
import { computeAddressSecret, computePreaddress } from '../keys/derivation.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Extended directional application tagging secret used for log tagging.
|
|
14
|
-
*
|
|
15
|
-
* "Extended" because it bundles the directional app tagging secret with the app (contract) address. This bundling was
|
|
16
|
-
* done because where this type is used we commonly need access to both the secret and the address.
|
|
17
|
-
*
|
|
18
|
-
* "Directional" because the derived secret is bound to the recipient address: A→B differs from B→A even with the same
|
|
19
|
-
* participants and app.
|
|
20
|
-
*
|
|
21
|
-
* Note: It's a bit unfortunate that this type resides in `stdlib` as the rest of the tagging functionality resides in
|
|
22
|
-
* `pxe/src/tagging`. We need to use this type in `PreTag` that in turn is used by other types in stdlib hence there
|
|
23
|
-
* doesn't seem to be a good way around this.
|
|
24
|
-
*/
|
|
25
|
-
export class ExtendedDirectionalAppTaggingSecret {
|
|
26
|
-
private constructor(
|
|
27
|
-
public readonly secret: Fr,
|
|
28
|
-
public readonly app: AztecAddress,
|
|
29
|
-
) {}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Derives shared tagging secret and from that, the app address and recipient derives the directional app tagging
|
|
33
|
-
* secret.
|
|
34
|
-
*
|
|
35
|
-
* @param localAddress - The complete address of entity A in the shared tagging secret derivation scheme
|
|
36
|
-
* @param localIvsk - The incoming viewing secret key of entity A
|
|
37
|
-
* @param externalAddress - The address of entity B in the shared tagging secret derivation scheme
|
|
38
|
-
* @param app - Contract address to silo the secret to
|
|
39
|
-
* @param recipient - Recipient of the log. Defines the "direction of the secret".
|
|
40
|
-
* @returns The secret that can be used along with an index to compute a tag to be included in a log.
|
|
41
|
-
*/
|
|
42
|
-
static async compute(
|
|
43
|
-
localAddress: CompleteAddress,
|
|
44
|
-
localIvsk: Fq,
|
|
45
|
-
externalAddress: AztecAddress,
|
|
46
|
-
app: AztecAddress,
|
|
47
|
-
recipient: AztecAddress,
|
|
48
|
-
): Promise<ExtendedDirectionalAppTaggingSecret> {
|
|
49
|
-
const taggingSecretPoint = await computeSharedTaggingSecret(localAddress, localIvsk, externalAddress);
|
|
50
|
-
const appTaggingSecret = await poseidon2Hash([taggingSecretPoint.x, taggingSecretPoint.y, app]);
|
|
51
|
-
const directionalAppTaggingSecret = await poseidon2Hash([appTaggingSecret, recipient]);
|
|
52
|
-
|
|
53
|
-
return new ExtendedDirectionalAppTaggingSecret(directionalAppTaggingSecret, app);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
toString(): string {
|
|
57
|
-
return `${this.secret.toString()}:${this.app.toString()}`;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
static fromString(str: string): ExtendedDirectionalAppTaggingSecret {
|
|
61
|
-
const [secretStr, appStr] = str.split(':');
|
|
62
|
-
return new ExtendedDirectionalAppTaggingSecret(Fr.fromString(secretStr), AztecAddress.fromString(appStr));
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// Returns shared tagging secret computed with Diffie-Hellman key exchange.
|
|
67
|
-
async function computeSharedTaggingSecret(
|
|
68
|
-
localAddress: CompleteAddress,
|
|
69
|
-
localIvsk: Fq,
|
|
70
|
-
externalAddress: AztecAddress,
|
|
71
|
-
): Promise<Point> {
|
|
72
|
-
const knownPreaddress = await computePreaddress(await localAddress.publicKeys.hash(), localAddress.partialAddress);
|
|
73
|
-
// TODO: #8970 - Computation of address point from x coordinate might fail
|
|
74
|
-
const externalAddressPoint = await externalAddress.toAddressPoint();
|
|
75
|
-
// Given A (local complete address) -> B (external address) and h == preaddress
|
|
76
|
-
// Compute shared secret as S = (h_A + local_ivsk_A) * Addr_Point_B
|
|
77
|
-
|
|
78
|
-
// Beware! h_a + local_ivsk_a (also known as the address secret) can lead to an address point with a negative
|
|
79
|
-
// y-coordinate, since there's two possible candidates computeAddressSecret takes care of selecting the one that
|
|
80
|
-
// leads to a positive y-coordinate, which is the only valid address point
|
|
81
|
-
return Grumpkin.mul(externalAddressPoint, await computeAddressSecret(knownPreaddress, localIvsk));
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export const ExtendedDirectionalAppTaggingSecretSchema = z.object({
|
|
85
|
-
secret: Fr.schema,
|
|
86
|
-
app: AztecAddress.schema,
|
|
87
|
-
});
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { BufferReader } from '@aztec/foundation/serialize';
|
|
2
|
-
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
3
|
-
import type { FieldsOf } from '@aztec/foundation/types';
|
|
4
|
-
|
|
5
|
-
import isEqual from 'lodash.isequal';
|
|
6
|
-
import { z } from 'zod';
|
|
7
|
-
|
|
8
|
-
import { LogId } from './log_id.js';
|
|
9
|
-
import { PublicLog } from './public_log.js';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Represents an individual public log entry extended with info about the block and tx it was emitted in.
|
|
13
|
-
*/
|
|
14
|
-
export class ExtendedPublicLog {
|
|
15
|
-
constructor(
|
|
16
|
-
/** Globally unique id of the log. */
|
|
17
|
-
public readonly id: LogId,
|
|
18
|
-
/** The data contents of the log. */
|
|
19
|
-
public readonly log: PublicLog,
|
|
20
|
-
) {}
|
|
21
|
-
|
|
22
|
-
static async random() {
|
|
23
|
-
return new ExtendedPublicLog(LogId.random(), await PublicLog.random());
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
static get schema() {
|
|
27
|
-
return z
|
|
28
|
-
.object({
|
|
29
|
-
id: LogId.schema,
|
|
30
|
-
log: PublicLog.schema,
|
|
31
|
-
})
|
|
32
|
-
.transform(ExtendedPublicLog.from);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
static from(fields: FieldsOf<ExtendedPublicLog>) {
|
|
36
|
-
return new ExtendedPublicLog(fields.id, fields.log);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Serializes log to a buffer.
|
|
41
|
-
* @returns A buffer containing the serialized log.
|
|
42
|
-
*/
|
|
43
|
-
public toBuffer(): Buffer {
|
|
44
|
-
return Buffer.concat([this.id.toBuffer(), this.log.toBuffer()]);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Serializes log to a string.
|
|
49
|
-
* @returns A string containing the serialized log.
|
|
50
|
-
*/
|
|
51
|
-
public toString(): string {
|
|
52
|
-
return bufferToHex(this.toBuffer());
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Serializes log to a human readable string.
|
|
57
|
-
* @returns A human readable representation of the log.
|
|
58
|
-
*/
|
|
59
|
-
public toHumanReadable(): string {
|
|
60
|
-
return `${this.id.toHumanReadable()}, ${this.log.toHumanReadable()}`;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Checks if two ExtendedPublicLog objects are equal.
|
|
65
|
-
* @param other - Another ExtendedPublicLog object to compare with.
|
|
66
|
-
* @returns True if the two objects are equal, false otherwise.
|
|
67
|
-
*/
|
|
68
|
-
public equals(other: ExtendedPublicLog): boolean {
|
|
69
|
-
return isEqual(this, other);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Deserializes log from a buffer.
|
|
74
|
-
* @param buffer - The buffer or buffer reader containing the log.
|
|
75
|
-
* @returns Deserialized instance of `Log`.
|
|
76
|
-
*/
|
|
77
|
-
public static fromBuffer(buffer: Buffer | BufferReader): ExtendedPublicLog {
|
|
78
|
-
const reader = BufferReader.asReader(buffer);
|
|
79
|
-
|
|
80
|
-
const logId = LogId.fromBuffer(reader);
|
|
81
|
-
const log = PublicLog.fromBuffer(reader);
|
|
82
|
-
|
|
83
|
-
return new ExtendedPublicLog(logId, log);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Deserializes `ExtendedPublicLog` object from a hex string representation.
|
|
88
|
-
* @param data - A hex string representation of the log.
|
|
89
|
-
* @returns An `ExtendedPublicLog` object.
|
|
90
|
-
*/
|
|
91
|
-
public static fromString(data: string): ExtendedPublicLog {
|
|
92
|
-
return ExtendedPublicLog.fromBuffer(hexToBuffer(data));
|
|
93
|
-
}
|
|
94
|
-
}
|