@aztec/stdlib 0.0.1-commit.54489865 → 0.0.1-commit.5914bae
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 +57 -85
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +55 -6
- 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/decoder.d.ts +6 -45
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +17 -70
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +37 -6
- package/dest/abi/event_metadata_definition.d.ts +3 -1
- package/dest/abi/event_metadata_definition.d.ts.map +1 -1
- package/dest/abi/event_metadata_definition.js +1 -1
- package/dest/abi/function_call.d.ts +39 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +20 -3
- package/dest/abi/function_selector.js +1 -1
- 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/selector.d.ts +2 -2
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/selector.js +1 -1
- package/dest/abi/utils.d.ts +14 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +15 -0
- package/dest/auth_witness/auth_witness.js +3 -3
- package/dest/avm/avm.d.ts +300 -300
- package/dest/avm/avm_accumulated_data.js +2 -2
- package/dest/avm/avm_circuit_public_inputs.js +2 -2
- package/dest/avm/avm_proving_request.d.ts +166 -166
- package/dest/avm/revert_code.d.ts +9 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +16 -21
- 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/in_block.js +1 -1
- package/dest/block/index.d.ts +2 -1
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +1 -0
- package/dest/block/l2_block.d.ts +9 -1
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +12 -2
- package/dest/block/l2_block_source.d.ts +35 -8
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +6 -3
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +10 -0
- package/dest/checkpoint/checkpoint.d.ts +22 -7
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +32 -16
- 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 +3 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +2 -0
- package/dest/checkpoint/published_checkpoint.d.ts +17 -2
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +1 -2
- package/dest/checkpoint/validate.d.ts +36 -0
- package/dest/checkpoint/validate.d.ts.map +1 -0
- package/dest/checkpoint/validate.js +120 -0
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -0
- package/dest/config/sequencer-config.d.ts +10 -0
- package/dest/config/sequencer-config.d.ts.map +1 -0
- package/dest/config/sequencer-config.js +23 -0
- 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 +1 -1
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +5 -4
- 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.js +2 -2
- 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 +2 -50
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -66
- package/dest/epoch-helpers/index.d.ts +13 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +15 -2
- package/dest/file-store/local.d.ts +3 -3
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/file-store/local.js +13 -4
- package/dest/file-store/s3.d.ts +1 -1
- package/dest/file-store/s3.d.ts.map +1 -1
- package/dest/file-store/s3.js +11 -3
- package/dest/gas/gas_fees.d.ts +1 -1
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +4 -1
- package/dest/gas/gas_settings.d.ts +40 -3
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +50 -6
- package/dest/hash/hash.d.ts +20 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +45 -10
- package/dest/hash/map_slot.js +2 -2
- package/dest/interfaces/allowed_element.d.ts +26 -20
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/allowed_element.js +8 -8
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +8 -2
- package/dest/interfaces/aztec-node-admin.d.ts +109 -29
- 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-debug.d.ts +21 -0
- package/dest/interfaces/aztec-node-debug.d.ts.map +1 -0
- package/dest/interfaces/aztec-node-debug.js +18 -0
- package/dest/interfaces/aztec-node.d.ts +41 -56
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +7 -8
- package/dest/interfaces/block-builder.d.ts +43 -11
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +16 -2
- package/dest/interfaces/client.d.ts +2 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +1 -0
- package/dest/interfaces/configs.d.ts +77 -32
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +10 -3
- package/dest/interfaces/get_logs_response.d.ts +8 -1
- package/dest/interfaces/get_logs_response.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +10 -20
- 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 +11 -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 +202 -202
- 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/validator.d.ts +114 -26
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +9 -2
- package/dest/interfaces/world_state.d.ts +5 -4
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/claimed_length_array.js +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -3
- package/dest/kernel/hints/index.d.ts +2 -2
- package/dest/kernel/hints/index.js +2 -2
- 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 +1 -1
- package/dest/kernel/hints/private_kernel_reset_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/padded_side_effects.js +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +9 -9
- 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 +3 -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_tail_circuit_private_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.js +4 -4
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +4 -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 +11 -7
- package/dest/kernel/private_to_avm_accumulated_data.js +2 -2
- package/dest/kernel/private_to_public_accumulated_data.js +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.js +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +3 -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 +3 -3
- package/dest/kernel/private_validation_requests.js +9 -9
- 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.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_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} +35 -20
- package/dest/logs/extended_public_log.d.ts +7 -1
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +4 -2
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +3 -1
- package/dest/logs/log_filter.d.ts +4 -1
- package/dest/logs/log_filter.d.ts.map +1 -1
- package/dest/logs/log_filter.js +2 -1
- package/dest/logs/log_id.d.ts +10 -7
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_id.js +15 -13
- package/dest/logs/message_context.d.ts +4 -7
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +23 -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 +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/private_log.js +1 -1
- package/dest/logs/public_log.d.ts +4 -3
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +9 -2
- 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 -3
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +12 -7
- package/dest/logs/tag.js +1 -1
- package/dest/logs/tagging_index_range.d.ts +40 -0
- package/dest/logs/tagging_index_range.d.ts.map +1 -0
- package/dest/logs/tagging_index_range.js +8 -0
- package/dest/logs/tx_scoped_l2_log.d.ts +3 -1
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +7 -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 +34 -8
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +72 -29
- package/dest/noir/index.d.ts +3 -3
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/index.d.ts +1 -2
- package/dest/note/index.d.ts.map +1 -1
- package/dest/note/index.js +0 -1
- package/dest/note/note_dao.d.ts +1 -1
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +1 -4
- package/dest/p2p/attestation_utils.d.ts +11 -1
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +45 -0
- package/dest/p2p/block_proposal.d.ts +1 -1
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +1 -3
- package/dest/p2p/checkpoint_attestation.d.ts +2 -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 +17 -10
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +40 -36
- 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 +12 -3
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +22 -15
- package/dest/p2p/constants.d.ts +3 -1
- package/dest/p2p/constants.d.ts.map +1 -1
- package/dest/p2p/constants.js +1 -0
- package/dest/p2p/index.d.ts +1 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +0 -1
- package/dest/p2p/peer_error.d.ts +3 -1
- package/dest/p2p/peer_error.d.ts.map +1 -1
- package/dest/p2p/peer_error.js +5 -0
- package/dest/p2p/topic_type.d.ts +3 -4
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +7 -24
- package/dest/parity/parity_base_private_inputs.js +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 +7 -1
- package/dest/rollup/base_rollup_hints.js +2 -2
- package/dest/rollup/block_root_rollup_private_inputs.js +5 -5
- package/dest/rollup/checkpoint_header.d.ts +2 -2
- package/dest/rollup/checkpoint_header.js +2 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +3 -3
- package/dest/rollup/root_rollup_public_inputs.d.ts +6 -6
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +3 -3
- package/dest/rollup/tree_snapshot_diff_hints.js +2 -2
- 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 +8 -2
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +35 -3
- 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 +3 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +22 -14
- package/dest/tests/mocks.d.ts +8 -3
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +33 -23
- 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/public_data_leaf.d.ts +2 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.js +7 -6
- package/dest/tx/block_header.d.ts +3 -1
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +6 -2
- package/dest/tx/capsule.d.ts +6 -2
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/capsule.js +9 -3
- package/dest/tx/global_variables.d.ts +4 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/private_execution_result.d.ts +6 -6
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +6 -6
- package/dest/tx/profiling.d.ts +17 -5
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +15 -5
- package/dest/tx/protocol_contracts.d.ts +1 -1
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.js +4 -4
- package/dest/tx/public_simulation_output.d.ts +4 -2
- package/dest/tx/public_simulation_output.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.js +7 -3
- package/dest/tx/simulated_tx.d.ts +63 -77
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +7 -4
- package/dest/tx/tx.d.ts +6 -5
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +18 -6
- package/dest/tx/tx_receipt.d.ts +29 -6
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +23 -19
- 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 +10 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +11 -1
- package/dest/tx/validator/tx_validator.d.ts +2 -2
- package/dest/tx/validator/tx_validator.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 +24 -0
- package/dest/update-checker/version_checker.d.ts +25 -0
- package/dest/update-checker/version_checker.d.ts.map +1 -0
- package/dest/update-checker/version_checker.js +50 -0
- package/dest/validators/errors.d.ts +6 -1
- package/dest/validators/errors.d.ts.map +1 -1
- package/dest/validators/errors.js +7 -0
- package/dest/validators/schemas.d.ts +30 -30
- 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/versioning/versioning.d.ts +4 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +4 -1
- package/dest/vks/vk_data.js +1 -1
- package/package.json +25 -13
- package/src/abi/abi.ts +78 -2
- package/src/abi/buffer.ts +25 -4
- package/src/abi/decoder.ts +36 -82
- package/src/abi/encoder.ts +49 -6
- package/src/abi/event_metadata_definition.ts +2 -0
- package/src/abi/function_call.ts +25 -3
- package/src/abi/function_selector.ts +1 -1
- package/src/abi/function_signature_decoder.ts +77 -0
- package/src/abi/index.ts +1 -0
- package/src/abi/selector.ts +1 -1
- package/src/abi/utils.ts +25 -0
- package/src/auth_witness/auth_witness.ts +3 -3
- package/src/avm/avm_accumulated_data.ts +6 -6
- package/src/avm/avm_circuit_public_inputs.ts +4 -4
- package/src/avm/revert_code.ts +26 -25
- package/src/block/block_data.ts +26 -0
- package/src/block/in_block.ts +1 -1
- package/src/block/index.ts +1 -0
- package/src/block/l2_block.ts +13 -1
- package/src/block/l2_block_source.ts +38 -7
- package/src/block/l2_block_stream/interfaces.ts +6 -2
- package/src/block/l2_block_stream/l2_block_stream.ts +21 -0
- package/src/checkpoint/checkpoint.ts +43 -16
- package/src/checkpoint/checkpoint_data.ts +51 -0
- package/src/checkpoint/index.ts +2 -0
- package/src/checkpoint/published_checkpoint.ts +3 -1
- package/src/checkpoint/validate.ts +230 -0
- package/src/config/index.ts +1 -0
- package/src/config/sequencer-config.ts +34 -0
- package/src/contract/contract_address.ts +4 -4
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +5 -4
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +2 -2
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/epoch-helpers/index.ts +25 -0
- package/src/file-store/local.ts +15 -5
- package/src/file-store/s3.ts +12 -3
- package/src/gas/README.md +123 -0
- package/src/gas/gas_fees.ts +7 -1
- package/src/gas/gas_settings.ts +65 -12
- package/src/hash/hash.ts +48 -10
- package/src/hash/map_slot.ts +2 -2
- package/src/interfaces/allowed_element.ts +29 -9
- package/src/interfaces/archiver.ts +8 -2
- package/src/interfaces/aztec-node-admin.ts +26 -2
- package/src/interfaces/aztec-node-debug.ts +40 -0
- package/src/interfaces/aztec-node.ts +60 -92
- package/src/interfaces/block-builder.ts +66 -11
- package/src/interfaces/client.ts +1 -0
- package/src/interfaces/configs.ts +36 -8
- package/src/interfaces/merkle_tree_operations.ts +9 -19
- package/src/interfaces/p2p.ts +3 -14
- package/src/interfaces/prover-broker.ts +22 -0
- package/src/interfaces/prover-client.ts +15 -0
- package/src/interfaces/slasher.ts +4 -0
- package/src/interfaces/validator.ts +29 -3
- package/src/interfaces/world_state.ts +4 -3
- package/src/kernel/claimed_length_array.ts +2 -2
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +14 -18
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +15 -18
- package/src/kernel/hints/build_transient_data_hints.ts +17 -2
- package/src/kernel/hints/index.ts +2 -2
- package/src/kernel/hints/{key_validation_request_and_generator.ts → key_validation_request_and_separator.ts} +12 -15
- package/src/kernel/hints/private_kernel_reset_hints.ts +5 -2
- package/src/kernel/hints/read_request_hints.ts +3 -3
- package/src/kernel/hints/{scoped_key_validation_request_and_generator.ts → scoped_key_validation_request_and_separator.ts} +10 -10
- package/src/kernel/padded_side_effects.ts +3 -3
- 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 +14 -5
- package/src/kernel/private_to_avm_accumulated_data.ts +4 -4
- package/src/kernel/private_to_public_accumulated_data.ts +10 -10
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_to_rollup_accumulated_data.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} +41 -22
- package/src/logs/index.ts +3 -1
- package/src/logs/log_filter.ts +5 -0
- package/src/logs/log_id.ts +15 -12
- package/src/logs/message_context.ts +17 -7
- package/src/logs/pending_tagged_log.ts +1 -3
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/private_log.ts +1 -1
- package/src/logs/public_log.ts +15 -3
- package/src/logs/shared_secret_derivation.ts +21 -10
- package/src/logs/siloed_tag.ts +15 -5
- package/src/logs/tag.ts +1 -1
- package/src/logs/tagging_index_range.ts +24 -0
- package/src/logs/tx_scoped_l2_log.ts +16 -0
- package/src/messaging/l1_to_l2_message.ts +12 -9
- package/src/messaging/l2_to_l1_membership.ts +101 -36
- package/src/noir/index.ts +2 -2
- package/src/note/index.ts +0 -1
- package/src/note/note_dao.ts +1 -4
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +0 -2
- package/src/p2p/checkpoint_attestation.ts +6 -1
- package/src/p2p/checkpoint_proposal.ts +66 -48
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/consensus_payload.ts +25 -12
- package/src/p2p/constants.ts +3 -0
- package/src/p2p/index.ts +0 -1
- package/src/p2p/peer_error.ts +7 -0
- package/src/p2p/topic_type.ts +8 -15
- package/src/parity/parity_base_private_inputs.ts +1 -1
- package/src/proofs/chonk_proof.ts +9 -1
- package/src/rollup/base_rollup_hints.ts +2 -2
- package/src/rollup/block_root_rollup_private_inputs.ts +8 -8
- package/src/rollup/checkpoint_header.ts +2 -2
- package/src/rollup/checkpoint_rollup_public_inputs.ts +5 -5
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +4 -4
- package/src/rollup/root_rollup_public_inputs.ts +7 -7
- package/src/rollup/tree_snapshot_diff_hints.ts +5 -5
- package/src/slashing/empire.ts +3 -1
- package/src/slashing/helpers.ts +8 -0
- package/src/slashing/tally.ts +41 -2
- package/src/slashing/types.ts +14 -0
- package/src/stats/stats.ts +0 -2
- package/src/tests/factories.ts +27 -18
- package/src/tests/mocks.ts +47 -21
- package/src/timetable/index.ts +66 -0
- package/src/trees/public_data_leaf.ts +11 -5
- package/src/tx/block_header.ts +8 -2
- package/src/tx/capsule.ts +10 -2
- package/src/tx/global_variables.ts +3 -3
- package/src/tx/private_execution_result.ts +5 -5
- package/src/tx/profiling.ts +14 -5
- package/src/tx/protocol_contracts.ts +4 -4
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/simulated_tx.ts +14 -3
- package/src/tx/tx.ts +20 -11
- package/src/tx/tx_receipt.ts +28 -16
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/empty_validator.ts +1 -1
- package/src/tx/validator/error_texts.ts +13 -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 +30 -0
- package/src/update-checker/version_checker.ts +65 -0
- package/src/validators/errors.ts +9 -0
- package/src/validators/schemas.ts +8 -1
- package/src/validators/types.ts +5 -4
- package/src/versioning/versioning.ts +4 -1
- package/src/vks/vk_data.ts +1 -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 -30
- 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/database-version/index.ts +0 -1
- package/src/note/notes_filter.ts +0 -38
- package/src/update-checker/update-checker.ts +0 -166
|
@@ -5,7 +5,7 @@ import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
|
5
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
6
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
7
7
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
8
|
-
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
8
|
+
import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
9
9
|
import { DutyType, type SigningContext } from '@aztec/validator-ha-signer/types';
|
|
10
10
|
|
|
11
11
|
import type { L2BlockInfo } from '../block/l2_block_info.js';
|
|
@@ -81,7 +81,10 @@ export class CheckpointProposal extends Gossipable {
|
|
|
81
81
|
/** Archive root after this checkpoint is applied */
|
|
82
82
|
public readonly archive: Fr,
|
|
83
83
|
|
|
84
|
-
/** The
|
|
84
|
+
/** The fee asset price modifier in basis points (from oracle) */
|
|
85
|
+
public readonly feeAssetPriceModifier: bigint,
|
|
86
|
+
|
|
87
|
+
/** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */
|
|
85
88
|
public readonly signature: Signature,
|
|
86
89
|
|
|
87
90
|
/** Optional last block info, including its own signature for BlockProposal extraction */
|
|
@@ -98,23 +101,6 @@ export class CheckpointProposal extends Gossipable {
|
|
|
98
101
|
return this.checkpointHeader.slotNumber;
|
|
99
102
|
}
|
|
100
103
|
|
|
101
|
-
get blockNumber(): BlockNumber {
|
|
102
|
-
if (!this.lastBlock) {
|
|
103
|
-
throw new Error('Cannot get blockNumber without lastBlock');
|
|
104
|
-
}
|
|
105
|
-
return this.lastBlock.blockHeader.getBlockNumber();
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/** Convenience getter for txHashes from lastBlock */
|
|
109
|
-
get txHashes(): TxHash[] {
|
|
110
|
-
return this.lastBlock?.txHashes ?? [];
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/** Convenience getter for txs from lastBlock */
|
|
114
|
-
get txs(): Tx[] | undefined {
|
|
115
|
-
return this.lastBlock?.signedTxs?.txs;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
104
|
/**
|
|
119
105
|
* Extract a BlockProposal from the last block info.
|
|
120
106
|
* Uses inHash from checkpointHeader.contentCommitment.inHash
|
|
@@ -148,22 +134,43 @@ export class CheckpointProposal extends Gossipable {
|
|
|
148
134
|
};
|
|
149
135
|
}
|
|
150
136
|
|
|
137
|
+
toCheckpointInfo() {
|
|
138
|
+
return {
|
|
139
|
+
slotNumber: this.slotNumber,
|
|
140
|
+
archive: this.archive,
|
|
141
|
+
lastBlockNumber: this.lastBlock?.blockHeader.getBlockNumber(),
|
|
142
|
+
lastBlockIndex: this.lastBlock?.indexWithinCheckpoint,
|
|
143
|
+
blockHeadersHash: this.checkpointHeader.blockHeadersHash,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
151
147
|
/**
|
|
152
148
|
* Get the payload to sign for this checkpoint proposal.
|
|
153
|
-
* The signature is over the checkpoint header + archive root (for consensus).
|
|
149
|
+
* The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
|
|
154
150
|
*/
|
|
155
151
|
getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
|
|
156
|
-
return serializeToBuffer([
|
|
152
|
+
return serializeToBuffer([
|
|
153
|
+
domainSeparator,
|
|
154
|
+
this.checkpointHeader,
|
|
155
|
+
this.archive,
|
|
156
|
+
serializeSignedBigInt(this.feeAssetPriceModifier),
|
|
157
|
+
]);
|
|
157
158
|
}
|
|
158
159
|
|
|
159
160
|
static async createProposalFromSigner(
|
|
160
161
|
checkpointHeader: CheckpointHeader,
|
|
161
162
|
archiveRoot: Fr,
|
|
163
|
+
feeAssetPriceModifier: bigint,
|
|
162
164
|
lastBlockInfo: CheckpointLastBlockData | undefined,
|
|
163
165
|
payloadSigner: (payload: Buffer32, context: SigningContext) => Promise<Signature>,
|
|
164
166
|
): Promise<CheckpointProposal> {
|
|
165
167
|
// Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
|
|
166
|
-
const tempProposal = new CheckpointProposal(
|
|
168
|
+
const tempProposal = new CheckpointProposal(
|
|
169
|
+
checkpointHeader,
|
|
170
|
+
archiveRoot,
|
|
171
|
+
feeAssetPriceModifier,
|
|
172
|
+
Signature.empty(),
|
|
173
|
+
);
|
|
167
174
|
const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
|
|
168
175
|
|
|
169
176
|
const checkpointContext: SigningContext = {
|
|
@@ -171,29 +178,32 @@ export class CheckpointProposal extends Gossipable {
|
|
|
171
178
|
blockNumber: lastBlockInfo?.blockHeader?.globalVariables.blockNumber ?? BlockNumber(0),
|
|
172
179
|
dutyType: DutyType.CHECKPOINT_PROPOSAL,
|
|
173
180
|
};
|
|
174
|
-
const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
|
|
175
181
|
|
|
176
|
-
if (
|
|
177
|
-
|
|
182
|
+
if (lastBlockInfo) {
|
|
183
|
+
// Sign block proposal before signing checkpoint proposal to ensure HA protection
|
|
184
|
+
const lastBlockProposal = await BlockProposal.createProposalFromSigner(
|
|
185
|
+
lastBlockInfo.blockHeader,
|
|
186
|
+
lastBlockInfo.indexWithinCheckpoint,
|
|
187
|
+
checkpointHeader.inHash,
|
|
188
|
+
archiveRoot,
|
|
189
|
+
lastBlockInfo.txHashes,
|
|
190
|
+
lastBlockInfo.txs,
|
|
191
|
+
payloadSigner,
|
|
192
|
+
);
|
|
193
|
+
|
|
194
|
+
const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
|
|
195
|
+
|
|
196
|
+
return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, {
|
|
197
|
+
blockHeader: lastBlockInfo.blockHeader,
|
|
198
|
+
indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
|
|
199
|
+
txHashes: lastBlockInfo.txHashes,
|
|
200
|
+
signature: lastBlockProposal.signature,
|
|
201
|
+
signedTxs: lastBlockProposal.signedTxs,
|
|
202
|
+
});
|
|
178
203
|
}
|
|
179
204
|
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
lastBlockInfo.indexWithinCheckpoint,
|
|
183
|
-
checkpointHeader.inHash,
|
|
184
|
-
archiveRoot,
|
|
185
|
-
lastBlockInfo.txHashes,
|
|
186
|
-
lastBlockInfo.txs,
|
|
187
|
-
payloadSigner,
|
|
188
|
-
);
|
|
189
|
-
|
|
190
|
-
return new CheckpointProposal(checkpointHeader, archiveRoot, checkpointSignature, {
|
|
191
|
-
blockHeader: lastBlockInfo.blockHeader,
|
|
192
|
-
indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
|
|
193
|
-
txHashes: lastBlockInfo.txHashes,
|
|
194
|
-
signature: lastBlockProposal.signature,
|
|
195
|
-
signedTxs: lastBlockProposal.signedTxs,
|
|
196
|
-
});
|
|
205
|
+
const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
|
|
206
|
+
return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature);
|
|
197
207
|
}
|
|
198
208
|
|
|
199
209
|
/**
|
|
@@ -227,7 +237,12 @@ export class CheckpointProposal extends Gossipable {
|
|
|
227
237
|
}
|
|
228
238
|
|
|
229
239
|
toBuffer(): Buffer {
|
|
230
|
-
const buffer: any[] = [
|
|
240
|
+
const buffer: any[] = [
|
|
241
|
+
this.checkpointHeader,
|
|
242
|
+
this.archive,
|
|
243
|
+
serializeSignedBigInt(this.feeAssetPriceModifier),
|
|
244
|
+
this.signature,
|
|
245
|
+
];
|
|
231
246
|
|
|
232
247
|
if (this.lastBlock) {
|
|
233
248
|
buffer.push(1); // hasLastBlock = true
|
|
@@ -254,6 +269,7 @@ export class CheckpointProposal extends Gossipable {
|
|
|
254
269
|
|
|
255
270
|
const checkpointHeader = reader.readObject(CheckpointHeader);
|
|
256
271
|
const archive = reader.readObject(Fr);
|
|
272
|
+
const feeAssetPriceModifier = reader.readInt256();
|
|
257
273
|
const signature = reader.readObject(Signature);
|
|
258
274
|
|
|
259
275
|
const hasLastBlock = reader.readNumber();
|
|
@@ -276,7 +292,7 @@ export class CheckpointProposal extends Gossipable {
|
|
|
276
292
|
}
|
|
277
293
|
}
|
|
278
294
|
|
|
279
|
-
return new CheckpointProposal(checkpointHeader, archive, signature, {
|
|
295
|
+
return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, {
|
|
280
296
|
blockHeader,
|
|
281
297
|
indexWithinCheckpoint,
|
|
282
298
|
txHashes,
|
|
@@ -285,7 +301,7 @@ export class CheckpointProposal extends Gossipable {
|
|
|
285
301
|
});
|
|
286
302
|
}
|
|
287
303
|
|
|
288
|
-
return new CheckpointProposal(checkpointHeader, archive, signature);
|
|
304
|
+
return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature);
|
|
289
305
|
}
|
|
290
306
|
|
|
291
307
|
getSize(): number {
|
|
@@ -293,6 +309,7 @@ export class CheckpointProposal extends Gossipable {
|
|
|
293
309
|
this.checkpointHeader.toBuffer().length +
|
|
294
310
|
this.archive.size +
|
|
295
311
|
this.signature.getSize() +
|
|
312
|
+
8 /* feeAssetPriceModifier */ +
|
|
296
313
|
4; /* hasLastBlock flag */
|
|
297
314
|
|
|
298
315
|
if (this.lastBlock) {
|
|
@@ -310,11 +327,11 @@ export class CheckpointProposal extends Gossipable {
|
|
|
310
327
|
}
|
|
311
328
|
|
|
312
329
|
static empty(): CheckpointProposal {
|
|
313
|
-
return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, Signature.empty());
|
|
330
|
+
return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty());
|
|
314
331
|
}
|
|
315
332
|
|
|
316
333
|
static random(): CheckpointProposal {
|
|
317
|
-
return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), Signature.random(), {
|
|
334
|
+
return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), {
|
|
318
335
|
blockHeader: BlockHeader.random(),
|
|
319
336
|
indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
|
|
320
337
|
txHashes: [TxHash.random(), TxHash.random()],
|
|
@@ -327,6 +344,7 @@ export class CheckpointProposal extends Gossipable {
|
|
|
327
344
|
checkpointHeader: this.checkpointHeader.toInspect(),
|
|
328
345
|
archive: this.archive.toString(),
|
|
329
346
|
signature: this.signature.toString(),
|
|
347
|
+
feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
|
|
330
348
|
lastBlock: this.lastBlock
|
|
331
349
|
? {
|
|
332
350
|
blockHeader: this.lastBlock.blockHeader.toInspect(),
|
|
@@ -343,7 +361,7 @@ export class CheckpointProposal extends Gossipable {
|
|
|
343
361
|
* Used when the lastBlock has been extracted and stored separately.
|
|
344
362
|
*/
|
|
345
363
|
toCore(): CheckpointProposalCore {
|
|
346
|
-
return new CheckpointProposal(this.checkpointHeader, this.archive, this.signature);
|
|
364
|
+
return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature);
|
|
347
365
|
}
|
|
348
366
|
}
|
|
349
367
|
|
package/src/p2p/client_type.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { schemas } from '@aztec/foundation/schemas';
|
|
3
|
-
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
3
|
+
import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
4
|
import { hexToBuffer } from '@aztec/foundation/string';
|
|
5
5
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
6
6
|
|
|
@@ -21,6 +21,8 @@ export class ConsensusPayload implements Signable {
|
|
|
21
21
|
public readonly header: CheckpointHeader,
|
|
22
22
|
/** The archive root after the block is added */
|
|
23
23
|
public readonly archive: Fr,
|
|
24
|
+
/** The fee asset price modifier in basis points (from oracle) */
|
|
25
|
+
public readonly feeAssetPriceModifier: bigint = 0n,
|
|
24
26
|
) {}
|
|
25
27
|
|
|
26
28
|
static get schema() {
|
|
@@ -28,12 +30,13 @@ export class ConsensusPayload implements Signable {
|
|
|
28
30
|
.object({
|
|
29
31
|
header: CheckpointHeader.schema,
|
|
30
32
|
archive: schemas.Fr,
|
|
33
|
+
feeAssetPriceModifier: schemas.BigInt,
|
|
31
34
|
})
|
|
32
|
-
.transform(obj => new ConsensusPayload(obj.header, obj.archive));
|
|
35
|
+
.transform(obj => new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier));
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
static getFields(fields: FieldsOf<ConsensusPayload>) {
|
|
36
|
-
return [fields.header, fields.archive] as const;
|
|
39
|
+
return [fields.header, fields.archive, fields.feeAssetPriceModifier] as const;
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
|
|
@@ -50,41 +53,50 @@ export class ConsensusPayload implements Signable {
|
|
|
50
53
|
const headerHash = this.header.hash().toString();
|
|
51
54
|
const encodedData = encodeAbiParameters(abi, [
|
|
52
55
|
domainSeparator,
|
|
53
|
-
[archiveRoot, [
|
|
56
|
+
[archiveRoot, [this.feeAssetPriceModifier], headerHash],
|
|
54
57
|
] as const);
|
|
55
58
|
|
|
56
59
|
return hexToBuffer(encodedData);
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
toBuffer(): Buffer {
|
|
60
|
-
return serializeToBuffer([this.header, this.archive]);
|
|
63
|
+
return serializeToBuffer([this.header, this.archive, serializeSignedBigInt(this.feeAssetPriceModifier)]);
|
|
61
64
|
}
|
|
62
65
|
|
|
63
66
|
public equals(other: ConsensusPayload | CheckpointProposal | CheckpointProposalCore): boolean {
|
|
64
67
|
const otherHeader = 'checkpointHeader' in other ? other.checkpointHeader : other.header;
|
|
65
|
-
|
|
68
|
+
const otherModifier = 'feeAssetPriceModifier' in other ? other.feeAssetPriceModifier : 0n;
|
|
69
|
+
return (
|
|
70
|
+
this.header.equals(otherHeader) &&
|
|
71
|
+
this.archive.equals(other.archive) &&
|
|
72
|
+
this.feeAssetPriceModifier === otherModifier
|
|
73
|
+
);
|
|
66
74
|
}
|
|
67
75
|
|
|
68
76
|
static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload {
|
|
69
77
|
const reader = BufferReader.asReader(buf);
|
|
70
|
-
const payload = new ConsensusPayload(
|
|
78
|
+
const payload = new ConsensusPayload(
|
|
79
|
+
reader.readObject(CheckpointHeader),
|
|
80
|
+
reader.readObject(Fr),
|
|
81
|
+
reader.readInt256(),
|
|
82
|
+
);
|
|
71
83
|
return payload;
|
|
72
84
|
}
|
|
73
85
|
|
|
74
86
|
static fromFields(fields: FieldsOf<ConsensusPayload>): ConsensusPayload {
|
|
75
|
-
return new ConsensusPayload(fields.header, fields.archive);
|
|
87
|
+
return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier);
|
|
76
88
|
}
|
|
77
89
|
|
|
78
90
|
static fromCheckpoint(checkpoint: Checkpoint): ConsensusPayload {
|
|
79
|
-
return new ConsensusPayload(checkpoint.header, checkpoint.archive.root);
|
|
91
|
+
return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier);
|
|
80
92
|
}
|
|
81
93
|
|
|
82
94
|
static empty(): ConsensusPayload {
|
|
83
|
-
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO);
|
|
95
|
+
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n);
|
|
84
96
|
}
|
|
85
97
|
|
|
86
98
|
static random(): ConsensusPayload {
|
|
87
|
-
return new ConsensusPayload(CheckpointHeader.random(), Fr.random());
|
|
99
|
+
return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n);
|
|
88
100
|
}
|
|
89
101
|
|
|
90
102
|
/**
|
|
@@ -104,10 +116,11 @@ export class ConsensusPayload implements Signable {
|
|
|
104
116
|
return {
|
|
105
117
|
header: this.header.toInspect(),
|
|
106
118
|
archive: this.archive.toString(),
|
|
119
|
+
feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
|
|
107
120
|
};
|
|
108
121
|
}
|
|
109
122
|
|
|
110
123
|
toString() {
|
|
111
|
-
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}}`;
|
|
124
|
+
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}}`;
|
|
112
125
|
}
|
|
113
126
|
}
|
package/src/p2p/constants.ts
CHANGED
package/src/p2p/index.ts
CHANGED
|
@@ -8,7 +8,6 @@ export * from './interface.js';
|
|
|
8
8
|
export * from './signature_utils.js';
|
|
9
9
|
export * from './signed_txs.js';
|
|
10
10
|
export * from './topic_type.js';
|
|
11
|
-
export * from './client_type.js';
|
|
12
11
|
export * from './message_validator.js';
|
|
13
12
|
export * from './peer_error.js';
|
|
14
13
|
export * from './constants.js';
|
package/src/p2p/peer_error.ts
CHANGED
|
@@ -15,3 +15,10 @@ export enum PeerErrorSeverity {
|
|
|
15
15
|
*/
|
|
16
16
|
HighToleranceError = 'HighToleranceError',
|
|
17
17
|
}
|
|
18
|
+
|
|
19
|
+
/** Severities ordered from mildest to harshest. */
|
|
20
|
+
export const PeerErrorSeverityByHarshness = [
|
|
21
|
+
PeerErrorSeverity.HighToleranceError,
|
|
22
|
+
PeerErrorSeverity.MidToleranceError,
|
|
23
|
+
PeerErrorSeverity.LowToleranceError,
|
|
24
|
+
] as const;
|
package/src/p2p/topic_type.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { P2PClientType } from './client_type.js';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Creates the topic channel identifier string from a given topic type
|
|
5
3
|
*/
|
|
@@ -27,19 +25,14 @@ export enum TopicType {
|
|
|
27
25
|
checkpoint_attestation = 'checkpoint_attestation',
|
|
28
26
|
}
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function getTopicsForClientAndConfig(clientType: P2PClientType, disableTransactions: boolean) {
|
|
42
|
-
const topics = getTopicTypeForClientType(clientType);
|
|
28
|
+
/** Returns all gossip topics, optionally filtering out transactions. */
|
|
29
|
+
export function getTopicsForConfig(disableTransactions: boolean) {
|
|
30
|
+
const topics = [
|
|
31
|
+
TopicType.tx,
|
|
32
|
+
TopicType.block_proposal,
|
|
33
|
+
TopicType.checkpoint_proposal,
|
|
34
|
+
TopicType.checkpoint_attestation,
|
|
35
|
+
];
|
|
43
36
|
if (disableTransactions) {
|
|
44
37
|
return topics.filter(topic => topic !== TopicType.tx);
|
|
45
38
|
}
|
|
@@ -41,7 +41,7 @@ export class ParityBasePrivateInputs {
|
|
|
41
41
|
*/
|
|
42
42
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
43
43
|
const reader = BufferReader.asReader(buffer);
|
|
44
|
-
return new ParityBasePrivateInputs(reader.
|
|
44
|
+
return new ParityBasePrivateInputs(reader.readTuple(NUM_MSGS_PER_BASE_PARITY, Fr), Fr.fromBuffer(reader));
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
@@ -56,7 +56,10 @@ export class ChonkProof {
|
|
|
56
56
|
static fromBuffer(buffer: Buffer | BufferReader): ChonkProof {
|
|
57
57
|
const reader = BufferReader.asReader(buffer);
|
|
58
58
|
const proofLength = reader.readNumber();
|
|
59
|
-
|
|
59
|
+
if (proofLength !== CHONK_PROOF_LENGTH) {
|
|
60
|
+
throw new Error(`Invalid ChonkProof length from buffer: ${proofLength}, expected ${CHONK_PROOF_LENGTH}`);
|
|
61
|
+
}
|
|
62
|
+
const proof = reader.readArray(CHONK_PROOF_LENGTH, Fr);
|
|
60
63
|
return new ChonkProof(proof);
|
|
61
64
|
}
|
|
62
65
|
|
|
@@ -106,6 +109,11 @@ export class ChonkProofWithPublicInputs {
|
|
|
106
109
|
static fromBuffer(buffer: Buffer | BufferReader): ChonkProofWithPublicInputs {
|
|
107
110
|
const reader = BufferReader.asReader(buffer);
|
|
108
111
|
const proofLength = reader.readNumber();
|
|
112
|
+
if (proofLength < CHONK_PROOF_LENGTH) {
|
|
113
|
+
throw new Error(
|
|
114
|
+
`Invalid ChonkProofWithPublicInputs length from buffer: ${proofLength}, expected at least ${CHONK_PROOF_LENGTH}`,
|
|
115
|
+
);
|
|
116
|
+
}
|
|
109
117
|
const proof = reader.readArray(proofLength, Fr);
|
|
110
118
|
return new ChonkProofWithPublicInputs(proof);
|
|
111
119
|
}
|
|
@@ -86,7 +86,7 @@ export class PrivateBaseRollupHints {
|
|
|
86
86
|
reader.readObject(SpongeBlob),
|
|
87
87
|
reader.readObject(TreeSnapshotDiffHints),
|
|
88
88
|
reader.readObject(PublicDataTreeLeafPreimage),
|
|
89
|
-
reader.
|
|
89
|
+
reader.readTuple(ARCHIVE_HEIGHT, Fr),
|
|
90
90
|
makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, () => reader.readObject(ContractClassLogFields)),
|
|
91
91
|
reader.readObject(BlockConstantData),
|
|
92
92
|
);
|
|
@@ -163,7 +163,7 @@ export class PublicBaseRollupHints {
|
|
|
163
163
|
return new PublicBaseRollupHints(
|
|
164
164
|
reader.readObject(SpongeBlob),
|
|
165
165
|
reader.readObject(AppendOnlyTreeSnapshot),
|
|
166
|
-
reader.
|
|
166
|
+
reader.readTuple(ARCHIVE_HEIGHT, Fr),
|
|
167
167
|
makeTuple(MAX_CONTRACT_CLASS_LOGS_PER_TX, () => reader.readObject(ContractClassLogFields)),
|
|
168
168
|
);
|
|
169
169
|
}
|
|
@@ -60,8 +60,8 @@ export class BlockRootFirstRollupPrivateInputs {
|
|
|
60
60
|
ProofData.fromBuffer(reader, ParityPublicInputs),
|
|
61
61
|
[ProofData.fromBuffer(reader, TxRollupPublicInputs), ProofData.fromBuffer(reader, TxRollupPublicInputs)],
|
|
62
62
|
AppendOnlyTreeSnapshot.fromBuffer(reader),
|
|
63
|
-
reader.
|
|
64
|
-
reader.
|
|
63
|
+
reader.readTuple(L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
|
|
64
|
+
reader.readTuple(ARCHIVE_HEIGHT, Fr),
|
|
65
65
|
);
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -124,8 +124,8 @@ export class BlockRootSingleTxFirstRollupPrivateInputs {
|
|
|
124
124
|
ProofData.fromBuffer(reader, ParityPublicInputs),
|
|
125
125
|
ProofData.fromBuffer(reader, TxRollupPublicInputs),
|
|
126
126
|
AppendOnlyTreeSnapshot.fromBuffer(reader),
|
|
127
|
-
reader.
|
|
128
|
-
reader.
|
|
127
|
+
reader.readTuple(L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
|
|
128
|
+
reader.readTuple(ARCHIVE_HEIGHT, Fr),
|
|
129
129
|
);
|
|
130
130
|
}
|
|
131
131
|
|
|
@@ -206,8 +206,8 @@ export class BlockRootEmptyTxFirstRollupPrivateInputs {
|
|
|
206
206
|
StateReference.fromBuffer(reader),
|
|
207
207
|
CheckpointConstantData.fromBuffer(reader),
|
|
208
208
|
reader.readUInt64(),
|
|
209
|
-
reader.
|
|
210
|
-
reader.
|
|
209
|
+
reader.readTuple(L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
|
|
210
|
+
reader.readTuple(ARCHIVE_HEIGHT, Fr),
|
|
211
211
|
);
|
|
212
212
|
}
|
|
213
213
|
|
|
@@ -248,7 +248,7 @@ export class BlockRootRollupPrivateInputs {
|
|
|
248
248
|
const reader = BufferReader.asReader(buffer);
|
|
249
249
|
return new BlockRootRollupPrivateInputs(
|
|
250
250
|
[ProofData.fromBuffer(reader, TxRollupPublicInputs), ProofData.fromBuffer(reader, TxRollupPublicInputs)],
|
|
251
|
-
reader.
|
|
251
|
+
reader.readTuple(ARCHIVE_HEIGHT, Fr),
|
|
252
252
|
);
|
|
253
253
|
}
|
|
254
254
|
|
|
@@ -289,7 +289,7 @@ export class BlockRootSingleTxRollupPrivateInputs {
|
|
|
289
289
|
const reader = BufferReader.asReader(buffer);
|
|
290
290
|
return new BlockRootSingleTxRollupPrivateInputs(
|
|
291
291
|
ProofData.fromBuffer(reader, TxRollupPublicInputs),
|
|
292
|
-
reader.
|
|
292
|
+
reader.readTuple(ARCHIVE_HEIGHT, Fr),
|
|
293
293
|
);
|
|
294
294
|
}
|
|
295
295
|
|
|
@@ -19,8 +19,8 @@ import type { UInt64 } from '../types/shared.js';
|
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
22
|
+
* This header is verified as-is in the rollup circuits, posted to the L1 rollup contract, stored in the archiver,
|
|
23
|
+
* and exposed via the Aztec Node API. See `CheckpointData` for a struct that includes the header plus extra metadata.
|
|
24
24
|
*/
|
|
25
25
|
export class CheckpointHeader {
|
|
26
26
|
constructor(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlobAccumulator, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
|
|
2
|
-
import {
|
|
2
|
+
import { MAX_CHECKPOINTS_PER_EPOCH } from '@aztec/constants';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
@@ -38,11 +38,11 @@ export class CheckpointRollupPublicInputs {
|
|
|
38
38
|
/**
|
|
39
39
|
* The hashes of the headers of the constituent checkpoints.
|
|
40
40
|
*/
|
|
41
|
-
public checkpointHeaderHashes: Tuple<Fr, typeof
|
|
41
|
+
public checkpointHeaderHashes: Tuple<Fr, typeof MAX_CHECKPOINTS_PER_EPOCH>,
|
|
42
42
|
/**
|
|
43
43
|
* The summed transaction fees and recipients of the constituent checkpoints.
|
|
44
44
|
*/
|
|
45
|
-
public fees: Tuple<FeeRecipient, typeof
|
|
45
|
+
public fees: Tuple<FeeRecipient, typeof MAX_CHECKPOINTS_PER_EPOCH>,
|
|
46
46
|
/**
|
|
47
47
|
* Accumulated opening proofs for all blobs before this checkpoint range.
|
|
48
48
|
*/
|
|
@@ -65,8 +65,8 @@ export class CheckpointRollupPublicInputs {
|
|
|
65
65
|
reader.readObject(AppendOnlyTreeSnapshot),
|
|
66
66
|
reader.readObject(AppendOnlyTreeSnapshot),
|
|
67
67
|
reader.readObject(AppendOnlyTreeSnapshot),
|
|
68
|
-
reader.
|
|
69
|
-
reader.
|
|
68
|
+
reader.readTuple(MAX_CHECKPOINTS_PER_EPOCH, Fr),
|
|
69
|
+
reader.readTuple(MAX_CHECKPOINTS_PER_EPOCH, FeeRecipient),
|
|
70
70
|
reader.readObject(BlobAccumulator),
|
|
71
71
|
reader.readObject(BlobAccumulator),
|
|
72
72
|
reader.readObject(FinalBlobBatchingChallenges),
|
|
@@ -81,15 +81,15 @@ export class CheckpointRootRollupHints {
|
|
|
81
81
|
const reader = BufferReader.asReader(buffer);
|
|
82
82
|
return new CheckpointRootRollupHints(
|
|
83
83
|
BlockHeader.fromBuffer(reader),
|
|
84
|
-
reader.
|
|
84
|
+
reader.readTuple(ARCHIVE_HEIGHT, Fr),
|
|
85
85
|
reader.readObject(AppendOnlyTreeSnapshot),
|
|
86
|
-
reader.
|
|
86
|
+
reader.readTuple(OUT_HASH_TREE_HEIGHT, Fr),
|
|
87
87
|
reader.readObject(BlobAccumulator),
|
|
88
88
|
reader.readObject(FinalBlobBatchingChallenges),
|
|
89
89
|
// Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
90
|
-
// reader.
|
|
90
|
+
// reader.readTuple(FIELDS_PER_BLOB, Fr),
|
|
91
91
|
Array.from({ length: FIELDS_PER_BLOB * BLOBS_PER_CHECKPOINT }, () => Fr.fromBuffer(reader)),
|
|
92
|
-
reader.
|
|
92
|
+
reader.readTuple(BLOBS_PER_CHECKPOINT, BLS12Point),
|
|
93
93
|
Fr.fromBuffer(reader),
|
|
94
94
|
);
|
|
95
95
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FinalBlobAccumulator } from '@aztec/blob-lib/types';
|
|
2
|
-
import {
|
|
2
|
+
import { MAX_CHECKPOINTS_PER_EPOCH } from '@aztec/constants';
|
|
3
3
|
import { makeTuple } from '@aztec/foundation/array';
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
@@ -27,8 +27,8 @@ export class RootRollupPublicInputs {
|
|
|
27
27
|
*/
|
|
28
28
|
public outHash: Fr,
|
|
29
29
|
/** Hashes of checkpoint headers for this rollup. */
|
|
30
|
-
public checkpointHeaderHashes: Tuple<Fr, typeof
|
|
31
|
-
public fees: Tuple<FeeRecipient, typeof
|
|
30
|
+
public checkpointHeaderHashes: Tuple<Fr, typeof MAX_CHECKPOINTS_PER_EPOCH>,
|
|
31
|
+
public fees: Tuple<FeeRecipient, typeof MAX_CHECKPOINTS_PER_EPOCH>,
|
|
32
32
|
public constants: EpochConstantData,
|
|
33
33
|
public blobPublicInputs: FinalBlobAccumulator,
|
|
34
34
|
) {}
|
|
@@ -68,8 +68,8 @@ export class RootRollupPublicInputs {
|
|
|
68
68
|
Fr.fromBuffer(reader),
|
|
69
69
|
Fr.fromBuffer(reader),
|
|
70
70
|
Fr.fromBuffer(reader),
|
|
71
|
-
reader.
|
|
72
|
-
reader.
|
|
71
|
+
reader.readTuple(MAX_CHECKPOINTS_PER_EPOCH, Fr),
|
|
72
|
+
reader.readTuple(MAX_CHECKPOINTS_PER_EPOCH, FeeRecipient),
|
|
73
73
|
EpochConstantData.fromBuffer(reader),
|
|
74
74
|
reader.readObject(FinalBlobAccumulator),
|
|
75
75
|
);
|
|
@@ -99,8 +99,8 @@ export class RootRollupPublicInputs {
|
|
|
99
99
|
Fr.random(),
|
|
100
100
|
Fr.random(),
|
|
101
101
|
Fr.random(),
|
|
102
|
-
makeTuple(
|
|
103
|
-
makeTuple(
|
|
102
|
+
makeTuple(MAX_CHECKPOINTS_PER_EPOCH, Fr.random),
|
|
103
|
+
makeTuple(MAX_CHECKPOINTS_PER_EPOCH, FeeRecipient.random),
|
|
104
104
|
new EpochConstantData(Fr.random(), Fr.random(), Fr.random(), Fr.random(), Fr.random()),
|
|
105
105
|
FinalBlobAccumulator.random(),
|
|
106
106
|
);
|
|
@@ -85,14 +85,14 @@ export class TreeSnapshotDiffHints {
|
|
|
85
85
|
static fromBuffer(buffer: Buffer | BufferReader): TreeSnapshotDiffHints {
|
|
86
86
|
const reader = BufferReader.asReader(buffer);
|
|
87
87
|
return new TreeSnapshotDiffHints(
|
|
88
|
-
reader.
|
|
89
|
-
reader.
|
|
90
|
-
reader.
|
|
88
|
+
reader.readTuple(NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
|
|
89
|
+
reader.readTuple(MAX_NULLIFIERS_PER_TX, NullifierLeafPreimage),
|
|
90
|
+
reader.readTuple(MAX_NULLIFIERS_PER_TX, {
|
|
91
91
|
fromBuffer: buffer => MembershipWitness.fromBuffer(buffer, NULLIFIER_TREE_HEIGHT),
|
|
92
92
|
}),
|
|
93
|
-
reader.
|
|
93
|
+
reader.readTuple(MAX_NULLIFIERS_PER_TX, Fr),
|
|
94
94
|
reader.readNumbers(MAX_NULLIFIERS_PER_TX),
|
|
95
|
-
reader.
|
|
95
|
+
reader.readTuple(NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH, Fr),
|
|
96
96
|
MembershipWitness.fromBuffer(reader, PUBLIC_DATA_TREE_HEIGHT),
|
|
97
97
|
);
|
|
98
98
|
}
|
package/src/slashing/empire.ts
CHANGED
|
@@ -83,7 +83,9 @@ export function getFirstEligibleRoundForOffense(
|
|
|
83
83
|
case OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS:
|
|
84
84
|
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
85
85
|
case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
|
|
86
|
-
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
86
|
+
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
87
|
+
case OffenseType.DUPLICATE_PROPOSAL:
|
|
88
|
+
case OffenseType.DUPLICATE_ATTESTATION: {
|
|
87
89
|
const slot = offense.epochOrSlot;
|
|
88
90
|
const detectedSlot = SlotNumber.fromBigInt(slot + 1n);
|
|
89
91
|
return getRoundForSlot(detectedSlot, constants).round + 1n;
|