@aztec/stdlib 3.0.0-nightly.20251127 → 3.0.0-nightly.20251201.2
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 +83 -83
- package/dest/abi/authorization_selector.d.ts +1 -1
- package/dest/abi/authorization_selector.d.ts.map +1 -1
- package/dest/abi/buffer.d.ts +1 -1
- package/dest/abi/contract_artifact.d.ts +1 -1
- package/dest/abi/decoder.d.ts +1 -1
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/encoder.d.ts +1 -1
- package/dest/abi/event_metadata_definition.d.ts +1 -1
- package/dest/abi/event_selector.d.ts +1 -1
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_call.d.ts +1 -9
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_selector.d.ts +1 -1
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/index.d.ts +1 -1
- package/dest/abi/mocked_keys.d.ts +1 -1
- package/dest/abi/note_selector.d.ts +1 -1
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/selector.d.ts +1 -1
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/utils.d.ts +1 -1
- package/dest/auth_witness/auth_witness.d.ts +1 -2
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/auth_witness/index.d.ts +1 -1
- package/dest/avm/avm.d.ts +2433 -2431
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.d.ts +16 -43
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.d.ts +175 -173
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_proving_request.d.ts +1660 -1656
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/contract_storage_read.d.ts +1 -13
- package/dest/avm/contract_storage_read.d.ts.map +1 -1
- package/dest/avm/contract_storage_update_request.d.ts +1 -13
- package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
- package/dest/avm/index.d.ts +1 -1
- package/dest/avm/message_pack.d.ts +1 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts +1 -3
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
- package/dest/avm/public_data_read.d.ts +1 -10
- package/dest/avm/public_data_read.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.d.ts +1 -10
- package/dest/avm/public_data_update_request.d.ts.map +1 -1
- package/dest/avm/public_data_write.d.ts +4 -10
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.d.ts +1 -4
- package/dest/avm/public_inner_call_request.d.ts.map +1 -1
- package/dest/avm/revert_code.d.ts +4 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/aztec-address/index.d.ts +1 -1
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/block/attestation_info.d.ts +3 -1
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +4 -1
- package/dest/block/block_hash.d.ts +1 -1
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/body.d.ts +5 -2
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +5 -2
- package/dest/block/in_block.d.ts +3 -11
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/index.d.ts +1 -1
- package/dest/block/l2_block.d.ts +10 -7
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +22 -1
- package/dest/block/l2_block_code_to_purge.d.ts +1 -1
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +3 -2
- package/dest/block/l2_block_header.d.ts +4 -11
- package/dest/block/l2_block_header.d.ts.map +1 -1
- package/dest/block/l2_block_header.js +1 -1
- package/dest/block/l2_block_info.d.ts +9 -9
- package/dest/block/l2_block_new.d.ts +17 -6
- package/dest/block/l2_block_new.d.ts.map +1 -1
- package/dest/block/l2_block_new.js +22 -0
- package/dest/block/l2_block_number.d.ts +1 -1
- package/dest/block/l2_block_source.d.ts +10 -9
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.d.ts +1 -1
- package/dest/block/l2_block_stream/interfaces.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +1 -6
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/proposal/attestations_and_signers.d.ts +1 -1
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -1
- package/dest/block/proposal/committee_attestation.d.ts +1 -1
- package/dest/block/proposal/committee_attestation.d.ts.map +1 -1
- package/dest/block/proposal/index.d.ts +1 -1
- package/dest/block/published_l2_block.d.ts +15 -28
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +12 -27
- package/dest/block/test/index.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/validate_block_result.d.ts +6 -178
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +4 -3
- package/dest/checkpoint/checkpoint.d.ts +20 -7
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +33 -8
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/published_checkpoint.d.ts +212 -0
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -0
- package/dest/checkpoint/published_checkpoint.js +71 -0
- package/dest/config/chain-config.d.ts +1 -1
- package/dest/config/index.d.ts +1 -1
- package/dest/config/node-rpc-config.d.ts +1 -1
- package/dest/contract/artifact_hash.d.ts +2 -2
- package/dest/contract/artifact_hash.d.ts.map +1 -1
- package/dest/contract/complete_address.d.ts +1 -4
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/contract_address.d.ts +1 -1
- package/dest/contract/contract_class.d.ts +1 -1
- package/dest/contract/contract_class_id.d.ts +1 -1
- package/dest/contract/contract_class_metadata.d.ts +1 -1
- package/dest/contract/contract_deployment_data.d.ts +17 -17
- package/dest/contract/contract_deployment_data.d.ts.map +1 -1
- package/dest/contract/contract_function_dao.d.ts +1 -1
- package/dest/contract/contract_instance.d.ts +1 -1
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance_update.d.ts +1 -1
- package/dest/contract/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/contract_metadata.d.ts +1 -1
- package/dest/contract/deployment_info.d.ts +1 -1
- package/dest/contract/index.d.ts +1 -1
- package/dest/contract/interfaces/contract_class.d.ts +29 -29
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_data_source.d.ts +1 -1
- package/dest/contract/interfaces/contract_instance.d.ts +11 -11
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance_update.d.ts +3 -3
- package/dest/contract/interfaces/index.d.ts +1 -1
- package/dest/contract/interfaces/node-info.d.ts +1 -1
- package/dest/contract/interfaces/protocol_contract_addresses.d.ts +1 -1
- package/dest/contract/partial_address.d.ts +1 -1
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function_membership_proof.d.ts +1 -1
- package/dest/contract/utility_function_membership_proof.d.ts +1 -1
- package/dest/database-version/index.d.ts +1 -1
- package/dest/database-version/version_manager.d.ts +6 -8
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values_with_hash.d.ts.map +1 -1
- package/dest/delayed_public_mutable/index.d.ts +1 -1
- package/dest/delayed_public_mutable/scheduled_delay_change.d.ts +1 -1
- package/dest/delayed_public_mutable/scheduled_delay_change.d.ts.map +1 -1
- package/dest/delayed_public_mutable/scheduled_value_change.d.ts +1 -1
- package/dest/delayed_public_mutable/scheduled_value_change.d.ts.map +1 -1
- package/dest/epoch-helpers/index.d.ts +12 -11
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +10 -9
- package/dest/errors/index.d.ts +1 -1
- package/dest/errors/proving_error.d.ts +2 -2
- package/dest/errors/proving_error.d.ts.map +1 -1
- package/dest/errors/simulation_error.d.ts +1 -1
- package/dest/errors/simulation_error.d.ts.map +1 -1
- package/dest/fees/index.d.ts +1 -1
- package/dest/fees/transaction_fee.d.ts +1 -1
- package/dest/file-store/factory.d.ts +1 -1
- package/dest/file-store/gcs.d.ts +1 -1
- package/dest/file-store/gcs.d.ts.map +1 -1
- package/dest/file-store/http.d.ts +1 -1
- package/dest/file-store/http.d.ts.map +1 -1
- package/dest/file-store/index.d.ts +1 -1
- package/dest/file-store/interface.d.ts +1 -1
- package/dest/file-store/local.d.ts +1 -1
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/file-store/s3.d.ts +1 -1
- package/dest/file-store/s3.d.ts.map +1 -1
- package/dest/gas/gas.d.ts +1 -1
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas_fees.d.ts +1 -1
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_settings.d.ts +1 -1
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/gas/gas_used.d.ts +1 -1
- package/dest/gas/index.d.ts +1 -1
- package/dest/hash/hash.d.ts +2 -2
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/index.d.ts +1 -1
- package/dest/hash/map_slot.d.ts +1 -1
- package/dest/interfaces/allowed_element.d.ts +5 -5
- package/dest/interfaces/api_limit.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts +1 -1
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +6 -5
- package/dest/interfaces/aztec-node-admin.d.ts +88 -88
- package/dest/interfaces/aztec-node.d.ts +8 -2
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +2 -1
- package/dest/interfaces/block-builder.d.ts +1 -1
- package/dest/interfaces/client.d.ts +1 -1
- package/dest/interfaces/configs.d.ts +21 -21
- package/dest/interfaces/epoch-prover.d.ts +4 -3
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/get_logs_response.d.ts +1 -1
- package/dest/interfaces/l2_logs_source.d.ts +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +1 -1
- package/dest/interfaces/p2p-bootstrap.d.ts +1 -1
- package/dest/interfaces/p2p.d.ts +3 -2
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +1 -1
- package/dest/interfaces/private_kernel_prover.d.ts +1 -1
- package/dest/interfaces/processed-tx-handler.d.ts +1 -1
- package/dest/interfaces/prover-agent.d.ts +1 -1
- package/dest/interfaces/prover-broker.d.ts +1 -1
- package/dest/interfaces/prover-client.d.ts +5 -5
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-coordination.d.ts +1 -1
- package/dest/interfaces/prover-node.d.ts +1 -1
- package/dest/interfaces/proving-job-source.d.ts +1 -1
- package/dest/interfaces/proving-job.d.ts +1273 -1276
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +3 -2
- package/dest/interfaces/public_state_source.d.ts +1 -1
- package/dest/interfaces/server.d.ts +1 -1
- package/dest/interfaces/server_circuit_prover.d.ts +2 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/service.d.ts +1 -1
- package/dest/interfaces/slasher.d.ts +3 -3
- package/dest/interfaces/tx_provider.d.ts +1 -1
- package/dest/interfaces/validator.d.ts +23 -23
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/world_state.d.ts +1 -1
- package/dest/kernel/claimed_length_array.d.ts +1 -1
- package/dest/kernel/claimed_length_array.d.ts.map +1 -1
- package/dest/kernel/hiding_kernel_private_inputs.d.ts +1 -1
- package/dest/kernel/hiding_kernel_private_inputs.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +1 -1
- package/dest/kernel/hints/build_transient_data_hints.d.ts +1 -1
- package/dest/kernel/hints/find_private_kernel_reset_dimensions.d.ts +1 -1
- package/dest/kernel/hints/index.d.ts +1 -1
- package/dest/kernel/hints/key_validation_hint.d.ts +1 -2
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +1 -2
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +1 -6
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
- package/dest/kernel/hints/note_hash_read_request_hints.d.ts +1 -1
- package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts +1 -1
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -13
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request.d.ts +1 -7
- package/dest/kernel/hints/read_request.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.d.ts +1 -7
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +1 -1
- package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
- package/dest/kernel/hints/scoped_value_cache.d.ts +1 -1
- package/dest/kernel/hints/scoped_value_cache.d.ts.map +1 -1
- package/dest/kernel/hints/transient_data_squashing_hint.d.ts +1 -1
- package/dest/kernel/hints/transient_data_squashing_hint.d.ts.map +1 -1
- package/dest/kernel/hints/tree_leaf_read_request.d.ts +1 -1
- package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
- package/dest/kernel/index.d.ts +1 -1
- package/dest/kernel/log_hash.d.ts +1 -1
- package/dest/kernel/log_hash.d.ts.map +1 -1
- package/dest/kernel/note_hash.d.ts +1 -1
- package/dest/kernel/note_hash.d.ts.map +1 -1
- package/dest/kernel/nullifier.d.ts +1 -1
- package/dest/kernel/nullifier.d.ts.map +1 -1
- package/dest/kernel/padded_side_effects.d.ts +1 -1
- package/dest/kernel/padded_side_effects.d.ts.map +1 -1
- package/dest/kernel/private_accumulated_data.d.ts +1 -23
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.d.ts +62 -29
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.js +105 -4
- package/dest/kernel/private_call_request.d.ts +1 -16
- package/dest/kernel/private_call_request.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +1 -74
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_context_inputs.d.ts +1 -1
- package/dest/kernel/private_context_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +1 -31
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.d.ts +1 -7
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -22
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +1 -7
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_prover_output.d.ts +8 -8
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +1 -4
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_dimensions.d.ts +1 -1
- package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/private_kernel_simulated_output.d.ts +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -10
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +1 -23
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_log_data.d.ts +1 -1
- package/dest/kernel/private_log_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +8 -8
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -1
- package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_public_accumulated_data_builder.d.ts +1 -1
- package/dest/kernel/private_to_public_accumulated_data_builder.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +1 -17
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +1 -16
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.d.ts +1 -10
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/public_call_request.d.ts +6 -27
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/utils/index.d.ts +1 -1
- package/dest/kernel/utils/interfaces.d.ts +1 -1
- package/dest/kernel/utils/optional_number.d.ts +1 -7
- package/dest/kernel/utils/optional_number.d.ts.map +1 -1
- package/dest/kernel/utils/order_and_comparison.d.ts +1 -1
- package/dest/keys/derivation.d.ts +1 -1
- package/dest/keys/index.d.ts +1 -1
- package/dest/keys/key_types.d.ts +1 -1
- package/dest/keys/public_key.d.ts +1 -1
- package/dest/keys/public_keys.d.ts +1 -5
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/utils.d.ts +1 -1
- package/dest/l1-contracts/index.d.ts +1 -1
- package/dest/l1-contracts/slash_factory.d.ts +3 -3
- package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
- package/dest/logs/contract_class_log.d.ts +4 -4
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/debug_log.d.ts +1 -1
- package/dest/logs/debug_log.d.ts.map +1 -1
- package/dest/logs/directional_app_tagging_secret.d.ts +1 -1
- package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -1
- package/dest/logs/extended_contract_class_log.d.ts +1 -3
- package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
- package/dest/logs/extended_public_log.d.ts +2 -4
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/index.d.ts +1 -1
- package/dest/logs/log_filter.d.ts +1 -1
- package/dest/logs/log_id.d.ts +1 -4
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.d.ts +1 -1
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/message_context.d.ts +1 -1
- package/dest/logs/message_context.d.ts.map +1 -1
- package/dest/logs/pending_tagged_log.d.ts +1 -1
- package/dest/logs/pending_tagged_log.d.ts.map +1 -1
- package/dest/logs/pre_tag.d.ts +1 -1
- package/dest/logs/private_log.d.ts +1 -1
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/public_log.d.ts +1 -1
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.d.ts +1 -1
- package/dest/logs/tx_scoped_l2_log.d.ts +8 -8
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/messaging/in_hash.d.ts +1 -1
- package/dest/messaging/inbox_leaf.d.ts +1 -3
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/index.d.ts +1 -1
- package/dest/messaging/l1_actor.d.ts +1 -7
- package/dest/messaging/l1_actor.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.d.ts +1 -6
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message_source.d.ts +1 -1
- package/dest/messaging/l2_actor.d.ts +1 -7
- package/dest/messaging/l2_actor.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
- package/dest/messaging/l2_to_l1_message.d.ts +21 -21
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/messaging/out_hash.d.ts +1 -1
- package/dest/noir/index.d.ts +1 -1
- package/dest/note/comparator.d.ts +1 -1
- package/dest/note/index.d.ts +1 -1
- package/dest/note/note.d.ts +1 -1
- package/dest/note/note.d.ts.map +1 -1
- package/dest/note/note_dao.d.ts +2 -28
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_status.d.ts +1 -1
- package/dest/note/notes_filter.d.ts +1 -1
- package/dest/p2p/attestation_utils.d.ts +1 -1
- package/dest/p2p/block_attestation.d.ts +4 -12
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/block_proposal.d.ts +3 -6
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +1 -1
- package/dest/p2p/client_type.d.ts +1 -1
- package/dest/p2p/consensus_payload.d.ts +9 -188
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +16 -23
- package/dest/p2p/gossipable.d.ts +1 -1
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/index.d.ts +1 -1
- package/dest/p2p/interface.d.ts +1 -1
- package/dest/p2p/message_validator.d.ts +1 -1
- package/dest/p2p/peer_error.d.ts +1 -1
- package/dest/p2p/signature_utils.d.ts +1 -1
- package/dest/p2p/topic_type.d.ts +1 -1
- package/dest/parity/index.d.ts +1 -1
- package/dest/parity/parity_base_private_inputs.d.ts +1 -3
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.d.ts +1 -4
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_root_private_inputs.d.ts +1 -2
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +1 -1
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/index.d.ts +1 -1
- package/dest/proofs/proof.d.ts +1 -4
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/proof_data.d.ts +1 -1
- package/dest/proofs/proof_data.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.d.ts +1 -1
- package/dest/proofs/recursive_proof.d.ts +1 -10
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.d.ts +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +1 -34
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.d.ts +1 -12
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.d.ts +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +1 -4
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +1 -45
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +1 -64
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.d.ts +11 -14
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.js +11 -4
- package/dest/rollup/checkpoint_header.d.ts +12 -15
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +30 -12
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +1 -4
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +1 -25
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +1 -25
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/epoch_constant_data.d.ts +1 -16
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/index.d.ts +1 -1
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +1 -1
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts +1 -1
- package/dest/rollup/public_chonk_verifier_private_inputs.d.ts.map +1 -1
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts +1 -1
- package/dest/rollup/public_chonk_verifier_public_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +1 -1
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +1 -6
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +1 -3
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/tree_snapshot_diff_hints.d.ts +1 -24
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +1 -4
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +1 -29
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/index.d.ts +1 -1
- package/dest/schemas/schemas.d.ts +7 -2
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/schemas/schemas.js +2 -0
- package/dest/slashing/empire.d.ts +1 -1
- package/dest/slashing/empire.d.ts.map +1 -1
- package/dest/slashing/empire.js +5 -4
- package/dest/slashing/helpers.d.ts +7 -6
- package/dest/slashing/helpers.d.ts.map +1 -1
- package/dest/slashing/helpers.js +8 -6
- package/dest/slashing/index.d.ts +1 -1
- package/dest/slashing/interfaces.d.ts +3 -2
- package/dest/slashing/interfaces.d.ts.map +1 -1
- package/dest/slashing/serialization.d.ts +1 -1
- package/dest/slashing/tally.d.ts +1 -1
- package/dest/slashing/types.d.ts +9 -9
- package/dest/snapshots/download.d.ts +1 -1
- package/dest/snapshots/index.d.ts +1 -1
- package/dest/snapshots/types.d.ts +18 -18
- package/dest/snapshots/upload.d.ts +1 -1
- package/dest/stats/index.d.ts +1 -1
- package/dest/stats/stats.d.ts +1 -1
- package/dest/tests/factories.d.ts +5 -8
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +13 -22
- package/dest/tests/fixtures.d.ts +1 -1
- package/dest/tests/index.d.ts +1 -1
- package/dest/tests/jest.d.ts +1 -1
- package/dest/tests/mocks.d.ts +38 -21
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +24 -21
- package/dest/trees/append_only_tree_snapshot.d.ts +1 -16
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +0 -9
- package/dest/trees/database_public_state_source.d.ts +1 -1
- package/dest/trees/database_public_state_source.d.ts.map +1 -1
- package/dest/trees/index.d.ts +1 -1
- package/dest/trees/merkle_tree_id.d.ts +5 -5
- package/dest/trees/merkle_tree_id.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.d.ts +1 -13
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +1 -10
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.d.ts +12 -27
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +8 -18
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +5 -12
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +13 -2
- package/dest/tx/call_context.d.ts +6 -18
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +1 -4
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/content_commitment.d.ts +1 -1
- package/dest/tx/content_commitment.d.ts.map +1 -1
- package/dest/tx/execution_payload.d.ts +1 -9
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -6
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +3 -2
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +35 -24
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +40 -9
- package/dest/tx/hashed_values.d.ts +1 -7
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/index.d.ts +1 -1
- package/dest/tx/indexed_tx_effect.d.ts +2 -2
- package/dest/tx/indexed_tx_effect.js +3 -1
- package/dest/tx/offchain_effect.d.ts +1 -1
- package/dest/tx/partial_state_reference.d.ts +1 -7
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.js +0 -10
- package/dest/tx/private_execution_result.d.ts +6 -28
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_tx_constant_data.d.ts +1 -16
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/processed_tx.d.ts +1 -1
- package/dest/tx/profiling.d.ts +35 -35
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/protocol_contracts.d.ts +2 -2
- package/dest/tx/protocol_contracts.d.ts.map +1 -1
- package/dest/tx/proven_tx.d.ts +18 -18
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.d.ts +1 -7
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_simulation_output.d.ts +1 -1
- package/dest/tx/public_simulation_output.d.ts.map +1 -1
- package/dest/tx/simulated_tx.d.ts +21 -21
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/state_reference.d.ts +7 -12
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +0 -9
- package/dest/tx/tree_snapshots.d.ts +7 -7
- package/dest/tx/tree_snapshots.d.ts.map +1 -1
- package/dest/tx/tx.d.ts +2 -17
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +1 -0
- package/dest/tx/tx_constant_data.d.ts +1 -1
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_context.d.ts +1 -2
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_effect.d.ts +12 -33
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +4 -2
- package/dest/tx/tx_execution_request.d.ts +1 -30
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_hash.d.ts +1 -2
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts +1 -7
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_request.d.ts +1 -6
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/validator/empty_validator.d.ts +1 -1
- package/dest/tx/validator/empty_validator.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +1 -1
- package/dest/tx/validator/tx_validator.d.ts +5 -5
- package/dest/types/index.d.ts +1 -1
- package/dest/types/shared.d.ts +1 -4
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/update-checker/index.d.ts +1 -1
- package/dest/update-checker/update-checker.d.ts +2 -3
- package/dest/update-checker/update-checker.d.ts.map +1 -1
- package/dest/validators/errors.d.ts +6 -7
- package/dest/validators/errors.d.ts.map +1 -1
- package/dest/validators/errors.js +2 -4
- package/dest/validators/index.d.ts +1 -1
- package/dest/validators/schemas.d.ts +266 -208
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +7 -7
- package/dest/validators/types.d.ts +10 -9
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/index.d.ts +1 -1
- package/dest/versioning/versioning.d.ts +1 -1
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/vks/index.d.ts +1 -1
- package/dest/vks/verification_key.d.ts +1 -22
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/vk_data.d.ts +1 -7
- package/dest/vks/vk_data.d.ts.map +1 -1
- package/dest/world-state/index.d.ts +1 -1
- package/dest/world-state/world_state_revision.d.ts +7 -7
- package/dest/world-state/world_state_revision.d.ts.map +1 -1
- package/dest/zkpassport/index.d.ts +1 -1
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/package.json +11 -10
- package/src/block/attestation_info.ts +8 -1
- package/src/block/body.ts +9 -7
- package/src/block/l2_block.ts +29 -2
- package/src/block/l2_block_code_to_purge.ts +3 -2
- package/src/block/l2_block_header.ts +3 -2
- package/src/block/l2_block_new.ts +28 -0
- package/src/block/l2_block_source.ts +9 -8
- package/src/block/published_l2_block.ts +14 -31
- package/src/block/validate_block_result.ts +9 -7
- package/src/checkpoint/checkpoint.ts +48 -7
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/published_checkpoint.ts +91 -0
- package/src/epoch-helpers/index.ts +28 -21
- package/src/interfaces/archiver.ts +6 -5
- package/src/interfaces/aztec-node.ts +12 -3
- package/src/interfaces/epoch-prover.ts +3 -2
- package/src/interfaces/p2p.ts +4 -2
- package/src/interfaces/proving-job.ts +14 -5
- package/src/interfaces/validator.ts +1 -2
- package/src/kernel/private_call_data.ts +130 -3
- package/src/p2p/block_attestation.ts +2 -1
- package/src/p2p/block_proposal.ts +3 -2
- package/src/p2p/consensus_payload.ts +16 -26
- package/src/rollup/checkpoint_constant_data.ts +24 -5
- package/src/rollup/checkpoint_header.ts +33 -23
- package/src/schemas/schemas.ts +7 -0
- package/src/slashing/empire.ts +6 -4
- package/src/slashing/helpers.ts +17 -12
- package/src/slashing/interfaces.ts +3 -1
- package/src/tests/factories.ts +27 -25
- package/src/tests/mocks.ts +32 -26
- package/src/trees/append_only_tree_snapshot.ts +0 -12
- package/src/tx/block_header.ts +16 -3
- package/src/tx/global_variable_builder.ts +2 -1
- package/src/tx/global_variables.ts +44 -10
- package/src/tx/indexed_tx_effect.ts +1 -1
- package/src/tx/partial_state_reference.ts +0 -17
- package/src/tx/state_reference.ts +0 -15
- package/src/tx/tx.ts +2 -1
- package/src/tx/tx_effect.ts +27 -23
- package/src/validators/errors.ts +3 -4
- package/src/validators/schemas.ts +7 -7
- package/src/validators/types.ts +9 -8
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
FUNCTION_TREE_HEIGHT,
|
|
3
|
+
MAX_CONTRACT_CLASS_LOGS_PER_CALL,
|
|
4
|
+
MAX_ENQUEUED_CALLS_PER_CALL,
|
|
5
|
+
MAX_L2_TO_L1_MSGS_PER_CALL,
|
|
6
|
+
MAX_NOTE_HASHES_PER_CALL,
|
|
7
|
+
MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,
|
|
8
|
+
MAX_NULLIFIERS_PER_CALL,
|
|
9
|
+
MAX_NULLIFIER_READ_REQUESTS_PER_CALL,
|
|
10
|
+
MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL,
|
|
11
|
+
MAX_PRIVATE_LOGS_PER_CALL,
|
|
12
|
+
PUBLIC_DATA_TREE_HEIGHT,
|
|
13
|
+
TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL,
|
|
14
|
+
UPDATES_VALUE_SIZE,
|
|
15
|
+
} from '@aztec/constants';
|
|
2
16
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
-
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
17
|
+
import { BufferReader, type Tuple, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
4
18
|
import { MembershipWitness } from '@aztec/foundation/trees';
|
|
5
19
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
6
20
|
|
|
7
21
|
import { DelayedPublicMutableValues } from '../delayed_public_mutable/delayed_public_mutable_values.js';
|
|
8
22
|
import { PublicKeys } from '../keys/public_keys.js';
|
|
9
23
|
import { PublicDataTreeLeafPreimage } from '../trees/index.js';
|
|
24
|
+
import type { UInt32 } from '../types/shared.js';
|
|
10
25
|
import { VerificationKeyAsFields } from '../vks/verification_key.js';
|
|
11
26
|
import { PrivateCircuitPublicInputs } from './private_circuit_public_inputs.js';
|
|
12
27
|
|
|
@@ -29,6 +44,11 @@ export class PrivateCallData {
|
|
|
29
44
|
* Hints for the validation of the vk
|
|
30
45
|
*/
|
|
31
46
|
public verificationKeyHints: PrivateVerificationKeyHints,
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Hints for validating the uniqueness of the side effects.
|
|
50
|
+
*/
|
|
51
|
+
public sideEffectUniquenessHints: SideEffectUniquenessHints,
|
|
32
52
|
) {}
|
|
33
53
|
|
|
34
54
|
/**
|
|
@@ -37,7 +57,7 @@ export class PrivateCallData {
|
|
|
37
57
|
* @returns The array.
|
|
38
58
|
*/
|
|
39
59
|
static getFields(fields: FieldsOf<PrivateCallData>) {
|
|
40
|
-
return [fields.publicInputs, fields.vk, fields.verificationKeyHints] as const;
|
|
60
|
+
return [fields.publicInputs, fields.vk, fields.verificationKeyHints, fields.sideEffectUniquenessHints] as const;
|
|
41
61
|
}
|
|
42
62
|
|
|
43
63
|
static from(fields: FieldsOf<PrivateCallData>): PrivateCallData {
|
|
@@ -63,6 +83,7 @@ export class PrivateCallData {
|
|
|
63
83
|
reader.readObject(PrivateCircuitPublicInputs),
|
|
64
84
|
reader.readObject(VerificationKeyAsFields),
|
|
65
85
|
reader.readObject(PrivateVerificationKeyHints),
|
|
86
|
+
reader.readObject(SideEffectUniquenessHints),
|
|
66
87
|
);
|
|
67
88
|
}
|
|
68
89
|
}
|
|
@@ -180,3 +201,109 @@ export class UpdatedClassIdHints {
|
|
|
180
201
|
);
|
|
181
202
|
}
|
|
182
203
|
}
|
|
204
|
+
|
|
205
|
+
export class SideEffectUniquenessHints {
|
|
206
|
+
constructor(
|
|
207
|
+
public sideEffectRanges: Tuple<SideEffectCounterRange, typeof TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL>,
|
|
208
|
+
public noteHashReadRequestIndices: Tuple<UInt32, typeof MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,
|
|
209
|
+
public nullifierReadRequestIndices: Tuple<UInt32, typeof MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,
|
|
210
|
+
public noteHashesIndices: Tuple<UInt32, typeof MAX_NOTE_HASHES_PER_CALL>,
|
|
211
|
+
public nullifiersIndices: Tuple<UInt32, typeof MAX_NULLIFIERS_PER_CALL>,
|
|
212
|
+
public privateCallRequestsIndices: Tuple<UInt32, typeof MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,
|
|
213
|
+
public publicCallRequestsIndices: Tuple<UInt32, typeof MAX_ENQUEUED_CALLS_PER_CALL>,
|
|
214
|
+
public l2ToL1MsgsIndices: Tuple<UInt32, typeof MAX_L2_TO_L1_MSGS_PER_CALL>,
|
|
215
|
+
public privateLogsIndices: Tuple<UInt32, typeof MAX_PRIVATE_LOGS_PER_CALL>,
|
|
216
|
+
public contractClassLogsHashesIndices: Tuple<UInt32, typeof MAX_CONTRACT_CLASS_LOGS_PER_CALL>,
|
|
217
|
+
) {}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Serialize into a field array. Low-level utility.
|
|
221
|
+
* @param fields - Object with fields.
|
|
222
|
+
* @returns The array.
|
|
223
|
+
*/
|
|
224
|
+
static getFields(fields: FieldsOf<SideEffectUniquenessHints>) {
|
|
225
|
+
return [
|
|
226
|
+
fields.sideEffectRanges,
|
|
227
|
+
fields.noteHashReadRequestIndices,
|
|
228
|
+
fields.nullifierReadRequestIndices,
|
|
229
|
+
fields.noteHashesIndices,
|
|
230
|
+
fields.nullifiersIndices,
|
|
231
|
+
fields.privateCallRequestsIndices,
|
|
232
|
+
fields.publicCallRequestsIndices,
|
|
233
|
+
fields.l2ToL1MsgsIndices,
|
|
234
|
+
fields.privateLogsIndices,
|
|
235
|
+
fields.contractClassLogsHashesIndices,
|
|
236
|
+
] as const;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
static from(fields: FieldsOf<SideEffectUniquenessHints>): SideEffectUniquenessHints {
|
|
240
|
+
return new SideEffectUniquenessHints(...SideEffectUniquenessHints.getFields(fields));
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Serialize this as a buffer.
|
|
245
|
+
* @returns The buffer.
|
|
246
|
+
*/
|
|
247
|
+
toBuffer(): Buffer {
|
|
248
|
+
return serializeToBuffer(...SideEffectUniquenessHints.getFields(this));
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Deserializes from a buffer or reader.
|
|
253
|
+
* @param buffer - Buffer or reader to read from.
|
|
254
|
+
* @returns The deserialized instance.
|
|
255
|
+
*/
|
|
256
|
+
static fromBuffer(buffer: Buffer | BufferReader): SideEffectUniquenessHints {
|
|
257
|
+
const reader = BufferReader.asReader(buffer);
|
|
258
|
+
return new SideEffectUniquenessHints(
|
|
259
|
+
reader.readArray(TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL, SideEffectCounterRange),
|
|
260
|
+
reader.readNumbers(MAX_NOTE_HASH_READ_REQUESTS_PER_CALL),
|
|
261
|
+
reader.readNumbers(MAX_NULLIFIER_READ_REQUESTS_PER_CALL),
|
|
262
|
+
reader.readNumbers(MAX_NOTE_HASHES_PER_CALL),
|
|
263
|
+
reader.readNumbers(MAX_NULLIFIERS_PER_CALL),
|
|
264
|
+
reader.readNumbers(MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL),
|
|
265
|
+
reader.readNumbers(MAX_ENQUEUED_CALLS_PER_CALL),
|
|
266
|
+
reader.readNumbers(MAX_L2_TO_L1_MSGS_PER_CALL),
|
|
267
|
+
reader.readNumbers(MAX_PRIVATE_LOGS_PER_CALL),
|
|
268
|
+
reader.readNumbers(MAX_CONTRACT_CLASS_LOGS_PER_CALL),
|
|
269
|
+
);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export class SideEffectCounterRange {
|
|
274
|
+
constructor(
|
|
275
|
+
public start: UInt32,
|
|
276
|
+
public end: UInt32,
|
|
277
|
+
public sideEffectGlobalIndex: UInt32,
|
|
278
|
+
) {}
|
|
279
|
+
|
|
280
|
+
static getFields(fields: FieldsOf<SideEffectCounterRange>) {
|
|
281
|
+
return [fields.start, fields.end, fields.sideEffectGlobalIndex] as const;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
static from(fields: FieldsOf<SideEffectCounterRange>): SideEffectCounterRange {
|
|
285
|
+
return new SideEffectCounterRange(...SideEffectCounterRange.getFields(fields));
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
static empty(): SideEffectCounterRange {
|
|
289
|
+
return new SideEffectCounterRange(0, 0, 0);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Serialize this as a buffer.
|
|
294
|
+
* @returns The buffer.
|
|
295
|
+
*/
|
|
296
|
+
toBuffer(): Buffer {
|
|
297
|
+
return serializeToBuffer(...SideEffectCounterRange.getFields(this));
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Deserializes from a buffer or reader.
|
|
302
|
+
* @param buffer - Buffer or reader to read from.
|
|
303
|
+
* @returns The deserialized instance.
|
|
304
|
+
*/
|
|
305
|
+
static fromBuffer(buffer: Buffer | BufferReader): SideEffectCounterRange {
|
|
306
|
+
const reader = BufferReader.asReader(buffer);
|
|
307
|
+
return new SideEffectCounterRange(reader.readNumber(), reader.readNumber(), reader.readNumber());
|
|
308
|
+
}
|
|
309
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
3
|
import { keccak256, tryRecoverAddress } from '@aztec/foundation/crypto';
|
|
3
4
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -62,7 +63,7 @@ export class BlockAttestation extends Gossipable {
|
|
|
62
63
|
return this.payload.archive;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
get slotNumber():
|
|
66
|
+
get slotNumber(): SlotNumber {
|
|
66
67
|
return this.payload.header.slotNumber;
|
|
67
68
|
}
|
|
68
69
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
3
|
import { keccak256, tryRecoverAddress } from '@aztec/foundation/crypto';
|
|
3
4
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -65,13 +66,13 @@ export class BlockProposal extends Gossipable {
|
|
|
65
66
|
return this.payload.archive;
|
|
66
67
|
}
|
|
67
68
|
|
|
68
|
-
get slotNumber():
|
|
69
|
+
get slotNumber(): SlotNumber {
|
|
69
70
|
return this.payload.header.slotNumber;
|
|
70
71
|
}
|
|
71
72
|
|
|
72
73
|
toBlockInfo(): Omit<L2BlockInfo, 'blockNumber'> {
|
|
73
74
|
return {
|
|
74
|
-
slotNumber: this.slotNumber
|
|
75
|
+
slotNumber: this.slotNumber,
|
|
75
76
|
lastArchive: this.payload.header.lastArchiveRoot,
|
|
76
77
|
timestamp: this.payload.header.timestamp,
|
|
77
78
|
archive: this.archive,
|
|
@@ -8,8 +8,8 @@ import { encodeAbiParameters, parseAbiParameters } from 'viem';
|
|
|
8
8
|
import { z } from 'zod';
|
|
9
9
|
|
|
10
10
|
import type { L2Block } from '../block/l2_block.js';
|
|
11
|
+
import type { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
11
12
|
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
12
|
-
import { StateReference } from '../tx/state_reference.js';
|
|
13
13
|
import type { Signable, SignatureDomainSeparator } from './signature_utils.js';
|
|
14
14
|
|
|
15
15
|
export class ConsensusPayload implements Signable {
|
|
@@ -20,8 +20,6 @@ export class ConsensusPayload implements Signable {
|
|
|
20
20
|
public readonly header: CheckpointHeader,
|
|
21
21
|
/** The archive root after the block is added */
|
|
22
22
|
public readonly archive: Fr,
|
|
23
|
-
/** The state reference after the block is added */
|
|
24
|
-
public readonly stateReference: StateReference,
|
|
25
23
|
) {}
|
|
26
24
|
|
|
27
25
|
static get schema() {
|
|
@@ -29,13 +27,12 @@ export class ConsensusPayload implements Signable {
|
|
|
29
27
|
.object({
|
|
30
28
|
header: CheckpointHeader.schema,
|
|
31
29
|
archive: schemas.Fr,
|
|
32
|
-
stateReference: StateReference.schema,
|
|
33
30
|
})
|
|
34
|
-
.transform(obj => new ConsensusPayload(obj.header, obj.archive
|
|
31
|
+
.transform(obj => new ConsensusPayload(obj.header, obj.archive));
|
|
35
32
|
}
|
|
36
33
|
|
|
37
34
|
static getFields(fields: FieldsOf<ConsensusPayload>) {
|
|
38
|
-
return [fields.header, fields.archive
|
|
35
|
+
return [fields.header, fields.archive] as const;
|
|
39
36
|
}
|
|
40
37
|
|
|
41
38
|
getPayloadToSign(domainSeparator: SignatureDomainSeparator): Buffer {
|
|
@@ -43,59 +40,53 @@ export class ConsensusPayload implements Signable {
|
|
|
43
40
|
'uint8, ' + //domainSeperator
|
|
44
41
|
'(' +
|
|
45
42
|
'bytes32, ' + // archive
|
|
46
|
-
'((bytes32,uint32),((bytes32,uint32),(bytes32,uint32),(bytes32,uint32))), ' + // stateReference
|
|
47
43
|
'(int256), ' + // oracleInput
|
|
48
44
|
'bytes32' + // headerHash
|
|
49
45
|
')',
|
|
50
46
|
);
|
|
51
47
|
const archiveRoot = this.archive.toString();
|
|
52
|
-
const stateReference = this.stateReference.toAbi();
|
|
53
48
|
|
|
54
49
|
const headerHash = this.header.hash().toString();
|
|
55
50
|
const encodedData = encodeAbiParameters(abi, [
|
|
56
51
|
domainSeparator,
|
|
57
|
-
[archiveRoot,
|
|
52
|
+
[archiveRoot, [0n] /* @todo See #9963 */, headerHash],
|
|
58
53
|
] as const);
|
|
59
54
|
|
|
60
55
|
return hexToBuffer(encodedData);
|
|
61
56
|
}
|
|
62
57
|
|
|
63
58
|
toBuffer(): Buffer {
|
|
64
|
-
return serializeToBuffer([this.header, this.archive
|
|
59
|
+
return serializeToBuffer([this.header, this.archive]);
|
|
65
60
|
}
|
|
66
61
|
|
|
67
62
|
public equals(other: ConsensusPayload): boolean {
|
|
68
|
-
return (
|
|
69
|
-
this.header.equals(other.header) &&
|
|
70
|
-
this.archive.equals(other.archive) &&
|
|
71
|
-
this.stateReference.equals(other.stateReference)
|
|
72
|
-
);
|
|
63
|
+
return this.header.equals(other.header) && this.archive.equals(other.archive);
|
|
73
64
|
}
|
|
74
65
|
|
|
75
66
|
static fromBuffer(buf: Buffer | BufferReader): ConsensusPayload {
|
|
76
67
|
const reader = BufferReader.asReader(buf);
|
|
77
|
-
const payload = new ConsensusPayload(
|
|
78
|
-
reader.readObject(CheckpointHeader),
|
|
79
|
-
reader.readObject(Fr),
|
|
80
|
-
reader.readObject(StateReference),
|
|
81
|
-
);
|
|
68
|
+
const payload = new ConsensusPayload(reader.readObject(CheckpointHeader), reader.readObject(Fr));
|
|
82
69
|
return payload;
|
|
83
70
|
}
|
|
84
71
|
|
|
85
72
|
static fromFields(fields: FieldsOf<ConsensusPayload>): ConsensusPayload {
|
|
86
|
-
return new ConsensusPayload(fields.header, fields.archive
|
|
73
|
+
return new ConsensusPayload(fields.header, fields.archive);
|
|
87
74
|
}
|
|
88
75
|
|
|
89
76
|
static fromBlock(block: L2Block): ConsensusPayload {
|
|
90
|
-
return new ConsensusPayload(block.header.toCheckpointHeader(), block.archive.root
|
|
77
|
+
return new ConsensusPayload(block.header.toCheckpointHeader(), block.archive.root);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static fromCheckpoint(checkpoint: Checkpoint): ConsensusPayload {
|
|
81
|
+
return new ConsensusPayload(checkpoint.header, checkpoint.archive.root);
|
|
91
82
|
}
|
|
92
83
|
|
|
93
84
|
static empty(): ConsensusPayload {
|
|
94
|
-
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO
|
|
85
|
+
return new ConsensusPayload(CheckpointHeader.empty(), Fr.ZERO);
|
|
95
86
|
}
|
|
96
87
|
|
|
97
88
|
static random(): ConsensusPayload {
|
|
98
|
-
return new ConsensusPayload(CheckpointHeader.random(), Fr.random()
|
|
89
|
+
return new ConsensusPayload(CheckpointHeader.random(), Fr.random());
|
|
99
90
|
}
|
|
100
91
|
|
|
101
92
|
/**
|
|
@@ -115,11 +106,10 @@ export class ConsensusPayload implements Signable {
|
|
|
115
106
|
return {
|
|
116
107
|
header: this.header.toInspect(),
|
|
117
108
|
archive: this.archive.toString(),
|
|
118
|
-
stateReference: this.stateReference.toInspect(),
|
|
119
109
|
};
|
|
120
110
|
}
|
|
121
111
|
|
|
122
112
|
toString() {
|
|
123
|
-
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}
|
|
113
|
+
return `header: ${this.header.toString()}, archive: ${this.archive.toString()}}`;
|
|
124
114
|
}
|
|
125
115
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
4
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
@@ -24,7 +25,7 @@ export class CheckpointConstantData {
|
|
|
24
25
|
/** Identifier of the prover. */
|
|
25
26
|
public proverId: Fr,
|
|
26
27
|
/** Slot number of the checkpoint. */
|
|
27
|
-
public slotNumber:
|
|
28
|
+
public slotNumber: SlotNumber,
|
|
28
29
|
/** Coinbase address of the rollup. */
|
|
29
30
|
public coinbase: EthAddress,
|
|
30
31
|
/** Address to receive fees. */
|
|
@@ -58,7 +59,7 @@ export class CheckpointConstantData {
|
|
|
58
59
|
Fr.ZERO,
|
|
59
60
|
Fr.ZERO,
|
|
60
61
|
Fr.ZERO,
|
|
61
|
-
|
|
62
|
+
SlotNumber.ZERO,
|
|
62
63
|
EthAddress.ZERO,
|
|
63
64
|
AztecAddress.ZERO,
|
|
64
65
|
GasFees.empty(),
|
|
@@ -66,7 +67,17 @@ export class CheckpointConstantData {
|
|
|
66
67
|
}
|
|
67
68
|
|
|
68
69
|
toBuffer() {
|
|
69
|
-
return serializeToBuffer(
|
|
70
|
+
return serializeToBuffer(
|
|
71
|
+
this.chainId,
|
|
72
|
+
this.version,
|
|
73
|
+
this.vkTreeRoot,
|
|
74
|
+
this.protocolContractsHash,
|
|
75
|
+
this.proverId,
|
|
76
|
+
new Fr(this.slotNumber),
|
|
77
|
+
this.coinbase,
|
|
78
|
+
this.feeRecipient,
|
|
79
|
+
this.gasFees,
|
|
80
|
+
);
|
|
70
81
|
}
|
|
71
82
|
|
|
72
83
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
@@ -77,13 +88,21 @@ export class CheckpointConstantData {
|
|
|
77
88
|
Fr.fromBuffer(reader),
|
|
78
89
|
Fr.fromBuffer(reader),
|
|
79
90
|
Fr.fromBuffer(reader),
|
|
80
|
-
Fr.fromBuffer(reader),
|
|
91
|
+
SlotNumber(Fr.fromBuffer(reader).toNumber()),
|
|
81
92
|
reader.readObject(EthAddress),
|
|
82
93
|
reader.readObject(AztecAddress),
|
|
83
94
|
reader.readObject(GasFees),
|
|
84
95
|
);
|
|
85
96
|
}
|
|
86
97
|
|
|
98
|
+
/**
|
|
99
|
+
* Returns the slot number as a SlotNumber branded type.
|
|
100
|
+
* @deprecated Use slotNumber directly instead.
|
|
101
|
+
*/
|
|
102
|
+
getSlotNumber(): SlotNumber {
|
|
103
|
+
return this.slotNumber;
|
|
104
|
+
}
|
|
105
|
+
|
|
87
106
|
toInspect() {
|
|
88
107
|
return {
|
|
89
108
|
chainId: this.chainId.toNumber(),
|
|
@@ -91,7 +110,7 @@ export class CheckpointConstantData {
|
|
|
91
110
|
vkTreeRoot: this.vkTreeRoot.toString(),
|
|
92
111
|
protocolContractsHash: this.protocolContractsHash.toString(),
|
|
93
112
|
proverId: this.proverId.toString(),
|
|
94
|
-
slotNumber: this.slotNumber
|
|
113
|
+
slotNumber: this.slotNumber,
|
|
95
114
|
coinbase: this.coinbase.toString(),
|
|
96
115
|
feeRecipient: this.feeRecipient.toString(),
|
|
97
116
|
gasFees: this.gasFees.toInspect(),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ViemHeader } from '@aztec/ethereum';
|
|
2
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { sha256ToField } from '@aztec/foundation/crypto';
|
|
3
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -25,7 +26,7 @@ export class CheckpointHeader {
|
|
|
25
26
|
/** Content commitment of the L2 block. */
|
|
26
27
|
public contentCommitment: ContentCommitment,
|
|
27
28
|
/** Slot number of the L2 block */
|
|
28
|
-
public slotNumber:
|
|
29
|
+
public slotNumber: SlotNumber,
|
|
29
30
|
/** Timestamp of the L2 block. */
|
|
30
31
|
public timestamp: UInt64,
|
|
31
32
|
/** Recipient of block reward. */
|
|
@@ -44,7 +45,7 @@ export class CheckpointHeader {
|
|
|
44
45
|
lastArchiveRoot: schemas.Fr,
|
|
45
46
|
blockHeadersHash: schemas.Fr,
|
|
46
47
|
contentCommitment: ContentCommitment.schema,
|
|
47
|
-
slotNumber: schemas.
|
|
48
|
+
slotNumber: schemas.SlotNumber,
|
|
48
49
|
timestamp: schemas.BigInt,
|
|
49
50
|
coinbase: schemas.EthAddress,
|
|
50
51
|
feeRecipient: schemas.AztecAddress,
|
|
@@ -79,7 +80,7 @@ export class CheckpointHeader {
|
|
|
79
80
|
reader.readObject(Fr),
|
|
80
81
|
reader.readObject(Fr),
|
|
81
82
|
reader.readObject(ContentCommitment),
|
|
82
|
-
Fr.fromBuffer(reader),
|
|
83
|
+
SlotNumber(Fr.fromBuffer(reader).toNumber()),
|
|
83
84
|
reader.readUInt64(),
|
|
84
85
|
reader.readObject(EthAddress),
|
|
85
86
|
reader.readObject(AztecAddress),
|
|
@@ -93,7 +94,7 @@ export class CheckpointHeader {
|
|
|
93
94
|
this.lastArchiveRoot.equals(other.lastArchiveRoot) &&
|
|
94
95
|
this.blockHeadersHash.equals(other.blockHeadersHash) &&
|
|
95
96
|
this.contentCommitment.equals(other.contentCommitment) &&
|
|
96
|
-
this.slotNumber
|
|
97
|
+
this.slotNumber === other.slotNumber &&
|
|
97
98
|
this.timestamp === other.timestamp &&
|
|
98
99
|
this.coinbase.equals(other.coinbase) &&
|
|
99
100
|
this.feeRecipient.equals(other.feeRecipient) &&
|
|
@@ -108,7 +109,7 @@ export class CheckpointHeader {
|
|
|
108
109
|
this.lastArchiveRoot,
|
|
109
110
|
this.blockHeadersHash,
|
|
110
111
|
this.contentCommitment,
|
|
111
|
-
this.slotNumber,
|
|
112
|
+
new Fr(this.slotNumber),
|
|
112
113
|
bigintToUInt64BE(this.timestamp),
|
|
113
114
|
this.coinbase,
|
|
114
115
|
this.feeRecipient,
|
|
@@ -126,7 +127,7 @@ export class CheckpointHeader {
|
|
|
126
127
|
lastArchiveRoot: Fr.ZERO,
|
|
127
128
|
blockHeadersHash: Fr.ZERO,
|
|
128
129
|
contentCommitment: ContentCommitment.empty(),
|
|
129
|
-
slotNumber:
|
|
130
|
+
slotNumber: SlotNumber.ZERO,
|
|
130
131
|
timestamp: 0n,
|
|
131
132
|
coinbase: EthAddress.ZERO,
|
|
132
133
|
feeRecipient: AztecAddress.ZERO,
|
|
@@ -136,18 +137,19 @@ export class CheckpointHeader {
|
|
|
136
137
|
});
|
|
137
138
|
}
|
|
138
139
|
|
|
139
|
-
static random(): CheckpointHeader {
|
|
140
|
-
return
|
|
141
|
-
Fr.random(),
|
|
142
|
-
Fr.random(),
|
|
143
|
-
ContentCommitment.random(),
|
|
144
|
-
|
|
145
|
-
BigInt(Math.floor(Date.now() / 1000)),
|
|
146
|
-
EthAddress.random(),
|
|
147
|
-
new AztecAddress(Fr.random()),
|
|
148
|
-
GasFees.random(),
|
|
149
|
-
new Fr(BigInt(Math.floor(Math.random() * 1000000))),
|
|
150
|
-
|
|
140
|
+
static random(overrides: Partial<FieldsOf<CheckpointHeader>> = {}): CheckpointHeader {
|
|
141
|
+
return CheckpointHeader.from({
|
|
142
|
+
lastArchiveRoot: Fr.random(),
|
|
143
|
+
blockHeadersHash: Fr.random(),
|
|
144
|
+
contentCommitment: ContentCommitment.random(),
|
|
145
|
+
slotNumber: SlotNumber(Math.floor(Math.random() * 1000) + 1),
|
|
146
|
+
timestamp: BigInt(Math.floor(Date.now() / 1000)),
|
|
147
|
+
coinbase: EthAddress.random(),
|
|
148
|
+
feeRecipient: new AztecAddress(Fr.random()),
|
|
149
|
+
gasFees: GasFees.random(),
|
|
150
|
+
totalManaUsed: new Fr(BigInt(Math.floor(Math.random() * 1000000))),
|
|
151
|
+
...overrides,
|
|
152
|
+
});
|
|
151
153
|
}
|
|
152
154
|
|
|
153
155
|
isEmpty(): boolean {
|
|
@@ -155,7 +157,7 @@ export class CheckpointHeader {
|
|
|
155
157
|
this.lastArchiveRoot.isZero() &&
|
|
156
158
|
this.blockHeadersHash.isZero() &&
|
|
157
159
|
this.contentCommitment.isEmpty() &&
|
|
158
|
-
this.slotNumber
|
|
160
|
+
this.slotNumber === 0 &&
|
|
159
161
|
this.timestamp === 0n &&
|
|
160
162
|
this.coinbase.isZero() &&
|
|
161
163
|
this.feeRecipient.isZero() &&
|
|
@@ -181,7 +183,7 @@ export class CheckpointHeader {
|
|
|
181
183
|
Fr.fromString(header.lastArchiveRoot),
|
|
182
184
|
Fr.fromString(header.blockHeadersHash),
|
|
183
185
|
ContentCommitment.fromViem(header.contentCommitment),
|
|
184
|
-
|
|
186
|
+
SlotNumber.fromBigInt(header.slotNumber),
|
|
185
187
|
header.timestamp,
|
|
186
188
|
new EthAddress(hexToBuffer(header.coinbase)),
|
|
187
189
|
new AztecAddress(hexToBuffer(header.feeRecipient)),
|
|
@@ -190,12 +192,20 @@ export class CheckpointHeader {
|
|
|
190
192
|
);
|
|
191
193
|
}
|
|
192
194
|
|
|
195
|
+
/**
|
|
196
|
+
* Returns the slot number as a SlotNumber branded type.
|
|
197
|
+
* @deprecated Use slotNumber directly instead.
|
|
198
|
+
*/
|
|
199
|
+
getSlotNumber(): SlotNumber {
|
|
200
|
+
return this.slotNumber;
|
|
201
|
+
}
|
|
202
|
+
|
|
193
203
|
toViem(): ViemHeader {
|
|
194
204
|
return {
|
|
195
205
|
lastArchiveRoot: this.lastArchiveRoot.toString(),
|
|
196
206
|
blockHeadersHash: this.blockHeadersHash.toString(),
|
|
197
207
|
contentCommitment: this.contentCommitment.toViem(),
|
|
198
|
-
slotNumber: this.slotNumber
|
|
208
|
+
slotNumber: BigInt(this.slotNumber),
|
|
199
209
|
timestamp: this.timestamp,
|
|
200
210
|
coinbase: this.coinbase.toString(),
|
|
201
211
|
feeRecipient: `0x${this.feeRecipient.toBuffer().toString('hex').padStart(64, '0')}`,
|
|
@@ -212,7 +222,7 @@ export class CheckpointHeader {
|
|
|
212
222
|
lastArchive: this.lastArchiveRoot.toString(),
|
|
213
223
|
blockHeadersHash: this.blockHeadersHash.toString(),
|
|
214
224
|
contentCommitment: this.contentCommitment.toInspect(),
|
|
215
|
-
slotNumber: this.slotNumber
|
|
225
|
+
slotNumber: this.slotNumber,
|
|
216
226
|
timestamp: this.timestamp,
|
|
217
227
|
coinbase: this.coinbase.toString(),
|
|
218
228
|
feeRecipient: this.feeRecipient.toString(),
|
|
@@ -227,7 +237,7 @@ export class CheckpointHeader {
|
|
|
227
237
|
lastArchiveRoot: ${this.lastArchiveRoot.toString()},
|
|
228
238
|
blockHeadersHash: ${this.blockHeadersHash.toString()},
|
|
229
239
|
contentCommitment: ${inspect(this.contentCommitment)},
|
|
230
|
-
slotNumber: ${this.slotNumber
|
|
240
|
+
slotNumber: ${this.slotNumber},
|
|
231
241
|
timestamp: ${this.timestamp},
|
|
232
242
|
coinbase: ${this.coinbase.toString()},
|
|
233
243
|
feeRecipient: ${this.feeRecipient.toString()},
|
package/src/schemas/schemas.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import type { Buffer32 } from '@aztec/foundation/buffer';
|
|
2
3
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
4
|
import type { Fq, Fr, Point } from '@aztec/foundation/fields';
|
|
@@ -65,6 +66,12 @@ export const schemas = {
|
|
|
65
66
|
/** Accepts a hex string. */
|
|
66
67
|
EventSelector: EventSelector.schema,
|
|
67
68
|
|
|
69
|
+
/** Accepts a number, bigint, or string and coerces to SlotNumber. */
|
|
70
|
+
SlotNumber: foundationSchemas.SlotNumber as ZodFor<SlotNumber>,
|
|
71
|
+
|
|
72
|
+
/** Accepts a number, bigint, or string and coerces to EpochNumber. */
|
|
73
|
+
EpochNumber: foundationSchemas.EpochNumber as ZodFor<EpochNumber>,
|
|
74
|
+
|
|
68
75
|
GasUsed: z.object({
|
|
69
76
|
totalGas: Gas.schema,
|
|
70
77
|
teardownGas: Gas.schema,
|
package/src/slashing/empire.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
|
|
1
3
|
import { getRoundForSlot, getRoundsForEpoch } from './helpers.js';
|
|
2
4
|
import type { Offense, OffenseIdentifier, SlashPayload, SlashPayloadRound, ValidatorSlash } from './types.js';
|
|
3
5
|
import { OffenseType } from './types.js';
|
|
@@ -66,7 +68,7 @@ export function getFirstEligibleRoundForOffense(
|
|
|
66
68
|
// Inactivity is detected at the end of the epoch, so we flag it as detected in the first fresh round for the next epoch
|
|
67
69
|
case OffenseType.INACTIVITY: {
|
|
68
70
|
const epoch = offense.epochOrSlot;
|
|
69
|
-
const detectedEpoch = epoch + 1n;
|
|
71
|
+
const detectedEpoch = EpochNumber.fromBigInt(epoch + 1n);
|
|
70
72
|
return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
|
|
71
73
|
}
|
|
72
74
|
// These offenses are detected once an epoch is pruned, which happens after the proof submission window
|
|
@@ -74,7 +76,7 @@ export function getFirstEligibleRoundForOffense(
|
|
|
74
76
|
case OffenseType.DATA_WITHHOLDING: {
|
|
75
77
|
// TODO(palla/slash): Check for off-by-ones especially here
|
|
76
78
|
const epoch = offense.epochOrSlot;
|
|
77
|
-
const detectedEpoch = epoch + BigInt(constants.proofSubmissionEpochs);
|
|
79
|
+
const detectedEpoch = EpochNumber.fromBigInt(epoch + BigInt(constants.proofSubmissionEpochs));
|
|
78
80
|
return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
|
|
79
81
|
}
|
|
80
82
|
// These offenses are detected immediately in the slot they occur, so we assume they are detected in the first round for the following slot
|
|
@@ -83,13 +85,13 @@ export function getFirstEligibleRoundForOffense(
|
|
|
83
85
|
case OffenseType.ATTESTED_DESCENDANT_OF_INVALID:
|
|
84
86
|
case OffenseType.BROADCASTED_INVALID_BLOCK_PROPOSAL: {
|
|
85
87
|
const slot = offense.epochOrSlot;
|
|
86
|
-
const detectedSlot = slot + 1n;
|
|
88
|
+
const detectedSlot = SlotNumber.fromBigInt(slot + 1n);
|
|
87
89
|
return getRoundForSlot(detectedSlot, constants).round + 1n;
|
|
88
90
|
}
|
|
89
91
|
// Assume these are epoch-based offenses, even though we should never have to process these
|
|
90
92
|
case OffenseType.UNKNOWN: {
|
|
91
93
|
const epoch = offense.epochOrSlot;
|
|
92
|
-
const detectedEpoch = epoch + 1n;
|
|
94
|
+
const detectedEpoch = EpochNumber.fromBigInt(epoch + 1n);
|
|
93
95
|
return getRoundsForEpoch(detectedEpoch, constants)[0] + 1n;
|
|
94
96
|
}
|
|
95
97
|
default: {
|
package/src/slashing/helpers.ts
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
|
|
1
3
|
import { type L1RollupConstants, getEpochAtSlot, getSlotRangeForEpoch } from '../epoch-helpers/index.js';
|
|
2
4
|
import type { SlasherConfig } from '../interfaces/slasher.js';
|
|
3
5
|
import { type Offense, OffenseType } from './types.js';
|
|
4
6
|
|
|
5
7
|
/** Returns the voting round number and voting slot within the round for a given L2 slot. */
|
|
6
8
|
export function getRoundForSlot(
|
|
7
|
-
slot:
|
|
9
|
+
slot: SlotNumber,
|
|
8
10
|
constants: { slashingRoundSize: number },
|
|
9
|
-
): { round: bigint; votingSlot:
|
|
11
|
+
): { round: bigint; votingSlot: SlotNumber } {
|
|
10
12
|
const roundSize = BigInt(constants.slashingRoundSize);
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
+
const slotBigInt = BigInt(slot);
|
|
14
|
+
const round = slotBigInt / roundSize;
|
|
15
|
+
const votingSlot = SlotNumber.fromBigInt(slotBigInt % roundSize);
|
|
13
16
|
return { round, votingSlot };
|
|
14
17
|
}
|
|
15
18
|
|
|
16
19
|
/** Returns the voting round(s) lower and upper bounds (inclusive) covered by the given epoch */
|
|
17
20
|
export function getRoundsForEpoch(
|
|
18
|
-
epoch:
|
|
21
|
+
epoch: EpochNumber,
|
|
19
22
|
constants: { slashingRoundSize: number; epochDuration: number },
|
|
20
23
|
): [bigint, bigint] {
|
|
21
24
|
const [start, end] = getSlotRangeForEpoch(epoch, constants);
|
|
@@ -28,13 +31,13 @@ export function getRoundsForEpoch(
|
|
|
28
31
|
export function getEpochsForRound(
|
|
29
32
|
round: bigint,
|
|
30
33
|
constants: { slashingRoundSize: number; epochDuration: number },
|
|
31
|
-
):
|
|
32
|
-
const epochs:
|
|
33
|
-
const firstSlot = round * BigInt(constants.slashingRoundSize);
|
|
34
|
-
const lastSlot = firstSlot +
|
|
34
|
+
): EpochNumber[] {
|
|
35
|
+
const epochs: EpochNumber[] = [];
|
|
36
|
+
const firstSlot = SlotNumber.fromBigInt(round * BigInt(constants.slashingRoundSize));
|
|
37
|
+
const lastSlot = SlotNumber(firstSlot + constants.slashingRoundSize - 1);
|
|
35
38
|
const startEpoch = getEpochAtSlot(firstSlot, constants);
|
|
36
39
|
const endEpoch = getEpochAtSlot(lastSlot, constants);
|
|
37
|
-
for (let epoch = startEpoch; epoch <= endEpoch; epoch
|
|
40
|
+
for (let epoch = startEpoch; epoch <= endEpoch; epoch = EpochNumber(epoch + 1)) {
|
|
38
41
|
epochs.push(epoch);
|
|
39
42
|
}
|
|
40
43
|
return epochs;
|
|
@@ -101,9 +104,11 @@ export function getTimeUnitForOffense(offense: OffenseType): 'epoch' | 'slot' {
|
|
|
101
104
|
export function getSlotForOffense(
|
|
102
105
|
offense: Pick<Offense, 'epochOrSlot' | 'offenseType'>,
|
|
103
106
|
constants: Pick<L1RollupConstants, 'epochDuration'>,
|
|
104
|
-
):
|
|
107
|
+
): SlotNumber {
|
|
105
108
|
const { epochOrSlot, offenseType } = offense;
|
|
106
|
-
return getTimeUnitForOffense(offenseType) === 'epoch'
|
|
109
|
+
return getTimeUnitForOffense(offenseType) === 'epoch'
|
|
110
|
+
? SlotNumber.fromBigInt(epochOrSlot * BigInt(constants.epochDuration))
|
|
111
|
+
: SlotNumber.fromBigInt(epochOrSlot);
|
|
107
112
|
}
|
|
108
113
|
|
|
109
114
|
/** Returns the epoch for a given offense. If the offense type or epoch is not defined, returns undefined. */
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
|
+
|
|
1
3
|
import type { ProposerSlashAction } from './types.js';
|
|
2
4
|
|
|
3
5
|
export interface ProposerSlashActionProvider {
|
|
@@ -7,5 +9,5 @@ export interface ProposerSlashActionProvider {
|
|
|
7
9
|
* @param slotNumber - The current slot number
|
|
8
10
|
* @returns The actions to take
|
|
9
11
|
*/
|
|
10
|
-
getProposerActions(slotNumber:
|
|
12
|
+
getProposerActions(slotNumber: SlotNumber): Promise<ProposerSlashAction[]>;
|
|
11
13
|
}
|