@aztec/stdlib 0.0.1-commit.fcb71a6 → 0.0.1-commit.fffb133c
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/contract_artifact.d.ts +2 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +1 -1
- package/dest/abi/function_call.d.ts +9 -1
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/selector.js +3 -1
- package/dest/abi/utils.d.ts +7 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +7 -0
- package/dest/auth_witness/auth_witness.d.ts +2 -1
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/avm/avm.d.ts +62 -62
- package/dest/avm/avm_accumulated_data.d.ts +30 -3
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +5 -2
- package/dest/avm/avm_circuit_public_inputs.d.ts +9 -9
- package/dest/avm/avm_circuit_public_inputs.js +3 -1
- package/dest/avm/avm_proving_request.d.ts +299 -299
- package/dest/avm/contract_storage_read.d.ts +13 -1
- package/dest/avm/contract_storage_read.d.ts.map +1 -1
- package/dest/avm/contract_storage_update_request.d.ts +13 -1
- package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts +3 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
- package/dest/avm/public_data_read.d.ts +10 -1
- package/dest/avm/public_data_read.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.d.ts +10 -1
- package/dest/avm/public_data_update_request.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.js +3 -1
- package/dest/avm/public_data_write.d.ts +7 -1
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.d.ts +4 -1
- package/dest/avm/public_inner_call_request.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.js +3 -1
- package/dest/avm/revert_code.d.ts +4 -4
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/avm/revert_code.js +3 -1
- package/dest/aztec-address/index.js +4 -2
- package/dest/block/attestation_info.d.ts +5 -5
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +4 -4
- package/dest/block/block_hash.d.ts +9 -2
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/block_hash.js +15 -0
- package/dest/block/block_parameter.d.ts +4 -3
- package/dest/block/block_parameter.d.ts.map +1 -1
- package/dest/block/block_parameter.js +2 -0
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +5 -2
- package/dest/block/checkpointed_l2_block.d.ts +20 -137
- package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
- package/dest/block/checkpointed_l2_block.js +7 -45
- package/dest/block/index.d.ts +1 -3
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +0 -2
- package/dest/block/l2_block.d.ts +56 -57
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +64 -107
- package/dest/block/l2_block_source.d.ts +296 -67
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +25 -6
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +15 -5
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +8 -3
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +106 -31
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
- 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 +55 -61
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +478 -38
- package/dest/block/validate_block_result.d.ts +24 -24
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -17
- package/dest/checkpoint/checkpoint.d.ts +30 -20
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +19 -6
- package/dest/checkpoint/checkpoint_info.d.ts +32 -3
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_info.js +34 -1
- 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 +17 -15
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +4 -3
- package/dest/config/node-rpc-config.js +1 -1
- package/dest/contract/complete_address.d.ts +4 -1
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/contract_deployment_data.d.ts +5 -5
- package/dest/contract/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/contract/interfaces/contract_instance.d.ts +16 -16
- package/dest/contract/private_function.d.ts +1 -1
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/contract/private_function.js +1 -2
- package/dest/database-version/version_manager.d.ts +4 -2
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +3 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
- package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
- package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
- package/dest/deserialization/index.d.ts +11 -0
- package/dest/deserialization/index.d.ts.map +1 -0
- package/dest/deserialization/index.js +10 -0
- package/dest/epoch-helpers/index.js +1 -1
- package/dest/errors/proving_error.d.ts +2 -2
- package/dest/errors/proving_error.d.ts.map +1 -1
- package/dest/gas/gas.js +3 -1
- package/dest/gas/gas_fees.js +3 -1
- package/dest/interfaces/api_limit.d.ts +3 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +2 -0
- package/dest/interfaces/archiver.d.ts +6 -6
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +20 -16
- package/dest/interfaces/aztec-node-admin.d.ts +67 -31
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +2 -2
- package/dest/interfaces/aztec-node.d.ts +70 -51
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +12 -9
- package/dest/interfaces/block-builder.d.ts +16 -14
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +12 -7
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +2 -1
- package/dest/interfaces/get_logs_response.d.ts +1 -1
- package/dest/interfaces/l2_logs_source.d.ts +14 -5
- package/dest/interfaces/l2_logs_source.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +7 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +3 -4
- package/dest/interfaces/prover-client.d.ts +10 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/prover-client.js +7 -1
- package/dest/interfaces/proving-job.d.ts +184 -184
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +1 -7
- package/dest/interfaces/server_circuit_prover.d.ts +4 -3
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/tx_provider.d.ts +3 -3
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +108 -18
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +5 -3
- package/dest/kernel/claimed_length_array.js +3 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +19 -10
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_nullifier_read_request_hints.js +16 -8
- package/dest/kernel/hints/key_validation_hint.d.ts +2 -1
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +2 -1
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +6 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +13 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request.d.ts +7 -1
- package/dest/kernel/hints/read_request.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.d.ts +7 -1
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/transient_data_squashing_hint.js +3 -1
- package/dest/kernel/log_hash.js +3 -1
- package/dest/kernel/private_accumulated_data.d.ts +23 -1
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.d.ts +25 -1
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_request.d.ts +16 -1
- package/dest/kernel/private_call_request.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +74 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +31 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.d.ts +7 -1
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +22 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +7 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +4 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +10 -1
- 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 +23 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_log_data.js +5 -2
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +2 -2
- package/dest/kernel/private_to_avm_accumulated_data.js +5 -2
- package/dest/kernel/private_to_public_accumulated_data.js +3 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +17 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.js +3 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +16 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.d.ts +10 -1
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +3 -1
- package/dest/kernel/public_call_request.d.ts +22 -1
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/public_call_request.js +5 -2
- package/dest/kernel/utils/optional_number.d.ts +7 -1
- package/dest/kernel/utils/optional_number.d.ts.map +1 -1
- package/dest/keys/public_keys.d.ts +5 -1
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +3 -1
- package/dest/logs/extended_contract_class_log.d.ts +3 -1
- package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
- package/dest/logs/extended_public_log.d.ts +5 -3
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/log_id.d.ts +5 -1
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/private_log.js +3 -1
- package/dest/logs/public_log.js +3 -1
- package/dest/messaging/in_hash.d.ts +4 -2
- package/dest/messaging/in_hash.d.ts.map +1 -1
- package/dest/messaging/in_hash.js +3 -1
- package/dest/messaging/inbox_leaf.d.ts +3 -1
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/l1_actor.d.ts +7 -1
- package/dest/messaging/l1_actor.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.d.ts +6 -1
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l2_actor.d.ts +7 -1
- package/dest/messaging/l2_actor.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts +88 -6
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +160 -42
- package/dest/messaging/out_hash.d.ts +41 -3
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +54 -19
- package/dest/note/note_dao.d.ts +36 -5
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +15 -12
- package/dest/p2p/attestation_utils.d.ts +3 -3
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +1 -1
- package/dest/p2p/block_proposal.d.ts +93 -21
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +140 -39
- package/dest/p2p/checkpoint_attestation.d.ts +81 -0
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
- package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
- package/dest/p2p/checkpoint_proposal.d.ts +160 -0
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
- package/dest/p2p/checkpoint_proposal.js +229 -0
- package/dest/p2p/consensus_payload.d.ts +9 -9
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +3 -5
- package/dest/p2p/constants.d.ts +3 -0
- package/dest/p2p/constants.d.ts.map +1 -0
- package/dest/p2p/constants.js +2 -0
- package/dest/p2p/gossipable.d.ts +4 -3
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +16 -5
- package/dest/p2p/index.d.ts +5 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +4 -1
- package/dest/p2p/message_validator.d.ts +18 -3
- package/dest/p2p/message_validator.d.ts.map +1 -1
- package/dest/p2p/message_validator.js +2 -1
- package/dest/p2p/signature_utils.d.ts +5 -3
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +3 -1
- package/dest/p2p/signed_txs.d.ts +42 -0
- package/dest/p2p/signed_txs.d.ts.map +1 -0
- package/dest/p2p/signed_txs.js +75 -0
- package/dest/p2p/topic_type.d.ts +3 -2
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +10 -3
- package/dest/parity/parity_base_private_inputs.d.ts +3 -1
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.d.ts +4 -1
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/parity_root_private_inputs.d.ts +2 -1
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.d.ts +1 -1
- package/dest/proofs/chonk_proof.d.ts.map +1 -1
- package/dest/proofs/chonk_proof.js +9 -4
- package/dest/proofs/proof.d.ts +4 -1
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/recursive_proof.d.ts +10 -1
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +34 -1
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.d.ts +12 -1
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_headers_hash.js +1 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +47 -11
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_rollup_public_inputs.js +8 -12
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +64 -1
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.d.ts +10 -1
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -1
- package/dest/rollup/checkpoint_constant_data.js +3 -1
- package/dest/rollup/checkpoint_header.d.ts +42 -12
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +49 -19
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +41 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -2
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +44 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
- package/dest/rollup/epoch_constant_data.d.ts +16 -1
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts +6 -1
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.d.ts +18 -3
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +9 -3
- package/dest/rollup/tree_snapshot_diff_hints.d.ts +24 -1
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts +4 -1
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts +29 -1
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +1 -1
- package/dest/tests/factories.d.ts +16 -10
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +60 -25
- package/dest/tests/jest.js +1 -1
- package/dest/tests/mocks.d.ts +69 -18
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +119 -54
- package/dest/trees/append_only_tree_snapshot.d.ts +13 -1
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/append_only_tree_snapshot.js +3 -1
- package/dest/trees/nullifier_leaf.d.ts +13 -1
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +10 -1
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.d.ts +16 -1
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +11 -1
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +14 -2
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +8 -2
- package/dest/tx/call_context.d.ts +13 -1
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/call_context.js +3 -1
- package/dest/tx/capsule.d.ts +4 -1
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/execution_payload.d.ts +9 -1
- package/dest/tx/execution_payload.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +4 -2
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variable_builder.d.ts +2 -2
- package/dest/tx/global_variable_builder.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +9 -1
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +3 -1
- package/dest/tx/hashed_values.d.ts +7 -1
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/in_tx.d.ts +1 -1
- package/dest/tx/index.d.ts +1 -2
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +0 -1
- package/dest/tx/partial_state_reference.d.ts +4 -1
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/private_execution_result.d.ts +23 -6
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +4 -21
- package/dest/tx/private_tx_constant_data.d.ts +16 -1
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/profiling.d.ts +149 -26
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +44 -7
- package/dest/tx/protocol_contracts.d.ts +1 -1
- package/dest/tx/public_call_request_with_calldata.d.ts +7 -1
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.js +3 -1
- package/dest/tx/state_reference.d.ts +3 -1
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +3 -1
- package/dest/tx/tree_snapshots.js +3 -1
- package/dest/tx/tx.d.ts +24 -1
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +9 -4
- package/dest/tx/tx_context.d.ts +2 -1
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_effect.d.ts +32 -6
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +3 -8
- package/dest/tx/tx_execution_request.d.ts +30 -1
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_execution_request.js +6 -2
- package/dest/tx/tx_hash.d.ts +2 -1
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts +44 -10
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +44 -13
- package/dest/tx/tx_request.d.ts +6 -1
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.d.ts +2 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +2 -0
- package/dest/types/shared.d.ts +4 -1
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/validators/schemas.d.ts +8 -8
- package/dest/vks/verification_key.d.ts +22 -1
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/vk_data.d.ts +7 -1
- package/dest/vks/vk_data.d.ts.map +1 -1
- package/dest/zkpassport/index.d.ts +3 -4
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +9 -9
- package/package.json +12 -10
- package/src/abi/contract_artifact.ts +10 -10
- package/src/abi/utils.ts +17 -0
- package/src/block/attestation_info.ts +9 -6
- package/src/block/block_hash.ts +27 -1
- package/src/block/block_parameter.ts +4 -2
- package/src/block/body.ts +2 -1
- package/src/block/checkpointed_l2_block.ts +8 -58
- package/src/block/index.ts +0 -2
- package/src/block/l2_block.ts +101 -148
- package/src/block/l2_block_source.ts +121 -43
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +15 -4
- package/src/block/l2_block_stream/l2_block_stream.ts +130 -39
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
- package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
- package/src/block/test/l2_tips_store_test_suite.ts +480 -36
- package/src/block/validate_block_result.ts +40 -35
- package/src/checkpoint/checkpoint.ts +34 -11
- package/src/checkpoint/checkpoint_info.ts +45 -2
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/published_checkpoint.ts +4 -3
- package/src/config/node-rpc-config.ts +1 -1
- package/src/contract/index.ts +0 -2
- package/src/contract/private_function.ts +1 -2
- package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
- package/src/deserialization/index.ts +21 -0
- package/src/epoch-helpers/index.ts +1 -1
- package/src/interfaces/api_limit.ts +2 -0
- package/src/interfaces/archiver.ts +24 -23
- package/src/interfaces/aztec-node-admin.ts +5 -2
- package/src/interfaces/aztec-node.ts +100 -68
- package/src/interfaces/block-builder.ts +31 -24
- package/src/interfaces/configs.ts +3 -0
- package/src/interfaces/l2_logs_source.ts +17 -4
- package/src/interfaces/p2p.ts +8 -12
- package/src/interfaces/prover-client.ts +15 -0
- package/src/interfaces/proving-job.ts +2 -11
- package/src/interfaces/server_circuit_prover.ts +3 -2
- package/src/interfaces/tx_provider.ts +2 -2
- package/src/interfaces/validator.ts +63 -14
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +20 -12
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +17 -14
- package/src/messaging/in_hash.ts +3 -1
- package/src/messaging/l2_to_l1_membership.ts +178 -52
- package/src/messaging/out_hash.ts +62 -21
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +3 -3
- package/src/p2p/block_proposal.ts +204 -44
- package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
- package/src/p2p/checkpoint_proposal.ts +348 -0
- package/src/p2p/consensus_payload.ts +5 -7
- package/src/p2p/constants.ts +3 -0
- package/src/p2p/gossipable.ts +14 -4
- package/src/p2p/index.ts +4 -1
- package/src/p2p/message_validator.ts +14 -2
- package/src/p2p/signature_utils.ts +3 -1
- package/src/p2p/signed_txs.ts +88 -0
- package/src/p2p/topic_type.ts +4 -3
- package/src/proofs/chonk_proof.ts +9 -5
- package/src/rollup/block_headers_hash.ts +1 -1
- package/src/rollup/block_rollup_public_inputs.ts +5 -11
- package/src/rollup/checkpoint_header.ts +63 -20
- package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -0
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +9 -0
- package/src/tests/factories.ts +56 -40
- package/src/tests/jest.ts +1 -1
- package/src/tests/mocks.ts +207 -87
- package/src/tx/block_header.ts +11 -3
- package/src/tx/global_variable_builder.ts +1 -1
- package/src/tx/index.ts +0 -1
- package/src/tx/private_execution_result.ts +1 -16
- package/src/tx/profiling.ts +46 -4
- package/src/tx/tx.ts +10 -9
- package/src/tx/tx_effect.ts +0 -9
- package/src/tx/tx_execution_request.ts +2 -0
- package/src/tx/tx_receipt.ts +72 -15
- package/src/tx/validator/error_texts.ts +3 -0
- package/src/zkpassport/index.ts +11 -12
- package/dest/block/l2_block_code_to_purge.d.ts +0 -12
- package/dest/block/l2_block_code_to_purge.d.ts.map +0 -1
- package/dest/block/l2_block_code_to_purge.js +0 -61
- package/dest/block/l2_block_header.d.ts +0 -98
- package/dest/block/l2_block_header.d.ts.map +0 -1
- package/dest/block/l2_block_header.js +0 -153
- package/dest/block/l2_block_new.d.ts +0 -135
- package/dest/block/l2_block_new.d.ts.map +0 -1
- package/dest/block/l2_block_new.js +0 -152
- package/dest/contract/contract_class_metadata.d.ts +0 -8
- package/dest/contract/contract_class_metadata.d.ts.map +0 -1
- package/dest/contract/contract_class_metadata.js +0 -1
- package/dest/contract/contract_metadata.d.ts +0 -7
- package/dest/contract/contract_metadata.d.ts.map +0 -1
- package/dest/contract/contract_metadata.js +0 -1
- package/dest/p2p/block_attestation.d.ts +0 -80
- package/dest/p2p/block_attestation.d.ts.map +0 -1
- package/dest/tx/content_commitment.d.ts +0 -49
- package/dest/tx/content_commitment.d.ts.map +0 -1
- package/dest/tx/content_commitment.js +0 -90
- package/src/block/l2_block_code_to_purge.ts +0 -88
- package/src/block/l2_block_header.ts +0 -246
- package/src/block/l2_block_new.ts +0 -207
- package/src/contract/contract_class_metadata.ts +0 -8
- package/src/contract/contract_metadata.ts +0 -7
- package/src/tx/content_commitment.ts +0 -113
package/src/tests/jest.ts
CHANGED
|
@@ -20,7 +20,7 @@ export function equalL2Blocks(a: any, b: any) {
|
|
|
20
20
|
// use a custom comparator because the blockHash property is lazily computed and one instance might not have it
|
|
21
21
|
return aAsL2Block.toBuffer().equals(bAsL2Block.toBuffer());
|
|
22
22
|
} else if (aAsL2Block || bAsL2Block) {
|
|
23
|
-
// one value is an
|
|
23
|
+
// one value is an L2Block and the other isn't. Definitely not equal.
|
|
24
24
|
return false;
|
|
25
25
|
} else {
|
|
26
26
|
// we don't know what they are, tell Jest to keep looking
|
package/src/tests/mocks.ts
CHANGED
|
@@ -6,22 +6,23 @@ import {
|
|
|
6
6
|
MAX_NULLIFIERS_PER_TX,
|
|
7
7
|
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
8
8
|
} from '@aztec/constants';
|
|
9
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
10
|
-
import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
9
|
+
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
10
|
+
import { BlockNumber, CheckpointNumber, IndexWithinCheckpoint, SlotNumber } from '@aztec/foundation/branded-types';
|
|
11
11
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
12
12
|
import { padArrayEnd, times } from '@aztec/foundation/collection';
|
|
13
13
|
import { randomBytes } from '@aztec/foundation/crypto/random';
|
|
14
14
|
import { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer';
|
|
15
15
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
16
|
+
import { Signature } from '@aztec/foundation/eth-signature';
|
|
16
17
|
|
|
17
18
|
import type { ContractArtifact } from '../abi/abi.js';
|
|
18
19
|
import { PublicTxEffect } from '../avm/avm.js';
|
|
20
|
+
import type { AvmAccumulatedData } from '../avm/avm_accumulated_data.js';
|
|
19
21
|
import { AvmCircuitPublicInputs } from '../avm/avm_circuit_public_inputs.js';
|
|
20
22
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
21
23
|
import { RevertCode } from '../avm/revert_code.js';
|
|
22
24
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
23
|
-
import {
|
|
24
|
-
import { L2Block } from '../block/l2_block.js';
|
|
25
|
+
import { CheckpointedL2Block, CommitteeAttestation, L2Block } from '../block/index.js';
|
|
25
26
|
import type { CommitteeAttestationsAndSigners } from '../block/proposal/attestations_and_signers.js';
|
|
26
27
|
import { Checkpoint } from '../checkpoint/checkpoint.js';
|
|
27
28
|
import { L1PublishedData } from '../checkpoint/published_checkpoint.js';
|
|
@@ -45,12 +46,14 @@ import { PrivateToAvmAccumulatedData } from '../kernel/private_to_avm_accumulate
|
|
|
45
46
|
import { PrivateToPublicAccumulatedDataBuilder } from '../kernel/private_to_public_accumulated_data_builder.js';
|
|
46
47
|
import { PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
|
|
47
48
|
import { computeInHashFromL1ToL2Messages } from '../messaging/in_hash.js';
|
|
48
|
-
import { BlockAttestation } from '../p2p/block_attestation.js';
|
|
49
49
|
import { BlockProposal } from '../p2p/block_proposal.js';
|
|
50
|
+
import { CheckpointAttestation } from '../p2p/checkpoint_attestation.js';
|
|
51
|
+
import { CheckpointProposal } from '../p2p/checkpoint_proposal.js';
|
|
50
52
|
import { ConsensusPayload } from '../p2p/consensus_payload.js';
|
|
51
53
|
import { SignatureDomainSeparator, getHashedSignaturePayloadEthSignedMessage } from '../p2p/signature_utils.js';
|
|
52
54
|
import { ChonkProof } from '../proofs/chonk_proof.js';
|
|
53
55
|
import { ProvingRequestType } from '../proofs/proving_request_type.js';
|
|
56
|
+
import { CheckpointHeader } from '../rollup/checkpoint_header.js';
|
|
54
57
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
55
58
|
import {
|
|
56
59
|
BlockHeader,
|
|
@@ -72,9 +75,9 @@ import {
|
|
|
72
75
|
makeAvmCircuitInputs,
|
|
73
76
|
makeAztecAddress,
|
|
74
77
|
makeBlockHeader,
|
|
78
|
+
makeCheckpointHeader,
|
|
75
79
|
makeGas,
|
|
76
80
|
makeGlobalVariables,
|
|
77
|
-
makeL2BlockHeader,
|
|
78
81
|
makePrivateToPublicAccumulatedData,
|
|
79
82
|
makePrivateToRollupAccumulatedData,
|
|
80
83
|
makeProtocolContracts,
|
|
@@ -202,6 +205,7 @@ export async function mockProcessedTx({
|
|
|
202
205
|
// The default gasUsed is the tx overhead.
|
|
203
206
|
gasUsed = Gas.from({ daGas: FIXED_DA_GAS, l2Gas: FIXED_L2_GAS }),
|
|
204
207
|
privateOnly = false,
|
|
208
|
+
avmAccumulatedData,
|
|
205
209
|
...mockTxOpts
|
|
206
210
|
}: {
|
|
207
211
|
seed?: number;
|
|
@@ -213,6 +217,7 @@ export async function mockProcessedTx({
|
|
|
213
217
|
protocolContracts?: ProtocolContracts;
|
|
214
218
|
feePaymentPublicDataWrite?: PublicDataWrite;
|
|
215
219
|
privateOnly?: boolean;
|
|
220
|
+
avmAccumulatedData?: Partial<FieldsOf<AvmAccumulatedData>>;
|
|
216
221
|
} & Parameters<typeof mockTx>[1] = {}) {
|
|
217
222
|
seed *= 0x1000; // Avoid clashing with the previous mock values if seed only increases by 1.
|
|
218
223
|
anchorBlockHeader ??= db?.getInitialHeader() ?? makeBlockHeader(seed);
|
|
@@ -292,19 +297,22 @@ export async function mockProcessedTx({
|
|
|
292
297
|
avmOutput.previousRevertibleAccumulatedDataArrayLengths =
|
|
293
298
|
avmOutput.previousRevertibleAccumulatedData.getArrayLengths();
|
|
294
299
|
// Assign final data emitted from avm.
|
|
295
|
-
avmOutput.accumulatedData.noteHashes = revertibleData.noteHashes;
|
|
296
|
-
avmOutput.accumulatedData.nullifiers =
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
300
|
+
avmOutput.accumulatedData.noteHashes = avmAccumulatedData?.noteHashes ?? revertibleData.noteHashes;
|
|
301
|
+
avmOutput.accumulatedData.nullifiers =
|
|
302
|
+
avmAccumulatedData?.nullifiers ??
|
|
303
|
+
padArrayEnd(
|
|
304
|
+
nonRevertibleData.nullifiers.concat(revertibleData.nullifiers).filter(n => !n.isEmpty()),
|
|
305
|
+
Fr.ZERO,
|
|
306
|
+
MAX_NULLIFIERS_PER_TX,
|
|
307
|
+
);
|
|
308
|
+
avmOutput.accumulatedData.l2ToL1Msgs = avmAccumulatedData?.l2ToL1Msgs ?? revertibleData.l2ToL1Msgs;
|
|
309
|
+
avmOutput.accumulatedData.publicDataWrites =
|
|
310
|
+
avmAccumulatedData?.publicDataWrites ??
|
|
311
|
+
makeTuple(
|
|
312
|
+
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
313
|
+
i => (i === 0 ? feePaymentPublicDataWrite : new PublicDataWrite(new Fr(i), new Fr(i + 10))),
|
|
314
|
+
seed + 0x2000,
|
|
315
|
+
);
|
|
308
316
|
avmOutput.accumulatedDataArrayLengths = avmOutput.accumulatedData.getArrayLengths();
|
|
309
317
|
avmOutput.gasSettings = gasSettings;
|
|
310
318
|
// Note: The fee is computed from the tx's gas used, which only includes the gas used in private. But this shouldn't
|
|
@@ -353,7 +361,6 @@ const emptyPrivateCallExecutionResult = () =>
|
|
|
353
361
|
Buffer.from(''),
|
|
354
362
|
new Map(),
|
|
355
363
|
PrivateCircuitPublicInputs.empty(),
|
|
356
|
-
new Map(),
|
|
357
364
|
[],
|
|
358
365
|
new Map(),
|
|
359
366
|
[],
|
|
@@ -392,38 +399,47 @@ export async function mockCheckpointAndMessages(
|
|
|
392
399
|
{
|
|
393
400
|
startBlockNumber = BlockNumber(1),
|
|
394
401
|
numBlocks = 1,
|
|
402
|
+
blocks,
|
|
395
403
|
numTxsPerBlock = 1,
|
|
396
404
|
numL1ToL2Messages = 1,
|
|
397
405
|
makeBlockOptions = () => ({}),
|
|
398
406
|
previousArchive,
|
|
407
|
+
maxEffects,
|
|
399
408
|
...options
|
|
400
409
|
}: {
|
|
401
410
|
startBlockNumber?: BlockNumber;
|
|
402
411
|
numBlocks?: number;
|
|
403
412
|
numTxsPerBlock?: number;
|
|
404
413
|
numL1ToL2Messages?: number;
|
|
405
|
-
makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof
|
|
414
|
+
makeBlockOptions?: (blockNumber: BlockNumber) => Partial<Parameters<typeof L2Block.random>[1]>;
|
|
406
415
|
previousArchive?: AppendOnlyTreeSnapshot;
|
|
416
|
+
blocks?: L2Block[];
|
|
417
|
+
maxEffects?: number;
|
|
407
418
|
} & Partial<Parameters<typeof Checkpoint.random>[1]> &
|
|
408
|
-
Partial<Parameters<typeof
|
|
419
|
+
Partial<Parameters<typeof L2Block.random>[1]> = {},
|
|
409
420
|
) {
|
|
410
|
-
const slotNumber = options.slotNumber ?? SlotNumber(checkpointNumber * 10);
|
|
421
|
+
const slotNumber = options.slotNumber ?? SlotNumber(Number(checkpointNumber) * 10);
|
|
411
422
|
const blocksAndMessages = [];
|
|
412
423
|
// Track the previous block's archive to ensure consecutive blocks have consistent archive roots.
|
|
413
424
|
// The current block's header.lastArchive must equal the previous block's archive.
|
|
414
425
|
let lastArchive: AppendOnlyTreeSnapshot | undefined = previousArchive;
|
|
415
|
-
|
|
426
|
+
// Pass maxEffects via txOptions so it reaches TxEffect.random
|
|
427
|
+
const txOptions = maxEffects !== undefined ? { maxEffects } : {};
|
|
428
|
+
for (let i = 0; i < (blocks?.length ?? numBlocks); i++) {
|
|
416
429
|
const blockNumber = BlockNumber(startBlockNumber + i);
|
|
417
430
|
const { block, messages } = {
|
|
418
|
-
block:
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
431
|
+
block:
|
|
432
|
+
blocks?.[i] ??
|
|
433
|
+
(await L2Block.random(blockNumber, {
|
|
434
|
+
checkpointNumber,
|
|
435
|
+
indexWithinCheckpoint: IndexWithinCheckpoint(i),
|
|
436
|
+
txsPerBlock: numTxsPerBlock,
|
|
437
|
+
txOptions,
|
|
438
|
+
slotNumber,
|
|
439
|
+
...options,
|
|
440
|
+
...makeBlockOptions(blockNumber),
|
|
441
|
+
...(lastArchive ? { lastArchive } : {}),
|
|
442
|
+
})),
|
|
427
443
|
messages: mockL1ToL2Messages(numL1ToL2Messages),
|
|
428
444
|
};
|
|
429
445
|
// Update lastArchive for the next block
|
|
@@ -481,28 +497,52 @@ export interface MakeConsensusPayloadOptions {
|
|
|
481
497
|
signer?: Secp256k1Signer;
|
|
482
498
|
attesterSigner?: Secp256k1Signer;
|
|
483
499
|
proposerSigner?: Secp256k1Signer;
|
|
484
|
-
header?:
|
|
500
|
+
header?: CheckpointHeader;
|
|
485
501
|
archive?: Fr;
|
|
486
502
|
txHashes?: TxHash[];
|
|
487
503
|
txs?: Tx[];
|
|
488
504
|
}
|
|
489
505
|
|
|
506
|
+
export interface MakeBlockProposalOptions {
|
|
507
|
+
signer?: Secp256k1Signer;
|
|
508
|
+
blockHeader?: BlockHeader;
|
|
509
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
510
|
+
inHash?: Fr;
|
|
511
|
+
archiveRoot?: Fr;
|
|
512
|
+
txHashes?: TxHash[];
|
|
513
|
+
txs?: Tx[];
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
export interface MakeCheckpointProposalOptions {
|
|
517
|
+
signer?: Secp256k1Signer;
|
|
518
|
+
checkpointHeader?: CheckpointHeader;
|
|
519
|
+
archiveRoot?: Fr;
|
|
520
|
+
/** Options for the lastBlock - if undefined, no lastBlock is included */
|
|
521
|
+
lastBlock?: {
|
|
522
|
+
blockHeader?: BlockHeader;
|
|
523
|
+
indexWithinCheckpoint?: IndexWithinCheckpoint;
|
|
524
|
+
txHashes?: TxHash[];
|
|
525
|
+
txs?: Tx[];
|
|
526
|
+
};
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
490
530
|
const makeAndSignConsensusPayload = (
|
|
491
531
|
domainSeparator: SignatureDomainSeparator,
|
|
492
532
|
options?: MakeConsensusPayloadOptions,
|
|
493
533
|
) => {
|
|
494
|
-
const header = options?.header ??
|
|
534
|
+
const header = options?.header ?? makeCheckpointHeader(1);
|
|
495
535
|
const { signer = Secp256k1Signer.random(), archive = Fr.random() } = options ?? {};
|
|
496
536
|
|
|
497
537
|
const payload = ConsensusPayload.fromFields({
|
|
498
|
-
header
|
|
538
|
+
header,
|
|
499
539
|
archive,
|
|
500
540
|
});
|
|
501
541
|
|
|
502
542
|
const hash = getHashedSignaturePayloadEthSignedMessage(payload, domainSeparator);
|
|
503
543
|
const signature = signer.sign(hash);
|
|
504
544
|
|
|
505
|
-
return { blockNumber: header.
|
|
545
|
+
return { blockNumber: header.slotNumber, payload, signature };
|
|
506
546
|
};
|
|
507
547
|
|
|
508
548
|
export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
@@ -516,79 +556,149 @@ export const makeAndSignCommitteeAttestationsAndSigners = (
|
|
|
516
556
|
return signer.sign(hash);
|
|
517
557
|
};
|
|
518
558
|
|
|
519
|
-
export const makeBlockProposal = (options?:
|
|
520
|
-
const
|
|
559
|
+
export const makeBlockProposal = (options?: MakeBlockProposalOptions): Promise<BlockProposal> => {
|
|
560
|
+
const blockHeader = options?.blockHeader ?? makeBlockHeader(1);
|
|
561
|
+
const indexWithinCheckpoint = options?.indexWithinCheckpoint ?? IndexWithinCheckpoint(0);
|
|
562
|
+
const inHash = options?.inHash ?? Fr.random();
|
|
563
|
+
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
521
564
|
const txHashes = options?.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random());
|
|
522
|
-
|
|
565
|
+
const txs = options?.txs;
|
|
566
|
+
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
567
|
+
|
|
568
|
+
return BlockProposal.createProposalFromSigner(
|
|
569
|
+
blockHeader,
|
|
570
|
+
indexWithinCheckpoint,
|
|
571
|
+
inHash,
|
|
572
|
+
archiveRoot,
|
|
573
|
+
txHashes,
|
|
574
|
+
txs,
|
|
575
|
+
(_payload, _context) => Promise.resolve(signer.signMessage(_payload)),
|
|
576
|
+
);
|
|
523
577
|
};
|
|
524
578
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
const
|
|
528
|
-
const
|
|
579
|
+
export const makeCheckpointProposal = (options?: MakeCheckpointProposalOptions): Promise<CheckpointProposal> => {
|
|
580
|
+
const blockHeader = options?.lastBlock?.blockHeader ?? makeBlockHeader(1);
|
|
581
|
+
const checkpointHeader = options?.checkpointHeader ?? makeCheckpointHeader(1);
|
|
582
|
+
const archiveRoot = options?.archiveRoot ?? Fr.random();
|
|
583
|
+
const signer = options?.signer ?? Secp256k1Signer.random();
|
|
584
|
+
|
|
585
|
+
// Build lastBlock info if provided
|
|
586
|
+
const lastBlockInfo = options?.lastBlock
|
|
587
|
+
? {
|
|
588
|
+
blockHeader,
|
|
589
|
+
indexWithinCheckpoint: options.lastBlock.indexWithinCheckpoint ?? IndexWithinCheckpoint(4), // Last block in a 5-block checkpoint
|
|
590
|
+
txHashes: options.lastBlock.txHashes ?? [0, 1, 2, 3, 4, 5].map(() => TxHash.random()),
|
|
591
|
+
txs: options.lastBlock.txs,
|
|
592
|
+
}
|
|
593
|
+
: undefined;
|
|
594
|
+
|
|
595
|
+
return CheckpointProposal.createProposalFromSigner(checkpointHeader, archiveRoot, lastBlockInfo, payload =>
|
|
596
|
+
Promise.resolve(signer.signMessage(payload)),
|
|
597
|
+
);
|
|
598
|
+
};
|
|
529
599
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
600
|
+
/**
|
|
601
|
+
* Options for creating a checkpoint attestation
|
|
602
|
+
*/
|
|
603
|
+
export type MakeCheckpointAttestationOptions = {
|
|
604
|
+
header?: CheckpointHeader;
|
|
605
|
+
archive?: Fr;
|
|
606
|
+
attesterSigner?: Secp256k1Signer;
|
|
607
|
+
proposerSigner?: Secp256k1Signer;
|
|
608
|
+
signer?: Secp256k1Signer;
|
|
609
|
+
};
|
|
610
|
+
|
|
611
|
+
/**
|
|
612
|
+
* Create a checkpoint attestation for testing
|
|
613
|
+
*/
|
|
614
|
+
export const makeCheckpointAttestation = (options: MakeCheckpointAttestationOptions = {}): CheckpointAttestation => {
|
|
615
|
+
const header = options.header ?? makeCheckpointHeader(1);
|
|
616
|
+
const archive = options.archive ?? Fr.random();
|
|
617
|
+
const { signer, attesterSigner = signer, proposerSigner = signer } = options;
|
|
618
|
+
|
|
619
|
+
const payload = new ConsensusPayload(header, archive);
|
|
620
|
+
|
|
621
|
+
// Sign as attester
|
|
622
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
623
|
+
payload,
|
|
624
|
+
SignatureDomainSeparator.checkpointAttestation,
|
|
625
|
+
);
|
|
626
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
627
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
628
|
+
|
|
629
|
+
// Sign as proposer - use CheckpointProposal's payload format (serializeToBuffer)
|
|
630
|
+
// This is different from ConsensusPayload's format (ABI encoding)
|
|
631
|
+
const proposalSignerToUse = proposerSigner ?? Secp256k1Signer.random();
|
|
632
|
+
const tempProposal = new CheckpointProposal(header, archive, Signature.empty());
|
|
633
|
+
const proposalHash = getHashedSignaturePayloadEthSignedMessage(
|
|
634
|
+
tempProposal,
|
|
635
|
+
SignatureDomainSeparator.checkpointProposal,
|
|
636
|
+
);
|
|
637
|
+
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
534
638
|
|
|
535
|
-
return
|
|
639
|
+
return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
|
|
536
640
|
};
|
|
537
641
|
|
|
538
|
-
|
|
539
|
-
|
|
642
|
+
/**
|
|
643
|
+
* Create a checkpoint attestation from a checkpoint proposal
|
|
644
|
+
*/
|
|
645
|
+
export const makeCheckpointAttestationFromProposal = (
|
|
646
|
+
proposal: CheckpointProposal,
|
|
540
647
|
attesterSigner?: Secp256k1Signer,
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
const header = checkpoint.header;
|
|
544
|
-
const archive = checkpoint.archive.root;
|
|
648
|
+
): CheckpointAttestation => {
|
|
649
|
+
const payload = new ConsensusPayload(proposal.checkpointHeader, proposal.archive);
|
|
545
650
|
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
651
|
+
// Sign as attester
|
|
652
|
+
const attestationHash = getHashedSignaturePayloadEthSignedMessage(
|
|
653
|
+
payload,
|
|
654
|
+
SignatureDomainSeparator.checkpointAttestation,
|
|
655
|
+
);
|
|
656
|
+
const attestationSigner = attesterSigner ?? Secp256k1Signer.random();
|
|
657
|
+
const attestationSignature = attestationSigner.sign(attestationHash);
|
|
550
658
|
|
|
551
|
-
|
|
659
|
+
// Use the proposal's signature as the proposer signature
|
|
660
|
+
return new CheckpointAttestation(payload, attestationSignature, proposal.signature);
|
|
552
661
|
};
|
|
553
662
|
|
|
554
|
-
|
|
555
|
-
|
|
663
|
+
/**
|
|
664
|
+
* Create a checkpoint attestation from a checkpoint
|
|
665
|
+
*/
|
|
666
|
+
export const makeCheckpointAttestationFromCheckpoint = (
|
|
667
|
+
checkpoint: Checkpoint,
|
|
556
668
|
attesterSigner?: Secp256k1Signer,
|
|
557
669
|
proposerSigner?: Secp256k1Signer,
|
|
558
|
-
):
|
|
559
|
-
const header =
|
|
560
|
-
const archive =
|
|
561
|
-
|
|
562
|
-
const payload = ConsensusPayload.fromFields({
|
|
563
|
-
header: header.toCheckpointHeader(),
|
|
564
|
-
archive,
|
|
565
|
-
});
|
|
670
|
+
): CheckpointAttestation => {
|
|
671
|
+
const header = checkpoint.header;
|
|
672
|
+
const archive = checkpoint.archive.root;
|
|
566
673
|
|
|
567
|
-
return
|
|
674
|
+
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
568
675
|
};
|
|
569
676
|
|
|
570
|
-
|
|
571
|
-
|
|
677
|
+
/**
|
|
678
|
+
* Create a checkpoint attestation from an L2Block
|
|
679
|
+
* Note: This is a compatibility function for tests. L2Block doesn't have a checkpoint header directly.
|
|
680
|
+
*/
|
|
681
|
+
export const makeCheckpointAttestationFromBlock = (
|
|
682
|
+
block: L2Block,
|
|
572
683
|
attesterSigner?: Secp256k1Signer,
|
|
573
684
|
proposerSigner?: Secp256k1Signer,
|
|
574
|
-
):
|
|
575
|
-
//
|
|
576
|
-
const
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
const
|
|
583
|
-
const proposerSignature = proposalSignerToUse.sign(proposalHash);
|
|
685
|
+
): CheckpointAttestation => {
|
|
686
|
+
// For L2Block, we create a minimal checkpoint header for testing purposes
|
|
687
|
+
const header = CheckpointHeader.empty({
|
|
688
|
+
lastArchiveRoot: block.header.lastArchive.root,
|
|
689
|
+
slotNumber: block.slot,
|
|
690
|
+
timestamp: block.timestamp,
|
|
691
|
+
blockHeadersHash: Fr.ZERO, // Would need to compute from block header hash
|
|
692
|
+
});
|
|
693
|
+
const archive = block.archive.root;
|
|
584
694
|
|
|
585
|
-
return
|
|
695
|
+
return makeCheckpointAttestation({ header, archive, attesterSigner, proposerSigner });
|
|
586
696
|
};
|
|
587
697
|
|
|
588
698
|
export async function randomPublishedL2Block(
|
|
589
699
|
l2BlockNumber: number,
|
|
590
700
|
opts: { signers?: Secp256k1Signer[] } = {},
|
|
591
|
-
): Promise<
|
|
701
|
+
): Promise<CheckpointedL2Block> {
|
|
592
702
|
const block = await L2Block.random(BlockNumber(l2BlockNumber));
|
|
593
703
|
const l1 = L1PublishedData.fromFields({
|
|
594
704
|
blockNumber: BigInt(block.number),
|
|
@@ -597,9 +707,19 @@ export async function randomPublishedL2Block(
|
|
|
597
707
|
});
|
|
598
708
|
|
|
599
709
|
const signers = opts.signers ?? times(3, () => Secp256k1Signer.random());
|
|
600
|
-
const
|
|
710
|
+
const checkpoint = await Checkpoint.random(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), {
|
|
711
|
+
numBlocks: 0,
|
|
712
|
+
});
|
|
713
|
+
checkpoint.blocks = [block];
|
|
714
|
+
const atts = signers.map(signer =>
|
|
715
|
+
makeCheckpointAttestation({
|
|
716
|
+
signer,
|
|
717
|
+
archive: block.archive.root,
|
|
718
|
+
header: checkpoint.header,
|
|
719
|
+
}),
|
|
720
|
+
);
|
|
601
721
|
const attestations = atts.map(
|
|
602
722
|
(attestation, i) => new CommitteeAttestation(signers[i].address, attestation.signature),
|
|
603
723
|
);
|
|
604
|
-
return new
|
|
724
|
+
return new CheckpointedL2Block(CheckpointNumber.fromBlockNumber(BlockNumber(l2BlockNumber)), block, l1, attestations);
|
|
605
725
|
}
|
package/src/tx/block_header.ts
CHANGED
|
@@ -11,13 +11,14 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
11
11
|
import { inspect } from 'util';
|
|
12
12
|
import { z } from 'zod';
|
|
13
13
|
|
|
14
|
+
import { L2BlockHash } from '../block/block_hash.js';
|
|
14
15
|
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
15
16
|
import { GlobalVariables } from './global_variables.js';
|
|
16
17
|
import { StateReference } from './state_reference.js';
|
|
17
18
|
|
|
18
19
|
/** A header of an L2 block. */
|
|
19
20
|
export class BlockHeader {
|
|
20
|
-
private _cachedHash?: Promise<
|
|
21
|
+
private _cachedHash?: Promise<L2BlockHash>;
|
|
21
22
|
|
|
22
23
|
constructor(
|
|
23
24
|
/** Snapshot of archive before the block is applied. */
|
|
@@ -161,13 +162,20 @@ export class BlockHeader {
|
|
|
161
162
|
return BlockHeader.fromBuffer(hexToBuffer(str));
|
|
162
163
|
}
|
|
163
164
|
|
|
164
|
-
hash(): Promise<
|
|
165
|
+
hash(): Promise<L2BlockHash> {
|
|
165
166
|
if (!this._cachedHash) {
|
|
166
|
-
this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH)
|
|
167
|
+
this._cachedHash = poseidon2HashWithSeparator(this.toFields(), GeneratorIndex.BLOCK_HASH).then(fr =>
|
|
168
|
+
L2BlockHash.fromField(fr),
|
|
169
|
+
);
|
|
167
170
|
}
|
|
168
171
|
return this._cachedHash;
|
|
169
172
|
}
|
|
170
173
|
|
|
174
|
+
/** Manually set the hash for this block header if already computed */
|
|
175
|
+
setHash(hashed: Fr) {
|
|
176
|
+
this._cachedHash = Promise.resolve(L2BlockHash.fromField(hashed));
|
|
177
|
+
}
|
|
178
|
+
|
|
171
179
|
static random(overrides: Partial<FieldsOf<BlockHeader>> & Partial<FieldsOf<GlobalVariables>> = {}): BlockHeader {
|
|
172
180
|
return BlockHeader.from({
|
|
173
181
|
lastArchive: AppendOnlyTreeSnapshot.random(),
|
|
@@ -10,7 +10,7 @@ import type { CheckpointGlobalVariables, GlobalVariables } from './global_variab
|
|
|
10
10
|
* Interface for building global variables for Aztec blocks.
|
|
11
11
|
*/
|
|
12
12
|
export interface GlobalVariableBuilder {
|
|
13
|
-
|
|
13
|
+
getCurrentMinFees(): Promise<GasFees>;
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Builds global variables for a given block.
|
package/src/tx/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './block_header.js';
|
|
2
2
|
export * from './call_context.js';
|
|
3
3
|
export * from './global_variables.js';
|
|
4
|
-
export * from './content_commitment.js';
|
|
5
4
|
export * from './state_reference.js';
|
|
6
5
|
export * from './partial_state_reference.js';
|
|
7
6
|
export * from './function_data.js';
|
|
@@ -79,7 +79,7 @@ export class CountedContractClassLog implements IsEmpty {
|
|
|
79
79
|
export class PrivateExecutionResult {
|
|
80
80
|
constructor(
|
|
81
81
|
public entrypoint: PrivateCallExecutionResult,
|
|
82
|
-
/** The first non
|
|
82
|
+
/** The first non-revertible nullifier emitted by any private call, or the protocol nullifier if there was none. */
|
|
83
83
|
public firstNullifier: Fr,
|
|
84
84
|
/** An array of calldata for the enqueued public function calls and the teardown function call. */
|
|
85
85
|
public publicFunctionCalldata: HashedValues[],
|
|
@@ -129,8 +129,6 @@ export class PrivateCallExecutionResult {
|
|
|
129
129
|
// Needed for the verifier (kernel)
|
|
130
130
|
/** The call stack item. */
|
|
131
131
|
public publicInputs: PrivateCircuitPublicInputs,
|
|
132
|
-
/** Mapping of note hash to its index in the note hash tree. Used for building hints for note hash read requests. */
|
|
133
|
-
public noteHashLeafIndexMap: Map<bigint, bigint>,
|
|
134
132
|
/** The notes created in the executed function. */
|
|
135
133
|
public newNotes: NoteAndSlot[],
|
|
136
134
|
/** Mapping of note hash counter to the counter of its nullifier. */
|
|
@@ -159,7 +157,6 @@ export class PrivateCallExecutionResult {
|
|
|
159
157
|
vk: schemas.Buffer,
|
|
160
158
|
partialWitness: mapSchema(z.coerce.number(), z.string()),
|
|
161
159
|
publicInputs: PrivateCircuitPublicInputs.schema,
|
|
162
|
-
noteHashLeafIndexMap: mapSchema(schemas.BigInt, schemas.BigInt),
|
|
163
160
|
newNotes: z.array(NoteAndSlot.schema),
|
|
164
161
|
noteHashNullifierCounterMap: mapSchema(z.coerce.number(), z.number()),
|
|
165
162
|
returnValues: z.array(schemas.Fr),
|
|
@@ -177,7 +174,6 @@ export class PrivateCallExecutionResult {
|
|
|
177
174
|
fields.vk,
|
|
178
175
|
fields.partialWitness,
|
|
179
176
|
fields.publicInputs,
|
|
180
|
-
fields.noteHashLeafIndexMap,
|
|
181
177
|
fields.newNotes,
|
|
182
178
|
fields.noteHashNullifierCounterMap,
|
|
183
179
|
fields.returnValues,
|
|
@@ -194,7 +190,6 @@ export class PrivateCallExecutionResult {
|
|
|
194
190
|
randomBytes(4),
|
|
195
191
|
new Map([[1, 'one']]),
|
|
196
192
|
PrivateCircuitPublicInputs.empty(),
|
|
197
|
-
new Map([[1n, 1n]]),
|
|
198
193
|
[NoteAndSlot.random()],
|
|
199
194
|
new Map([[0, 0]]),
|
|
200
195
|
[Fr.random()],
|
|
@@ -210,16 +205,6 @@ export class PrivateCallExecutionResult {
|
|
|
210
205
|
}
|
|
211
206
|
}
|
|
212
207
|
|
|
213
|
-
export function collectNoteHashLeafIndexMap(execResult: PrivateExecutionResult) {
|
|
214
|
-
const accum: Map<bigint, bigint> = new Map();
|
|
215
|
-
const collectNoteHashLeafIndexMapRecursive = (callResult: PrivateCallExecutionResult, accum: Map<bigint, bigint>) => {
|
|
216
|
-
callResult.noteHashLeafIndexMap.forEach((value, key) => accum.set(key, value));
|
|
217
|
-
callResult.nestedExecutionResults.forEach(nested => collectNoteHashLeafIndexMapRecursive(nested, accum));
|
|
218
|
-
};
|
|
219
|
-
collectNoteHashLeafIndexMapRecursive(execResult.entrypoint, accum);
|
|
220
|
-
return accum;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
208
|
export function collectNoteHashNullifierCounterMap(execResult: PrivateExecutionResult) {
|
|
224
209
|
const accum: Map<number, number> = new Map();
|
|
225
210
|
const collectNoteHashNullifierCounterMapRecursive = (
|
package/src/tx/profiling.ts
CHANGED
|
@@ -6,9 +6,35 @@ import { z } from 'zod';
|
|
|
6
6
|
import type { AztecNode } from '../interfaces/aztec-node.js';
|
|
7
7
|
import { type PrivateExecutionStep, PrivateExecutionStepSchema } from '../kernel/private_kernel_prover_output.js';
|
|
8
8
|
|
|
9
|
-
export type
|
|
9
|
+
export type RoundTripStats = {
|
|
10
|
+
/** Number of round trips (times we blocked waiting for node responses) */
|
|
11
|
+
roundTrips: number;
|
|
12
|
+
/** Total wall-clock time spent waiting on node (excludes parallel overlap) */
|
|
13
|
+
totalBlockingTime: number;
|
|
14
|
+
/** Individual round trip durations */
|
|
15
|
+
roundTripDurations: number[];
|
|
16
|
+
/** Methods called in each round trip (parallel calls grouped together) */
|
|
17
|
+
roundTripMethods: string[][];
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const RoundTripStatsSchema = z.object({
|
|
21
|
+
roundTrips: z.number(),
|
|
22
|
+
totalBlockingTime: z.number(),
|
|
23
|
+
roundTripDurations: z.array(z.number()),
|
|
24
|
+
roundTripMethods: z.array(z.array(z.string())),
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export type NodeStats = {
|
|
28
|
+
/** Per-method call stats */
|
|
29
|
+
perMethod: Partial<Record<keyof AztecNode, { times: number[] }>>;
|
|
30
|
+
/** Round trip stats tracking actual blocking waits */
|
|
31
|
+
roundTrips: RoundTripStats;
|
|
32
|
+
};
|
|
10
33
|
|
|
11
|
-
const NodeStatsSchema = z.
|
|
34
|
+
const NodeStatsSchema = z.object({
|
|
35
|
+
perMethod: z.record(z.string(), z.object({ times: z.array(z.number()) })),
|
|
36
|
+
roundTrips: RoundTripStatsSchema,
|
|
37
|
+
});
|
|
12
38
|
|
|
13
39
|
type FunctionTiming = {
|
|
14
40
|
functionName: string;
|
|
@@ -105,7 +131,15 @@ export class TxProfileResult {
|
|
|
105
131
|
},
|
|
106
132
|
],
|
|
107
133
|
{
|
|
108
|
-
nodeRPCCalls: {
|
|
134
|
+
nodeRPCCalls: {
|
|
135
|
+
perMethod: { getBlockHeader: { times: [1] } },
|
|
136
|
+
roundTrips: {
|
|
137
|
+
roundTrips: 1,
|
|
138
|
+
totalBlockingTime: 1,
|
|
139
|
+
roundTripDurations: [1],
|
|
140
|
+
roundTripMethods: [['getBlockHeader']],
|
|
141
|
+
},
|
|
142
|
+
},
|
|
109
143
|
timings: {
|
|
110
144
|
sync: 1,
|
|
111
145
|
proving: 1,
|
|
@@ -140,7 +174,15 @@ export class UtilitySimulationResult {
|
|
|
140
174
|
|
|
141
175
|
static random(): UtilitySimulationResult {
|
|
142
176
|
return new UtilitySimulationResult([Fr.random()], {
|
|
143
|
-
nodeRPCCalls: {
|
|
177
|
+
nodeRPCCalls: {
|
|
178
|
+
perMethod: { getBlockHeader: { times: [1] } },
|
|
179
|
+
roundTrips: {
|
|
180
|
+
roundTrips: 1,
|
|
181
|
+
totalBlockingTime: 1,
|
|
182
|
+
roundTripDurations: [1],
|
|
183
|
+
roundTripMethods: [['getBlockHeader']],
|
|
184
|
+
},
|
|
185
|
+
},
|
|
144
186
|
timings: {
|
|
145
187
|
sync: 1,
|
|
146
188
|
publicSimulation: 1,
|