@aztec/stdlib 3.0.0-canary.a9708bd → 3.0.0-devnet.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 +8 -8
- package/dest/abi/abi.js +1 -1
- package/dest/abi/contract_artifact.js +3 -0
- package/dest/abi/event_metadata_definition.d.ts +8 -0
- package/dest/abi/event_metadata_definition.d.ts.map +1 -0
- package/dest/abi/event_metadata_definition.js +1 -0
- package/dest/abi/function_call.d.ts +7 -2
- package/dest/abi/function_call.d.ts.map +1 -1
- package/dest/abi/function_call.js +6 -2
- package/dest/abi/index.d.ts +1 -0
- package/dest/abi/index.d.ts.map +1 -1
- package/dest/abi/index.js +1 -0
- package/dest/avm/avm.d.ts +132 -73
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +10 -6
- package/dest/avm/avm_accumulated_data.d.ts +10 -21
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +19 -22
- package/dest/avm/avm_circuit_public_inputs.d.ts +30 -13
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +17 -6
- package/dest/avm/avm_proving_request.d.ts +96 -48
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/index.d.ts +1 -1
- package/dest/avm/index.d.ts.map +1 -1
- package/dest/avm/index.js +1 -1
- package/dest/avm/message_pack.d.ts +1 -0
- package/dest/avm/message_pack.d.ts.map +1 -1
- package/dest/avm/message_pack.js +28 -5
- package/dest/block/attestation_info.d.ts +30 -0
- package/dest/block/attestation_info.d.ts.map +1 -0
- package/dest/block/attestation_info.js +39 -0
- package/dest/block/body.d.ts +4 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +17 -15
- package/dest/block/in_block.d.ts +5 -5
- package/dest/block/in_block.d.ts.map +1 -1
- package/dest/block/index.d.ts +4 -0
- package/dest/block/index.d.ts.map +1 -1
- package/dest/block/index.js +4 -0
- package/dest/block/l2_block.d.ts +21 -13
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +33 -10
- package/dest/block/l2_block_code_to_purge.d.ts +3 -14
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +23 -13
- package/dest/block/l2_block_header.d.ts +100 -0
- package/dest/block/l2_block_header.d.ts.map +1 -0
- package/dest/block/l2_block_header.js +146 -0
- package/dest/block/l2_block_info.d.ts +41 -0
- package/dest/block/l2_block_info.d.ts.map +1 -0
- package/dest/block/l2_block_info.js +40 -0
- package/dest/block/l2_block_source.d.ts +30 -428
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +0 -28
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +1 -1
- package/dest/block/proposal/attestations_and_signers.d.ts +48 -0
- package/dest/block/proposal/attestations_and_signers.d.ts.map +1 -0
- package/dest/block/proposal/attestations_and_signers.js +99 -0
- package/dest/block/proposal/index.d.ts +1 -0
- package/dest/block/proposal/index.d.ts.map +1 -1
- package/dest/block/proposal/index.js +1 -0
- package/dest/block/published_l2_block.d.ts +27 -5
- package/dest/block/published_l2_block.d.ts.map +1 -1
- package/dest/block/published_l2_block.js +20 -7
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +3 -4
- package/dest/block/validate_block_result.d.ts +222 -0
- package/dest/block/validate_block_result.d.ts.map +1 -0
- package/dest/block/validate_block_result.js +83 -0
- package/dest/checkpoint/checkpoint_body.d.ts +4 -0
- package/dest/checkpoint/checkpoint_body.d.ts.map +1 -0
- package/dest/checkpoint/checkpoint_body.js +9 -0
- package/dest/checkpoint/index.d.ts +2 -0
- package/dest/checkpoint/index.d.ts.map +1 -0
- package/dest/checkpoint/index.js +1 -0
- package/dest/config/node-rpc-config.d.ts +2 -0
- package/dest/config/node-rpc-config.d.ts.map +1 -1
- package/dest/config/node-rpc-config.js +6 -0
- package/dest/contract/contract_address.d.ts +1 -1
- package/dest/contract/contract_address.js +1 -1
- package/dest/contract/contract_class_metadata.d.ts +8 -0
- package/dest/contract/contract_class_metadata.d.ts.map +1 -0
- package/dest/contract/contract_class_metadata.js +1 -0
- package/dest/contract/contract_instance.d.ts +9 -8
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +1 -2
- package/dest/contract/contract_metadata.d.ts +7 -0
- package/dest/contract/contract_metadata.d.ts.map +1 -0
- package/dest/contract/contract_metadata.js +1 -0
- package/dest/contract/index.d.ts +2 -0
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +2 -0
- package/dest/contract/interfaces/contract_class.d.ts +4 -4
- package/dest/contract/interfaces/contract_instance.d.ts +2 -2
- package/dest/epoch-helpers/index.d.ts +8 -2
- package/dest/epoch-helpers/index.d.ts.map +1 -1
- package/dest/epoch-helpers/index.js +9 -0
- package/dest/fees/transaction_fee.d.ts.map +1 -1
- package/dest/fees/transaction_fee.js +3 -0
- package/dest/file-store/factory.d.ts.map +1 -1
- package/dest/file-store/factory.js +18 -0
- package/dest/file-store/interface.d.ts +8 -2
- package/dest/file-store/interface.d.ts.map +1 -1
- package/dest/file-store/s3.d.ts +26 -0
- package/dest/file-store/s3.d.ts.map +1 -0
- package/dest/file-store/s3.js +252 -0
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +0 -3
- package/dest/interfaces/archiver.d.ts +43 -0
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +17 -1
- package/dest/interfaces/aztec-node-admin.d.ts +87 -40
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +7 -1
- package/dest/interfaces/aztec-node.d.ts +35 -2
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +8 -1
- package/dest/interfaces/block-builder.d.ts +7 -8
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/client.d.ts +0 -1
- package/dest/interfaces/client.d.ts.map +1 -1
- package/dest/interfaces/client.js +0 -1
- package/dest/interfaces/configs.d.ts +10 -0
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +3 -1
- package/dest/interfaces/epoch-prover.d.ts +26 -9
- package/dest/interfaces/epoch-prover.d.ts.map +1 -1
- package/dest/interfaces/merkle_tree_operations.d.ts +5 -0
- package/dest/interfaces/merkle_tree_operations.d.ts.map +1 -1
- package/dest/interfaces/p2p.d.ts +2 -0
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +2 -1
- package/dest/interfaces/private_kernel_prover.d.ts +2 -2
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +349 -200
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/proving-job.js +131 -113
- package/dest/interfaces/server.d.ts +1 -0
- package/dest/interfaces/server.d.ts.map +1 -1
- package/dest/interfaces/server.js +1 -0
- package/dest/interfaces/server_circuit_prover.d.ts +34 -34
- package/dest/interfaces/server_circuit_prover.d.ts.map +1 -1
- package/dest/interfaces/slasher.d.ts +4 -0
- package/dest/interfaces/slasher.d.ts.map +1 -1
- package/dest/interfaces/slasher.js +1 -0
- package/dest/interfaces/tx_provider.d.ts +1 -1
- package/dest/interfaces/tx_provider.d.ts.map +1 -1
- package/dest/interfaces/validator.d.ts +163 -0
- package/dest/interfaces/validator.d.ts.map +1 -0
- package/dest/interfaces/validator.js +18 -0
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -2
- package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts +4 -3
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/nullifier.d.ts +2 -2
- package/dest/kernel/nullifier.d.ts.map +1 -1
- package/dest/kernel/nullifier.js +11 -11
- package/dest/kernel/private_call_data.d.ts +4 -24
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_data.js +4 -16
- package/dest/kernel/private_circuit_public_inputs.d.ts +5 -5
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +7 -7
- package/dest/kernel/private_context_inputs.d.ts +2 -2
- package/dest/kernel/private_context_inputs.d.ts.map +1 -1
- package/dest/kernel/private_context_inputs.js +4 -4
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +3 -3
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_circuit_public_inputs.js +3 -3
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +5 -4
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.js +7 -6
- package/dest/kernel/private_kernel_prover_output.d.ts +1 -1
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts +1 -0
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_public_inputs.js +4 -1
- package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +2 -0
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.js +7 -0
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +1 -1
- package/dest/keys/derivation.d.ts +0 -2
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +1 -21
- package/dest/logs/contract_class_log.d.ts +1 -1
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +1 -3
- package/dest/logs/debug_log.d.ts +13 -0
- package/dest/logs/debug_log.d.ts.map +1 -0
- package/dest/logs/debug_log.js +26 -0
- package/dest/logs/directional_app_tagging_secret.d.ts +40 -0
- package/dest/logs/directional_app_tagging_secret.d.ts.map +1 -0
- package/dest/logs/directional_app_tagging_secret.js +64 -0
- package/dest/logs/index.d.ts +3 -1
- package/dest/logs/index.d.ts.map +1 -1
- package/dest/logs/index.js +3 -1
- package/dest/logs/log_with_tx_data.d.ts +9 -12
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.js +18 -23
- package/dest/logs/pre_tag.d.ts +34 -0
- package/dest/logs/pre_tag.d.ts.map +1 -0
- package/dest/logs/pre_tag.js +7 -0
- package/dest/logs/public_log.d.ts +23 -10
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +117 -42
- package/dest/messaging/inbox_leaf.d.ts +2 -0
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/inbox_leaf.js +3 -0
- package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +16 -18
- package/dest/noir/index.d.ts +11 -0
- package/dest/noir/index.d.ts.map +1 -1
- package/dest/note/index.d.ts +1 -1
- package/dest/note/index.d.ts.map +1 -1
- package/dest/note/index.js +1 -1
- package/dest/note/notes_filter.d.ts +0 -5
- package/dest/note/notes_filter.d.ts.map +1 -1
- package/dest/note/notes_filter.js +0 -3
- package/dest/note/unique_note.d.ts +43 -0
- package/dest/note/unique_note.d.ts.map +1 -0
- package/dest/note/{extended_note.js → unique_note.js} +9 -48
- package/dest/p2p/block_attestation.d.ts +45 -9
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/block_attestation.js +37 -15
- package/dest/p2p/block_proposal.d.ts +7 -9
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +13 -14
- package/dest/p2p/consensus_payload.d.ts +35 -6
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +21 -8
- package/dest/p2p/gossipable.d.ts +2 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +5 -14
- package/dest/p2p/signature_utils.d.ts +2 -1
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +1 -0
- package/dest/parity/index.d.ts +2 -3
- package/dest/parity/index.d.ts.map +1 -1
- package/dest/parity/index.js +2 -3
- package/dest/parity/{base_parity_inputs.d.ts → parity_base_private_inputs.d.ts} +7 -7
- package/dest/parity/parity_base_private_inputs.d.ts.map +1 -0
- package/dest/parity/{base_parity_inputs.js → parity_base_private_inputs.js} +10 -6
- package/dest/parity/parity_root_private_inputs.d.ts +39 -0
- package/dest/parity/parity_root_private_inputs.d.ts.map +1 -0
- package/dest/parity/{root_parity_inputs.js → parity_root_private_inputs.js} +12 -13
- package/dest/proofs/client_ivc_proof.d.ts +17 -7
- package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
- package/dest/proofs/client_ivc_proof.js +78 -19
- package/dest/proofs/index.d.ts +1 -0
- package/dest/proofs/index.d.ts.map +1 -1
- package/dest/proofs/index.js +1 -0
- package/dest/proofs/proof_data.d.ts +21 -0
- package/dest/proofs/proof_data.d.ts.map +1 -0
- package/dest/proofs/proof_data.js +22 -0
- package/dest/proofs/proving_request_type.d.ts +17 -13
- package/dest/proofs/proving_request_type.d.ts.map +1 -1
- package/dest/proofs/proving_request_type.js +17 -12
- package/dest/rollup/avm_proof_data.d.ts +2 -12
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.js +0 -24
- package/dest/rollup/base_rollup_hints.d.ts +17 -17
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +26 -26
- package/dest/rollup/block_constant_data.d.ts +24 -10
- package/dest/rollup/block_constant_data.d.ts.map +1 -1
- package/dest/rollup/block_constant_data.js +18 -10
- package/dest/rollup/{block_merge_rollup.d.ts → block_merge_rollup_private_inputs.d.ts} +17 -10
- package/dest/rollup/block_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{block_merge_rollup.js → block_merge_rollup_private_inputs.js} +14 -13
- package/dest/rollup/block_rollup_public_inputs.d.ts +124 -0
- package/dest/rollup/block_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/block_rollup_public_inputs.js +85 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts +236 -0
- package/dest/rollup/block_root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/block_root_rollup_private_inputs.js +257 -0
- package/dest/rollup/checkpoint_constant_data.d.ts +54 -0
- package/dest/rollup/checkpoint_constant_data.d.ts.map +1 -0
- package/dest/rollup/checkpoint_constant_data.js +55 -0
- package/dest/{tx/proposed_block_header.d.ts → rollup/checkpoint_header.d.ts} +12 -11
- package/dest/rollup/checkpoint_header.d.ts.map +1 -0
- package/dest/{tx/proposed_block_header.js → rollup/checkpoint_header.js} +14 -8
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts +30 -0
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_merge_rollup_private_inputs.js +37 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +106 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_rollup_public_inputs.js +108 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +123 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +178 -0
- package/dest/rollup/epoch_constant_data.d.ts +23 -6
- package/dest/rollup/epoch_constant_data.d.ts.map +1 -1
- package/dest/rollup/epoch_constant_data.js +25 -12
- package/dest/rollup/index.d.ts +17 -16
- package/dest/rollup/index.d.ts.map +1 -1
- package/dest/rollup/index.js +17 -16
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts +21 -0
- package/dest/rollup/private_tx_base_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/private_tx_base_rollup_private_inputs.js +42 -0
- package/dest/rollup/public_tube_private_inputs.d.ts +21 -0
- package/dest/rollup/public_tube_private_inputs.d.ts.map +1 -0
- package/dest/rollup/public_tube_private_inputs.js +42 -0
- package/dest/rollup/public_tube_public_inputs.d.ts +20 -0
- package/dest/rollup/public_tube_public_inputs.d.ts.map +1 -0
- package/dest/rollup/public_tube_public_inputs.js +41 -0
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts +23 -0
- package/dest/rollup/public_tx_base_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/public_tx_base_rollup_private_inputs.js +46 -0
- package/dest/rollup/root_rollup_private_inputs.d.ts +67 -0
- package/dest/rollup/root_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/root_rollup_private_inputs.js +69 -0
- package/dest/rollup/root_rollup_public_inputs.d.ts +46 -0
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/root_rollup_public_inputs.js +71 -0
- package/dest/rollup/{state_diff_hints.d.ts → tree_snapshot_diff_hints.d.ts} +22 -38
- package/dest/rollup/tree_snapshot_diff_hints.d.ts.map +1 -0
- package/dest/rollup/tree_snapshot_diff_hints.js +75 -0
- package/dest/rollup/{merge_rollup.d.ts → tx_merge_rollup_private_inputs.d.ts} +11 -10
- package/dest/rollup/tx_merge_rollup_private_inputs.d.ts.map +1 -0
- package/dest/rollup/{merge_rollup.js → tx_merge_rollup_private_inputs.js} +14 -13
- package/dest/rollup/{base_or_merge_rollup_public_inputs.d.ts → tx_rollup_public_inputs.d.ts} +14 -14
- package/dest/rollup/tx_rollup_public_inputs.d.ts.map +1 -0
- package/dest/rollup/{base_or_merge_rollup_public_inputs.js → tx_rollup_public_inputs.js} +15 -15
- package/dest/slashing/types.d.ts +1 -0
- package/dest/slashing/types.d.ts.map +1 -1
- package/dest/slashing/types.js +22 -0
- package/dest/snapshots/download.d.ts.map +1 -1
- package/dest/snapshots/download.js +58 -2
- package/dest/snapshots/upload.d.ts.map +1 -1
- package/dest/snapshots/upload.js +1 -0
- package/dest/stats/stats.d.ts +1 -1
- package/dest/stats/stats.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +42 -74
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +144 -167
- package/dest/tests/mocks.d.ts +14 -8
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +53 -31
- package/dest/trees/index.d.ts +0 -1
- package/dest/trees/index.d.ts.map +1 -1
- package/dest/trees/index.js +0 -1
- package/dest/trees/merkle_tree_id.d.ts +4 -4
- package/dest/trees/nullifier_membership_witness.d.ts +3 -3
- package/dest/tx/block_header.d.ts +12 -13
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/block_header.js +16 -21
- package/dest/tx/content_commitment.d.ts +1 -0
- package/dest/tx/content_commitment.d.ts.map +1 -1
- package/dest/tx/content_commitment.js +3 -0
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/global_variables.js +0 -1
- package/dest/tx/index.d.ts +2 -1
- package/dest/tx/index.d.ts.map +1 -1
- package/dest/tx/index.js +2 -1
- package/dest/tx/indexed_tx_effect.d.ts +3 -3
- package/dest/tx/partial_state_reference.d.ts +1 -0
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.js +3 -0
- package/dest/tx/private_execution_result.d.ts +7 -2
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +10 -6
- package/dest/tx/private_tx_constant_data.d.ts +60 -0
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -0
- package/dest/tx/private_tx_constant_data.js +69 -0
- package/dest/tx/processed_tx.d.ts +0 -1
- package/dest/tx/processed_tx.d.ts.map +1 -1
- package/dest/tx/processed_tx.js +1 -6
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +0 -2
- package/dest/tx/protocol_contracts.d.ts +29 -0
- package/dest/tx/protocol_contracts.d.ts.map +1 -0
- package/dest/tx/protocol_contracts.js +49 -0
- package/dest/tx/simulated_tx.d.ts +3 -3
- package/dest/tx/state_reference.d.ts +1 -0
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/state_reference.js +4 -1
- package/dest/tx/tx.d.ts +6 -9
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +10 -11
- package/dest/tx/tx_constant_data.d.ts +6 -38
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_constant_data.js +11 -20
- package/dest/tx/tx_effect.d.ts +3 -36
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +63 -202
- package/dest/tx/validator/error_texts.d.ts +1 -1
- package/dest/tx/validator/error_texts.d.ts.map +1 -1
- package/dest/tx/validator/error_texts.js +1 -1
- package/dest/update-checker/update-checker.d.ts +1 -1
- package/dest/update-checker/update-checker.d.ts.map +1 -1
- package/dest/update-checker/update-checker.js +1 -1
- package/dest/validators/schemas.d.ts +42 -4
- package/dest/validators/schemas.d.ts.map +1 -1
- package/dest/validators/schemas.js +5 -4
- package/dest/validators/types.d.ts +8 -10
- package/dest/validators/types.d.ts.map +1 -1
- package/dest/versioning/versioning.d.ts +2 -2
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/versioning/versioning.js +18 -13
- package/dest/world-state/index.d.ts +2 -0
- package/dest/world-state/index.d.ts.map +1 -0
- package/dest/world-state/index.js +1 -0
- package/dest/world-state/world_state_revision.d.ts +22 -0
- package/dest/world-state/world_state_revision.d.ts.map +1 -0
- package/dest/world-state/world_state_revision.js +21 -0
- package/dest/zkpassport/index.d.ts +17 -11
- package/dest/zkpassport/index.d.ts.map +1 -1
- package/dest/zkpassport/index.js +21 -15
- package/package.json +15 -11
- package/src/abi/abi.ts +1 -1
- package/src/abi/contract_artifact.ts +3 -0
- package/src/abi/event_metadata_definition.ts +8 -0
- package/src/abi/function_call.ts +5 -1
- package/src/abi/index.ts +1 -0
- package/src/avm/avm.ts +15 -7
- package/src/avm/avm_accumulated_data.ts +25 -29
- package/src/avm/avm_circuit_public_inputs.ts +21 -0
- package/src/avm/index.ts +1 -1
- package/src/avm/message_pack.ts +25 -1
- package/src/block/attestation_info.ts +62 -0
- package/src/block/body.ts +25 -23
- package/src/block/index.ts +4 -0
- package/src/block/l2_block.ts +39 -19
- package/src/block/l2_block_code_to_purge.ts +30 -31
- package/src/block/l2_block_header.ts +232 -0
- package/src/block/l2_block_info.ts +63 -0
- package/src/block/l2_block_source.ts +33 -51
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +1 -1
- package/src/block/proposal/attestations_and_signers.ts +121 -0
- package/src/block/proposal/index.ts +1 -0
- package/src/block/published_l2_block.ts +37 -15
- package/src/block/test/l2_tips_store_test_suite.ts +7 -7
- package/src/block/validate_block_result.ts +122 -0
- package/src/checkpoint/checkpoint_body.ts +10 -0
- package/src/checkpoint/index.ts +1 -0
- package/src/config/node-rpc-config.ts +9 -0
- package/src/contract/contract_address.ts +1 -1
- package/src/contract/contract_class_metadata.ts +8 -0
- package/src/contract/contract_instance.ts +11 -10
- package/src/contract/contract_metadata.ts +7 -0
- package/src/contract/index.ts +2 -0
- package/src/contract/interfaces/contract_class.ts +1 -1
- package/src/epoch-helpers/index.ts +24 -2
- package/src/fees/transaction_fee.ts +11 -0
- package/src/file-store/factory.ts +15 -0
- package/src/file-store/interface.ts +8 -2
- package/src/file-store/s3.ts +254 -0
- package/src/hash/hash.ts +0 -4
- package/src/interfaces/archiver.ts +46 -1
- package/src/interfaces/aztec-node-admin.ts +17 -1
- package/src/interfaces/aztec-node.ts +53 -2
- package/src/interfaces/block-builder.ts +11 -12
- package/src/interfaces/client.ts +0 -1
- package/src/interfaces/configs.ts +6 -0
- package/src/interfaces/epoch-prover.ts +35 -11
- package/src/interfaces/merkle_tree_operations.ts +6 -0
- package/src/interfaces/p2p.ts +4 -0
- package/src/interfaces/private_kernel_prover.ts +2 -2
- package/src/interfaces/proving-job.ts +215 -134
- package/src/interfaces/server.ts +1 -0
- package/src/interfaces/server_circuit_prover.ts +87 -61
- package/src/interfaces/slasher.ts +2 -0
- package/src/interfaces/tx_provider.ts +1 -0
- package/src/interfaces/validator.ts +95 -0
- package/src/kernel/hints/build_nullifier_read_request_hints.ts +3 -2
- package/src/kernel/hints/nullifier_read_request_hints.ts +3 -3
- package/src/kernel/nullifier.ts +8 -8
- package/src/kernel/private_call_data.ts +2 -21
- package/src/kernel/private_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_context_inputs.ts +2 -2
- package/src/kernel/private_kernel_circuit_public_inputs.ts +4 -4
- package/src/kernel/private_kernel_init_circuit_private_inputs.ts +5 -4
- package/src/kernel/private_kernel_prover_output.ts +1 -1
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +8 -2
- package/src/kernel/private_to_public_kernel_circuit_public_inputs.ts +9 -0
- package/src/keys/derivation.ts +1 -26
- package/src/logs/contract_class_log.ts +2 -3
- package/src/logs/debug_log.ts +32 -0
- package/src/logs/directional_app_tagging_secret.ts +78 -0
- package/src/logs/index.ts +3 -1
- package/src/logs/log_with_tx_data.ts +14 -24
- package/src/logs/pre_tag.ts +25 -0
- package/src/logs/public_log.ts +120 -58
- package/src/messaging/inbox_leaf.ts +5 -0
- package/src/messaging/l2_to_l1_membership.ts +20 -26
- package/src/noir/index.ts +11 -0
- package/src/note/index.ts +1 -1
- package/src/note/notes_filter.ts +0 -7
- package/src/note/{extended_note.ts → unique_note.ts} +14 -75
- package/src/p2p/block_attestation.ts +46 -15
- package/src/p2p/block_proposal.ts +15 -18
- package/src/p2p/consensus_payload.ts +30 -10
- package/src/p2p/gossipable.ts +6 -16
- package/src/p2p/signature_utils.ts +1 -0
- package/src/parity/index.ts +2 -3
- package/src/parity/{base_parity_inputs.ts → parity_base_private_inputs.ts} +13 -11
- package/src/parity/{root_parity_inputs.ts → parity_root_private_inputs.ts} +16 -18
- package/src/proofs/client_ivc_proof.ts +86 -20
- package/src/proofs/index.ts +1 -0
- package/src/proofs/proof_data.ts +36 -0
- package/src/proofs/proving_request_type.ts +14 -10
- package/src/rollup/avm_proof_data.ts +2 -31
- package/src/rollup/base_rollup_hints.ts +22 -22
- package/src/rollup/block_constant_data.ts +16 -6
- package/src/rollup/{block_merge_rollup.ts → block_merge_rollup_private_inputs.ts} +15 -11
- package/src/rollup/block_rollup_public_inputs.ts +123 -0
- package/src/rollup/block_root_rollup_private_inputs.ts +312 -0
- package/src/rollup/checkpoint_constant_data.ts +84 -0
- package/src/{tx/proposed_block_header.ts → rollup/checkpoint_header.ts} +40 -15
- package/src/rollup/checkpoint_merge_rollup_private_inputs.ts +49 -0
- package/src/rollup/{block_root_or_block_merge_public_inputs.ts → checkpoint_rollup_public_inputs.ts} +30 -52
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +218 -0
- package/src/rollup/epoch_constant_data.ts +28 -10
- package/src/rollup/index.ts +17 -16
- package/src/rollup/private_tx_base_rollup_private_inputs.ts +53 -0
- package/src/rollup/public_tube_private_inputs.ts +53 -0
- package/src/rollup/public_tube_public_inputs.ts +52 -0
- package/src/rollup/public_tx_base_rollup_private_inputs.ts +57 -0
- package/src/rollup/root_rollup_private_inputs.ts +90 -0
- package/src/rollup/root_rollup_public_inputs.ts +99 -0
- package/src/rollup/{state_diff_hints.ts → tree_snapshot_diff_hints.ts} +26 -41
- package/src/rollup/{merge_rollup.ts → tx_merge_rollup_private_inputs.ts} +13 -9
- package/src/rollup/{base_or_merge_rollup_public_inputs.ts → tx_rollup_public_inputs.ts} +13 -13
- package/src/slashing/types.ts +23 -0
- package/src/snapshots/download.ts +66 -2
- package/src/snapshots/upload.ts +1 -0
- package/src/stats/stats.ts +19 -13
- package/src/tests/factories.ts +217 -275
- package/src/tests/mocks.ts +87 -57
- package/src/trees/index.ts +0 -1
- package/src/tx/block_header.ts +17 -32
- package/src/tx/content_commitment.ts +4 -0
- package/src/tx/global_variables.ts +0 -1
- package/src/tx/index.ts +2 -1
- package/src/tx/partial_state_reference.ts +8 -0
- package/src/tx/private_execution_result.ts +9 -3
- package/src/tx/private_tx_constant_data.ts +94 -0
- package/src/tx/processed_tx.ts +1 -7
- package/src/tx/profiling.ts +0 -2
- package/src/tx/protocol_contracts.ts +70 -0
- package/src/tx/state_reference.ts +5 -1
- package/src/tx/tx.ts +12 -13
- package/src/tx/tx_constant_data.ts +8 -21
- package/src/tx/tx_effect.ts +64 -213
- package/src/tx/validator/error_texts.ts +1 -1
- package/src/update-checker/update-checker.ts +1 -1
- package/src/validators/schemas.ts +6 -4
- package/src/validators/types.ts +9 -10
- package/src/versioning/versioning.ts +20 -15
- package/src/world-state/index.ts +1 -0
- package/src/world-state/world_state_revision.ts +21 -0
- package/src/zkpassport/index.ts +42 -30
- package/dest/avm/public_data_hint.d.ts +0 -16
- package/dest/avm/public_data_hint.d.ts.map +0 -1
- package/dest/avm/public_data_hint.js +0 -27
- package/dest/interfaces/pxe.d.ts +0 -329
- package/dest/interfaces/pxe.d.ts.map +0 -1
- package/dest/interfaces/pxe.js +0 -100
- package/dest/logs/indexed_tagging_secret.d.ts +0 -28
- package/dest/logs/indexed_tagging_secret.d.ts.map +0 -1
- package/dest/logs/indexed_tagging_secret.js +0 -50
- package/dest/note/extended_note.d.ts +0 -111
- package/dest/note/extended_note.d.ts.map +0 -1
- package/dest/parity/base_parity_inputs.d.ts.map +0 -1
- package/dest/parity/root_parity_input.d.ts +0 -52
- package/dest/parity/root_parity_input.d.ts.map +0 -1
- package/dest/parity/root_parity_input.js +0 -50
- package/dest/parity/root_parity_inputs.d.ts +0 -37
- package/dest/parity/root_parity_inputs.d.ts.map +0 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +0 -1
- package/dest/rollup/block_merge_rollup.d.ts.map +0 -1
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +0 -134
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +0 -1
- package/dest/rollup/block_root_or_block_merge_public_inputs.js +0 -125
- package/dest/rollup/block_root_rollup.d.ts +0 -283
- package/dest/rollup/block_root_rollup.d.ts.map +0 -1
- package/dest/rollup/block_root_rollup.js +0 -306
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts +0 -51
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/empty_block_root_rollup_inputs.js +0 -65
- package/dest/rollup/merge_rollup.d.ts.map +0 -1
- package/dest/rollup/padding_block_root_rollup_inputs.d.ts +0 -20
- package/dest/rollup/padding_block_root_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/padding_block_root_rollup_inputs.js +0 -39
- package/dest/rollup/previous_rollup_block_data.d.ts +0 -47
- package/dest/rollup/previous_rollup_block_data.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_block_data.js +0 -37
- package/dest/rollup/previous_rollup_data.d.ts +0 -47
- package/dest/rollup/previous_rollup_data.d.ts.map +0 -1
- package/dest/rollup/previous_rollup_data.js +0 -37
- package/dest/rollup/private_base_rollup_inputs.d.ts +0 -21
- package/dest/rollup/private_base_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/private_base_rollup_inputs.js +0 -44
- package/dest/rollup/private_tube_data.d.ts +0 -15
- package/dest/rollup/private_tube_data.d.ts.map +0 -1
- package/dest/rollup/private_tube_data.js +0 -25
- package/dest/rollup/public_base_rollup_inputs.d.ts +0 -23
- package/dest/rollup/public_base_rollup_inputs.d.ts.map +0 -1
- package/dest/rollup/public_base_rollup_inputs.js +0 -48
- package/dest/rollup/public_tube_data.d.ts +0 -15
- package/dest/rollup/public_tube_data.d.ts.map +0 -1
- package/dest/rollup/public_tube_data.js +0 -25
- package/dest/rollup/root_rollup.d.ts +0 -106
- package/dest/rollup/root_rollup.d.ts.map +0 -1
- package/dest/rollup/root_rollup.js +0 -147
- package/dest/rollup/state_diff_hints.d.ts.map +0 -1
- package/dest/rollup/state_diff_hints.js +0 -85
- package/dest/rollup/tube_inputs.d.ts +0 -43
- package/dest/rollup/tube_inputs.d.ts.map +0 -1
- package/dest/rollup/tube_inputs.js +0 -63
- package/dest/trees/protocol_contract_leaf.d.ts +0 -84
- package/dest/trees/protocol_contract_leaf.d.ts.map +0 -1
- package/dest/trees/protocol_contract_leaf.js +0 -100
- package/dest/tx/proposed_block_header.d.ts.map +0 -1
- package/src/avm/public_data_hint.ts +0 -38
- package/src/interfaces/pxe.ts +0 -532
- package/src/logs/indexed_tagging_secret.ts +0 -48
- package/src/parity/root_parity_input.ts +0 -71
- package/src/rollup/block_root_rollup.ts +0 -380
- package/src/rollup/empty_block_root_rollup_inputs.ts +0 -80
- package/src/rollup/padding_block_root_rollup_inputs.ts +0 -47
- package/src/rollup/previous_rollup_block_data.ts +0 -48
- package/src/rollup/previous_rollup_data.ts +0 -48
- package/src/rollup/private_base_rollup_inputs.ts +0 -53
- package/src/rollup/private_tube_data.ts +0 -35
- package/src/rollup/public_base_rollup_inputs.ts +0 -59
- package/src/rollup/public_tube_data.ts +0 -35
- package/src/rollup/root_rollup.ts +0 -195
- package/src/rollup/tube_inputs.ts +0 -77
- package/src/trees/protocol_contract_leaf.ts +0 -128
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { GeneratorIndex, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
|
|
2
|
+
import { makeTuple } from '@aztec/foundation/array';
|
|
3
|
+
import { arraySerializedSizeOfNonEmpty } from '@aztec/foundation/collection';
|
|
4
|
+
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
|
|
5
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
6
|
+
import {
|
|
7
|
+
BufferReader,
|
|
8
|
+
FieldReader,
|
|
9
|
+
type Tuple,
|
|
10
|
+
assertLength,
|
|
11
|
+
serializeToBuffer,
|
|
12
|
+
serializeToFields,
|
|
13
|
+
} from '@aztec/foundation/serialize';
|
|
14
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
15
|
+
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
|
|
18
|
+
import { AztecAddress } from '../aztec-address/index.js';
|
|
19
|
+
|
|
20
|
+
export class ProtocolContracts {
|
|
21
|
+
constructor(public derivedAddresses: Tuple<AztecAddress, typeof MAX_PROTOCOL_CONTRACTS>) {}
|
|
22
|
+
|
|
23
|
+
static from(fields: FieldsOf<ProtocolContracts>) {
|
|
24
|
+
return new ProtocolContracts(...ProtocolContracts.getFields(fields));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static getFields(fields: FieldsOf<ProtocolContracts>) {
|
|
28
|
+
return [fields.derivedAddresses] as const;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static fromFields(fields: Fr[] | FieldReader): ProtocolContracts {
|
|
32
|
+
const reader = FieldReader.asReader(fields);
|
|
33
|
+
return new ProtocolContracts(reader.readArray(MAX_PROTOCOL_CONTRACTS, AztecAddress));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
toFields(): Fr[] {
|
|
37
|
+
return serializeToFields(...ProtocolContracts.getFields(this));
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static fromBuffer(buffer: Buffer | BufferReader): ProtocolContracts {
|
|
41
|
+
const reader = BufferReader.asReader(buffer);
|
|
42
|
+
return new ProtocolContracts(reader.readArray(MAX_PROTOCOL_CONTRACTS, AztecAddress));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
toBuffer() {
|
|
46
|
+
return serializeToBuffer(...ProtocolContracts.getFields(this));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static empty() {
|
|
50
|
+
return new ProtocolContracts(makeTuple(MAX_PROTOCOL_CONTRACTS, () => AztecAddress.zero()));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
getSize() {
|
|
54
|
+
return arraySerializedSizeOfNonEmpty(this.derivedAddresses);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
hash() {
|
|
58
|
+
return poseidon2HashWithSeparator(this.derivedAddresses, GeneratorIndex.PROTOCOL_CONTRACTS);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static get schema() {
|
|
62
|
+
return z
|
|
63
|
+
.object({
|
|
64
|
+
derivedAddresses: AztecAddress.schema.array().min(MAX_PROTOCOL_CONTRACTS).max(MAX_PROTOCOL_CONTRACTS),
|
|
65
|
+
})
|
|
66
|
+
.transform(
|
|
67
|
+
({ derivedAddresses }) => new ProtocolContracts(assertLength(derivedAddresses, MAX_PROTOCOL_CONTRACTS)),
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -78,6 +78,10 @@ export class StateReference {
|
|
|
78
78
|
return new StateReference(AppendOnlyTreeSnapshot.empty(), PartialStateReference.empty());
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
static random(): StateReference {
|
|
82
|
+
return new StateReference(AppendOnlyTreeSnapshot.random(), PartialStateReference.random());
|
|
83
|
+
}
|
|
84
|
+
|
|
81
85
|
toViem(): ViemStateReference {
|
|
82
86
|
return {
|
|
83
87
|
l1ToL2MessageTree: this.l1ToL2MessageTree.toViem(),
|
|
@@ -133,6 +137,6 @@ export class StateReference {
|
|
|
133
137
|
}
|
|
134
138
|
|
|
135
139
|
public equals(other: this): boolean {
|
|
136
|
-
return this.l1ToL2MessageTree.
|
|
140
|
+
return this.l1ToL2MessageTree.equals(other.l1ToL2MessageTree) && this.partial.equals(other.partial);
|
|
137
141
|
}
|
|
138
142
|
}
|
package/src/tx/tx.ts
CHANGED
|
@@ -38,7 +38,6 @@ export class Tx extends Gossipable {
|
|
|
38
38
|
public readonly data: PrivateKernelTailCircuitPublicInputs,
|
|
39
39
|
/**
|
|
40
40
|
* Proof from the private kernel circuit.
|
|
41
|
-
* TODO(#7368): This client IVC object currently contains various VKs that will eventually be more like static data.
|
|
42
41
|
*/
|
|
43
42
|
public readonly clientIvcProof: ClientIvcProof,
|
|
44
43
|
/**
|
|
@@ -162,6 +161,16 @@ export class Tx extends Gossipable {
|
|
|
162
161
|
);
|
|
163
162
|
}
|
|
164
163
|
|
|
164
|
+
/**
|
|
165
|
+
* Validates that the tx hash matches the computed hash from the tx data.
|
|
166
|
+
* This should be called when deserializing a tx from an untrusted source.
|
|
167
|
+
* @returns true if the hash is valid, false otherwise
|
|
168
|
+
*/
|
|
169
|
+
async validateTxHash(): Promise<boolean> {
|
|
170
|
+
const expectedHash = await Tx.computeTxHash(this);
|
|
171
|
+
return this.txHash.equals(expectedHash);
|
|
172
|
+
}
|
|
173
|
+
|
|
165
174
|
/**
|
|
166
175
|
* Gets public logs emitted by this tx.
|
|
167
176
|
* @param logsSource - An instance of `L2LogsSource` which can be used to obtain the logs.
|
|
@@ -207,16 +216,6 @@ export class Tx extends Gossipable {
|
|
|
207
216
|
return this.txHash;
|
|
208
217
|
}
|
|
209
218
|
|
|
210
|
-
/**
|
|
211
|
-
* Allows setting the hash of the Tx.
|
|
212
|
-
* Use this when you want to skip computing it from the original data.
|
|
213
|
-
* Don't set a Tx hash received from an untrusted source.
|
|
214
|
-
* @param hash - The hash to set.
|
|
215
|
-
*/
|
|
216
|
-
setTxHash(_hash: TxHash) {
|
|
217
|
-
return this;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
219
|
getCalldataMap(): Map<string, Fr[]> {
|
|
221
220
|
if (!this.calldataMap) {
|
|
222
221
|
const calldataMap = new Map();
|
|
@@ -238,7 +237,7 @@ export class Tx extends Gossipable {
|
|
|
238
237
|
classPublishedCount: this.data.getNonEmptyContractClassLogsHashes().length,
|
|
239
238
|
contractClassLogSize: this.data.getEmittedContractClassLogsLength(),
|
|
240
239
|
|
|
241
|
-
proofSize: this.clientIvcProof.
|
|
240
|
+
proofSize: this.clientIvcProof.fields.length,
|
|
242
241
|
size: this.toBuffer().length,
|
|
243
242
|
|
|
244
243
|
feePaymentMethod:
|
|
@@ -250,7 +249,7 @@ export class Tx extends Gossipable {
|
|
|
250
249
|
getSize() {
|
|
251
250
|
return (
|
|
252
251
|
this.data.getSize() +
|
|
253
|
-
this.clientIvcProof.
|
|
252
|
+
this.clientIvcProof.fields.length * Fr.SIZE_IN_BYTES +
|
|
254
253
|
arraySerializedSizeOfNonEmpty(this.contractClassLogFields) +
|
|
255
254
|
this.publicFunctionCalldata.reduce((accum, cd) => accum + cd.getSize(), 0)
|
|
256
255
|
);
|
|
@@ -7,29 +7,16 @@ import { BlockHeader } from './block_header.js';
|
|
|
7
7
|
import { TxContext } from './tx_context.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Version of `PrivateTxConstantData` exposed by the tail circuits
|
|
11
|
+
* It compresses the protocol contracts list to a hash to minimize the number of public inputs.
|
|
12
|
+
* Refer to `PrivateTxConstantData` for more details.
|
|
11
13
|
*/
|
|
12
14
|
export class TxConstantData {
|
|
13
15
|
constructor(
|
|
14
|
-
|
|
15
|
-
public historicalHeader: BlockHeader,
|
|
16
|
-
/**
|
|
17
|
-
* Context of the transaction.
|
|
18
|
-
*
|
|
19
|
-
* Note: `chainId` and `version` in txContext are not redundant to the values in
|
|
20
|
-
* self.historical_header.global_variables because they can be different in case of a protocol upgrade. In such
|
|
21
|
-
* a situation we could be using header from a block before the upgrade took place but be using the updated
|
|
22
|
-
* protocol to execute and prove the transaction.
|
|
23
|
-
*/
|
|
16
|
+
public anchorBlockHeader: BlockHeader,
|
|
24
17
|
public txContext: TxContext,
|
|
25
|
-
/**
|
|
26
|
-
* Root of the vk tree for the protocol circuits.
|
|
27
|
-
*/
|
|
28
18
|
public vkTreeRoot: Fr,
|
|
29
|
-
|
|
30
|
-
* Root of the tree for the protocol contracts.
|
|
31
|
-
*/
|
|
32
|
-
public protocolContractTreeRoot: Fr,
|
|
19
|
+
public protocolContractsHash: Fr,
|
|
33
20
|
) {}
|
|
34
21
|
|
|
35
22
|
static from(fields: FieldsOf<TxConstantData>) {
|
|
@@ -37,7 +24,7 @@ export class TxConstantData {
|
|
|
37
24
|
}
|
|
38
25
|
|
|
39
26
|
static getFields(fields: FieldsOf<TxConstantData>) {
|
|
40
|
-
return [fields.
|
|
27
|
+
return [fields.anchorBlockHeader, fields.txContext, fields.vkTreeRoot, fields.protocolContractsHash] as const;
|
|
41
28
|
}
|
|
42
29
|
|
|
43
30
|
static fromFields(fields: Fr[] | FieldReader): TxConstantData {
|
|
@@ -80,10 +67,10 @@ export class TxConstantData {
|
|
|
80
67
|
|
|
81
68
|
getSize() {
|
|
82
69
|
return (
|
|
83
|
-
this.
|
|
70
|
+
this.anchorBlockHeader.getSize() +
|
|
84
71
|
this.txContext.getSize() +
|
|
85
72
|
this.vkTreeRoot.size +
|
|
86
|
-
this.
|
|
73
|
+
this.protocolContractsHash.size
|
|
87
74
|
);
|
|
88
75
|
}
|
|
89
76
|
|
package/src/tx/tx_effect.ts
CHANGED
|
@@ -1,22 +1,13 @@
|
|
|
1
|
+
import { decodeTxStartMarker, encodeTxStartMarker, isValidTxStartMarker } from '@aztec/blob-lib/encoding';
|
|
1
2
|
import {
|
|
2
|
-
CONTRACT_CLASS_LOGS_PREFIX,
|
|
3
|
-
L2_L1_MSGS_PREFIX,
|
|
4
3
|
MAX_CONTRACT_CLASS_LOGS_PER_TX,
|
|
5
4
|
MAX_L2_TO_L1_MSGS_PER_TX,
|
|
6
5
|
MAX_NOTE_HASHES_PER_TX,
|
|
7
6
|
MAX_NULLIFIERS_PER_TX,
|
|
8
7
|
MAX_PRIVATE_LOGS_PER_TX,
|
|
9
8
|
MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
10
|
-
NOTES_PREFIX,
|
|
11
|
-
NULLIFIERS_PREFIX,
|
|
12
|
-
PRIVATE_LOGS_PREFIX,
|
|
13
|
-
PUBLIC_DATA_UPDATE_REQUESTS_PREFIX,
|
|
14
|
-
PUBLIC_LOGS_PREFIX,
|
|
15
|
-
REVERT_CODE_PREFIX,
|
|
16
|
-
TX_FEE_PREFIX,
|
|
17
9
|
} from '@aztec/constants';
|
|
18
10
|
import { type FieldsOf, makeTuple, makeTupleAsync } from '@aztec/foundation/array';
|
|
19
|
-
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
20
11
|
import { Fr } from '@aztec/foundation/fields';
|
|
21
12
|
import { type ZodFor, schemas } from '@aztec/foundation/schemas';
|
|
22
13
|
import {
|
|
@@ -35,16 +26,9 @@ import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
|
35
26
|
import { RevertCode } from '../avm/revert_code.js';
|
|
36
27
|
import { ContractClassLog } from '../logs/contract_class_log.js';
|
|
37
28
|
import { PrivateLog } from '../logs/private_log.js';
|
|
38
|
-
import { PublicLog } from '../logs/public_log.js';
|
|
29
|
+
import { FlatPublicLogs, PublicLog } from '../logs/public_log.js';
|
|
39
30
|
import { TxHash } from './tx_hash.js';
|
|
40
31
|
|
|
41
|
-
// This will appear as 0x74785f7374617274 in logs
|
|
42
|
-
export const TX_START_PREFIX = 8392562855083340404n;
|
|
43
|
-
// These are helper constants to decode tx effects from blob encoded fields
|
|
44
|
-
export const TX_START_PREFIX_BYTES_LENGTH = TX_START_PREFIX.toString(16).length / 2;
|
|
45
|
-
// 7 bytes for: | 0 | txlen[0] | txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revertCode |
|
|
46
|
-
export const TX_EFFECT_PREFIX_BYTE_LENGTH = TX_START_PREFIX_BYTES_LENGTH + 7;
|
|
47
|
-
|
|
48
32
|
export class TxEffect {
|
|
49
33
|
constructor(
|
|
50
34
|
/**
|
|
@@ -149,7 +133,7 @@ export class TxEffect {
|
|
|
149
133
|
serializeArrayOfBufferableToVector(this.l2ToL1Msgs, 1),
|
|
150
134
|
serializeArrayOfBufferableToVector(this.publicDataWrites, 1),
|
|
151
135
|
serializeArrayOfBufferableToVector(this.privateLogs, 1),
|
|
152
|
-
serializeArrayOfBufferableToVector(this.publicLogs,
|
|
136
|
+
serializeArrayOfBufferableToVector(this.publicLogs, 4),
|
|
153
137
|
serializeArrayOfBufferableToVector(this.contractClassLogs, 1),
|
|
154
138
|
]);
|
|
155
139
|
}
|
|
@@ -198,7 +182,7 @@ export class TxEffect {
|
|
|
198
182
|
reader.readVectorUint8Prefix(Fr),
|
|
199
183
|
reader.readVectorUint8Prefix(PublicDataWrite),
|
|
200
184
|
reader.readVectorUint8Prefix(PrivateLog),
|
|
201
|
-
reader.
|
|
185
|
+
reader.readVector(PublicLog),
|
|
202
186
|
reader.readVectorUint8Prefix(ContractClassLog),
|
|
203
187
|
);
|
|
204
188
|
}
|
|
@@ -244,7 +228,7 @@ export class TxEffect {
|
|
|
244
228
|
PublicDataWrite.random,
|
|
245
229
|
),
|
|
246
230
|
makeTuple(MAX_PRIVATE_LOGS_PER_TX, () => PrivateLog.random()),
|
|
247
|
-
await
|
|
231
|
+
await Promise.all(new Array(numPublicCallsPerTx * numPublicLogsPerCall).fill(null).map(() => PublicLog.random())),
|
|
248
232
|
await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random),
|
|
249
233
|
);
|
|
250
234
|
}
|
|
@@ -253,223 +237,90 @@ export class TxEffect {
|
|
|
253
237
|
return new TxEffect(RevertCode.OK, TxHash.zero(), Fr.ZERO, [], [], [], [], [], [], []);
|
|
254
238
|
}
|
|
255
239
|
|
|
256
|
-
isEmpty(): boolean {
|
|
257
|
-
return this.nullifiers.length === 0;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
240
|
/** Returns a hex representation of the TxEffect object. */
|
|
261
241
|
toString() {
|
|
262
242
|
return bufferToHex(this.toBuffer());
|
|
263
243
|
}
|
|
264
244
|
|
|
265
245
|
/**
|
|
266
|
-
* Returns
|
|
267
|
-
*
|
|
268
|
-
*/
|
|
269
|
-
private toPrefix(type: number, length: number): Fr {
|
|
270
|
-
const buf = Buffer.alloc(4);
|
|
271
|
-
buf.writeUint8(type);
|
|
272
|
-
buf.writeUInt16BE(length, 2);
|
|
273
|
-
return new Fr(buf);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Decodes the prefix as used in a blob to tx effect type and length.
|
|
278
|
-
*/
|
|
279
|
-
static fromPrefix(prefix: Fr) {
|
|
280
|
-
const buf = prefix.toBuffer().subarray(-4);
|
|
281
|
-
return { type: buf[0], length: new Fr(buf.subarray(-2)).toNumber() };
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Encodes the first field of a tx effect as used in a blob:
|
|
286
|
-
* TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
|
|
287
|
-
*/
|
|
288
|
-
private encodeFirstField(length: number, revertCode: RevertCode) {
|
|
289
|
-
const lengthBuf = Buffer.alloc(2);
|
|
290
|
-
lengthBuf.writeUInt16BE(length, 0);
|
|
291
|
-
return new Fr(
|
|
292
|
-
Buffer.concat([
|
|
293
|
-
toBufferBE(TX_START_PREFIX, TX_START_PREFIX_BYTES_LENGTH),
|
|
294
|
-
Buffer.alloc(1),
|
|
295
|
-
lengthBuf,
|
|
296
|
-
Buffer.alloc(1),
|
|
297
|
-
Buffer.from([REVERT_CODE_PREFIX]),
|
|
298
|
-
Buffer.alloc(1),
|
|
299
|
-
revertCode.toBuffer(),
|
|
300
|
-
]),
|
|
301
|
-
);
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
/**
|
|
305
|
-
* Decodes the first field of a tx effect as used in a blob:
|
|
306
|
-
* TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
|
|
307
|
-
* Assumes that isFirstField has been called already.
|
|
308
|
-
*/
|
|
309
|
-
static decodeFirstField(field: Fr) {
|
|
310
|
-
const buf = field.toBuffer().subarray(-TX_EFFECT_PREFIX_BYTE_LENGTH);
|
|
311
|
-
return {
|
|
312
|
-
length: new Fr(buf.subarray(TX_START_PREFIX_BYTES_LENGTH + 1, TX_START_PREFIX_BYTES_LENGTH + 3)).toNumber(),
|
|
313
|
-
revertCode: buf[buf.length - 1],
|
|
314
|
-
};
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* Determines whether a field is the first field of a tx effect
|
|
319
|
-
*/
|
|
320
|
-
static isFirstField(field: Fr) {
|
|
321
|
-
const buf = field.toBuffer();
|
|
322
|
-
if (
|
|
323
|
-
!buf
|
|
324
|
-
.subarray(0, field.size - TX_EFFECT_PREFIX_BYTE_LENGTH)
|
|
325
|
-
.equals(Buffer.alloc(field.size - TX_EFFECT_PREFIX_BYTE_LENGTH))
|
|
326
|
-
) {
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
329
|
-
const sliced = buf.subarray(-TX_EFFECT_PREFIX_BYTE_LENGTH);
|
|
330
|
-
if (
|
|
331
|
-
// Checking we start with the correct prefix...
|
|
332
|
-
!new Fr(sliced.subarray(0, TX_START_PREFIX_BYTES_LENGTH)).equals(new Fr(TX_START_PREFIX)) ||
|
|
333
|
-
// ...and include the revert code prefix..
|
|
334
|
-
sliced[sliced.length - 3] !== REVERT_CODE_PREFIX ||
|
|
335
|
-
// ...and the following revert code is valid.
|
|
336
|
-
sliced[sliced.length - 1] > 4
|
|
337
|
-
) {
|
|
338
|
-
return false;
|
|
339
|
-
}
|
|
340
|
-
return true;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
/**
|
|
344
|
-
* Returns a flat packed array of prefixed fields of all tx effects, used for blobs.
|
|
246
|
+
* Returns a flat packed array of fields of all tx effects, to be appended to blobs.
|
|
247
|
+
* Must match the implementation in noir-protocol-circuits/crates/rollup-lib/src/tx_base/components/tx_blob_data.nr
|
|
345
248
|
*/
|
|
346
249
|
toBlobFields(): Fr[] {
|
|
347
|
-
if (this.isEmpty()) {
|
|
348
|
-
return [];
|
|
349
|
-
}
|
|
350
250
|
const flattened: Fr[] = [];
|
|
351
|
-
|
|
251
|
+
|
|
252
|
+
// We reassign the first field at the end when we know the length of all effects to create the tx start marker.
|
|
352
253
|
flattened.push(Fr.ZERO);
|
|
353
254
|
|
|
354
255
|
flattened.push(this.txHash.hash);
|
|
355
|
-
|
|
356
|
-
flattened.push(
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
);
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
flattened.
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
}
|
|
377
|
-
if (this.privateLogs.length) {
|
|
378
|
-
flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, this.privateLogs.length));
|
|
379
|
-
flattened.push(...this.privateLogs.flatMap(l => l.toBlobFields()));
|
|
380
|
-
}
|
|
381
|
-
if (this.publicLogs.length) {
|
|
382
|
-
flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, this.publicLogs.length));
|
|
383
|
-
flattened.push(...this.publicLogs.flatMap(l => l.toBlobFields()));
|
|
384
|
-
}
|
|
385
|
-
if (this.contractClassLogs.length) {
|
|
386
|
-
flattened.push(this.toPrefix(CONTRACT_CLASS_LOGS_PREFIX, this.contractClassLogs.length));
|
|
387
|
-
flattened.push(...this.contractClassLogs.flatMap(l => l.toBlobFields()));
|
|
388
|
-
}
|
|
256
|
+
flattened.push(this.transactionFee);
|
|
257
|
+
flattened.push(...this.noteHashes);
|
|
258
|
+
flattened.push(...this.nullifiers);
|
|
259
|
+
flattened.push(...this.l2ToL1Msgs);
|
|
260
|
+
flattened.push(...this.publicDataWrites.flatMap(w => w.toBlobFields()));
|
|
261
|
+
flattened.push(...this.privateLogs.flatMap(l => l.toBlobFields()));
|
|
262
|
+
const flattenedPublicLogs = FlatPublicLogs.fromLogs(this.publicLogs);
|
|
263
|
+
flattened.push(...flattenedPublicLogs.toBlobFields());
|
|
264
|
+
flattened.push(...this.contractClassLogs.flatMap(l => l.toBlobFields()));
|
|
265
|
+
|
|
266
|
+
flattened[0] = encodeTxStartMarker({
|
|
267
|
+
revertCode: this.revertCode.getCode(),
|
|
268
|
+
numBlobFields: flattened.length,
|
|
269
|
+
numNoteHashes: this.noteHashes.length,
|
|
270
|
+
numNullifiers: this.nullifiers.length,
|
|
271
|
+
numL2ToL1Msgs: this.l2ToL1Msgs.length,
|
|
272
|
+
numPublicDataWrites: this.publicDataWrites.length,
|
|
273
|
+
numPrivateLogs: this.privateLogs.length,
|
|
274
|
+
publicLogsLength: flattenedPublicLogs.length,
|
|
275
|
+
contractClassLogLength: this.contractClassLogs[0]?.emittedLength ?? 0,
|
|
276
|
+
});
|
|
389
277
|
|
|
390
|
-
// The first value appended to each list of fields representing a tx effect is:
|
|
391
|
-
// TX_START_PREFIX | 0 | txlen[0] txlen[1] | 0 | REVERT_CODE_PREFIX | 0 | revert_code
|
|
392
|
-
// Tx start and len are to aid decomposing/ identifying when we reach a new tx effect
|
|
393
|
-
// The remaining bytes are used for revert code, since that only requires 3 bytes
|
|
394
|
-
flattened[0] = this.encodeFirstField(flattened.length, this.revertCode);
|
|
395
278
|
return flattened;
|
|
396
279
|
}
|
|
397
280
|
|
|
398
281
|
/**
|
|
399
|
-
* Decodes a flat packed array of
|
|
282
|
+
* Decodes a flat packed array of fields to TxEffect.
|
|
400
283
|
*/
|
|
401
284
|
static fromBlobFields(fields: Fr[] | FieldReader) {
|
|
402
|
-
const ensureEmpty = <T>(arr: Array<T>) => {
|
|
403
|
-
if (arr.length) {
|
|
404
|
-
throw new Error('Invalid fields given to TxEffect.fromBlobFields(): Attempted to assign property twice.');
|
|
405
|
-
}
|
|
406
|
-
};
|
|
407
|
-
|
|
408
|
-
const effect = this.empty();
|
|
409
285
|
const reader = FieldReader.asReader(fields);
|
|
410
286
|
const totalFields = reader.remainingFields();
|
|
411
287
|
if (!totalFields) {
|
|
412
|
-
|
|
288
|
+
throw new Error('Cannot process empty blob fields.');
|
|
413
289
|
}
|
|
414
290
|
|
|
415
|
-
const
|
|
416
|
-
if (!
|
|
417
|
-
throw new Error('Invalid fields given to TxEffect.fromBlobFields():
|
|
291
|
+
const txStartMarker = decodeTxStartMarker(reader.readField());
|
|
292
|
+
if (!isValidTxStartMarker(txStartMarker)) {
|
|
293
|
+
throw new Error('Invalid fields given to TxEffect.fromBlobFields(): invalid TxStartMarker');
|
|
418
294
|
}
|
|
419
295
|
|
|
420
|
-
const
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
const
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
effect.publicDataWrites = Array.from({ length }, () => PublicDataWrite.fromBlobFields(reader));
|
|
449
|
-
break;
|
|
450
|
-
}
|
|
451
|
-
case PRIVATE_LOGS_PREFIX: {
|
|
452
|
-
ensureEmpty(effect.privateLogs);
|
|
453
|
-
effect.privateLogs = Array.from({ length }, () => PrivateLog.fromBlobFields(reader));
|
|
454
|
-
break;
|
|
455
|
-
}
|
|
456
|
-
case PUBLIC_LOGS_PREFIX: {
|
|
457
|
-
ensureEmpty(effect.publicLogs);
|
|
458
|
-
effect.publicLogs = Array.from({ length }, () => PublicLog.fromBlobFields(reader));
|
|
459
|
-
break;
|
|
460
|
-
}
|
|
461
|
-
case CONTRACT_CLASS_LOGS_PREFIX: {
|
|
462
|
-
ensureEmpty(effect.contractClassLogs);
|
|
463
|
-
effect.contractClassLogs = Array.from({ length }, () => ContractClassLog.fromBlobFields(reader));
|
|
464
|
-
break;
|
|
465
|
-
}
|
|
466
|
-
case REVERT_CODE_PREFIX:
|
|
467
|
-
default:
|
|
468
|
-
throw new Error(`Too many fields to decode given to TxEffect.fromBlobFields()`);
|
|
469
|
-
}
|
|
470
|
-
fieldsProcessed = totalFields - reader.remainingFields();
|
|
471
|
-
}
|
|
472
|
-
return effect;
|
|
296
|
+
const revertCode = RevertCode.fromField(new Fr(txStartMarker.revertCode));
|
|
297
|
+
const txHash = new TxHash(reader.readField());
|
|
298
|
+
const transactionFee = reader.readField();
|
|
299
|
+
const noteHashes = reader.readFieldArray(txStartMarker.numNoteHashes);
|
|
300
|
+
const nullifiers = reader.readFieldArray(txStartMarker.numNullifiers);
|
|
301
|
+
const l2ToL1Msgs = reader.readFieldArray(txStartMarker.numL2ToL1Msgs);
|
|
302
|
+
const publicDataWrites = Array.from({ length: txStartMarker.numPublicDataWrites }, () =>
|
|
303
|
+
PublicDataWrite.fromBlobFields(reader),
|
|
304
|
+
);
|
|
305
|
+
const privateLogs = Array.from({ length: txStartMarker.numPrivateLogs }, () => PrivateLog.fromBlobFields(reader));
|
|
306
|
+
const publicLogs = FlatPublicLogs.fromBlobFields(txStartMarker.publicLogsLength, reader).toLogs();
|
|
307
|
+
const contractClassLogs =
|
|
308
|
+
txStartMarker.contractClassLogLength > 0
|
|
309
|
+
? [ContractClassLog.fromBlobFields(txStartMarker.contractClassLogLength, reader)]
|
|
310
|
+
: [];
|
|
311
|
+
|
|
312
|
+
return TxEffect.from({
|
|
313
|
+
revertCode,
|
|
314
|
+
txHash,
|
|
315
|
+
transactionFee,
|
|
316
|
+
noteHashes,
|
|
317
|
+
nullifiers,
|
|
318
|
+
l2ToL1Msgs,
|
|
319
|
+
publicDataWrites,
|
|
320
|
+
privateLogs,
|
|
321
|
+
publicLogs,
|
|
322
|
+
contractClassLogs,
|
|
323
|
+
});
|
|
473
324
|
}
|
|
474
325
|
|
|
475
326
|
static from(fields: FieldsOf<TxEffect>) {
|
|
@@ -514,7 +365,7 @@ export class TxEffect {
|
|
|
514
365
|
l2ToL1Msgs: [${this.l2ToL1Msgs.map(h => h.toString()).join(', ')}],
|
|
515
366
|
publicDataWrites: [${this.publicDataWrites.map(h => h.toString()).join(', ')}],
|
|
516
367
|
privateLogs: [${this.privateLogs.map(l => l.fields.map(f => f.toString()).join(',')).join(', ')}],
|
|
517
|
-
publicLogs:
|
|
368
|
+
publicLogs: ${inspect(this.publicLogs)},
|
|
518
369
|
contractClassLogs: [${this.contractClassLogs
|
|
519
370
|
.map(l =>
|
|
520
371
|
l
|
|
@@ -16,7 +16,7 @@ export const TX_ERROR_INVALID_INCLUDE_BY_TIMESTAMP = 'Invalid expiration timesta
|
|
|
16
16
|
export const TX_ERROR_INCORRECT_L1_CHAIN_ID = 'Incorrect L1 chain id';
|
|
17
17
|
export const TX_ERROR_INCORRECT_ROLLUP_VERSION = 'Incorrect rollup version';
|
|
18
18
|
export const TX_ERROR_INCORRECT_VK_TREE_ROOT = 'Incorrect verification keys tree root';
|
|
19
|
-
export const
|
|
19
|
+
export const TX_ERROR_INCORRECT_PROTOCOL_CONTRACTS_HASH = 'Incorrect protocol contracts hash';
|
|
20
20
|
|
|
21
21
|
// Proof
|
|
22
22
|
export const TX_ERROR_INVALID_PROOF = 'Invalid proof';
|
|
@@ -43,7 +43,7 @@ export class UpdateChecker extends EventEmitter<EventMap> {
|
|
|
43
43
|
private rollupVersion: bigint,
|
|
44
44
|
private fetch: typeof globalThis.fetch,
|
|
45
45
|
private getLatestRollupVersion: () => Promise<bigint>,
|
|
46
|
-
private checkIntervalMs = 60_000, // every
|
|
46
|
+
private checkIntervalMs = 10 * 60_000, // every 10 mins
|
|
47
47
|
private log = createLogger('foundation:update-check'),
|
|
48
48
|
) {
|
|
49
49
|
super();
|
|
@@ -4,6 +4,7 @@ import { z } from 'zod';
|
|
|
4
4
|
|
|
5
5
|
import type {
|
|
6
6
|
SingleValidatorStats,
|
|
7
|
+
ValidatorMissedStats,
|
|
7
8
|
ValidatorStats,
|
|
8
9
|
ValidatorStatusHistory,
|
|
9
10
|
ValidatorStatusInSlot,
|
|
@@ -35,19 +36,20 @@ const ValidatorTimeStatSchema = z.object({
|
|
|
35
36
|
date: z.string(),
|
|
36
37
|
});
|
|
37
38
|
|
|
38
|
-
const
|
|
39
|
+
const ValidatorMissedStatsSchema = z.object({
|
|
39
40
|
currentStreak: schemas.Integer,
|
|
40
41
|
rate: z.number().optional(),
|
|
41
42
|
count: schemas.Integer,
|
|
42
|
-
|
|
43
|
+
total: schemas.Integer,
|
|
44
|
+
}) satisfies ZodFor<ValidatorMissedStats>;
|
|
43
45
|
|
|
44
46
|
export const ValidatorStatsSchema = z.object({
|
|
45
47
|
address: schemas.EthAddress,
|
|
46
48
|
lastProposal: ValidatorTimeStatSchema.optional(),
|
|
47
49
|
lastAttestation: ValidatorTimeStatSchema.optional(),
|
|
48
50
|
totalSlots: schemas.Integer,
|
|
49
|
-
missedProposals:
|
|
50
|
-
missedAttestations:
|
|
51
|
+
missedProposals: ValidatorMissedStatsSchema,
|
|
52
|
+
missedAttestations: ValidatorMissedStatsSchema,
|
|
51
53
|
history: ValidatorStatusHistorySchema,
|
|
52
54
|
}) satisfies ZodFor<ValidatorStats>;
|
|
53
55
|
|
package/src/validators/types.ts
CHANGED
|
@@ -11,21 +11,20 @@ export type ValidatorStatusInSlot =
|
|
|
11
11
|
|
|
12
12
|
export type ValidatorStatusHistory = { slot: bigint; status: ValidatorStatusInSlot }[];
|
|
13
13
|
|
|
14
|
+
export type ValidatorMissedStats = {
|
|
15
|
+
currentStreak: number;
|
|
16
|
+
rate?: number;
|
|
17
|
+
count: number;
|
|
18
|
+
total: number;
|
|
19
|
+
};
|
|
20
|
+
|
|
14
21
|
export type ValidatorStats = {
|
|
15
22
|
address: EthAddress;
|
|
16
23
|
lastProposal?: { timestamp: bigint; slot: bigint; date: string };
|
|
17
24
|
lastAttestation?: { timestamp: bigint; slot: bigint; date: string };
|
|
18
25
|
totalSlots: number;
|
|
19
|
-
missedProposals:
|
|
20
|
-
|
|
21
|
-
rate?: number;
|
|
22
|
-
count: number;
|
|
23
|
-
};
|
|
24
|
-
missedAttestations: {
|
|
25
|
-
currentStreak: number;
|
|
26
|
-
rate?: number;
|
|
27
|
-
count: number;
|
|
28
|
-
};
|
|
26
|
+
missedProposals: ValidatorMissedStats;
|
|
27
|
+
missedAttestations: ValidatorMissedStats;
|
|
29
28
|
history: ValidatorStatusHistory;
|
|
30
29
|
};
|
|
31
30
|
|