@aztec/stdlib 0.0.1-commit.b2a5d0dd1 → 0.0.1-commit.b3d3157a
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 +121 -1197
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/abi.js +31 -16
- package/dest/abi/authorization_selector.d.ts +2 -2
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/contract_artifact.d.ts +1 -1
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +14 -7
- package/dest/abi/event_selector.d.ts +2 -2
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_call.d.ts +7 -25
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/note_selector.d.ts +2 -2
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/utils.d.ts +1 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +1 -1
- package/dest/auth_witness/auth_witness.d.ts +2 -2
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/avm/avm.d.ts +1756 -10463
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +6 -3
- package/dest/avm/avm_accumulated_data.d.ts +22 -86
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +180 -932
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_proving_request.d.ts +653 -5446
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/message_pack.js +12 -3
- package/dest/avm/public_data_write.d.ts +6 -12
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +1 -7
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +0 -3
- package/dest/aztec-address/index.d.ts +6 -3
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/aztec-address/index.js +7 -2
- package/dest/block/attestation_info.d.ts +3 -2
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +7 -5
- package/dest/block/block_data.d.ts +9 -34
- package/dest/block/block_data.d.ts.map +1 -1
- package/dest/block/block_parameter.d.ts +37 -4
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +53 -2
- package/dest/block/in_block.d.ts +5 -24
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/index.d.ts +1 -2
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +0 -1
- package/dest/block/l2_block.d.ts +13 -41
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block_info.d.ts +7 -27
- package/dest/block/l2_block_info.d.ts.map +1 -1
- package/dest/block/l2_block_source.d.ts +199 -425
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +66 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -2
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +44 -17
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +3 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +3 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +4 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_store_base.js +26 -7
- package/dest/block/proposal/attestations_and_signers.d.ts +19 -30
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.js +26 -18
- package/dest/block/proposal/committee_attestation.d.ts +6 -12
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +1 -1
- package/dest/checkpoint/checkpoint.d.ts +24 -96
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.d.ts +40 -129
- package/dest/checkpoint/checkpoint_data.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_data.js +2 -0
- package/dest/checkpoint/checkpoint_info.d.ts +7 -23
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts +60 -0
- package/dest/checkpoint/checkpoint_reexecution_tracker.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_reexecution_tracker.js +108 -0
- package/dest/checkpoint/digest.d.ts +18 -0
- package/dest/checkpoint/digest.d.ts.map +1 -0
- package/dest/checkpoint/digest.js +12 -0
- package/dest/checkpoint/index.d.ts +4 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +3 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts +33 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.d.ts.map +1 -0
- package/dest/checkpoint/previous_checkpoint_out_hashes.js +45 -0
- package/dest/checkpoint/published_checkpoint.d.ts +42 -194
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/config/chain-config.d.ts +4 -9
- package/dest/config/chain-config.d.ts.map +1 -1
- package/dest/config/chain-config.js +6 -11
- package/dest/config/index.d.ts +1 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +0 -1
- package/dest/config/sequencer-config.d.ts +5 -3
- package/dest/config/sequencer-config.d.ts.map +1 -1
- package/dest/config/sequencer-config.js +13 -6
- package/dest/contract/complete_address.d.ts +3 -2
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/complete_address.js +6 -2
- package/dest/contract/contract_address.d.ts +5 -5
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_address.js +5 -4
- package/dest/contract/contract_deployment_data.d.ts +15 -61
- package/dest/contract/contract_deployment_data.d.ts.map +1 -1
- package/dest/contract/contract_instance.d.ts +4 -2
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +10 -3
- package/dest/contract/interfaces/contract_class.d.ts +15 -86
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.d.ts +41 -95
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +4 -2
- package/dest/contract/interfaces/contract_instance_update.d.ts +6 -26
- package/dest/contract/interfaces/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts +2 -12
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts.map +1 -1
- package/dest/database-version/database_version.d.ts +5 -11
- package/dest/database-version/database_version.d.ts.map +1 -1
- package/dest/database-version/version_manager.d.ts +6 -2
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +12 -1
- package/dest/epoch-helpers/index.d.ts +4 -22
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/gas/gas.d.ts +9 -14
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas.js +6 -3
- package/dest/gas/gas_fees.d.ts +9 -14
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_fees.js +7 -3
- package/dest/gas/gas_settings.d.ts +27 -84
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_settings.js +6 -3
- package/dest/ha-signing/config.d.ts +9 -73
- package/dest/ha-signing/config.d.ts.map +1 -1
- package/dest/ha-signing/config.js +5 -15
- package/dest/ha-signing/local_config.d.ts +3 -34
- package/dest/ha-signing/local_config.d.ts.map +1 -1
- package/dest/ha-signing/local_config.js +2 -2
- package/dest/hash/hash.d.ts +1 -1
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +2 -2
- package/dest/interfaces/allowed_element.d.ts +4 -28
- package/dest/interfaces/allowed_element.d.ts.map +1 -1
- package/dest/interfaces/api_limit.d.ts +1 -1
- package/dest/interfaces/api_limit.js +1 -1
- package/dest/interfaces/archiver.d.ts +16 -36
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +211 -71
- package/dest/interfaces/aztec-node-admin.d.ts +62 -292
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +57 -14
- package/dest/interfaces/aztec-node-debug.js +4 -1
- package/dest/interfaces/aztec-node.d.ts +100 -106
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +308 -70
- package/dest/interfaces/block-builder.d.ts +3 -1
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block_response.d.ts +90 -0
- package/dest/interfaces/block_response.d.ts.map +1 -0
- package/dest/interfaces/block_response.js +30 -0
- package/dest/interfaces/chain_tips.d.ts +50 -0
- package/dest/interfaces/chain_tips.d.ts.map +1 -0
- package/dest/interfaces/chain_tips.js +11 -0
- package/dest/interfaces/checkpoint_parameter.d.ts +14 -0
- package/dest/interfaces/checkpoint_parameter.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_parameter.js +18 -0
- package/dest/interfaces/checkpoint_response.d.ts +122 -0
- package/dest/interfaces/checkpoint_response.d.ts.map +1 -0
- package/dest/interfaces/checkpoint_response.js +26 -0
- package/dest/interfaces/client.d.ts +7 -2
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +6 -1
- package/dest/interfaces/configs.d.ts +41 -130
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +9 -1
- package/dest/interfaces/l1_publish_info.d.ts +29 -0
- package/dest/interfaces/l1_publish_info.d.ts.map +1 -0
- package/dest/interfaces/l1_publish_info.js +26 -0
- package/dest/interfaces/l2_logs_source.d.ts +14 -36
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/l2_logs_source.js +5 -0
- package/dest/interfaces/merkle_tree_operations.d.ts +9 -3
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p-bootstrap.js +8 -2
- package/dest/interfaces/p2p.d.ts +15 -5
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +28 -5
- package/dest/interfaces/private_kernel_prover.d.ts +62 -2
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.d.ts +5 -23
- package/dest/interfaces/prover-agent.d.ts.map +1 -1
- package/dest/interfaces/prover-agent.js +4 -1
- package/dest/interfaces/prover-client.d.ts +6 -27
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-node.js +22 -8
- package/dest/interfaces/proving-job-source.js +24 -4
- package/dest/interfaces/proving-job.d.ts +725 -5776
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -1
- package/dest/interfaces/public_storage_override.d.ts +22 -0
- package/dest/interfaces/public_storage_override.d.ts.map +1 -0
- package/dest/interfaces/public_storage_override.js +7 -0
- package/dest/interfaces/server.d.ts +6 -1
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +5 -0
- package/dest/interfaces/slasher.d.ts +25 -56
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +8 -2
- package/dest/interfaces/tx_provider.d.ts +6 -1
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +40 -229
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +5 -0
- package/dest/interfaces/world_state.d.ts +2 -2
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +12 -8
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.js +20 -18
- package/dest/kernel/index.d.ts +5 -1
- package/dest/kernel/index.d.ts.map +1 -1
- package/dest/kernel/index.js +4 -0
- package/dest/kernel/log_hash.d.ts +6 -2
- package/dest/kernel/log_hash.d.ts.map +1 -1
- package/dest/kernel/log_hash.js +21 -9
- package/dest/kernel/private_circuit_public_inputs.d.ts +2 -2
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -2
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts +23 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_2_circuit_private_inputs.js +35 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts +24 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_init_3_circuit_private_inputs.js +37 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts +16 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_2_circuit_private_inputs.js +23 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts +17 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.d.ts.map +1 -0
- package/dest/kernel/private_kernel_inner_3_circuit_private_inputs.js +25 -0
- package/dest/kernel/private_kernel_prover_output.d.ts +3 -29
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +9 -6
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +22 -7
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +25 -69
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +11 -5
- package/dest/kernel/private_to_public_accumulated_data.d.ts +4 -3
- package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_public_accumulated_data.js +6 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +5 -4
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -3
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +5 -4
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +6 -3
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +5 -4
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.js +7 -3
- package/dest/kernel/public_call_request.d.ts +15 -30
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +16 -7
- package/dest/keys/derivation.d.ts +6 -2
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +16 -6
- package/dest/keys/public_key.d.ts +22 -3
- package/dest/keys/public_key.d.ts.map +1 -1
- package/dest/keys/public_key.js +20 -1
- package/dest/keys/public_keys.d.ts +55 -82
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +102 -74
- package/dest/kv-store/config.d.ts +3 -6
- package/dest/kv-store/config.d.ts.map +1 -1
- package/dest/kv-store/config.js +2 -7
- package/dest/logs/app_tagging_secret.d.ts +46 -0
- package/dest/logs/app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/{extended_directional_app_tagging_secret.js → app_tagging_secret.js} +51 -21
- package/dest/logs/app_tagging_secret_kind.d.ts +7 -0
- package/dest/logs/app_tagging_secret_kind.d.ts.map +1 -0
- package/dest/logs/app_tagging_secret_kind.js +17 -0
- package/dest/logs/contract_class_log.d.ts +16 -34
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +11 -9
- package/dest/logs/index.d.ts +7 -7
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +6 -6
- package/dest/logs/log_cursor.d.ts +51 -0
- package/dest/logs/log_cursor.d.ts.map +1 -0
- package/dest/logs/log_cursor.js +82 -0
- package/dest/logs/log_result.d.ts +54 -0
- package/dest/logs/log_result.d.ts.map +1 -0
- package/dest/logs/log_result.js +56 -0
- package/dest/logs/logs_query.d.ts +82 -0
- package/dest/logs/logs_query.d.ts.map +1 -0
- package/dest/logs/logs_query.js +50 -0
- package/dest/logs/message_context.d.ts +3 -2
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/message_context.js +4 -0
- package/dest/logs/pre_tag.d.ts +11 -24
- package/dest/logs/pre_tag.d.ts.map +1 -1
- package/dest/logs/pre_tag.js +2 -2
- package/dest/logs/private_log.d.ts +7 -12
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +6 -3
- package/dest/logs/query_all_logs_by_tags.d.ts +24 -0
- package/dest/logs/query_all_logs_by_tags.d.ts.map +1 -0
- package/dest/logs/query_all_logs_by_tags.js +64 -0
- package/dest/logs/siloed_tag.d.ts +1 -1
- package/dest/logs/siloed_tag.d.ts.map +1 -1
- package/dest/logs/siloed_tag.js +3 -1
- package/dest/logs/tagging_index_range.d.ts +13 -31
- package/dest/logs/tagging_index_range.d.ts.map +1 -1
- package/dest/logs/tagging_index_range.js +2 -2
- package/dest/messaging/append_l1_to_l2_messages.d.ts +9 -0
- package/dest/messaging/append_l1_to_l2_messages.d.ts.map +1 -0
- package/dest/messaging/append_l1_to_l2_messages.js +12 -0
- package/dest/messaging/index.d.ts +2 -1
- package/dest/messaging/index.d.ts.map +1 -1
- package/dest/messaging/index.js +1 -0
- package/dest/messaging/l2_to_l1_membership.d.ts +43 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +72 -12
- package/dest/messaging/l2_to_l1_message.d.ts +38 -112
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.js +21 -12
- package/dest/noir/index.d.ts +3 -1
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/note.d.ts +2 -2
- package/dest/note/note.d.ts.map +1 -1
- package/dest/p2p/block_proposal.d.ts +29 -10
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +56 -33
- package/dest/p2p/checkpoint_attestation.d.ts +14 -6
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -1
- package/dest/p2p/checkpoint_attestation.js +24 -20
- package/dest/p2p/checkpoint_proposal.d.ts +31 -10
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
- package/dest/p2p/checkpoint_proposal.js +58 -31
- package/dest/p2p/consensus_payload.d.ts +26 -20
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +38 -19
- package/dest/p2p/signature_utils.d.ts +28 -19
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +118 -21
- package/dest/p2p/signed_txs.d.ts +15 -13
- package/dest/p2p/signed_txs.d.ts.map +1 -1
- package/dest/p2p/signed_txs.js +26 -24
- package/dest/parity/parity_base_private_inputs.d.ts +8 -4
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_base_private_inputs.js +7 -5
- package/dest/parity/parity_public_inputs.d.ts +8 -4
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.js +6 -3
- package/dest/parity/parity_root_private_inputs.d.ts +2 -2
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +17 -11
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +44 -22
- package/dest/proofs/recursive_proof.d.ts +2 -2
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +12 -2
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +12 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +6 -6
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +9 -2
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +9 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +5 -5
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +2 -2
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +2 -2
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +32 -78
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +2 -2
- package/dest/slashing/helpers.d.ts +2 -2
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +10 -7
- package/dest/slashing/types.d.ts +15 -23
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +16 -10
- package/dest/snapshots/types.d.ts +15 -78
- package/dest/snapshots/types.d.ts.map +1 -1
- package/dest/stats/stats.d.ts +2 -2
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +23 -23
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +70 -47
- package/dest/tests/mocks.d.ts +8 -5
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +31 -38
- package/dest/timetable/index.d.ts +7 -10
- package/dest/timetable/index.d.ts.map +1 -1
- package/dest/timetable/index.js +60 -80
- package/dest/trees/append_only_tree_snapshot.d.ts +9 -14
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +6 -3
- package/dest/trees/nullifier_leaf.d.ts +18 -42
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +16 -59
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.js +2 -14
- package/dest/trees/public_data_leaf.d.ts +21 -53
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +16 -58
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +4 -3
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +6 -3
- package/dest/tx/call_context.d.ts +4 -14
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +2 -2
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -10
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +16 -49
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +8 -12
- package/dest/tx/hashed_values.d.ts +4 -3
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/hashed_values.js +6 -3
- package/dest/tx/in_tx.d.ts +5 -17
- package/dest/tx/in_tx.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.d.ts +8 -19
- package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
- package/dest/tx/indexed_tx_effect.js +8 -4
- package/dest/tx/partial_state_reference.d.ts +22 -65
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.js +6 -3
- package/dest/tx/private_execution_result.d.ts +6 -16
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +54 -352
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +4 -4
- package/dest/tx/protocol_contracts.d.ts +5 -9
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/proven_tx.d.ts +30 -74
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/proven_tx.js +6 -0
- package/dest/tx/public_call_request_with_calldata.d.ts +4 -3
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.js +6 -3
- package/dest/tx/simulated_tx.d.ts +62 -1249
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/simulated_tx.js +12 -10
- package/dest/tx/state_reference.d.ts +30 -117
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +6 -4
- package/dest/tx/tree_snapshots.d.ts +27 -84
- package/dest/tx/tree_snapshots.d.ts.map +1 -1
- package/dest/tx/tree_snapshots.js +6 -4
- package/dest/tx/tx.d.ts +12 -11
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +30 -23
- package/dest/tx/tx_constant_data.d.ts +4 -3
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_constant_data.js +6 -3
- package/dest/tx/tx_context.d.ts +32 -131
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_context.js +6 -6
- package/dest/tx/tx_hash.d.ts +6 -4
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_hash.js +13 -5
- package/dest/tx/tx_receipt.d.ts +144 -67
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +141 -51
- package/dest/tx/validator/tx_validator.d.ts +5 -27
- package/dest/tx/validator/tx_validator.d.ts.map +1 -1
- package/dest/tx/validator/tx_validator.js +0 -4
- package/dest/types/shared.d.ts +4 -3
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/types/shared.js +6 -3
- package/dest/update-checker/dev_version.d.ts +3 -0
- package/dest/update-checker/dev_version.d.ts.map +1 -0
- package/dest/update-checker/dev_version.js +1 -0
- package/dest/update-checker/index.d.ts +2 -1
- package/dest/update-checker/index.d.ts.map +1 -1
- package/dest/update-checker/index.js +1 -0
- package/dest/update-checker/package_version.d.ts +6 -3
- package/dest/update-checker/package_version.d.ts.map +1 -1
- package/dest/update-checker/package_version.js +8 -19
- package/dest/validators/schemas.d.ts +147 -614
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +6 -4
- package/dest/validators/types.d.ts +20 -3
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.js +1 -1
- package/dest/vks/verification_key.d.ts +3 -3
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/world-state/genesis_data.d.ts +3 -1
- package/dest/world-state/genesis_data.d.ts.map +1 -1
- package/dest/world-state/genesis_data.js +3 -0
- package/dest/world-state/world_state_revision.d.ts +4 -39
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/world-state/world_state_revision.js +0 -20
- package/package.json +12 -11
- package/src/abi/abi.ts +53 -19
- package/src/abi/contract_artifact.ts +11 -6
- package/src/abi/utils.ts +6 -4
- package/src/avm/avm.ts +5 -0
- package/src/avm/message_pack.ts +12 -3
- package/src/avm/revert_code.ts +0 -6
- package/src/aztec-address/index.ts +12 -3
- package/src/block/attestation_info.ts +11 -11
- package/src/block/block_parameter.ts +72 -4
- package/src/block/index.ts +0 -1
- package/src/block/l2_block_source.ts +201 -149
- package/src/block/l2_block_stream/l2_block_stream.ts +39 -28
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +5 -0
- package/src/block/l2_block_stream/l2_tips_store_base.ts +29 -7
- package/src/block/proposal/attestations_and_signers.ts +32 -17
- package/src/block/test/l2_tips_store_test_suite.ts +1 -1
- package/src/checkpoint/checkpoint_data.ts +4 -0
- package/src/checkpoint/checkpoint_reexecution_tracker.ts +167 -0
- package/src/checkpoint/digest.ts +28 -0
- package/src/checkpoint/index.ts +3 -0
- package/src/checkpoint/previous_checkpoint_out_hashes.ts +61 -0
- package/src/config/chain-config.ts +6 -15
- package/src/config/index.ts +0 -1
- package/src/config/sequencer-config.ts +25 -7
- package/src/contract/complete_address.ts +7 -3
- package/src/contract/contract_address.ts +6 -6
- package/src/contract/contract_instance.ts +11 -2
- package/src/contract/interfaces/contract_instance.ts +6 -2
- package/src/database-version/version_manager.ts +17 -0
- package/src/gas/gas.ts +8 -3
- package/src/gas/gas_fees.ts +9 -9
- package/src/gas/gas_settings.ts +8 -3
- package/src/ha-signing/config.ts +9 -16
- package/src/ha-signing/local_config.ts +2 -2
- package/src/hash/hash.ts +2 -2
- package/src/interfaces/api_limit.ts +1 -1
- package/src/interfaces/archiver.ts +80 -94
- package/src/interfaces/aztec-node-admin.ts +32 -15
- package/src/interfaces/aztec-node-debug.ts +1 -1
- package/src/interfaces/aztec-node.ts +296 -262
- package/src/interfaces/block-builder.ts +2 -0
- package/src/interfaces/block_response.ts +92 -0
- package/src/interfaces/chain_tips.ts +24 -0
- package/src/interfaces/checkpoint_parameter.ts +20 -0
- package/src/interfaces/checkpoint_response.ts +84 -0
- package/src/interfaces/client.ts +6 -1
- package/src/interfaces/configs.ts +40 -1
- package/src/interfaces/l1_publish_info.ts +40 -0
- package/src/interfaces/l2_logs_source.ts +13 -42
- package/src/interfaces/merkle_tree_operations.ts +9 -2
- package/src/interfaces/p2p-bootstrap.ts +2 -2
- package/src/interfaces/p2p.ts +35 -15
- package/src/interfaces/private_kernel_prover.ts +88 -0
- package/src/interfaces/prover-agent.ts +1 -1
- package/src/interfaces/prover-node.ts +7 -7
- package/src/interfaces/proving-job-source.ts +4 -4
- package/src/interfaces/proving-job.ts +3 -3
- package/src/interfaces/public_storage_override.ts +26 -0
- package/src/interfaces/server.ts +5 -0
- package/src/interfaces/slasher.ts +17 -4
- package/src/interfaces/tx_provider.ts +6 -0
- package/src/interfaces/validator.ts +18 -2
- package/src/interfaces/world_state.ts +1 -1
- package/src/kernel/hints/key_validation_request.ts +18 -16
- package/src/kernel/index.ts +4 -0
- package/src/kernel/log_hash.ts +29 -9
- package/src/kernel/private_kernel_init_2_circuit_private_inputs.ts +49 -0
- package/src/kernel/private_kernel_init_3_circuit_private_inputs.ts +52 -0
- package/src/kernel/private_kernel_inner_2_circuit_private_inputs.ts +29 -0
- package/src/kernel/private_kernel_inner_3_circuit_private_inputs.ts +31 -0
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +29 -14
- package/src/kernel/private_to_avm_accumulated_data.ts +16 -5
- package/src/kernel/private_to_public_accumulated_data.ts +9 -3
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +10 -4
- package/src/kernel/private_to_rollup_accumulated_data.ts +8 -3
- package/src/kernel/private_to_rollup_kernel_circuit_public_inputs.ts +9 -9
- package/src/kernel/public_call_request.ts +22 -7
- package/src/keys/derivation.ts +21 -9
- package/src/keys/public_key.ts +26 -2
- package/src/keys/public_keys.ts +124 -110
- package/src/kv-store/config.ts +3 -10
- package/src/logs/{extended_directional_app_tagging_secret.ts → app_tagging_secret.ts} +62 -23
- package/src/logs/app_tagging_secret_kind.ts +21 -0
- package/src/logs/contract_class_log.ts +15 -5
- package/src/logs/index.ts +6 -6
- package/src/logs/log_cursor.ts +110 -0
- package/src/logs/log_result.ts +104 -0
- package/src/logs/logs_query.ts +138 -0
- package/src/logs/message_context.ts +5 -1
- package/src/logs/pre_tag.ts +3 -6
- package/src/logs/private_log.ts +9 -3
- package/src/logs/query_all_logs_by_tags.ts +98 -0
- package/src/logs/siloed_tag.ts +6 -1
- package/src/logs/tagging_index_range.ts +4 -10
- package/src/messaging/append_l1_to_l2_messages.ts +21 -0
- package/src/messaging/index.ts +1 -0
- package/src/messaging/l2_to_l1_membership.ts +108 -19
- package/src/messaging/l2_to_l1_message.ts +29 -9
- package/src/noir/index.ts +2 -0
- package/src/p2p/block_proposal.ts +99 -28
- package/src/p2p/checkpoint_attestation.ts +26 -26
- package/src/p2p/checkpoint_proposal.ts +109 -39
- package/src/p2p/consensus_payload.ts +59 -28
- package/src/p2p/signature_utils.ts +110 -25
- package/src/p2p/signed_txs.ts +46 -28
- package/src/parity/parity_base_private_inputs.ts +10 -4
- package/src/parity/parity_public_inputs.ts +9 -2
- package/src/proofs/chonk_proof.ts +49 -15
- package/src/rollup/block_rollup_public_inputs.ts +13 -0
- package/src/rollup/checkpoint_rollup_public_inputs.ts +10 -0
- package/src/schemas/schemas.ts +6 -1
- package/src/slashing/helpers.ts +13 -9
- package/src/slashing/types.ts +21 -14
- package/src/stats/stats.ts +4 -0
- package/src/tests/factories.ts +97 -68
- package/src/tests/mocks.ts +49 -57
- package/src/timetable/index.ts +63 -105
- package/src/trees/append_only_tree_snapshot.ts +8 -3
- package/src/trees/nullifier_membership_witness.ts +2 -12
- package/src/tx/block_header.ts +8 -3
- package/src/tx/global_variables.ts +10 -18
- package/src/tx/hashed_values.ts +8 -3
- package/src/tx/indexed_tx_effect.ts +17 -4
- package/src/tx/partial_state_reference.ts +8 -3
- package/src/tx/profiling.ts +4 -4
- package/src/tx/proven_tx.ts +6 -0
- package/src/tx/public_call_request_with_calldata.ts +8 -3
- package/src/tx/simulated_tx.ts +18 -21
- package/src/tx/state_reference.ts +9 -4
- package/src/tx/tree_snapshots.ts +9 -4
- package/src/tx/tx.ts +41 -22
- package/src/tx/tx_constant_data.ts +8 -3
- package/src/tx/tx_context.ts +8 -3
- package/src/tx/tx_hash.ts +20 -5
- package/src/tx/tx_receipt.ts +263 -80
- package/src/tx/validator/tx_validator.ts +1 -5
- package/src/types/shared.ts +8 -3
- package/src/update-checker/dev_version.ts +2 -0
- package/src/update-checker/index.ts +1 -0
- package/src/update-checker/package_version.ts +10 -23
- package/src/validators/schemas.ts +6 -4
- package/src/validators/types.ts +21 -2
- package/src/versioning/versioning.ts +1 -1
- package/src/world-state/genesis_data.ts +12 -0
- package/src/world-state/world_state_revision.ts +0 -33
- package/dest/block/checkpointed_l2_block.d.ts +0 -150
- package/dest/block/checkpointed_l2_block.d.ts.map +0 -1
- package/dest/block/checkpointed_l2_block.js +0 -46
- package/dest/config/pipelining-config.d.ts +0 -19
- package/dest/config/pipelining-config.d.ts.map +0 -1
- package/dest/config/pipelining-config.js +0 -18
- package/dest/interfaces/get_logs_response.d.ts +0 -97
- package/dest/interfaces/get_logs_response.d.ts.map +0 -1
- package/dest/interfaces/get_logs_response.js +0 -12
- package/dest/logs/extended_contract_class_log.d.ts +0 -51
- package/dest/logs/extended_contract_class_log.d.ts.map +0 -1
- package/dest/logs/extended_contract_class_log.js +0 -67
- package/dest/logs/extended_directional_app_tagging_secret.d.ts +0 -47
- package/dest/logs/extended_directional_app_tagging_secret.d.ts.map +0 -1
- package/dest/logs/extended_public_log.d.ts +0 -106
- package/dest/logs/extended_public_log.d.ts.map +0 -1
- package/dest/logs/extended_public_log.js +0 -73
- package/dest/logs/log_filter.d.ts +0 -25
- package/dest/logs/log_filter.d.ts.map +0 -1
- package/dest/logs/log_filter.js +0 -12
- package/dest/logs/log_id.d.ts +0 -85
- package/dest/logs/log_id.d.ts.map +0 -1
- package/dest/logs/log_id.js +0 -93
- package/dest/logs/tx_scoped_l2_log.d.ts +0 -51
- package/dest/logs/tx_scoped_l2_log.d.ts.map +0 -1
- package/dest/logs/tx_scoped_l2_log.js +0 -77
- package/src/block/checkpointed_l2_block.ts +0 -70
- package/src/config/pipelining-config.ts +0 -31
- package/src/interfaces/get_logs_response.ts +0 -35
- package/src/logs/extended_contract_class_log.ts +0 -87
- package/src/logs/extended_public_log.ts +0 -94
- package/src/logs/log_filter.ts +0 -36
- package/src/logs/log_id.ts +0 -124
- package/src/logs/tx_scoped_l2_log.ts +0 -114
package/src/p2p/signed_txs.ts
CHANGED
|
@@ -1,15 +1,20 @@
|
|
|
1
|
-
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
|
-
import { tryRecoverAddress } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
3
1
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
2
|
import { Signature } from '@aztec/foundation/eth-signature';
|
|
5
3
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
6
4
|
|
|
5
|
+
import type { TypedDataDefinition } from 'viem';
|
|
6
|
+
|
|
7
7
|
import { MAX_TXS_PER_BLOCK } from '../deserialization/index.js';
|
|
8
8
|
import { Tx } from '../tx/tx.js';
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
type CoordinationSignatureContext,
|
|
11
|
+
type CoordinationSignatureType,
|
|
12
|
+
EMPTY_COORDINATION_SIGNATURE_CONTEXT,
|
|
13
|
+
type Signable,
|
|
14
|
+
getCoordinationSignatureTypedData,
|
|
15
|
+
readCoordinationSignatureContext,
|
|
16
|
+
recoverCoordinationSigner,
|
|
17
|
+
serializeCoordinationSignatureContext,
|
|
13
18
|
} from './signature_utils.js';
|
|
14
19
|
|
|
15
20
|
/**
|
|
@@ -17,50 +22,56 @@ import {
|
|
|
17
22
|
* The signature is over the transaction objects themselves, providing
|
|
18
23
|
* data availability guarantees beyond just the transaction hashes.
|
|
19
24
|
*/
|
|
20
|
-
export class SignedTxs {
|
|
21
|
-
|
|
25
|
+
export class SignedTxs implements Signable {
|
|
26
|
+
readonly primaryType: CoordinationSignatureType = 'SignedTxs';
|
|
27
|
+
|
|
28
|
+
private cachedSender: EthAddress | undefined | null = undefined;
|
|
22
29
|
|
|
23
30
|
constructor(
|
|
24
31
|
/** The transactions */
|
|
25
32
|
public readonly txs: Tx[],
|
|
26
33
|
/** The proposer's signature over the transactions */
|
|
27
34
|
public readonly signature: Signature,
|
|
35
|
+
/** The signing domain (chainId + rollupAddress) the signature is bound to */
|
|
36
|
+
public readonly signatureContext: CoordinationSignatureContext,
|
|
28
37
|
) {}
|
|
29
38
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*/
|
|
33
|
-
getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
|
|
34
|
-
return serializeToBuffer([domainSeparator, this.txs.length, this.txs]);
|
|
39
|
+
getPayloadToSign(): Buffer {
|
|
40
|
+
return serializeToBuffer([this.txs.length, this.txs]);
|
|
35
41
|
}
|
|
36
42
|
|
|
37
43
|
/**
|
|
38
|
-
* Lazily evaluate the sender of the signed txs; result is cached
|
|
44
|
+
* Lazily evaluate the sender of the signed txs; result is cached.
|
|
39
45
|
* @returns The sender address, or undefined if signature recovery fails
|
|
40
46
|
*/
|
|
41
47
|
getSender(): EthAddress | undefined {
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
this.sender = tryRecoverAddress(hashed, this.signature);
|
|
48
|
+
if (this.cachedSender === undefined) {
|
|
49
|
+
this.cachedSender = recoverCoordinationSigner(this, this.signature) ?? null;
|
|
45
50
|
}
|
|
46
|
-
return this.
|
|
51
|
+
return this.cachedSender ?? undefined;
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
/**
|
|
50
|
-
* Create SignedTxs from a signer function
|
|
55
|
+
* Create SignedTxs from a typed-data signer function
|
|
51
56
|
*/
|
|
52
57
|
static async createFromSigner(
|
|
53
58
|
txs: Tx[],
|
|
54
|
-
|
|
59
|
+
signatureContext: CoordinationSignatureContext,
|
|
60
|
+
typedDataSigner: (typedData: TypedDataDefinition) => Promise<Signature>,
|
|
55
61
|
): Promise<SignedTxs> {
|
|
56
|
-
const tempSignedTxs = new SignedTxs(txs, Signature.empty());
|
|
57
|
-
const
|
|
58
|
-
const signature = await
|
|
59
|
-
return new SignedTxs(txs, signature);
|
|
62
|
+
const tempSignedTxs = new SignedTxs(txs, Signature.empty(), signatureContext);
|
|
63
|
+
const typedData = getCoordinationSignatureTypedData(tempSignedTxs);
|
|
64
|
+
const signature = await typedDataSigner(typedData);
|
|
65
|
+
return new SignedTxs(txs, signature, signatureContext);
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
toBuffer(): Buffer {
|
|
63
|
-
return serializeToBuffer([
|
|
69
|
+
return serializeToBuffer([
|
|
70
|
+
this.txs.length,
|
|
71
|
+
this.txs,
|
|
72
|
+
this.signature,
|
|
73
|
+
serializeCoordinationSignatureContext(this.signatureContext),
|
|
74
|
+
]);
|
|
64
75
|
}
|
|
65
76
|
|
|
66
77
|
static fromBuffer(buf: Buffer | BufferReader): SignedTxs {
|
|
@@ -71,18 +82,25 @@ export class SignedTxs {
|
|
|
71
82
|
}
|
|
72
83
|
const txs = reader.readArray(txCount, Tx);
|
|
73
84
|
const signature = reader.readObject(Signature);
|
|
74
|
-
|
|
85
|
+
const signatureContext = readCoordinationSignatureContext(reader);
|
|
86
|
+
return new SignedTxs(txs, signature, signatureContext);
|
|
75
87
|
}
|
|
76
88
|
|
|
77
89
|
getSize(): number {
|
|
78
|
-
return
|
|
90
|
+
return (
|
|
91
|
+
4 /* txs.length */ +
|
|
92
|
+
this.txs.reduce((acc, tx) => acc + tx.getSize(), 0) +
|
|
93
|
+
this.signature.getSize() +
|
|
94
|
+
4 /* chainId */ +
|
|
95
|
+
20 /* rollupAddress */
|
|
96
|
+
);
|
|
79
97
|
}
|
|
80
98
|
|
|
81
99
|
static empty(): SignedTxs {
|
|
82
|
-
return new SignedTxs([], Signature.empty());
|
|
100
|
+
return new SignedTxs([], Signature.empty(), EMPTY_COORDINATION_SIGNATURE_CONTEXT);
|
|
83
101
|
}
|
|
84
102
|
|
|
85
103
|
static random(): SignedTxs {
|
|
86
|
-
return new SignedTxs([Tx.random(), Tx.random()], Signature.random());
|
|
104
|
+
return new SignedTxs([Tx.random(), Tx.random()], Signature.random(), EMPTY_COORDINATION_SIGNATURE_CONTEXT);
|
|
87
105
|
}
|
|
88
106
|
}
|
|
@@ -10,9 +10,11 @@ export class ParityBasePrivateInputs {
|
|
|
10
10
|
public readonly msgs: Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>,
|
|
11
11
|
/** Root of the VK tree */
|
|
12
12
|
public readonly vkTreeRoot: Fr,
|
|
13
|
+
/** Prover identity committed to by the circuit, for sybil protection. */
|
|
14
|
+
public readonly proverId: Fr,
|
|
13
15
|
) {}
|
|
14
16
|
|
|
15
|
-
public static fromSlice(array: Fr[], index: number, vkTreeRoot: Fr): ParityBasePrivateInputs {
|
|
17
|
+
public static fromSlice(array: Fr[], index: number, vkTreeRoot: Fr, proverId: Fr): ParityBasePrivateInputs {
|
|
16
18
|
// Can't use Tuple<Fr, typeof NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP> due to length
|
|
17
19
|
if (array.length !== NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP) {
|
|
18
20
|
throw new Error(
|
|
@@ -22,12 +24,12 @@ export class ParityBasePrivateInputs {
|
|
|
22
24
|
const start = index * NUM_MSGS_PER_BASE_PARITY;
|
|
23
25
|
const end = start + NUM_MSGS_PER_BASE_PARITY;
|
|
24
26
|
const msgs = array.slice(start, end);
|
|
25
|
-
return new ParityBasePrivateInputs(msgs as Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>, vkTreeRoot);
|
|
27
|
+
return new ParityBasePrivateInputs(msgs as Tuple<Fr, typeof NUM_MSGS_PER_BASE_PARITY>, vkTreeRoot, proverId);
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
/** Serializes the inputs to a buffer. */
|
|
29
31
|
toBuffer() {
|
|
30
|
-
return serializeToBuffer(this.msgs, this.vkTreeRoot);
|
|
32
|
+
return serializeToBuffer(this.msgs, this.vkTreeRoot, this.proverId);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
/** Serializes the inputs to a hex string. */
|
|
@@ -41,7 +43,11 @@ export class ParityBasePrivateInputs {
|
|
|
41
43
|
*/
|
|
42
44
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
43
45
|
const reader = BufferReader.asReader(buffer);
|
|
44
|
-
return new ParityBasePrivateInputs(
|
|
46
|
+
return new ParityBasePrivateInputs(
|
|
47
|
+
reader.readArray(NUM_MSGS_PER_BASE_PARITY, Fr),
|
|
48
|
+
Fr.fromBuffer(reader),
|
|
49
|
+
Fr.fromBuffer(reader),
|
|
50
|
+
);
|
|
45
51
|
}
|
|
46
52
|
|
|
47
53
|
/**
|
|
@@ -12,6 +12,8 @@ export class ParityPublicInputs {
|
|
|
12
12
|
public convertedRoot: Fr,
|
|
13
13
|
/** Root of the VK tree */
|
|
14
14
|
public vkTreeRoot: Fr,
|
|
15
|
+
/** Prover identity committed to by the circuit, for sybil protection. */
|
|
16
|
+
public proverId: Fr,
|
|
15
17
|
) {
|
|
16
18
|
if (shaRoot.toBuffer()[0] != 0) {
|
|
17
19
|
throw new Error(`shaRoot buffer must be 31 bytes. Got 32 bytes`);
|
|
@@ -54,7 +56,7 @@ export class ParityPublicInputs {
|
|
|
54
56
|
* @returns The instance fields.
|
|
55
57
|
*/
|
|
56
58
|
static getFields(fields: FieldsOf<ParityPublicInputs>) {
|
|
57
|
-
return [fields.shaRoot, fields.convertedRoot, fields.vkTreeRoot] as const;
|
|
59
|
+
return [fields.shaRoot, fields.convertedRoot, fields.vkTreeRoot, fields.proverId] as const;
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
/**
|
|
@@ -64,7 +66,12 @@ export class ParityPublicInputs {
|
|
|
64
66
|
*/
|
|
65
67
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
66
68
|
const reader = BufferReader.asReader(buffer);
|
|
67
|
-
return new ParityPublicInputs(
|
|
69
|
+
return new ParityPublicInputs(
|
|
70
|
+
reader.readObject(Fr),
|
|
71
|
+
reader.readObject(Fr),
|
|
72
|
+
Fr.fromBuffer(reader),
|
|
73
|
+
Fr.fromBuffer(reader),
|
|
74
|
+
);
|
|
68
75
|
}
|
|
69
76
|
|
|
70
77
|
/**
|
|
@@ -4,16 +4,19 @@ import { times } from '@aztec/foundation/collection';
|
|
|
4
4
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
5
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
6
6
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
7
|
-
import { BufferReader,
|
|
7
|
+
import { BufferReader, BufferSink } from '@aztec/foundation/serialize';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Serialization format detection for ChonkProof is
|
|
10
|
+
* Serialization format detection for ChonkProof is value-based on the leading uint32:
|
|
11
|
+
* - EMPTY: [0: uint32] → total = 4 bytes
|
|
11
12
|
* - UNCOMPRESSED (legacy): [field_count=1632: uint32] [fields...] → total ≈ 52KB (>= 40KB)
|
|
12
13
|
* - COMPRESSED: [byte_count: uint32] [compressed_bytes] → total ≈ 35KB (< 40KB)
|
|
13
14
|
*
|
|
14
|
-
* Detection
|
|
15
|
-
* (field count)
|
|
16
|
-
*
|
|
15
|
+
* Detection from the first uint32: 0 means an empty proof (no fields); CHONK_PROOF_LENGTH
|
|
16
|
+
* (1632) means legacy format (field count); any other value is the compressed byte count.
|
|
17
|
+
* A real compressed proof always has a non-zero byte count, so 0 is an unambiguous sentinel
|
|
18
|
+
* for the empty case. The old uncompressed format is never smaller than 40KB; compressed
|
|
19
|
+
* proofs are always smaller than 40KB.
|
|
17
20
|
*/
|
|
18
21
|
|
|
19
22
|
// CHONK: "Client Honk" - An UltraHonk variant with incremental folding and delayed non-native arithmetic.
|
|
@@ -32,7 +35,8 @@ export class ChonkProof {
|
|
|
32
35
|
public fields: Fr[],
|
|
33
36
|
compressedProof?: Buffer,
|
|
34
37
|
) {
|
|
35
|
-
|
|
38
|
+
// An empty proof (no fields) is a valid placeholder; see ChonkProof.empty().
|
|
39
|
+
if (fields.length !== 0 && fields.length !== CHONK_PROOF_LENGTH) {
|
|
36
40
|
throw new Error(`Invalid ChonkProof length: ${fields.length}`);
|
|
37
41
|
}
|
|
38
42
|
this.compressedProof = compressedProof;
|
|
@@ -47,7 +51,7 @@ export class ChonkProof {
|
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
static empty() {
|
|
50
|
-
return new ChonkProof(
|
|
54
|
+
return new ChonkProof([]);
|
|
51
55
|
}
|
|
52
56
|
|
|
53
57
|
static random() {
|
|
@@ -77,7 +81,8 @@ export class ChonkProof {
|
|
|
77
81
|
* Deserialize a ChonkProof from a buffer.
|
|
78
82
|
* Supports both legacy (field elements) and compressed (chonk compression) formats.
|
|
79
83
|
*
|
|
80
|
-
*
|
|
84
|
+
* Value-based format detection on the leading uint32:
|
|
85
|
+
* - First uint32 == 0: empty proof (no fields), total = 4 bytes
|
|
81
86
|
* - First uint32 == CHONK_PROOF_LENGTH (1632): legacy format, read field elements
|
|
82
87
|
* Total proof data ≈ 52KB (always >= 40KB)
|
|
83
88
|
* - Otherwise: compressed format, first uint32 is byte count of compressed data
|
|
@@ -87,6 +92,11 @@ export class ChonkProof {
|
|
|
87
92
|
const reader = BufferReader.asReader(buffer);
|
|
88
93
|
const firstUint32 = reader.readNumber();
|
|
89
94
|
|
|
95
|
+
if (firstUint32 === 0) {
|
|
96
|
+
// Empty format: a zero length encodes an empty proof.
|
|
97
|
+
return ChonkProof.empty();
|
|
98
|
+
}
|
|
99
|
+
|
|
90
100
|
if (firstUint32 === CHONK_PROOF_LENGTH) {
|
|
91
101
|
// Legacy format: firstUint32 is the field count (1632)
|
|
92
102
|
// Widen to `number` to prevent TS from narrowing to literal 1632,
|
|
@@ -133,13 +143,24 @@ export class ChonkProof {
|
|
|
133
143
|
* If compressed bytes are available, uses the compressed format (~1.7x smaller).
|
|
134
144
|
* Otherwise falls back to legacy field element format.
|
|
135
145
|
*/
|
|
136
|
-
public toBuffer()
|
|
146
|
+
public toBuffer(): Buffer;
|
|
147
|
+
public toBuffer(sink: BufferSink): void;
|
|
148
|
+
public toBuffer(sink?: BufferSink): Buffer | void {
|
|
149
|
+
if (!sink) {
|
|
150
|
+
return BufferSink.serialize(this);
|
|
151
|
+
}
|
|
137
152
|
if (this.compressedProof) {
|
|
138
153
|
// Compressed format: [compressed_byte_count: uint32] [compressed_bytes]
|
|
139
|
-
|
|
154
|
+
sink.writeNumber(this.compressedProof.length);
|
|
155
|
+
sink.writeBytes(this.compressedProof);
|
|
156
|
+
return;
|
|
140
157
|
}
|
|
141
|
-
// Legacy format: [field_count
|
|
142
|
-
|
|
158
|
+
// Legacy / empty format: [field_count: uint32] [fields...]. fields.length === 0 emits the empty
|
|
159
|
+
// sentinel (a lone zero uint32) that ChonkProof.fromBuffer detects; fields.length === CHONK_PROOF_LENGTH
|
|
160
|
+
// is the full legacy form. The writeFields fast path skips per-element sinkable dispatch on the 1632
|
|
161
|
+
// leaves and is a no-op when the array is empty.
|
|
162
|
+
sink.writeNumber(this.fields.length);
|
|
163
|
+
sink.writeFields(this.fields);
|
|
143
164
|
}
|
|
144
165
|
}
|
|
145
166
|
|
|
@@ -156,17 +177,24 @@ export class ChonkProofWithPublicInputs {
|
|
|
156
177
|
// For recursive verification, use without public inputs via `removePublicInputs()`.
|
|
157
178
|
public fieldsWithPublicInputs: Fr[],
|
|
158
179
|
) {
|
|
159
|
-
|
|
180
|
+
// An empty proof (no fields) is a valid placeholder; see ChonkProofWithPublicInputs.empty().
|
|
181
|
+
if (fieldsWithPublicInputs.length !== 0 && fieldsWithPublicInputs.length < CHONK_PROOF_LENGTH) {
|
|
160
182
|
throw new Error(`Invalid ChonkProofWithPublicInputs length: ${fieldsWithPublicInputs.length}`);
|
|
161
183
|
}
|
|
162
184
|
}
|
|
163
185
|
|
|
164
186
|
public getPublicInputs() {
|
|
187
|
+
if (this.fieldsWithPublicInputs.length === 0) {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
165
190
|
const numPublicInputs = this.fieldsWithPublicInputs.length - CHONK_PROOF_LENGTH;
|
|
166
191
|
return this.fieldsWithPublicInputs.slice(0, numPublicInputs);
|
|
167
192
|
}
|
|
168
193
|
|
|
169
194
|
public removePublicInputs() {
|
|
195
|
+
if (this.fieldsWithPublicInputs.length === 0) {
|
|
196
|
+
return new ChonkProof([], this.compressedProof);
|
|
197
|
+
}
|
|
170
198
|
const numPublicInputs = this.fieldsWithPublicInputs.length - CHONK_PROOF_LENGTH;
|
|
171
199
|
// Flow compressed proof bytes through so the ChonkProof can serialize efficiently
|
|
172
200
|
return new ChonkProof(this.fieldsWithPublicInputs.slice(numPublicInputs), this.compressedProof);
|
|
@@ -196,8 +224,14 @@ export class ChonkProofWithPublicInputs {
|
|
|
196
224
|
return new ChonkProofWithPublicInputs(proof);
|
|
197
225
|
}
|
|
198
226
|
|
|
199
|
-
public toBuffer()
|
|
200
|
-
|
|
227
|
+
public toBuffer(): Buffer;
|
|
228
|
+
public toBuffer(sink: BufferSink): void;
|
|
229
|
+
public toBuffer(sink?: BufferSink): Buffer | void {
|
|
230
|
+
if (!sink) {
|
|
231
|
+
return BufferSink.serialize(this);
|
|
232
|
+
}
|
|
233
|
+
sink.writeNumber(this.fieldsWithPublicInputs.length);
|
|
234
|
+
sink.writeFields(this.fieldsWithPublicInputs);
|
|
201
235
|
}
|
|
202
236
|
|
|
203
237
|
// Called when constructing from bb proving results.
|
|
@@ -119,6 +119,19 @@ export class BlockRollupPublicInputs {
|
|
|
119
119
|
return this.toBuffer();
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
toInspect() {
|
|
123
|
+
return {
|
|
124
|
+
previousArchiveRoot: this.previousArchive.root.toString(),
|
|
125
|
+
newArchiveRoot: this.newArchive.root.toString(),
|
|
126
|
+
blockHeadersHash: this.blockHeadersHash.toString(),
|
|
127
|
+
inHash: this.inHash.toString(),
|
|
128
|
+
outHash: this.outHash.toString(),
|
|
129
|
+
timestamp: this.timestamp.toString(),
|
|
130
|
+
accumulatedFees: this.accumulatedFees.toString(),
|
|
131
|
+
accumulatedManaUsed: this.accumulatedManaUsed.toString(),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
122
135
|
static get schema() {
|
|
123
136
|
return bufferSchemaFor(BlockRollupPublicInputs);
|
|
124
137
|
}
|
|
@@ -101,6 +101,16 @@ export class CheckpointRollupPublicInputs {
|
|
|
101
101
|
return this.toBuffer();
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
toInspect() {
|
|
105
|
+
return {
|
|
106
|
+
checkpointHeaderHash: this.checkpointHeaderHashes[0].toString(),
|
|
107
|
+
previousArchiveRoot: this.previousArchive.root.toString(),
|
|
108
|
+
newArchiveRoot: this.newArchive.root.toString(),
|
|
109
|
+
previousOutHashRoot: this.previousOutHash.root.toString(),
|
|
110
|
+
newOutHashRoot: this.newOutHash.root.toString(),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
104
114
|
/** Creates an instance from a hex string. */
|
|
105
115
|
static get schema() {
|
|
106
116
|
return bufferSchemaFor(CheckpointRollupPublicInputs);
|
package/src/schemas/schemas.ts
CHANGED
|
@@ -89,7 +89,10 @@ export const AbiDecodedSchema: ZodFor<AbiDecoded> = z.union([
|
|
|
89
89
|
z.boolean(),
|
|
90
90
|
schemas.AztecAddress,
|
|
91
91
|
z.array(z.lazy(() => AbiDecodedSchema)),
|
|
92
|
-
z.record(
|
|
92
|
+
z.record(
|
|
93
|
+
z.string(),
|
|
94
|
+
z.lazy(() => AbiDecodedSchema),
|
|
95
|
+
),
|
|
93
96
|
]);
|
|
94
97
|
|
|
95
98
|
// C++ only supports null values, which we want to convert to undefined.
|
|
@@ -103,6 +106,8 @@ export {
|
|
|
103
106
|
hexSchemaFor,
|
|
104
107
|
bufferSchemaFor,
|
|
105
108
|
type ApiSchemaFor,
|
|
109
|
+
getSchemaParameters,
|
|
110
|
+
getSchemaReturnType,
|
|
106
111
|
optional,
|
|
107
112
|
mapSchema,
|
|
108
113
|
pickFromSchema,
|
package/src/slashing/helpers.ts
CHANGED
|
@@ -48,11 +48,12 @@ export function getPenaltyForOffense(
|
|
|
48
48
|
offense: OffenseType,
|
|
49
49
|
config: Pick<
|
|
50
50
|
SlasherConfig,
|
|
51
|
-
| '
|
|
51
|
+
| 'slashProposeDescendantOfCheckpointWithInvalidAttestationsPenalty'
|
|
52
52
|
| 'slashBroadcastedInvalidBlockPenalty'
|
|
53
|
+
| 'slashBroadcastedInvalidCheckpointProposalPenalty'
|
|
53
54
|
| 'slashDuplicateProposalPenalty'
|
|
54
55
|
| 'slashDuplicateAttestationPenalty'
|
|
55
|
-
| '
|
|
56
|
+
| 'slashAttestInvalidCheckpointProposalPenalty'
|
|
56
57
|
| 'slashDataWithholdingPenalty'
|
|
57
58
|
| 'slashUnknownPenalty'
|
|
58
59
|
| 'slashInactivityPenalty'
|
|
@@ -60,8 +61,6 @@ export function getPenaltyForOffense(
|
|
|
60
61
|
>,
|
|
61
62
|
) {
|
|
62
63
|
switch (offense) {
|
|
63
|
-
case OffenseType.VALID_EPOCH_PRUNED:
|
|
64
|
-
return config.slashPrunePenalty;
|
|
65
64
|
case OffenseType.DATA_WITHHOLDING:
|
|
66
65
|
return config.slashDataWithholdingPenalty;
|
|
67
66
|
case OffenseType.INACTIVITY:
|
|
@@ -69,14 +68,18 @@ export function getPenaltyForOffense(
|
|
|
69
68
|
case OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS:
|
|
70
69
|
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
71
70
|
return config.slashProposeInvalidAttestationsPenalty;
|
|
72
|
-
case OffenseType.
|
|
73
|
-
return config.
|
|
71
|
+
case OffenseType.PROPOSED_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS:
|
|
72
|
+
return config.slashProposeDescendantOfCheckpointWithInvalidAttestationsPenalty;
|
|
74
73
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
75
74
|
return config.slashBroadcastedInvalidBlockPenalty;
|
|
75
|
+
case OffenseType.BROADCASTED_INVALID_CHECKPOINT_PROPOSAL:
|
|
76
|
+
return config.slashBroadcastedInvalidCheckpointProposalPenalty;
|
|
76
77
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
77
78
|
return config.slashDuplicateProposalPenalty;
|
|
78
79
|
case OffenseType.DUPLICATE_ATTESTATION:
|
|
79
80
|
return config.slashDuplicateAttestationPenalty;
|
|
81
|
+
case OffenseType.ATTESTED_TO_INVALID_CHECKPOINT_PROPOSAL:
|
|
82
|
+
return config.slashAttestInvalidCheckpointProposalPenalty;
|
|
80
83
|
case OffenseType.UNKNOWN:
|
|
81
84
|
return config.slashUnknownPenalty;
|
|
82
85
|
default: {
|
|
@@ -89,17 +92,18 @@ export function getPenaltyForOffense(
|
|
|
89
92
|
/** Returns whether the `epochOrSlot` field for an offense references an epoch or a slot */
|
|
90
93
|
export function getTimeUnitForOffense(offense: OffenseType): 'epoch' | 'slot' {
|
|
91
94
|
switch (offense) {
|
|
92
|
-
case OffenseType.
|
|
95
|
+
case OffenseType.PROPOSED_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS:
|
|
93
96
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
97
|
+
case OffenseType.DATA_WITHHOLDING:
|
|
98
|
+
case OffenseType.BROADCASTED_INVALID_CHECKPOINT_PROPOSAL:
|
|
94
99
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
95
100
|
case OffenseType.DUPLICATE_ATTESTATION:
|
|
101
|
+
case OffenseType.ATTESTED_TO_INVALID_CHECKPOINT_PROPOSAL:
|
|
96
102
|
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
97
103
|
case OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS:
|
|
98
104
|
return 'slot';
|
|
99
105
|
case OffenseType.INACTIVITY:
|
|
100
|
-
case OffenseType.DATA_WITHHOLDING:
|
|
101
106
|
case OffenseType.UNKNOWN:
|
|
102
|
-
case OffenseType.VALID_EPOCH_PRUNED:
|
|
103
107
|
return 'epoch';
|
|
104
108
|
default: {
|
|
105
109
|
const _exhaustiveCheck: never = offense;
|
package/src/slashing/types.ts
CHANGED
|
@@ -6,10 +6,8 @@ import { schemas, zodFor } from '../schemas/index.js';
|
|
|
6
6
|
|
|
7
7
|
export enum OffenseType {
|
|
8
8
|
UNKNOWN = 0,
|
|
9
|
-
/** The data for
|
|
9
|
+
/** The data for the txs in a published checkpoint was not available within the tolerance window, we slash the checkpoint's attesters */
|
|
10
10
|
DATA_WITHHOLDING = 1,
|
|
11
|
-
/** An epoch was not successfully proven in time, we slash its committee */
|
|
12
|
-
VALID_EPOCH_PRUNED = 2,
|
|
13
11
|
/** A proposer failed to attest or propose during an epoch according to the Sentinel */
|
|
14
12
|
INACTIVITY = 3,
|
|
15
13
|
/** A proposer sent an invalid block proposal over the p2p network to the committee */
|
|
@@ -18,12 +16,16 @@ export enum OffenseType {
|
|
|
18
16
|
PROPOSED_INSUFFICIENT_ATTESTATIONS = 5,
|
|
19
17
|
/** A proposer pushed to L1 a block with incorrect committee attestations (ie signature from a non-committee member) */
|
|
20
18
|
PROPOSED_INCORRECT_ATTESTATIONS = 6,
|
|
21
|
-
/** A
|
|
22
|
-
|
|
19
|
+
/** A proposer published a checkpoint to L1 that builds on an invalid checkpoint (as in a checkpoint with invalid or insufficient attestations) */
|
|
20
|
+
PROPOSED_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS = 7,
|
|
23
21
|
/** A proposer sent duplicate proposals for the same position (slot, indexWithinCheckpoint for blocks or slot for checkpoints) */
|
|
24
22
|
DUPLICATE_PROPOSAL = 8,
|
|
25
23
|
/** A validator signed attestations for different proposals at the same slot (equivocation) */
|
|
26
24
|
DUPLICATE_ATTESTATION = 9,
|
|
25
|
+
/** A committee member attested to a checkpoint proposal in a slot with an invalid block proposal */
|
|
26
|
+
ATTESTED_TO_INVALID_CHECKPOINT_PROPOSAL = 10,
|
|
27
|
+
/** A proposer broadcast an invalid checkpoint proposal, detected by retained evidence or deterministic recomputation */
|
|
28
|
+
BROADCASTED_INVALID_CHECKPOINT_PROPOSAL = 11,
|
|
27
29
|
}
|
|
28
30
|
|
|
29
31
|
export function getOffenseTypeName(offense: OffenseType) {
|
|
@@ -32,8 +34,6 @@ export function getOffenseTypeName(offense: OffenseType) {
|
|
|
32
34
|
return 'unknown';
|
|
33
35
|
case OffenseType.DATA_WITHHOLDING:
|
|
34
36
|
return 'data_withholding';
|
|
35
|
-
case OffenseType.VALID_EPOCH_PRUNED:
|
|
36
|
-
return 'valid_epoch_pruned';
|
|
37
37
|
case OffenseType.INACTIVITY:
|
|
38
38
|
return 'inactivity';
|
|
39
39
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL:
|
|
@@ -42,12 +42,16 @@ export function getOffenseTypeName(offense: OffenseType) {
|
|
|
42
42
|
return 'proposed_insufficient_attestations';
|
|
43
43
|
case OffenseType.PROPOSED_INCORRECT_ATTESTATIONS:
|
|
44
44
|
return 'proposed_incorrect_attestations';
|
|
45
|
-
case OffenseType.
|
|
46
|
-
return '
|
|
45
|
+
case OffenseType.PROPOSED_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS:
|
|
46
|
+
return 'proposed_descendant_of_checkpoint_with_invalid_attestations';
|
|
47
47
|
case OffenseType.DUPLICATE_PROPOSAL:
|
|
48
48
|
return 'duplicate_proposal';
|
|
49
49
|
case OffenseType.DUPLICATE_ATTESTATION:
|
|
50
50
|
return 'duplicate_attestation';
|
|
51
|
+
case OffenseType.ATTESTED_TO_INVALID_CHECKPOINT_PROPOSAL:
|
|
52
|
+
return 'attested_to_invalid_checkpoint_proposal';
|
|
53
|
+
case OffenseType.BROADCASTED_INVALID_CHECKPOINT_PROPOSAL:
|
|
54
|
+
return 'broadcasted_invalid_checkpoint_proposal';
|
|
51
55
|
default:
|
|
52
56
|
throw new Error(`Unknown offense type: ${offense}`);
|
|
53
57
|
}
|
|
@@ -58,14 +62,15 @@ export const OffenseTypeSchema = z.nativeEnum(OffenseType);
|
|
|
58
62
|
export const OffenseToBigInt: Record<OffenseType, bigint> = {
|
|
59
63
|
[OffenseType.UNKNOWN]: 0n,
|
|
60
64
|
[OffenseType.DATA_WITHHOLDING]: 1n,
|
|
61
|
-
[OffenseType.VALID_EPOCH_PRUNED]: 2n,
|
|
62
65
|
[OffenseType.INACTIVITY]: 3n,
|
|
63
66
|
[OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL]: 4n,
|
|
64
67
|
[OffenseType.PROPOSED_INSUFFICIENT_ATTESTATIONS]: 5n,
|
|
65
68
|
[OffenseType.PROPOSED_INCORRECT_ATTESTATIONS]: 6n,
|
|
66
|
-
[OffenseType.
|
|
69
|
+
[OffenseType.PROPOSED_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS]: 7n,
|
|
67
70
|
[OffenseType.DUPLICATE_PROPOSAL]: 8n,
|
|
68
71
|
[OffenseType.DUPLICATE_ATTESTATION]: 9n,
|
|
72
|
+
[OffenseType.ATTESTED_TO_INVALID_CHECKPOINT_PROPOSAL]: 10n,
|
|
73
|
+
[OffenseType.BROADCASTED_INVALID_CHECKPOINT_PROPOSAL]: 11n,
|
|
69
74
|
};
|
|
70
75
|
|
|
71
76
|
export function bigIntToOffense(offense: bigint): OffenseType {
|
|
@@ -74,8 +79,6 @@ export function bigIntToOffense(offense: bigint): OffenseType {
|
|
|
74
79
|
return OffenseType.UNKNOWN;
|
|
75
80
|
case 1n:
|
|
76
81
|
return OffenseType.DATA_WITHHOLDING;
|
|
77
|
-
case 2n:
|
|
78
|
-
return OffenseType.VALID_EPOCH_PRUNED;
|
|
79
82
|
case 3n:
|
|
80
83
|
return OffenseType.INACTIVITY;
|
|
81
84
|
case 4n:
|
|
@@ -85,11 +88,15 @@ export function bigIntToOffense(offense: bigint): OffenseType {
|
|
|
85
88
|
case 6n:
|
|
86
89
|
return OffenseType.PROPOSED_INCORRECT_ATTESTATIONS;
|
|
87
90
|
case 7n:
|
|
88
|
-
return OffenseType.
|
|
91
|
+
return OffenseType.PROPOSED_DESCENDANT_OF_CHECKPOINT_WITH_INVALID_ATTESTATIONS;
|
|
89
92
|
case 8n:
|
|
90
93
|
return OffenseType.DUPLICATE_PROPOSAL;
|
|
91
94
|
case 9n:
|
|
92
95
|
return OffenseType.DUPLICATE_ATTESTATION;
|
|
96
|
+
case 10n:
|
|
97
|
+
return OffenseType.ATTESTED_TO_INVALID_CHECKPOINT_PROPOSAL;
|
|
98
|
+
case 11n:
|
|
99
|
+
return OffenseType.BROADCASTED_INVALID_CHECKPOINT_PROPOSAL;
|
|
93
100
|
default:
|
|
94
101
|
throw new Error(`Unknown offense: ${offense}`);
|
|
95
102
|
}
|
package/src/stats/stats.ts
CHANGED
|
@@ -84,7 +84,11 @@ export type NodeSyncedChainHistoryStats = {
|
|
|
84
84
|
|
|
85
85
|
export type ClientCircuitName =
|
|
86
86
|
| 'private-kernel-init'
|
|
87
|
+
| 'private-kernel-init-2'
|
|
88
|
+
| 'private-kernel-init-3'
|
|
87
89
|
| 'private-kernel-inner'
|
|
90
|
+
| 'private-kernel-inner-2'
|
|
91
|
+
| 'private-kernel-inner-3'
|
|
88
92
|
| 'private-kernel-reset'
|
|
89
93
|
| 'private-kernel-tail'
|
|
90
94
|
| 'private-kernel-tail-to-public'
|