@aztec/stdlib 0.0.1-commit.3d8f95d → 0.0.1-commit.3fd054f6
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 +138 -1
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +10 -2
- 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 +2 -2
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +7 -5
- 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/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_proving_request.d.ts +166 -166
- package/dest/avm/revert_code.d.ts +16 -1
- 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/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/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/pipelining-config.d.ts +19 -0
- package/dest/config/pipelining-config.d.ts.map +1 -0
- package/dest/config/pipelining-config.js +18 -0
- package/dest/config/sequencer-config.d.ts +4 -2
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +12 -0
- package/dest/contract/contract_address.d.ts +3 -3
- package/dest/contract/contract_address.js +7 -7
- package/dest/contract/contract_class.d.ts +2 -3
- package/dest/contract/contract_class.d.ts.map +1 -1
- package/dest/contract/contract_class_id.d.ts +3 -3
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_class_id.js +7 -6
- package/dest/contract/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/contract/interfaces/contract_class.d.ts +3 -156
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_class.js +1 -28
- 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/epoch-helpers/index.d.ts +7 -1
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +10 -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/ha-signing/config.d.ts +136 -0
- package/dest/ha-signing/config.d.ts.map +1 -0
- package/dest/ha-signing/config.js +97 -0
- package/dest/ha-signing/index.d.ts +4 -0
- package/dest/ha-signing/index.d.ts.map +1 -0
- package/dest/ha-signing/index.js +3 -0
- package/dest/ha-signing/local_config.d.ts +63 -0
- package/dest/ha-signing/local_config.d.ts.map +1 -0
- package/dest/ha-signing/local_config.js +24 -0
- package/dest/ha-signing/types.d.ts +85 -0
- package/dest/ha-signing/types.d.ts.map +1 -0
- package/dest/ha-signing/types.js +32 -0
- package/dest/hash/hash.d.ts +17 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +40 -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 +105 -31
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +9 -3
- package/dest/interfaces/aztec-node.d.ts +13 -7
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +5 -2
- package/dest/interfaces/block-builder.d.ts +39 -12
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +13 -6
- 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/l2_logs_source.d.ts +5 -3
- package/dest/interfaces/l2_logs_source.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 +3 -8
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/prover-client.d.ts +6 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +7 -1
- package/dest/interfaces/proving-job.d.ts +168 -168
- package/dest/interfaces/validator.d.ts +104 -42
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +8 -4
- package/dest/interfaces/world_state.d.ts +5 -4
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +13 -10
- package/dest/kernel/hints/build_transient_data_hints.d.ts +5 -2
- package/dest/kernel/hints/build_transient_data_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_transient_data_hints.js +9 -3
- package/dest/kernel/hints/index.d.ts +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/{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_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_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_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.js +8 -8
- 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.js +5 -5
- package/dest/kv-store/config.d.ts +17 -0
- package/dest/kv-store/config.d.ts.map +1 -0
- package/dest/kv-store/config.js +26 -0
- package/dest/kv-store/index.d.ts +2 -0
- package/dest/kv-store/index.d.ts.map +1 -0
- package/dest/kv-store/index.js +1 -0
- package/dest/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} +23 -15
- 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/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/public_log.d.ts +4 -3
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +2 -1
- package/dest/logs/siloed_tag.d.ts +5 -3
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +8 -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_source.d.ts +4 -2
- package/dest/messaging/l1_to_l2_message_source.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +32 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +69 -26
- 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/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 +2 -2
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +2 -4
- 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 +11 -11
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +32 -37
- 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/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/rollup/checkpoint_header.d.ts +2 -2
- package/dest/rollup/checkpoint_header.js +2 -2
- package/dest/slashing/tally.d.ts +7 -2
- package/dest/slashing/tally.d.ts.map +1 -1
- package/dest/slashing/tally.js +30 -2
- package/dest/tests/factories.d.ts +4 -4
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +19 -38
- package/dest/tests/mocks.d.ts +8 -3
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +31 -21
- 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/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 +2 -2
- 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 +113 -2
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +4 -1
- 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 +22 -3
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +15 -4
- package/dest/tx/tx_request.js +2 -2
- package/dest/tx/validator/error_texts.d.ts +10 -2
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +11 -1
- package/dest/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/package.json +12 -11
- package/src/abi/abi.ts +25 -2
- package/src/abi/buffer.ts +25 -4
- package/src/abi/decoder.ts +15 -6
- package/src/abi/encoder.ts +49 -6
- package/src/abi/event_metadata_definition.ts +2 -0
- package/src/abi/utils.ts +25 -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/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/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/pipelining-config.ts +31 -0
- package/src/config/sequencer-config.ts +19 -1
- package/src/contract/contract_address.ts +7 -7
- package/src/contract/contract_class.ts +3 -3
- package/src/contract/contract_class_id.ts +7 -6
- package/src/contract/index.ts +0 -2
- package/src/contract/interfaces/contract_class.ts +2 -82
- package/src/contract/interfaces/node-info.ts +3 -0
- package/src/contract/private_function.ts +2 -2
- package/src/epoch-helpers/index.ts +14 -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/ha-signing/config.ts +156 -0
- package/src/ha-signing/index.ts +27 -0
- package/src/ha-signing/local_config.ts +46 -0
- package/src/ha-signing/types.ts +112 -0
- package/src/hash/hash.ts +43 -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 +23 -0
- package/src/interfaces/aztec-node.ts +25 -6
- package/src/interfaces/block-builder.ts +61 -14
- package/src/interfaces/configs.ts +36 -8
- package/src/interfaces/l2_logs_source.ts +4 -1
- package/src/interfaces/merkle_tree_operations.ts +9 -19
- package/src/interfaces/p2p.ts +2 -13
- package/src/interfaces/prover-client.ts +8 -0
- package/src/interfaces/validator.ts +51 -28
- package/src/interfaces/world_state.ts +4 -3
- 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/{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 +14 -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 +8 -8
- package/src/keys/key_types.ts +6 -2
- package/src/keys/public_keys.ts +2 -2
- package/src/keys/utils.ts +5 -5
- package/src/kv-store/config.ts +36 -0
- package/src/kv-store/index.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 +3 -1
- package/src/logs/log_filter.ts +5 -0
- package/src/logs/pre_tag.ts +5 -5
- package/src/logs/public_log.ts +4 -2
- package/src/logs/siloed_tag.ts +10 -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_source.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +98 -33
- package/src/noir/index.ts +2 -2
- package/src/note/index.ts +0 -1
- package/src/p2p/attestation_utils.ts +56 -0
- package/src/p2p/block_proposal.ts +1 -3
- package/src/p2p/checkpoint_attestation.ts +6 -1
- package/src/p2p/checkpoint_proposal.ts +57 -49
- package/src/p2p/client_type.ts +0 -6
- package/src/p2p/consensus_payload.ts +25 -12
- 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/rollup/checkpoint_header.ts +2 -2
- package/src/slashing/tally.ts +34 -1
- package/src/tests/factories.ts +21 -45
- package/src/tests/mocks.ts +46 -20
- package/src/tx/block_header.ts +8 -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 +2 -2
- package/src/tx/public_simulation_output.ts +4 -0
- package/src/tx/simulated_tx.ts +8 -1
- package/src/tx/tx.ts +20 -11
- package/src/tx/tx_receipt.ts +17 -2
- package/src/tx/tx_request.ts +2 -2
- package/src/tx/validator/error_texts.ts +13 -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/dest/contract/private_function_membership_proof.d.ts +0 -32
- package/dest/contract/private_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/private_function_membership_proof.js +0 -124
- package/dest/contract/utility_function_membership_proof.d.ts +0 -27
- package/dest/contract/utility_function_membership_proof.d.ts.map +0 -1
- package/dest/contract/utility_function_membership_proof.js +0 -87
- package/dest/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/contract/private_function_membership_proof.ts +0 -167
- package/src/contract/utility_function_membership_proof.ts +0 -118
- package/src/note/notes_filter.ts +0 -38
- package/src/update-checker/update-checker.ts +0 -166
|
@@ -4,9 +4,9 @@ import { keccak256 } from '@aztec/foundation/crypto/keccak';
|
|
|
4
4
|
import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
5
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
6
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
7
|
-
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
8
|
-
import { DutyType } from '@aztec/validator-ha-signer/types';
|
|
7
|
+
import { BufferReader, serializeSignedBigInt, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
9
8
|
import { MAX_TXS_PER_BLOCK } from '../deserialization/index.js';
|
|
9
|
+
import { DutyType } from '../ha-signing/index.js';
|
|
10
10
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
11
11
|
import { BlockHeader } from '../tx/block_header.js';
|
|
12
12
|
import { TxHash } from '../tx/index.js';
|
|
@@ -28,12 +28,13 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
28
28
|
*/ export class CheckpointProposal extends Gossipable {
|
|
29
29
|
checkpointHeader;
|
|
30
30
|
archive;
|
|
31
|
+
feeAssetPriceModifier;
|
|
31
32
|
signature;
|
|
32
33
|
lastBlock;
|
|
33
34
|
static p2pTopic = TopicType.checkpoint_proposal;
|
|
34
35
|
sender;
|
|
35
|
-
constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive) */ signature, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
|
|
36
|
-
super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.signature = signature, this.lastBlock = lastBlock;
|
|
36
|
+
constructor(/** The aggregated checkpoint header for consensus */ checkpointHeader, /** Archive root after this checkpoint is applied */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier, /** The proposer's signature over the checkpoint payload (checkpointHeader + archive + feeAssetPriceModifier) */ signature, /** Optional last block info, including its own signature for BlockProposal extraction */ lastBlock){
|
|
37
|
+
super(), this.checkpointHeader = checkpointHeader, this.archive = archive, this.feeAssetPriceModifier = feeAssetPriceModifier, this.signature = signature, this.lastBlock = lastBlock;
|
|
37
38
|
}
|
|
38
39
|
generateP2PMessageIdentifier() {
|
|
39
40
|
return Promise.resolve(new CheckpointProposalHash(keccak256(this.signature.toBuffer())));
|
|
@@ -41,18 +42,6 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
41
42
|
get slotNumber() {
|
|
42
43
|
return this.checkpointHeader.slotNumber;
|
|
43
44
|
}
|
|
44
|
-
get blockNumber() {
|
|
45
|
-
if (!this.lastBlock) {
|
|
46
|
-
throw new Error('Cannot get blockNumber without lastBlock');
|
|
47
|
-
}
|
|
48
|
-
return this.lastBlock.blockHeader.getBlockNumber();
|
|
49
|
-
}
|
|
50
|
-
/** Convenience getter for txHashes from lastBlock */ get txHashes() {
|
|
51
|
-
return this.lastBlock?.txHashes ?? [];
|
|
52
|
-
}
|
|
53
|
-
/** Convenience getter for txs from lastBlock */ get txs() {
|
|
54
|
-
return this.lastBlock?.signedTxs?.txs;
|
|
55
|
-
}
|
|
56
45
|
/**
|
|
57
46
|
* Extract a BlockProposal from the last block info.
|
|
58
47
|
* Uses inHash from checkpointHeader.contentCommitment.inHash
|
|
@@ -85,35 +74,38 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
85
74
|
}
|
|
86
75
|
/**
|
|
87
76
|
* Get the payload to sign for this checkpoint proposal.
|
|
88
|
-
* The signature is over the checkpoint header + archive root (for consensus).
|
|
77
|
+
* The signature is over the checkpoint header + archive root + feeAssetPriceModifier (for consensus).
|
|
89
78
|
*/ getPayloadToSign(domainSeparator) {
|
|
90
79
|
return serializeToBuffer([
|
|
91
80
|
domainSeparator,
|
|
92
81
|
this.checkpointHeader,
|
|
93
|
-
this.archive
|
|
82
|
+
this.archive,
|
|
83
|
+
serializeSignedBigInt(this.feeAssetPriceModifier)
|
|
94
84
|
]);
|
|
95
85
|
}
|
|
96
|
-
static async createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, payloadSigner) {
|
|
86
|
+
static async createProposalFromSigner(checkpointHeader, archiveRoot, feeAssetPriceModifier, lastBlockInfo, payloadSigner) {
|
|
97
87
|
// Sign the checkpoint payload with CHECKPOINT_PROPOSAL duty type
|
|
98
|
-
const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, Signature.empty()
|
|
88
|
+
const tempProposal = new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, Signature.empty());
|
|
99
89
|
const checkpointHash = getHashedSignaturePayload(tempProposal, SignatureDomainSeparator.checkpointProposal);
|
|
100
90
|
const checkpointContext = {
|
|
101
91
|
slot: checkpointHeader.slotNumber,
|
|
102
92
|
blockNumber: lastBlockInfo?.blockHeader?.globalVariables.blockNumber ?? BlockNumber(0),
|
|
103
93
|
dutyType: DutyType.CHECKPOINT_PROPOSAL
|
|
104
94
|
};
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
95
|
+
if (lastBlockInfo) {
|
|
96
|
+
// Sign block proposal before signing checkpoint proposal to ensure HA protection
|
|
97
|
+
const lastBlockProposal = await BlockProposal.createProposalFromSigner(lastBlockInfo.blockHeader, lastBlockInfo.indexWithinCheckpoint, checkpointHeader.inHash, archiveRoot, lastBlockInfo.txHashes, lastBlockInfo.txs, payloadSigner);
|
|
98
|
+
const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
|
|
99
|
+
return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature, {
|
|
100
|
+
blockHeader: lastBlockInfo.blockHeader,
|
|
101
|
+
indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
|
|
102
|
+
txHashes: lastBlockInfo.txHashes,
|
|
103
|
+
signature: lastBlockProposal.signature,
|
|
104
|
+
signedTxs: lastBlockProposal.signedTxs
|
|
105
|
+
});
|
|
108
106
|
}
|
|
109
|
-
const
|
|
110
|
-
return new CheckpointProposal(checkpointHeader, archiveRoot,
|
|
111
|
-
blockHeader: lastBlockInfo.blockHeader,
|
|
112
|
-
indexWithinCheckpoint: lastBlockInfo.indexWithinCheckpoint,
|
|
113
|
-
txHashes: lastBlockInfo.txHashes,
|
|
114
|
-
signature: lastBlockProposal.signature,
|
|
115
|
-
signedTxs: lastBlockProposal.signedTxs
|
|
116
|
-
});
|
|
107
|
+
const checkpointSignature = await payloadSigner(checkpointHash, checkpointContext);
|
|
108
|
+
return new CheckpointProposal(checkpointHeader, archiveRoot, feeAssetPriceModifier, checkpointSignature);
|
|
117
109
|
}
|
|
118
110
|
/**
|
|
119
111
|
* Lazily evaluate the sender of the proposal; result is cached.
|
|
@@ -143,6 +135,7 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
143
135
|
const buffer = [
|
|
144
136
|
this.checkpointHeader,
|
|
145
137
|
this.archive,
|
|
138
|
+
serializeSignedBigInt(this.feeAssetPriceModifier),
|
|
146
139
|
this.signature
|
|
147
140
|
];
|
|
148
141
|
if (this.lastBlock) {
|
|
@@ -167,6 +160,7 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
167
160
|
const reader = BufferReader.asReader(buf);
|
|
168
161
|
const checkpointHeader = reader.readObject(CheckpointHeader);
|
|
169
162
|
const archive = reader.readObject(Fr);
|
|
163
|
+
const feeAssetPriceModifier = reader.readInt256();
|
|
170
164
|
const signature = reader.readObject(Signature);
|
|
171
165
|
const hasLastBlock = reader.readNumber();
|
|
172
166
|
if (hasLastBlock) {
|
|
@@ -185,7 +179,7 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
185
179
|
signedTxs = SignedTxs.fromBuffer(reader);
|
|
186
180
|
}
|
|
187
181
|
}
|
|
188
|
-
return new CheckpointProposal(checkpointHeader, archive, signature, {
|
|
182
|
+
return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature, {
|
|
189
183
|
blockHeader,
|
|
190
184
|
indexWithinCheckpoint,
|
|
191
185
|
txHashes,
|
|
@@ -193,20 +187,20 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
193
187
|
signedTxs
|
|
194
188
|
});
|
|
195
189
|
}
|
|
196
|
-
return new CheckpointProposal(checkpointHeader, archive, signature);
|
|
190
|
+
return new CheckpointProposal(checkpointHeader, archive, feeAssetPriceModifier, signature);
|
|
197
191
|
}
|
|
198
192
|
getSize() {
|
|
199
|
-
let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 4; /* hasLastBlock flag */
|
|
193
|
+
let size = this.checkpointHeader.toBuffer().length + this.archive.size + this.signature.getSize() + 8 /* feeAssetPriceModifier */ + 4; /* hasLastBlock flag */
|
|
200
194
|
if (this.lastBlock) {
|
|
201
195
|
size += this.lastBlock.blockHeader.getSize() + 4 /* indexWithinCheckpoint */ + this.lastBlock.signature.getSize() + 4 /* txHashes.length */ + this.lastBlock.txHashes.length * TxHash.SIZE + 4 /* hasSignedTxs flag */ + (this.lastBlock.signedTxs ? this.lastBlock.signedTxs.getSize() : 0);
|
|
202
196
|
}
|
|
203
197
|
return size;
|
|
204
198
|
}
|
|
205
199
|
static empty() {
|
|
206
|
-
return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, Signature.empty());
|
|
200
|
+
return new CheckpointProposal(CheckpointHeader.empty(), Fr.ZERO, 0n, Signature.empty());
|
|
207
201
|
}
|
|
208
202
|
static random() {
|
|
209
|
-
return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), Signature.random(), {
|
|
203
|
+
return new CheckpointProposal(CheckpointHeader.random(), Fr.random(), 0n, Signature.random(), {
|
|
210
204
|
blockHeader: BlockHeader.random(),
|
|
211
205
|
indexWithinCheckpoint: IndexWithinCheckpoint(Math.floor(Math.random() * 5)),
|
|
212
206
|
txHashes: [
|
|
@@ -221,6 +215,7 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
221
215
|
checkpointHeader: this.checkpointHeader.toInspect(),
|
|
222
216
|
archive: this.archive.toString(),
|
|
223
217
|
signature: this.signature.toString(),
|
|
218
|
+
feeAssetPriceModifier: this.feeAssetPriceModifier.toString(),
|
|
224
219
|
lastBlock: this.lastBlock ? {
|
|
225
220
|
blockHeader: this.lastBlock.blockHeader.toInspect(),
|
|
226
221
|
indexWithinCheckpoint: this.lastBlock.indexWithinCheckpoint,
|
|
@@ -233,6 +228,6 @@ export class CheckpointProposalHash extends Buffer32 {
|
|
|
233
228
|
* Returns a copy of this proposal without lastBlock info, as a CheckpointProposalCore.
|
|
234
229
|
* Used when the lastBlock has been extracted and stored separately.
|
|
235
230
|
*/ toCore() {
|
|
236
|
-
return new CheckpointProposal(this.checkpointHeader, this.archive, this.signature);
|
|
231
|
+
return new CheckpointProposal(this.checkpointHeader, this.archive, this.feeAssetPriceModifier, this.signature);
|
|
237
232
|
}
|
|
238
233
|
}
|
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
Prover = 1
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X3R5cGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY2xpZW50X3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQVksYUFBYTtJQUV2QixJQUFJLElBQUE7SUFFSixNQUFNLElBQUE7Q0FDUCJ9
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50X3R5cGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY2xpZW50X3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client_type.d.ts","sourceRoot":"","sources":["../../src/p2p/client_type.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client_type.d.ts","sourceRoot":"","sources":["../../src/p2p/client_type.ts"],"names":[],"mappings":""}
|
package/dest/p2p/client_type.js
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export var P2PClientType = /*#__PURE__*/ function(P2PClientType) {
|
|
2
|
-
// Full p2p clients will subscribe to all gossip topics
|
|
3
|
-
P2PClientType[P2PClientType["Full"] = 0] = "Full";
|
|
4
|
-
// Prove p2p clients will only subscribe to transaction and proving topics
|
|
5
|
-
P2PClientType[P2PClientType["Prover"] = 1] = "Prover";
|
|
6
|
-
return P2PClientType;
|
|
7
|
-
}({});
|
|
@@ -12,26 +12,34 @@ export declare class ConsensusPayload implements Signable {
|
|
|
12
12
|
readonly header: CheckpointHeader;
|
|
13
13
|
/** The archive root after the block is added */
|
|
14
14
|
readonly archive: Fr;
|
|
15
|
+
/** The fee asset price modifier in basis points (from oracle) */
|
|
16
|
+
readonly feeAssetPriceModifier: bigint;
|
|
15
17
|
private size;
|
|
16
18
|
constructor(
|
|
17
19
|
/** The proposed block header the attestation is made over */
|
|
18
20
|
header: CheckpointHeader,
|
|
19
21
|
/** The archive root after the block is added */
|
|
20
|
-
archive: Fr
|
|
22
|
+
archive: Fr,
|
|
23
|
+
/** The fee asset price modifier in basis points (from oracle) */
|
|
24
|
+
feeAssetPriceModifier?: bigint);
|
|
21
25
|
static get schema(): z.ZodEffects<z.ZodObject<{
|
|
22
26
|
header: import("@aztec/foundation/schemas").ZodFor<CheckpointHeader>;
|
|
23
27
|
archive: z.ZodType<Fr, any, string>;
|
|
28
|
+
feeAssetPriceModifier: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
|
|
24
29
|
}, "strip", z.ZodTypeAny, {
|
|
25
30
|
header: CheckpointHeader;
|
|
26
31
|
archive: Fr;
|
|
32
|
+
feeAssetPriceModifier: bigint;
|
|
27
33
|
}, {
|
|
28
34
|
header?: any;
|
|
29
35
|
archive: string;
|
|
36
|
+
feeAssetPriceModifier: string | number | bigint;
|
|
30
37
|
}>, ConsensusPayload, {
|
|
31
38
|
header?: any;
|
|
32
39
|
archive: string;
|
|
40
|
+
feeAssetPriceModifier: string | number | bigint;
|
|
33
41
|
}>;
|
|
34
|
-
static getFields(fields: FieldsOf<ConsensusPayload>): readonly [CheckpointHeader, Fr];
|
|
42
|
+
static getFields(fields: FieldsOf<ConsensusPayload>): readonly [CheckpointHeader, Fr, bigint];
|
|
35
43
|
getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer;
|
|
36
44
|
toBuffer(): Buffer;
|
|
37
45
|
equals(other: ConsensusPayload | CheckpointProposal | CheckpointProposalCore): boolean;
|
|
@@ -63,7 +71,8 @@ export declare class ConsensusPayload implements Signable {
|
|
|
63
71
|
totalManaUsed: bigint;
|
|
64
72
|
};
|
|
65
73
|
archive: `0x${string}`;
|
|
74
|
+
feeAssetPriceModifier: string;
|
|
66
75
|
};
|
|
67
76
|
toString(): string;
|
|
68
77
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2Vuc3VzX3BheWxvYWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvY29uc2Vuc3VzX3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxZQUFZLEVBQTRDLE1BQU0sNkJBQTZCLENBQUM7QUFFckcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHeEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4QixPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9FLCtFQUErRTtBQUMvRSxxQkFBYSxnQkFBaUIsWUFBVyxRQUFRO0lBSTdDLDZEQUE2RDthQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDthQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7YUFDakQscUJBQXFCLEVBQUUsTUFBTTtJQVIvQyxPQUFPLENBQUMsSUFBSSxDQUFxQjtJQUVqQztJQUNFLDZEQUE2RDtJQUM3QyxNQUFNLEVBQUUsZ0JBQWdCO0lBQ3hDLGdEQUFnRDtJQUNoQyxPQUFPLEVBQUUsRUFBRTtJQUMzQixpRUFBaUU7SUFDakQscUJBQXFCLEdBQUUsTUFBVyxFQUNoRDtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7Ozs7Ozs7O09BUWhCO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLDJDQUVsRDtJQUVELGdCQUFnQixDQUFDLGVBQWUsRUFBRSx3QkFBd0IsR0FBRyxNQUFNLENBa0JsRTtJQUVELFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRU0sTUFBTSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxzQkFBc0IsR0FBRyxPQUFPLENBUTVGO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxnQkFBZ0IsQ0FROUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxnQkFBZ0IsQ0FFdEU7SUFFRCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsZ0JBQWdCLENBRTlEO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7SUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUVoQztJQUVEOzs7T0FHRztJQUNILE9BQU8sSUFBSSxNQUFNLENBT2hCO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQU1SO0lBRUQsUUFBUSxXQUVQO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"consensus_payload.d.ts","sourceRoot":"","sources":["../../src/p2p/consensus_payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAA4C,MAAM,6BAA6B,CAAC;AAErG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAE/E,+EAA+E;AAC/E,qBAAa,gBAAiB,YAAW,QAAQ;IAI7C,6DAA6D;aAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;aAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;aACjD,qBAAqB,EAAE,MAAM;IAR/C,OAAO,CAAC,IAAI,CAAqB;IAEjC;IACE,6DAA6D;IAC7C,MAAM,EAAE,gBAAgB;IACxC,gDAAgD;IAChC,OAAO,EAAE,EAAE;IAC3B,iEAAiE;IACjD,qBAAqB,GAAE,MAAW,EAChD;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;OAQhB;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAElD;IAED,gBAAgB,CAAC,eAAe,EAAE,wBAAwB,GAAG,MAAM,CAkBlE;IAED,QAAQ,IAAI,MAAM,CAEjB;IAEM,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,sBAAsB,GAAG,OAAO,CAQ5F;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAQ9D;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAEtE;IAED,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,gBAAgB,CAE9D;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;IAED,MAAM,CAAC,MAAM,IAAI,gBAAgB,CAEhC;IAED;;;OAGG;IACH,OAAO,IAAI,MAAM,CAOhB;IAED,SAAS;;;;;;;;;;;;;;;;;;;MAMR;IAED,QAAQ,WAEP;CACF"}
|
|
@@ -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 { encodeAbiParameters, parseAbiParameters } from 'viem';
|
|
6
6
|
import { z } from 'zod';
|
|
@@ -8,21 +8,25 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
|
8
8
|
/** Checkpoint consensus payload as signed by validators and verified on L1. */ export class ConsensusPayload {
|
|
9
9
|
header;
|
|
10
10
|
archive;
|
|
11
|
+
feeAssetPriceModifier;
|
|
11
12
|
size;
|
|
12
|
-
constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive){
|
|
13
|
+
constructor(/** The proposed block header the attestation is made over */ header, /** The archive root after the block is added */ archive, /** The fee asset price modifier in basis points (from oracle) */ feeAssetPriceModifier = 0n){
|
|
13
14
|
this.header = header;
|
|
14
15
|
this.archive = archive;
|
|
16
|
+
this.feeAssetPriceModifier = feeAssetPriceModifier;
|
|
15
17
|
}
|
|
16
18
|
static get schema() {
|
|
17
19
|
return z.object({
|
|
18
20
|
header: CheckpointHeader.schema,
|
|
19
|
-
archive: schemas.Fr
|
|
20
|
-
|
|
21
|
+
archive: schemas.Fr,
|
|
22
|
+
feeAssetPriceModifier: schemas.BigInt
|
|
23
|
+
}).transform((obj)=>new ConsensusPayload(obj.header, obj.archive, obj.feeAssetPriceModifier));
|
|
21
24
|
}
|
|
22
25
|
static getFields(fields) {
|
|
23
26
|
return [
|
|
24
27
|
fields.header,
|
|
25
|
-
fields.archive
|
|
28
|
+
fields.archive,
|
|
29
|
+
fields.feeAssetPriceModifier
|
|
26
30
|
];
|
|
27
31
|
}
|
|
28
32
|
getPayloadToSign(domainSeparator) {
|
|
@@ -38,7 +42,7 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
|
38
42
|
[
|
|
39
43
|
archiveRoot,
|
|
40
44
|
[
|
|
41
|
-
|
|
45
|
+
this.feeAssetPriceModifier
|
|
42
46
|
],
|
|
43
47
|
headerHash
|
|
44
48
|
]
|
|
@@ -48,29 +52,31 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
|
48
52
|
toBuffer() {
|
|
49
53
|
return serializeToBuffer([
|
|
50
54
|
this.header,
|
|
51
|
-
this.archive
|
|
55
|
+
this.archive,
|
|
56
|
+
serializeSignedBigInt(this.feeAssetPriceModifier)
|
|
52
57
|
]);
|
|
53
58
|
}
|
|
54
59
|
equals(other) {
|
|
55
60
|
const otherHeader = 'checkpointHeader' in other ? other.checkpointHeader : other.header;
|
|
56
|
-
|
|
61
|
+
const otherModifier = 'feeAssetPriceModifier' in other ? other.feeAssetPriceModifier : 0n;
|
|
62
|
+
return this.header.equals(otherHeader) && this.archive.equals(other.archive) && this.feeAssetPriceModifier === otherModifier;
|
|
57
63
|
}
|
|
58
64
|
static fromBuffer(buf) {
|
|
59
65
|
const reader = BufferReader.asReader(buf);
|
|
60
|
-
const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr));
|
|
66
|
+
const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr), reader.readInt256());
|
|
61
67
|
return payload;
|
|
62
68
|
}
|
|
63
69
|
static fromFields(fields) {
|
|
64
|
-
return new ConsensusPayload(fields.header, fields.archive);
|
|
70
|
+
return new ConsensusPayload(fields.header, fields.archive, fields.feeAssetPriceModifier);
|
|
65
71
|
}
|
|
66
72
|
static fromCheckpoint(checkpoint) {
|
|
67
|
-
return new ConsensusPayload(checkpoint.header, checkpoint.archive.root);
|
|
73
|
+
return new ConsensusPayload(checkpoint.header, checkpoint.archive.root, checkpoint.feeAssetPriceModifier);
|
|
68
74
|
}
|
|
69
75
|
static empty() {
|
|
70
|
-
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO);
|
|
76
|
+
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO, 0n);
|
|
71
77
|
}
|
|
72
78
|
static random() {
|
|
73
|
-
return new ConsensusPayload(CheckpointHeader.random(), Fr.random());
|
|
79
|
+
return new ConsensusPayload(CheckpointHeader.random(), Fr.random(), 0n);
|
|
74
80
|
}
|
|
75
81
|
/**
|
|
76
82
|
* Get the size of the consensus payload in bytes.
|
|
@@ -86,10 +92,11 @@ import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
|
86
92
|
toInspect() {
|
|
87
93
|
return {
|
|
88
94
|
header: this.header.toInspect(),
|
|
89
|
-
archive: this.archive.toString()
|
|
95
|
+
archive: this.archive.toString(),
|
|
96
|
+
feeAssetPriceModifier: this.feeAssetPriceModifier.toString()
|
|
90
97
|
};
|
|
91
98
|
}
|
|
92
99
|
toString() {
|
|
93
|
-
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}}`;
|
|
100
|
+
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}, feeAssetPriceModifier: ${this.feeAssetPriceModifier}}`;
|
|
94
101
|
}
|
|
95
102
|
}
|
package/dest/p2p/index.d.ts
CHANGED
|
@@ -8,8 +8,7 @@ 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';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wMnAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQyJ9
|
package/dest/p2p/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
package/dest/p2p/index.js
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/dest/p2p/peer_error.d.ts
CHANGED
|
@@ -15,4 +15,6 @@ export declare enum PeerErrorSeverity {
|
|
|
15
15
|
*/
|
|
16
16
|
HighToleranceError = "HighToleranceError"
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
/** Severities ordered from mildest to harshest. */
|
|
19
|
+
export declare const PeerErrorSeverityByHarshness: readonly [PeerErrorSeverity.HighToleranceError, PeerErrorSeverity.MidToleranceError, PeerErrorSeverity.LowToleranceError];
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9lcnJvci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC9wZWVyX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9CQUFZLGlCQUFpQjtJQUMzQjs7O09BR0c7SUFDSCxpQkFBaUIsc0JBQXNCO0lBQ3ZDOzs7T0FHRztJQUNILGlCQUFpQixzQkFBc0I7SUFDdkM7OztPQUdHO0lBQ0gsa0JBQWtCLHVCQUF1QjtDQUMxQztBQUVELG1EQUFtRDtBQUNuRCxlQUFPLE1BQU0sNEJBQTRCLDJIQUkvQixDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer_error.d.ts","sourceRoot":"","sources":["../../src/p2p/peer_error.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,kBAAkB,uBAAuB;CAC1C"}
|
|
1
|
+
{"version":3,"file":"peer_error.d.ts","sourceRoot":"","sources":["../../src/p2p/peer_error.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;OAGG;IACH,kBAAkB,uBAAuB;CAC1C;AAED,mDAAmD;AACnD,eAAO,MAAM,4BAA4B,2HAI/B,CAAC"}
|
package/dest/p2p/peer_error.js
CHANGED
|
@@ -13,3 +13,8 @@ export var PeerErrorSeverity = /*#__PURE__*/ function(PeerErrorSeverity) {
|
|
|
13
13
|
*/ PeerErrorSeverity["HighToleranceError"] = "HighToleranceError";
|
|
14
14
|
return PeerErrorSeverity;
|
|
15
15
|
}({});
|
|
16
|
+
/** Severities ordered from mildest to harshest. */ export const PeerErrorSeverityByHarshness = [
|
|
17
|
+
"HighToleranceError",
|
|
18
|
+
"MidToleranceError",
|
|
19
|
+
"LowToleranceError"
|
|
20
|
+
];
|
package/dest/p2p/topic_type.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { P2PClientType } from './client_type.js';
|
|
2
1
|
/**
|
|
3
2
|
* Creates the topic channel identifier string from a given topic type
|
|
4
3
|
*/
|
|
@@ -11,8 +10,8 @@ export declare enum TopicType {
|
|
|
11
10
|
checkpoint_proposal = "checkpoint_proposal",
|
|
12
11
|
checkpoint_attestation = "checkpoint_attestation"
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
export declare function
|
|
13
|
+
/** Returns all gossip topics, optionally filtering out transactions. */
|
|
14
|
+
export declare function getTopicsForConfig(disableTransactions: boolean): TopicType[];
|
|
16
15
|
/**
|
|
17
16
|
* Convert the topic string into a set of labels
|
|
18
17
|
*
|
|
@@ -23,4 +22,4 @@ export declare function getTopicsForClientAndConfig(clientType: P2PClientType, d
|
|
|
23
22
|
* }
|
|
24
23
|
*/
|
|
25
24
|
export declare function metricsTopicStrToLabels(protocolVersion: string): Map<string, string>;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9waWNfdHlwZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3AycC90b3BpY190eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsd0JBQWdCLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFFOUU7QUFFRCxrREFBa0Q7QUFDbEQsd0JBQWdCLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FVMUU7QUFFRCxvQkFBWSxTQUFTO0lBQ25CLEVBQUUsT0FBTztJQUNULGNBQWMsbUJBQW1CO0lBQ2pDLG1CQUFtQix3QkFBd0I7SUFDM0Msc0JBQXNCLDJCQUEyQjtDQUNsRDtBQUVELHdFQUF3RTtBQUN4RSx3QkFBZ0Isa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxlQVc5RDtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLGVBQWUsRUFBRSxNQUFNLHVCQU85RCJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"topic_type.d.ts","sourceRoot":"","sources":["../../src/p2p/topic_type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAE9E;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAU1E;AAED,oBAAY,SAAS;IACnB,EAAE,OAAO;IACT,cAAc,mBAAmB;IACjC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;CAClD;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,mBAAmB,EAAE,OAAO,eAW9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,EAAE,MAAM,uBAO9D"}
|
package/dest/p2p/topic_type.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { P2PClientType } from './client_type.js';
|
|
2
1
|
/**
|
|
3
2
|
* Creates the topic channel identifier string from a given topic type
|
|
4
3
|
*/ export function createTopicString(topicType, protocolVersion) {
|
|
@@ -22,29 +21,13 @@ export var TopicType = /*#__PURE__*/ function(TopicType) {
|
|
|
22
21
|
TopicType["checkpoint_attestation"] = "checkpoint_attestation";
|
|
23
22
|
return TopicType;
|
|
24
23
|
}({});
|
|
25
|
-
export function
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
];
|
|
33
|
-
} else if (clientType === P2PClientType.Prover) {
|
|
34
|
-
return [
|
|
35
|
-
"tx",
|
|
36
|
-
"block_proposal",
|
|
37
|
-
"checkpoint_proposal"
|
|
38
|
-
];
|
|
39
|
-
} else {
|
|
40
|
-
const _ = clientType;
|
|
41
|
-
return [
|
|
42
|
-
"tx"
|
|
43
|
-
];
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
export function getTopicsForClientAndConfig(clientType, disableTransactions) {
|
|
47
|
-
const topics = getTopicTypeForClientType(clientType);
|
|
24
|
+
/** Returns all gossip topics, optionally filtering out transactions. */ export function getTopicsForConfig(disableTransactions) {
|
|
25
|
+
const topics = [
|
|
26
|
+
"tx",
|
|
27
|
+
"block_proposal",
|
|
28
|
+
"checkpoint_proposal",
|
|
29
|
+
"checkpoint_attestation"
|
|
30
|
+
];
|
|
48
31
|
if (disableTransactions) {
|
|
49
32
|
return topics.filter((topic)=>topic !== "tx");
|
|
50
33
|
}
|
|
@@ -12,8 +12,8 @@ import type { GlobalVariables } from '../tx/global_variables.js';
|
|
|
12
12
|
import type { UInt64 } from '../types/shared.js';
|
|
13
13
|
/**
|
|
14
14
|
* Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
|
|
15
|
-
*
|
|
16
|
-
*
|
|
15
|
+
* This header is verified as-is in the rollup circuits, posted to the L1 rollup contract, stored in the archiver,
|
|
16
|
+
* and exposed via the Aztec Node API. See `CheckpointData` for a struct that includes the header plus extra metadata.
|
|
17
17
|
*/
|
|
18
18
|
export declare class CheckpointHeader {
|
|
19
19
|
/** Root of the archive tree before this block is added. */
|
|
@@ -13,8 +13,8 @@ import { schemas } from '../schemas/index.js';
|
|
|
13
13
|
_computedKey = inspect.custom;
|
|
14
14
|
/**
|
|
15
15
|
* Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
|
|
16
|
-
*
|
|
17
|
-
*
|
|
16
|
+
* This header is verified as-is in the rollup circuits, posted to the L1 rollup contract, stored in the archiver,
|
|
17
|
+
* and exposed via the Aztec Node API. See `CheckpointData` for a struct that includes the header plus extra metadata.
|
|
18
18
|
*/ export class CheckpointHeader {
|
|
19
19
|
lastArchiveRoot;
|
|
20
20
|
blockHeadersHash;
|
package/dest/slashing/tally.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
2
3
|
import type { PartialBy } from '@aztec/foundation/types';
|
|
3
4
|
import type { Offense, ValidatorSlashVote } from './types.js';
|
|
4
5
|
/**
|
|
@@ -7,13 +8,17 @@ import type { Offense, ValidatorSlashVote } from './types.js';
|
|
|
7
8
|
* @param committees - Array of committees (each containing array of validator addresses)
|
|
8
9
|
* @param epochsForCommittees - Array of epochs corresponding to each committee
|
|
9
10
|
* @param settings - Settings including slashingAmounts and optional validator override lists
|
|
11
|
+
* @param settings.maxSlashedValidators - If set, limits the total number of [validator, epoch] pairs
|
|
12
|
+
* with non-zero votes. The lowest-vote pairs are zeroed out to stay within the limit.
|
|
13
|
+
* @param logger - Logger, logs which validators were dropped.
|
|
10
14
|
* @returns Array of ValidatorSlashVote, where each vote is how many slash units the validator in that position should be slashed
|
|
11
15
|
*/
|
|
12
16
|
export declare function getSlashConsensusVotesFromOffenses(offenses: PartialBy<Offense, 'epochOrSlot'>[], committees: EthAddress[][], epochsForCommittees: bigint[], settings: {
|
|
13
17
|
slashingAmounts: [bigint, bigint, bigint];
|
|
14
18
|
epochDuration: number;
|
|
15
19
|
targetCommitteeSize: number;
|
|
16
|
-
|
|
20
|
+
maxSlashedValidators?: number;
|
|
21
|
+
}, logger?: Logger): ValidatorSlashVote[];
|
|
17
22
|
/**
|
|
18
23
|
* Encodes a set of slash votes into a Buffer for use in a consensus slashing vote transaction.
|
|
19
24
|
* Each vote is represented as a 2-bit value, which represents how many slashing units the validator should be slashed.
|
|
@@ -21,4 +26,4 @@ export declare function getSlashConsensusVotesFromOffenses(offenses: PartialBy<O
|
|
|
21
26
|
* @returns A Buffer containing the encoded slash votes
|
|
22
27
|
*/
|
|
23
28
|
export declare function encodeSlashConsensusVotes(votes: ValidatorSlashVote[]): Buffer;
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFsbHkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zbGFzaGluZy90YWxseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5RDs7Ozs7Ozs7OztHQVVHO0FBQ0gsd0JBQWdCLGtDQUFrQyxDQUNoRCxRQUFRLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsRUFBRSxFQUM3QyxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFDMUIsbUJBQW1CLEVBQUUsTUFBTSxFQUFFLEVBQzdCLFFBQVEsRUFBRTtJQUNSLGVBQWUsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUMsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUN0QixtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFDNUIsb0JBQW9CLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDL0IsRUFDRCxNQUFNLEdBQUUsTUFBc0MsR0FDN0Msa0JBQWtCLEVBQUUsQ0EwRHRCO0FBZUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IseUJBQXlCLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsTUFBTSxDQWU3RSJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tally.d.ts","sourceRoot":"","sources":["../../src/slashing/tally.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D
|
|
1
|
+
{"version":3,"file":"tally.d.ts","sourceRoot":"","sources":["../../src/slashing/tally.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,EAC7C,UAAU,EAAE,UAAU,EAAE,EAAE,EAC1B,mBAAmB,EAAE,MAAM,EAAE,EAC7B,QAAQ,EAAE;IACR,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,EACD,MAAM,GAAE,MAAsC,GAC7C,kBAAkB,EAAE,CA0DtB;AAeD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAe7E"}
|
package/dest/slashing/tally.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { sumBigint } from '@aztec/foundation/bigint';
|
|
2
2
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
3
4
|
import { getEpochForOffense } from './helpers.js';
|
|
4
5
|
/**
|
|
5
6
|
* Creates a consensus-slash vote for a given set of committees based on a set of Offenses
|
|
@@ -7,9 +8,12 @@ import { getEpochForOffense } from './helpers.js';
|
|
|
7
8
|
* @param committees - Array of committees (each containing array of validator addresses)
|
|
8
9
|
* @param epochsForCommittees - Array of epochs corresponding to each committee
|
|
9
10
|
* @param settings - Settings including slashingAmounts and optional validator override lists
|
|
11
|
+
* @param settings.maxSlashedValidators - If set, limits the total number of [validator, epoch] pairs
|
|
12
|
+
* with non-zero votes. The lowest-vote pairs are zeroed out to stay within the limit.
|
|
13
|
+
* @param logger - Logger, logs which validators were dropped.
|
|
10
14
|
* @returns Array of ValidatorSlashVote, where each vote is how many slash units the validator in that position should be slashed
|
|
11
|
-
*/ export function getSlashConsensusVotesFromOffenses(offenses, committees, epochsForCommittees, settings) {
|
|
12
|
-
const { slashingAmounts, targetCommitteeSize } = settings;
|
|
15
|
+
*/ export function getSlashConsensusVotesFromOffenses(offenses, committees, epochsForCommittees, settings, logger = createLogger('slasher:tally')) {
|
|
16
|
+
const { slashingAmounts, targetCommitteeSize, maxSlashedValidators } = settings;
|
|
13
17
|
if (committees.length !== epochsForCommittees.length) {
|
|
14
18
|
throw new Error('committees and epochsForCommittees must have the same length');
|
|
15
19
|
}
|
|
@@ -28,6 +32,30 @@ import { getEpochForOffense } from './helpers.js';
|
|
|
28
32
|
});
|
|
29
33
|
return padArrayEnd(votes, 0, targetCommitteeSize);
|
|
30
34
|
});
|
|
35
|
+
// if a cap is set, zero out the lowest-vote [validator, epoch] pairs so that the most severe slashes stay.
|
|
36
|
+
if (maxSlashedValidators === undefined) {
|
|
37
|
+
return votes;
|
|
38
|
+
}
|
|
39
|
+
const nonZeroByDescendingVote = [
|
|
40
|
+
...votes.entries()
|
|
41
|
+
].filter(([, vote])=>vote > 0).sort(([, a], [, b])=>b - a);
|
|
42
|
+
const toTruncate = nonZeroByDescendingVote.slice(maxSlashedValidators);
|
|
43
|
+
for (const [idx] of toTruncate){
|
|
44
|
+
votes[idx] = 0;
|
|
45
|
+
}
|
|
46
|
+
if (toTruncate.length > 0) {
|
|
47
|
+
const truncated = toTruncate.map(([idx])=>{
|
|
48
|
+
const committeeIndex = Math.floor(idx / targetCommitteeSize);
|
|
49
|
+
const positionInCommittee = idx % targetCommitteeSize;
|
|
50
|
+
return {
|
|
51
|
+
validator: committees[committeeIndex][positionInCommittee].toString(),
|
|
52
|
+
epoch: epochsForCommittees[committeeIndex]
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
logger.warn(`Truncated ${toTruncate.length} validator-epoch pairs to stay within limit of ${maxSlashedValidators}`, {
|
|
56
|
+
truncated
|
|
57
|
+
});
|
|
58
|
+
}
|
|
31
59
|
return votes;
|
|
32
60
|
}
|
|
33
61
|
/** Returns the slash vote for the given amount to slash. */ function getSlashUnitsForAmount(amountToSlash, slashingAmounts) {
|