@aztec/stdlib 0.0.1-commit.96bb3f7 → 0.0.1-commit.993d52e
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/decoder.d.ts +1 -1
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +1 -4
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +9 -5
- package/dest/abi/function_call.d.ts +47 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/abi/utils.d.ts +7 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +7 -0
- package/dest/auth_witness/auth_witness.d.ts +2 -1
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/avm/avm.d.ts +362 -362
- package/dest/avm/avm_accumulated_data.d.ts +30 -3
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
- package/dest/avm/avm_proving_request.d.ts +465 -465
- package/dest/avm/contract_storage_read.d.ts +13 -1
- package/dest/avm/contract_storage_read.d.ts.map +1 -1
- package/dest/avm/contract_storage_update_request.d.ts +13 -1
- package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
- package/dest/avm/public_data_read.d.ts +10 -1
- package/dest/avm/public_data_read.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.d.ts +10 -1
- package/dest/avm/public_data_update_request.d.ts.map +1 -1
- package/dest/avm/public_data_write.d.ts +7 -1
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.d.ts +4 -1
- package/dest/avm/public_inner_call_request.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +19 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +15 -5
- package/dest/block/block_data.d.ts +52 -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 +18 -14
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +22 -20
- package/dest/block/block_parameter.d.ts +4 -3
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -0
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +2 -1
- package/dest/block/checkpointed_l2_block.d.ts +20 -137
- package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
- package/dest/block/checkpointed_l2_block.js +7 -45
- package/dest/block/in_block.d.ts +9 -9
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/in_block.js +5 -5
- package/dest/block/index.d.ts +2 -3
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -2
- package/dest/block/l2_block.d.ts +56 -59
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +64 -110
- package/dest/block/l2_block_source.d.ts +84 -39
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +2 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +9 -6
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +6 -3
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +47 -34
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
- package/dest/block/l2_block_stream/l2_tips_store_base.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 +2 -7
- package/dest/block/validate_block_result.d.ts +1 -1
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +5 -4
- package/dest/checkpoint/checkpoint.d.ts +43 -19
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +37 -14
- package/dest/checkpoint/checkpoint_data.d.ts +120 -0
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_data.js +26 -0
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/published_checkpoint.d.ts +33 -16
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +5 -5
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/node-rpc-config.js +1 -1
- package/dest/config/sequencer-config.d.ts +12 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +25 -0
- package/dest/contract/complete_address.d.ts +4 -1
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +4 -4
- 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 +2 -2
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +6 -5
- package/dest/contract/contract_deployment_data.d.ts +5 -5
- package/dest/contract/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/contract/interfaces/contract_instance.d.ts +16 -16
- 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/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +3 -4
- package/dest/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.js +1 -1
- package/dest/database-version/database_version.d.ts +58 -0
- package/dest/database-version/database_version.d.ts.map +1 -0
- package/dest/database-version/database_version.js +69 -0
- package/dest/database-version/version_manager.d.ts +3 -49
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -66
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
- package/dest/deserialization/index.d.ts +11 -0
- package/dest/deserialization/index.d.ts.map +1 -0
- package/dest/deserialization/index.js +10 -0
- package/dest/epoch-helpers/index.d.ts +7 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +9 -3
- package/dest/errors/proving_error.d.ts +2 -2
- package/dest/errors/proving_error.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/hash/hash.d.ts +2 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +16 -10
- 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/api_limit.d.ts +2 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +1 -0
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +23 -15
- package/dest/interfaces/aztec-node-admin.d.ts +110 -31
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +12 -4
- package/dest/interfaces/aztec-node.d.ts +66 -69
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +10 -16
- package/dest/interfaces/block-builder.d.ts +22 -14
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +7 -0
- package/dest/interfaces/configs.d.ts +34 -9
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +6 -1
- package/dest/interfaces/get_logs_response.d.ts +16 -9
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- package/dest/interfaces/l2_logs_source.d.ts +14 -5
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +2 -2
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +4 -9
- package/dest/interfaces/p2p.d.ts.map +1 -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 +15 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +12 -1
- package/dest/interfaces/proving-job.d.ts +216 -216
- package/dest/interfaces/slasher.d.ts +9 -1
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +2 -0
- package/dest/interfaces/tx_provider.d.ts +3 -3
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +121 -16
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +7 -3
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
- 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 +16 -6
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
- package/dest/kernel/hints/index.d.ts +2 -2
- package/dest/kernel/hints/index.js +2 -2
- package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +2 -1
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request_and_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/private_kernel_reset_hints.d.ts +13 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request.d.ts +7 -1
- package/dest/kernel/hints/read_request.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.d.ts +7 -1
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/{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/private_accumulated_data.d.ts +23 -1
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.d.ts +25 -1
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_request.d.ts +16 -1
- package/dest/kernel/private_call_request.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +81 -8
- 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 +33 -3
- 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_data.d.ts +7 -1
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +12 -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 +25 -3
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +3 -3
- 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 -7
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +18 -3
- 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 -7
- package/dest/kernel/private_validation_requests.d.ts +13 -4
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +9 -9
- package/dest/kernel/public_call_request.d.ts +22 -1
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/utils/optional_number.d.ts +7 -1
- package/dest/kernel/utils/optional_number.d.ts.map +1 -1
- package/dest/keys/derivation.d.ts +3 -3
- package/dest/keys/derivation.js +15 -15
- package/dest/keys/key_types.d.ts +3 -3
- package/dest/keys/key_types.d.ts.map +1 -1
- package/dest/keys/public_keys.d.ts +5 -1
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +2 -2
- 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/l1-contracts/slash_factory.d.ts +1 -1
- package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
- package/dest/l1-contracts/slash_factory.js +1 -0
- package/dest/logs/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/extended_contract_class_log.d.ts +3 -1
- package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +47 -0
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/{directional_app_tagging_secret.js → extended_directional_app_tagging_secret.js} +23 -15
- package/dest/logs/extended_public_log.d.ts +17 -9
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +3 -2
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +2 -1
- package/dest/logs/log_id.d.ts +21 -14
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +20 -17
- package/dest/logs/pre_tag.d.ts +16 -11
- 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 +2 -2
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/siloed_tag.d.ts +5 -3
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +8 -6
- package/dest/logs/tag.js +1 -1
- package/dest/messaging/inbox_leaf.d.ts +3 -1
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/l1_actor.d.ts +7 -1
- package/dest/messaging/l1_actor.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.d.ts +6 -1
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l2_actor.d.ts +7 -1
- package/dest/messaging/l2_actor.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +3 -3
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +8 -6
- package/dest/messaging/out_hash.d.ts +41 -4
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +52 -26
- 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_dao.d.ts +36 -5
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +15 -12
- package/dest/p2p/attestation_utils.d.ts +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 +23 -8
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +26 -10
- package/dest/p2p/checkpoint_attestation.d.ts +6 -1
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +1 -1
- package/dest/p2p/checkpoint_proposal.d.ts +34 -9
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +46 -20
- 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 +15 -5
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -18
- package/dest/p2p/constants.d.ts +5 -0
- package/dest/p2p/constants.d.ts.map +1 -0
- package/dest/p2p/constants.js +3 -0
- package/dest/p2p/index.d.ts +2 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +1 -1
- package/dest/p2p/message_validator.d.ts +18 -3
- package/dest/p2p/message_validator.d.ts.map +1 -1
- package/dest/p2p/message_validator.js +2 -1
- package/dest/p2p/signed_txs.d.ts +3 -1
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +6 -1
- 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 -23
- package/dest/parity/parity_base_private_inputs.d.ts +3 -1
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.d.ts +4 -1
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_root_private_inputs.d.ts +2 -1
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +1 -1
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +9 -4
- package/dest/proofs/proof.d.ts +4 -1
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/recursive_proof.d.ts +10 -1
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +34 -1
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.d.ts +12 -1
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +44 -3
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +2 -2
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.d.ts +31 -4
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +23 -7
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +45 -10
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +11 -7
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
- package/dest/rollup/epoch_constant_data.d.ts +16 -1
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +17 -7
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +7 -4
- package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +1 -1
- package/dest/slashing/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +2 -0
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +6 -0
- package/dest/slashing/tally.d.ts +2 -1
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +6 -2
- package/dest/slashing/types.d.ts +7 -3
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +13 -1
- package/dest/stats/stats.d.ts +1 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +4 -4
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +26 -27
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +24 -15
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +63 -40
- package/dest/timetable/index.d.ts +37 -0
- package/dest/timetable/index.d.ts.map +1 -0
- package/dest/timetable/index.js +39 -0
- package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.d.ts +13 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +10 -1
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.d.ts +17 -1
- 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 +11 -1
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +14 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +6 -2
- package/dest/tx/call_context.d.ts +13 -1
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +4 -1
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/execution_payload.d.ts +9 -1
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -2
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +12 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/hashed_values.d.ts +7 -1
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +4 -4
- package/dest/tx/indexed_tx_effect.d.ts +5 -5
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +3 -2
- package/dest/tx/partial_state_reference.d.ts +4 -1
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/private_execution_result.d.ts +23 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +1 -1
- package/dest/tx/private_tx_constant_data.d.ts +16 -1
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +152 -29
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +47 -10
- package/dest/tx/protocol_contracts.d.ts +2 -2
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +2 -2
- package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_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/state_reference.d.ts +3 -1
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/tx.d.ts +24 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +6 -3
- package/dest/tx/tx_context.d.ts +2 -1
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_effect.d.ts +32 -6
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +0 -7
- package/dest/tx/tx_execution_request.d.ts +30 -1
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_hash.d.ts +2 -1
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts +62 -14
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +55 -16
- package/dest/tx/tx_request.d.ts +6 -1
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/tx_request.js +2 -2
- package/dest/tx/validator/empty_validator.d.ts +2 -2
- package/dest/tx/validator/empty_validator.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +3 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +3 -1
- package/dest/tx/validator/tx_validator.d.ts +2 -2
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/types/shared.d.ts +4 -1
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/update-checker/index.d.ts +3 -2
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +2 -1
- package/dest/update-checker/package_version.d.ts +3 -0
- package/dest/update-checker/package_version.d.ts.map +1 -0
- package/dest/update-checker/package_version.js +11 -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/schemas.d.ts +38 -38
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +4 -3
- package/dest/validators/types.d.ts +3 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/vks/verification_key.d.ts +22 -1
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/vk_data.d.ts +7 -1
- package/dest/vks/vk_data.d.ts.map +1 -1
- package/dest/zkpassport/index.d.ts +3 -4
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +9 -9
- package/package.json +28 -14
- package/src/abi/decoder.ts +1 -4
- package/src/abi/encoder.ts +8 -5
- package/src/abi/function_call.ts +25 -3
- package/src/abi/utils.ts +17 -0
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/avm/revert_code.ts +15 -0
- package/src/block/block_data.ts +26 -0
- package/src/block/block_hash.ts +26 -25
- package/src/block/block_parameter.ts +4 -2
- package/src/block/body.ts +2 -1
- package/src/block/checkpointed_l2_block.ts +8 -58
- package/src/block/in_block.ts +6 -6
- package/src/block/index.ts +1 -2
- package/src/block/l2_block.ts +102 -150
- package/src/block/l2_block_source.ts +93 -42
- package/src/block/l2_block_stream/interfaces.ts +8 -5
- package/src/block/l2_block_stream/l2_block_stream.ts +66 -37
- package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
- package/src/block/test/l2_tips_store_test_suite.ts +4 -9
- package/src/block/validate_block_result.ts +5 -4
- package/src/checkpoint/checkpoint.ts +61 -21
- package/src/checkpoint/checkpoint_data.ts +51 -0
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/published_checkpoint.ts +7 -4
- package/src/config/index.ts +1 -0
- package/src/config/node-rpc-config.ts +1 -1
- package/src/config/sequencer-config.ts +37 -0
- package/src/contract/contract_address.ts +4 -4
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +6 -5
- package/src/contract/index.ts +0 -2
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +3 -4
- package/src/contract/private_function_membership_proof.ts +1 -1
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
- package/src/deserialization/index.ts +21 -0
- package/src/epoch-helpers/index.ts +13 -1
- package/src/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/hash/hash.ts +14 -10
- package/src/hash/map_slot.ts +3 -2
- package/src/interfaces/api_limit.ts +1 -0
- package/src/interfaces/archiver.ts +23 -24
- package/src/interfaces/aztec-node-admin.ts +26 -2
- package/src/interfaces/aztec-node.ts +86 -135
- package/src/interfaces/block-builder.ts +41 -23
- package/src/interfaces/configs.ts +19 -4
- package/src/interfaces/l2_logs_source.ts +17 -4
- package/src/interfaces/merkle_tree_operations.ts +1 -1
- package/src/interfaces/p2p.ts +3 -14
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +22 -0
- package/src/interfaces/slasher.ts +4 -0
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +22 -13
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +17 -6
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
- package/src/kernel/hints/index.ts +2 -2
- 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/private_circuit_public_inputs.ts +14 -14
- package/src/kernel/private_kernel_circuit_public_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_private_inputs.ts +2 -2
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_validation_requests.ts +8 -8
- package/src/keys/derivation.ts +15 -15
- package/src/keys/key_types.ts +6 -2
- package/src/keys/public_keys.ts +2 -2
- package/src/keys/utils.ts +8 -4
- package/src/l1-contracts/slash_factory.ts +1 -0
- package/src/logs/debug_log_store.ts +54 -0
- package/src/logs/{directional_app_tagging_secret.ts → extended_directional_app_tagging_secret.ts} +24 -16
- package/src/logs/index.ts +2 -1
- package/src/logs/log_id.ts +22 -18
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/siloed_tag.ts +10 -4
- package/src/logs/tag.ts +1 -1
- package/src/messaging/l2_to_l1_membership.ts +8 -6
- package/src/messaging/out_hash.ts +60 -29
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +36 -15
- package/src/p2p/checkpoint_attestation.ts +6 -1
- package/src/p2p/checkpoint_proposal.ts +74 -24
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/consensus_payload.ts +25 -17
- package/src/p2p/constants.ts +6 -0
- package/src/p2p/index.ts +1 -1
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/signed_txs.ts +6 -1
- package/src/p2p/topic_type.ts +8 -15
- package/src/proofs/chonk_proof.ts +9 -5
- package/src/rollup/block_headers_hash.ts +1 -1
- package/src/rollup/block_rollup_public_inputs.ts +2 -2
- package/src/rollup/checkpoint_header.ts +22 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +16 -10
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +11 -8
- package/src/slashing/empire.ts +3 -1
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/tally.ts +8 -2
- package/src/slashing/types.ts +14 -0
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +32 -43
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +90 -55
- package/src/timetable/index.ts +66 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +12 -4
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/indexed_tx_effect.ts +3 -2
- package/src/tx/private_execution_result.ts +1 -1
- package/src/tx/profiling.ts +51 -9
- package/src/tx/protocol_contracts.ts +2 -2
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/tx.ts +8 -9
- package/src/tx/tx_effect.ts +0 -9
- package/src/tx/tx_receipt.ts +85 -18
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +4 -1
- package/src/tx/validator/tx_validator.ts +1 -1
- package/src/update-checker/index.ts +2 -1
- package/src/update-checker/package_version.ts +17 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- package/src/zkpassport/index.ts +11 -12
- package/dest/block/l2_block_code_to_purge.d.ts +0 -11
- package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
- package/dest/block/l2_block_code_to_purge.js +0 -55
- package/dest/block/l2_block_header.d.ts +0 -94
- package/dest/block/l2_block_header.d.ts.map +0 -1
- package/dest/block/l2_block_header.js +0 -160
- package/dest/block/l2_block_new.d.ts +0 -134
- package/dest/block/l2_block_new.d.ts.map +0 -1
- package/dest/block/l2_block_new.js +0 -155
- package/dest/contract/contract_class_metadata.d.ts +0 -8
- package/dest/contract/contract_class_metadata.d.ts.map +0 -1
- package/dest/contract/contract_class_metadata.js +0 -1
- package/dest/contract/contract_metadata.d.ts +0 -7
- package/dest/contract/contract_metadata.d.ts.map +0 -1
- package/dest/contract/contract_metadata.js +0 -1
- package/dest/database-version/index.d.ts +0 -2
- package/dest/database-version/index.d.ts.map +0 -1
- package/dest/database-version/index.js +0 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +0 -25
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +0 -1
- 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/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/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/block/l2_block_code_to_purge.ts +0 -80
- package/src/block/l2_block_header.ts +0 -255
- package/src/block/l2_block_new.ts +0 -211
- package/src/contract/contract_class_metadata.ts +0 -8
- package/src/contract/contract_metadata.ts +0 -7
- package/src/database-version/index.ts +0 -1
- package/src/note/notes_filter.ts +0 -38
- package/src/update-checker/update-checker.ts +0 -166
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
|
-
import { type ZodFor, schemas } from '@aztec/foundation/schemas';
|
|
4
|
-
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
5
|
-
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
6
|
-
import type { FieldsOf } from '@aztec/foundation/types';
|
|
7
|
-
|
|
8
|
-
import { inspect } from 'util';
|
|
9
|
-
import { z } from 'zod';
|
|
10
|
-
|
|
11
|
-
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
12
|
-
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
13
|
-
import { BlockHeader, GlobalVariables, StateReference } from '../tx/index.js';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* TO BE DELETED
|
|
17
|
-
*
|
|
18
|
-
* A header of an L2 block combining the block header and the checkpoint header.
|
|
19
|
-
* This is a temporary workaround to avoid changing too many things before building in chunks is properly implemented.
|
|
20
|
-
* This works for now because we only have one block per checkpoint.
|
|
21
|
-
*
|
|
22
|
-
* @deprecated Use BlockHeader or CheckpointHeader instead.
|
|
23
|
-
*/
|
|
24
|
-
export class L2BlockHeader {
|
|
25
|
-
constructor(
|
|
26
|
-
/** Snapshot of archive before the block is applied. */
|
|
27
|
-
public lastArchive: AppendOnlyTreeSnapshot,
|
|
28
|
-
public blobsHash: Fr,
|
|
29
|
-
public inHash: Fr,
|
|
30
|
-
/** State reference. */
|
|
31
|
-
public state: StateReference,
|
|
32
|
-
/** Global variables of an L2 block. */
|
|
33
|
-
public globalVariables: GlobalVariables,
|
|
34
|
-
/** Total fees in the block, computed by the root rollup circuit */
|
|
35
|
-
public totalFees: Fr,
|
|
36
|
-
/** Total mana used in the block, computed by the root rollup circuit */
|
|
37
|
-
public totalManaUsed: Fr,
|
|
38
|
-
/** Hash of the sponge blob of the block. */
|
|
39
|
-
public spongeBlobHash: Fr,
|
|
40
|
-
/** Hash of the block headers in the checkpoint. */
|
|
41
|
-
public blockHeadersHash: Fr,
|
|
42
|
-
) {}
|
|
43
|
-
|
|
44
|
-
static get schema(): ZodFor<L2BlockHeader> {
|
|
45
|
-
return z
|
|
46
|
-
.object({
|
|
47
|
-
lastArchive: AppendOnlyTreeSnapshot.schema,
|
|
48
|
-
blobsHash: schemas.Fr,
|
|
49
|
-
inHash: schemas.Fr,
|
|
50
|
-
state: StateReference.schema,
|
|
51
|
-
globalVariables: GlobalVariables.schema,
|
|
52
|
-
totalFees: schemas.Fr,
|
|
53
|
-
totalManaUsed: schemas.Fr,
|
|
54
|
-
spongeBlobHash: schemas.Fr,
|
|
55
|
-
blockHeadersHash: schemas.Fr,
|
|
56
|
-
})
|
|
57
|
-
.transform(L2BlockHeader.from);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
static getFields(fields: FieldsOf<L2BlockHeader>) {
|
|
61
|
-
return [
|
|
62
|
-
fields.lastArchive,
|
|
63
|
-
fields.blobsHash,
|
|
64
|
-
fields.inHash,
|
|
65
|
-
fields.state,
|
|
66
|
-
fields.globalVariables,
|
|
67
|
-
fields.totalFees,
|
|
68
|
-
fields.totalManaUsed,
|
|
69
|
-
fields.spongeBlobHash,
|
|
70
|
-
fields.blockHeadersHash,
|
|
71
|
-
] as const;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
static from(fields: FieldsOf<L2BlockHeader>) {
|
|
75
|
-
return new L2BlockHeader(...L2BlockHeader.getFields(fields));
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
getSlot(): SlotNumber {
|
|
79
|
-
return this.globalVariables.slotNumber;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
getBlockNumber() {
|
|
83
|
-
return this.globalVariables.blockNumber;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
getSize() {
|
|
87
|
-
return (
|
|
88
|
-
this.lastArchive.getSize() +
|
|
89
|
-
this.blobsHash.size +
|
|
90
|
-
this.inHash.size +
|
|
91
|
-
this.state.getSize() +
|
|
92
|
-
this.globalVariables.getSize() +
|
|
93
|
-
this.totalFees.size +
|
|
94
|
-
this.totalManaUsed.size +
|
|
95
|
-
this.spongeBlobHash.size +
|
|
96
|
-
this.blockHeadersHash.size
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
toBuffer() {
|
|
101
|
-
return serializeToBuffer(...L2BlockHeader.getFields(this));
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
toFields(): Fr[] {
|
|
105
|
-
return serializeToFields(...L2BlockHeader.getFields(this));
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
clone() {
|
|
109
|
-
return L2BlockHeader.fromBuffer(this.toBuffer());
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
113
|
-
const reader = BufferReader.asReader(buffer);
|
|
114
|
-
|
|
115
|
-
return new L2BlockHeader(
|
|
116
|
-
reader.readObject(AppendOnlyTreeSnapshot),
|
|
117
|
-
reader.readObject(Fr),
|
|
118
|
-
reader.readObject(Fr),
|
|
119
|
-
reader.readObject(StateReference),
|
|
120
|
-
reader.readObject(GlobalVariables),
|
|
121
|
-
reader.readObject(Fr),
|
|
122
|
-
reader.readObject(Fr),
|
|
123
|
-
reader.readObject(Fr),
|
|
124
|
-
reader.readObject(Fr),
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
static fromFields(fields: Fr[] | FieldReader) {
|
|
129
|
-
const reader = FieldReader.asReader(fields);
|
|
130
|
-
|
|
131
|
-
return new L2BlockHeader(
|
|
132
|
-
AppendOnlyTreeSnapshot.fromFields(reader),
|
|
133
|
-
reader.readField(),
|
|
134
|
-
reader.readField(),
|
|
135
|
-
StateReference.fromFields(reader),
|
|
136
|
-
GlobalVariables.fromFields(reader),
|
|
137
|
-
reader.readField(),
|
|
138
|
-
reader.readField(),
|
|
139
|
-
reader.readField(),
|
|
140
|
-
reader.readField(),
|
|
141
|
-
);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
static empty(fields: Partial<FieldsOf<L2BlockHeader>> = {}) {
|
|
145
|
-
return L2BlockHeader.from({
|
|
146
|
-
lastArchive: AppendOnlyTreeSnapshot.empty(),
|
|
147
|
-
blobsHash: Fr.ZERO,
|
|
148
|
-
inHash: Fr.ZERO,
|
|
149
|
-
state: StateReference.empty(),
|
|
150
|
-
globalVariables: GlobalVariables.empty(),
|
|
151
|
-
totalFees: Fr.ZERO,
|
|
152
|
-
totalManaUsed: Fr.ZERO,
|
|
153
|
-
spongeBlobHash: Fr.ZERO,
|
|
154
|
-
blockHeadersHash: Fr.ZERO,
|
|
155
|
-
...fields,
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
isEmpty(): boolean {
|
|
160
|
-
return (
|
|
161
|
-
this.lastArchive.isEmpty() &&
|
|
162
|
-
this.blobsHash.isZero() &&
|
|
163
|
-
this.inHash.isZero() &&
|
|
164
|
-
this.state.isEmpty() &&
|
|
165
|
-
this.globalVariables.isEmpty() &&
|
|
166
|
-
this.totalFees.isZero() &&
|
|
167
|
-
this.totalManaUsed.isZero() &&
|
|
168
|
-
this.spongeBlobHash.isZero() &&
|
|
169
|
-
this.blockHeadersHash.isZero()
|
|
170
|
-
);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Serializes this instance into a string.
|
|
175
|
-
* @returns Encoded string.
|
|
176
|
-
*/
|
|
177
|
-
public toString() {
|
|
178
|
-
return bufferToHex(this.toBuffer());
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
static fromString(str: string) {
|
|
182
|
-
return L2BlockHeader.fromBuffer(hexToBuffer(str));
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
toCheckpointHeader() {
|
|
186
|
-
return new CheckpointHeader(
|
|
187
|
-
this.lastArchive.root,
|
|
188
|
-
this.blockHeadersHash,
|
|
189
|
-
this.blobsHash,
|
|
190
|
-
this.inHash,
|
|
191
|
-
this.globalVariables.slotNumber,
|
|
192
|
-
this.globalVariables.timestamp,
|
|
193
|
-
this.globalVariables.coinbase,
|
|
194
|
-
this.globalVariables.feeRecipient,
|
|
195
|
-
this.globalVariables.gasFees,
|
|
196
|
-
this.totalManaUsed,
|
|
197
|
-
);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
toBlockHeader() {
|
|
201
|
-
return new BlockHeader(
|
|
202
|
-
this.lastArchive,
|
|
203
|
-
this.state,
|
|
204
|
-
this.spongeBlobHash,
|
|
205
|
-
this.globalVariables,
|
|
206
|
-
this.totalFees,
|
|
207
|
-
this.totalManaUsed,
|
|
208
|
-
);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
toInspect() {
|
|
212
|
-
return {
|
|
213
|
-
lastArchive: this.lastArchive.root.toString(),
|
|
214
|
-
blobsHash: this.blobsHash.toString(),
|
|
215
|
-
inHash: this.inHash.toString(),
|
|
216
|
-
state: this.state.toInspect(),
|
|
217
|
-
globalVariables: this.globalVariables.toInspect(),
|
|
218
|
-
totalFees: this.totalFees.toBigInt(),
|
|
219
|
-
totalManaUsed: this.totalManaUsed.toBigInt(),
|
|
220
|
-
spongeBlobHash: this.spongeBlobHash.toString(),
|
|
221
|
-
blockHeadersHash: this.blockHeadersHash.toString(),
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
[inspect.custom]() {
|
|
226
|
-
return `L2BlockHeader {
|
|
227
|
-
lastArchive: ${inspect(this.lastArchive)},
|
|
228
|
-
blobsHash: ${inspect(this.blobsHash)},
|
|
229
|
-
inHash: ${inspect(this.inHash)},
|
|
230
|
-
state.l1ToL2MessageTree: ${inspect(this.state.l1ToL2MessageTree)},
|
|
231
|
-
state.noteHashTree: ${inspect(this.state.partial.noteHashTree)},
|
|
232
|
-
state.nullifierTree: ${inspect(this.state.partial.nullifierTree)},
|
|
233
|
-
state.publicDataTree: ${inspect(this.state.partial.publicDataTree)},
|
|
234
|
-
globalVariables: ${inspect(this.globalVariables)},
|
|
235
|
-
totalFees: ${this.totalFees},
|
|
236
|
-
totalManaUsed: ${this.totalManaUsed},
|
|
237
|
-
spongeBlobHash: ${this.spongeBlobHash},
|
|
238
|
-
blockHeadersHash: ${this.blockHeadersHash},
|
|
239
|
-
}`;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
public equals(other: this): boolean {
|
|
243
|
-
return (
|
|
244
|
-
this.lastArchive.equals(other.lastArchive) &&
|
|
245
|
-
this.blobsHash.equals(other.blobsHash) &&
|
|
246
|
-
this.inHash.equals(other.inHash) &&
|
|
247
|
-
this.state.equals(other.state) &&
|
|
248
|
-
this.globalVariables.equals(other.globalVariables) &&
|
|
249
|
-
this.totalFees.equals(other.totalFees) &&
|
|
250
|
-
this.totalManaUsed.equals(other.totalManaUsed) &&
|
|
251
|
-
this.spongeBlobHash.equals(other.spongeBlobHash) &&
|
|
252
|
-
this.blockHeadersHash.equals(other.blockHeadersHash)
|
|
253
|
-
);
|
|
254
|
-
}
|
|
255
|
-
}
|
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import { type BlockBlobData, encodeBlockBlobData } from '@aztec/blob-lib/encoding';
|
|
2
|
-
import { BlockNumber, CheckpointNumber, CheckpointNumberSchema } from '@aztec/foundation/branded-types';
|
|
3
|
-
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
-
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
|
-
|
|
6
|
-
import { z } from 'zod';
|
|
7
|
-
|
|
8
|
-
import type { PrivateLog } from '../logs/private_log.js';
|
|
9
|
-
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
10
|
-
import { BlockHeader } from '../tx/block_header.js';
|
|
11
|
-
import { Body } from './body.js';
|
|
12
|
-
import type { L2BlockInfo } from './l2_block_info.js';
|
|
13
|
-
|
|
14
|
-
// TODO(palla/mbps): Delete the existing `L2Block` class and rename this to `L2Block`.
|
|
15
|
-
// TODO(palla/mbps): Consider moving the checkpointNumber and indexWithinCheckpoint to the header:
|
|
16
|
-
// if the blockNumber is there, why not these as well? Consider whether they should be part of the
|
|
17
|
-
// circuits structs though.
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* An L2 block with a header and a body.
|
|
21
|
-
*/
|
|
22
|
-
export class L2BlockNew {
|
|
23
|
-
constructor(
|
|
24
|
-
/** Snapshot of archive tree after the block is applied. */
|
|
25
|
-
public archive: AppendOnlyTreeSnapshot,
|
|
26
|
-
/** Header of the block. */
|
|
27
|
-
public header: BlockHeader,
|
|
28
|
-
/** L2 block body. */
|
|
29
|
-
public body: Body,
|
|
30
|
-
/** Number of the checkpoint that the block belongs to. */
|
|
31
|
-
public checkpointNumber: CheckpointNumber,
|
|
32
|
-
/** Index of the block within the checkpoint. */
|
|
33
|
-
public indexWithinCheckpoint: number,
|
|
34
|
-
) {}
|
|
35
|
-
|
|
36
|
-
get number(): BlockNumber {
|
|
37
|
-
return this.header.globalVariables.blockNumber;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
get timestamp(): bigint {
|
|
41
|
-
return this.header.globalVariables.timestamp;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
static get schema() {
|
|
45
|
-
return z
|
|
46
|
-
.object({
|
|
47
|
-
archive: AppendOnlyTreeSnapshot.schema,
|
|
48
|
-
header: BlockHeader.schema,
|
|
49
|
-
body: Body.schema,
|
|
50
|
-
checkpointNumber: CheckpointNumberSchema,
|
|
51
|
-
indexWithinCheckpoint: z.number(),
|
|
52
|
-
})
|
|
53
|
-
.transform(
|
|
54
|
-
({ archive, header, body, checkpointNumber, indexWithinCheckpoint }) =>
|
|
55
|
-
new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint),
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Deserializes a block from a buffer
|
|
61
|
-
* @returns A deserialized L2 block.
|
|
62
|
-
*/
|
|
63
|
-
static fromBuffer(buf: Buffer | BufferReader) {
|
|
64
|
-
const reader = BufferReader.asReader(buf);
|
|
65
|
-
const header = reader.readObject(BlockHeader);
|
|
66
|
-
const archive = reader.readObject(AppendOnlyTreeSnapshot);
|
|
67
|
-
const body = reader.readObject(Body);
|
|
68
|
-
const checkpointNumber = CheckpointNumber(reader.readNumber());
|
|
69
|
-
const indexWithinCheckpoint = reader.readNumber();
|
|
70
|
-
|
|
71
|
-
return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Serializes a block
|
|
76
|
-
* @returns A serialized L2 block as a Buffer.
|
|
77
|
-
*/
|
|
78
|
-
toBuffer() {
|
|
79
|
-
return serializeToBuffer(this.header, this.archive, this.body, this.checkpointNumber, this.indexWithinCheckpoint);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Returns the block's hash (hash of block header).
|
|
84
|
-
* @returns The block's hash.
|
|
85
|
-
*/
|
|
86
|
-
public hash(): Promise<Fr> {
|
|
87
|
-
return this.header.hash();
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Checks if this block equals another block.
|
|
92
|
-
* @param other - The other block to compare with.
|
|
93
|
-
* @returns True if both blocks are equal.
|
|
94
|
-
*/
|
|
95
|
-
public equals(other: this): boolean {
|
|
96
|
-
return (
|
|
97
|
-
this.archive.equals(other.archive) &&
|
|
98
|
-
this.header.equals(other.header) &&
|
|
99
|
-
this.body.equals(other.body) &&
|
|
100
|
-
this.checkpointNumber === other.checkpointNumber &&
|
|
101
|
-
this.indexWithinCheckpoint === other.indexWithinCheckpoint
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
public toBlobFields(): Fr[] {
|
|
106
|
-
const blockBlobData = this.toBlockBlobData();
|
|
107
|
-
return encodeBlockBlobData(blockBlobData);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
public toBlockBlobData(): BlockBlobData {
|
|
111
|
-
const isFirstBlock = this.indexWithinCheckpoint === 0;
|
|
112
|
-
return {
|
|
113
|
-
blockEndMarker: {
|
|
114
|
-
numTxs: this.body.txEffects.length,
|
|
115
|
-
timestamp: this.header.globalVariables.timestamp,
|
|
116
|
-
blockNumber: this.number,
|
|
117
|
-
},
|
|
118
|
-
blockEndStateField: {
|
|
119
|
-
l1ToL2MessageNextAvailableLeafIndex: this.header.state.l1ToL2MessageTree.nextAvailableLeafIndex,
|
|
120
|
-
noteHashNextAvailableLeafIndex: this.header.state.partial.noteHashTree.nextAvailableLeafIndex,
|
|
121
|
-
nullifierNextAvailableLeafIndex: this.header.state.partial.nullifierTree.nextAvailableLeafIndex,
|
|
122
|
-
publicDataNextAvailableLeafIndex: this.header.state.partial.publicDataTree.nextAvailableLeafIndex,
|
|
123
|
-
totalManaUsed: this.header.totalManaUsed.toBigInt(),
|
|
124
|
-
},
|
|
125
|
-
lastArchiveRoot: this.header.lastArchive.root,
|
|
126
|
-
noteHashRoot: this.header.state.partial.noteHashTree.root,
|
|
127
|
-
nullifierRoot: this.header.state.partial.nullifierTree.root,
|
|
128
|
-
publicDataRoot: this.header.state.partial.publicDataTree.root,
|
|
129
|
-
l1ToL2MessageRoot: isFirstBlock ? this.header.state.l1ToL2MessageTree.root : undefined,
|
|
130
|
-
txs: this.body.toTxBlobData(),
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
static empty() {
|
|
135
|
-
return new L2BlockNew(AppendOnlyTreeSnapshot.empty(), BlockHeader.empty(), Body.empty(), CheckpointNumber(0), 0);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Creates an L2 block containing random data.
|
|
140
|
-
* @param l2BlockNum - The number of the L2 block.
|
|
141
|
-
* @param txsPerBlock - The number of transactions to include in the block.
|
|
142
|
-
* @param numPublicCallsPerTx - The number of public function calls to include in each transaction.
|
|
143
|
-
* @param numPublicLogsPerCall - The number of public logs per 1 public function invocation.
|
|
144
|
-
* @param inHash - The hash of the L1 to L2 messages subtree which got inserted in this block.
|
|
145
|
-
* @returns The L2 block.
|
|
146
|
-
*/
|
|
147
|
-
static async random(
|
|
148
|
-
blockNumber: BlockNumber,
|
|
149
|
-
{
|
|
150
|
-
checkpointNumber = CheckpointNumber(Number(blockNumber)),
|
|
151
|
-
indexWithinCheckpoint = 0,
|
|
152
|
-
txsPerBlock = 1,
|
|
153
|
-
txOptions = {},
|
|
154
|
-
makeTxOptions,
|
|
155
|
-
...blockHeaderOverrides
|
|
156
|
-
}: {
|
|
157
|
-
checkpointNumber?: CheckpointNumber;
|
|
158
|
-
indexWithinCheckpoint?: number;
|
|
159
|
-
txsPerBlock?: number;
|
|
160
|
-
txOptions?: Partial<Parameters<typeof Body.random>[0]>;
|
|
161
|
-
makeTxOptions?: (txIndex: number) => Partial<Parameters<typeof Body.random>[0]>;
|
|
162
|
-
} & Partial<Parameters<typeof BlockHeader.random>[0]> = {},
|
|
163
|
-
): Promise<L2BlockNew> {
|
|
164
|
-
const archive = new AppendOnlyTreeSnapshot(Fr.random(), blockNumber + 1);
|
|
165
|
-
const header = BlockHeader.random({ blockNumber, ...blockHeaderOverrides });
|
|
166
|
-
const body = await Body.random({ txsPerBlock, makeTxOptions, ...txOptions });
|
|
167
|
-
return new L2BlockNew(archive, header, body, checkpointNumber, indexWithinCheckpoint);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Returns stats used for logging.
|
|
172
|
-
* @returns Stats on tx count, number, and log size and count.
|
|
173
|
-
*/
|
|
174
|
-
getStats() {
|
|
175
|
-
const logsStats = {
|
|
176
|
-
privateLogCount: this.body.txEffects.reduce((logCount, txEffect) => logCount + txEffect.privateLogs.length, 0),
|
|
177
|
-
publicLogCount: this.body.txEffects.reduce((logCount, txEffect) => logCount + txEffect.publicLogs.length, 0),
|
|
178
|
-
contractClassLogCount: this.body.txEffects.reduce(
|
|
179
|
-
(logCount, txEffect) => logCount + txEffect.contractClassLogs.length,
|
|
180
|
-
0,
|
|
181
|
-
),
|
|
182
|
-
contractClassLogSize: this.body.txEffects.reduce(
|
|
183
|
-
(totalLogSize, txEffect) =>
|
|
184
|
-
totalLogSize + txEffect.contractClassLogs.reduce((acc, log) => acc + log.emittedLength, 0),
|
|
185
|
-
0,
|
|
186
|
-
),
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
return {
|
|
190
|
-
txCount: this.body.txEffects.length,
|
|
191
|
-
blockNumber: this.number,
|
|
192
|
-
blockTimestamp: Number(this.header.globalVariables.timestamp),
|
|
193
|
-
...logsStats,
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
getPrivateLogs(): PrivateLog[] {
|
|
198
|
-
return this.body.txEffects.map(txEffect => txEffect.privateLogs).flat();
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
toBlockInfo(): L2BlockInfo {
|
|
202
|
-
return {
|
|
203
|
-
archive: this.archive.root,
|
|
204
|
-
lastArchive: this.header.lastArchive.root,
|
|
205
|
-
blockNumber: this.number,
|
|
206
|
-
slotNumber: this.header.getSlot(),
|
|
207
|
-
txCount: this.body.txEffects.length,
|
|
208
|
-
timestamp: this.header.globalVariables.timestamp,
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { ContractArtifact } from '../abi/abi.js';
|
|
2
|
-
import type { ContractClassWithId } from './interfaces/contract_class.js';
|
|
3
|
-
|
|
4
|
-
export interface ContractClassMetadata {
|
|
5
|
-
contractClass?: ContractClassWithId | undefined;
|
|
6
|
-
isContractClassPubliclyRegistered: boolean;
|
|
7
|
-
artifact?: ContractArtifact | undefined;
|
|
8
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './version_manager.js';
|
package/src/note/notes_filter.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
|
|
3
|
-
import { z } from 'zod';
|
|
4
|
-
|
|
5
|
-
import type { AztecAddress } from '../aztec-address/index.js';
|
|
6
|
-
import { type ZodFor, schemas } from '../schemas/index.js';
|
|
7
|
-
import { NoteStatus } from './note_status.js';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* A filter used to fetch notes.
|
|
11
|
-
* @remarks This filter is applied as an intersection of all its params.
|
|
12
|
-
*/
|
|
13
|
-
export type NotesFilter = {
|
|
14
|
-
/**
|
|
15
|
-
* The contract address the note belongs to.
|
|
16
|
-
* @remarks Providing a contract address is required as we need that information to trigger private state sync.
|
|
17
|
-
*/
|
|
18
|
-
contractAddress: AztecAddress;
|
|
19
|
-
/** The owner of the note. */
|
|
20
|
-
owner?: AztecAddress;
|
|
21
|
-
/** The specific storage location of the note on the contract. */
|
|
22
|
-
storageSlot?: Fr;
|
|
23
|
-
/** The status of the note. Defaults to 'ACTIVE'. */
|
|
24
|
-
status?: NoteStatus;
|
|
25
|
-
/** The siloed nullifier for the note. */
|
|
26
|
-
siloedNullifier?: Fr;
|
|
27
|
-
/** The scopes in which to get notes from. This defaults to all scopes. */
|
|
28
|
-
scopes?: AztecAddress[];
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
export const NotesFilterSchema: ZodFor<NotesFilter> = z.object({
|
|
32
|
-
contractAddress: schemas.AztecAddress,
|
|
33
|
-
owner: schemas.AztecAddress.optional(),
|
|
34
|
-
storageSlot: schemas.Fr.optional(),
|
|
35
|
-
status: z.nativeEnum(NoteStatus).optional(),
|
|
36
|
-
siloedNullifier: schemas.Fr.optional(),
|
|
37
|
-
scopes: z.array(schemas.AztecAddress).optional(),
|
|
38
|
-
});
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import { RegistryContract } from '@aztec/ethereum/contracts';
|
|
2
|
-
import type { ViemClient } from '@aztec/ethereum/types';
|
|
3
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
-
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
6
|
-
import { fileURLToPath } from '@aztec/foundation/url';
|
|
7
|
-
|
|
8
|
-
import { EventEmitter } from 'events';
|
|
9
|
-
import { readFileSync } from 'fs';
|
|
10
|
-
import { dirname, resolve } from 'path';
|
|
11
|
-
import { isDeepStrictEqual } from 'util';
|
|
12
|
-
import { z } from 'zod';
|
|
13
|
-
|
|
14
|
-
const updateConfigSchema = z.object({
|
|
15
|
-
version: z.string().optional(),
|
|
16
|
-
publicTelemetry: z.any().optional(),
|
|
17
|
-
config: z.any().optional(),
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
export type EventMap = {
|
|
21
|
-
newRollupVersion: [{ currentVersion: bigint; latestVersion: bigint }];
|
|
22
|
-
newNodeVersion: [{ currentVersion: string; latestVersion: string }];
|
|
23
|
-
updateNodeConfig: [object];
|
|
24
|
-
updatePublicTelemetryConfig: [object];
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
type Config = {
|
|
28
|
-
baseURL: URL;
|
|
29
|
-
nodeVersion?: string;
|
|
30
|
-
checkIntervalMs?: number;
|
|
31
|
-
registryContractAddress: EthAddress;
|
|
32
|
-
publicClient: ViemClient;
|
|
33
|
-
fetch?: typeof fetch;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
export class UpdateChecker extends EventEmitter<EventMap> {
|
|
37
|
-
private runningPromise: RunningPromise;
|
|
38
|
-
private lastPatchedConfig: object = {};
|
|
39
|
-
private lastPatchedPublicTelemetryConfig: object = {};
|
|
40
|
-
|
|
41
|
-
constructor(
|
|
42
|
-
private updatesUrl: URL,
|
|
43
|
-
private nodeVersion: string | undefined,
|
|
44
|
-
private rollupVersion: bigint,
|
|
45
|
-
private fetch: typeof globalThis.fetch,
|
|
46
|
-
private getLatestRollupVersion: () => Promise<bigint>,
|
|
47
|
-
private checkIntervalMs = 10 * 60_000, // every 10 mins
|
|
48
|
-
private log = createLogger('foundation:update-check'),
|
|
49
|
-
) {
|
|
50
|
-
super();
|
|
51
|
-
this.runningPromise = new RunningPromise(this.runChecks, this.log, this.checkIntervalMs);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
public static async new(config: Config): Promise<UpdateChecker> {
|
|
55
|
-
const registryContract = new RegistryContract(config.publicClient, config.registryContractAddress);
|
|
56
|
-
const getLatestRollupVersion = () => registryContract.getRollupVersions().then(versions => versions.at(-1)!);
|
|
57
|
-
|
|
58
|
-
return new UpdateChecker(
|
|
59
|
-
config.baseURL,
|
|
60
|
-
config.nodeVersion ?? getPackageVersion(),
|
|
61
|
-
await getLatestRollupVersion(),
|
|
62
|
-
config.fetch ?? fetch,
|
|
63
|
-
getLatestRollupVersion,
|
|
64
|
-
config.checkIntervalMs,
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public start(): void {
|
|
69
|
-
if (this.runningPromise.isRunning()) {
|
|
70
|
-
this.log.debug(`Can't start update checker again`);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
this.log.info('Starting update checker', {
|
|
75
|
-
nodeVersion: this.nodeVersion,
|
|
76
|
-
rollupVersion: this.rollupVersion,
|
|
77
|
-
});
|
|
78
|
-
this.runningPromise.start();
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
public stop(): Promise<void> {
|
|
82
|
-
if (!this.runningPromise.isRunning()) {
|
|
83
|
-
this.log.debug(`Can't stop update checker because it is not running`);
|
|
84
|
-
return Promise.resolve();
|
|
85
|
-
}
|
|
86
|
-
return this.runningPromise.stop();
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
public trigger(): Promise<void> {
|
|
90
|
-
return this.runningPromise.trigger();
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
private runChecks = async (): Promise<void> => {
|
|
94
|
-
await Promise.all([this.checkRollupVersion(), this.checkConfig()]);
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
private async checkRollupVersion(): Promise<void> {
|
|
98
|
-
try {
|
|
99
|
-
const canonicalRollupVersion = await this.getLatestRollupVersion();
|
|
100
|
-
if (canonicalRollupVersion !== this.rollupVersion) {
|
|
101
|
-
this.log.debug('New canonical rollup version', {
|
|
102
|
-
currentVersion: this.rollupVersion,
|
|
103
|
-
latestVersion: canonicalRollupVersion,
|
|
104
|
-
});
|
|
105
|
-
this.emit('newRollupVersion', { currentVersion: this.rollupVersion, latestVersion: canonicalRollupVersion });
|
|
106
|
-
}
|
|
107
|
-
} catch (err) {
|
|
108
|
-
this.log.warn(`Failed to check if there is a new rollup`, err);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
private async checkConfig(): Promise<void> {
|
|
113
|
-
try {
|
|
114
|
-
const response = await this.fetch(this.updatesUrl);
|
|
115
|
-
const body = await response.json();
|
|
116
|
-
if (!response.ok) {
|
|
117
|
-
this.log.warn(`Unexpected HTTP response checking for updates`, {
|
|
118
|
-
status: response.status,
|
|
119
|
-
body: await response.text(),
|
|
120
|
-
url: this.updatesUrl,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
const { version, config, publicTelemetry } = updateConfigSchema.parse(body);
|
|
125
|
-
|
|
126
|
-
if (this.nodeVersion && version && version !== this.nodeVersion) {
|
|
127
|
-
this.log.debug('New node version', { currentVersion: this.nodeVersion, latestVersion: version });
|
|
128
|
-
this.emit('newNodeVersion', { currentVersion: this.nodeVersion, latestVersion: version });
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
if (config && Object.keys(config).length > 0 && !isDeepStrictEqual(config, this.lastPatchedConfig)) {
|
|
132
|
-
this.log.debug('New node config', { config });
|
|
133
|
-
this.lastPatchedConfig = config;
|
|
134
|
-
this.emit('updateNodeConfig', config);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (
|
|
138
|
-
publicTelemetry &&
|
|
139
|
-
Object.keys(publicTelemetry).length > 0 &&
|
|
140
|
-
!isDeepStrictEqual(publicTelemetry, this.lastPatchedPublicTelemetryConfig)
|
|
141
|
-
) {
|
|
142
|
-
this.log.debug('New metrics config', { config });
|
|
143
|
-
this.lastPatchedPublicTelemetryConfig = publicTelemetry;
|
|
144
|
-
this.emit('updatePublicTelemetryConfig', publicTelemetry);
|
|
145
|
-
}
|
|
146
|
-
} catch (err) {
|
|
147
|
-
this.log.warn(`Failed to check if there is an update`, err);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Returns package version.
|
|
154
|
-
*/
|
|
155
|
-
export function getPackageVersion(): string | undefined {
|
|
156
|
-
try {
|
|
157
|
-
const releasePleaseManifestPath = resolve(
|
|
158
|
-
dirname(fileURLToPath(import.meta.url)),
|
|
159
|
-
'../../../../.release-please-manifest.json',
|
|
160
|
-
);
|
|
161
|
-
const version = JSON.parse(readFileSync(releasePleaseManifestPath).toString())['.'];
|
|
162
|
-
return version;
|
|
163
|
-
} catch {
|
|
164
|
-
return undefined;
|
|
165
|
-
}
|
|
166
|
-
}
|