@aztec/stdlib 0.86.0-starknet.1 → 0.87.0
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 +3 -5
- package/dest/abi/abi.d.ts.map +1 -1
- package/dest/abi/buffer.d.ts +0 -2
- package/dest/abi/buffer.d.ts.map +1 -1
- package/dest/abi/contract_artifact.d.ts +0 -2
- package/dest/abi/contract_artifact.d.ts.map +1 -1
- package/dest/abi/contract_artifact.js +3 -16
- package/dest/abi/decoder.d.ts.map +1 -1
- package/dest/abi/decoder.js +1 -1
- package/dest/abi/encoder.d.ts.map +1 -1
- package/dest/abi/encoder.js +1 -1
- package/dest/abi/event_selector.d.ts +0 -2
- package/dest/abi/event_selector.d.ts.map +1 -1
- package/dest/abi/function_selector.d.ts +0 -2
- package/dest/abi/function_selector.d.ts.map +1 -1
- package/dest/abi/note_selector.d.ts +0 -2
- package/dest/abi/note_selector.d.ts.map +1 -1
- package/dest/abi/selector.d.ts +0 -3
- package/dest/abi/selector.d.ts.map +1 -1
- package/dest/abi/utils.d.ts +0 -2
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/auth_witness/auth_witness.d.ts +1 -3
- package/dest/auth_witness/auth_witness.d.ts.map +1 -1
- package/dest/avm/avm.d.ts +39 -40
- package/dest/avm/avm.d.ts.map +1 -1
- package/dest/avm/avm.js +5 -5
- package/dest/avm/avm_accumulated_data.d.ts +4 -4
- package/dest/avm/avm_accumulated_data.d.ts.map +1 -1
- package/dest/avm/avm_accumulated_data.js +18 -2
- package/dest/avm/avm_circuit_public_inputs.d.ts +2 -4
- package/dest/avm/avm_circuit_public_inputs.d.ts.map +1 -1
- package/dest/avm/avm_circuit_public_inputs.js +26 -1
- package/dest/avm/avm_proving_request.d.ts +15 -17
- package/dest/avm/avm_proving_request.d.ts.map +1 -1
- package/dest/avm/contract_storage_read.d.ts +1 -3
- package/dest/avm/contract_storage_read.d.ts.map +1 -1
- package/dest/avm/contract_storage_update_request.d.ts +1 -3
- package/dest/avm/contract_storage_update_request.d.ts.map +1 -1
- package/dest/avm/message_pack.d.ts +0 -2
- package/dest/avm/message_pack.d.ts.map +1 -1
- package/dest/avm/message_pack.js +7 -1
- package/dest/avm/public_call_stack_item_compressed.d.ts +1 -3
- package/dest/avm/public_call_stack_item_compressed.d.ts.map +1 -1
- package/dest/avm/public_data_hint.d.ts +1 -3
- package/dest/avm/public_data_hint.d.ts.map +1 -1
- package/dest/avm/public_data_read.d.ts +1 -3
- package/dest/avm/public_data_read.d.ts.map +1 -1
- package/dest/avm/public_data_update_request.d.ts +1 -4
- package/dest/avm/public_data_update_request.d.ts.map +1 -1
- package/dest/avm/public_data_write.d.ts +4 -3
- package/dest/avm/public_data_write.d.ts.map +1 -1
- package/dest/avm/public_data_write.js +19 -1
- package/dest/avm/public_inner_call_request.d.ts +1 -4
- package/dest/avm/public_inner_call_request.d.ts.map +1 -1
- package/dest/avm/public_inner_call_request.js +1 -1
- package/dest/avm/revert_code.d.ts +0 -3
- package/dest/avm/revert_code.d.ts.map +1 -1
- package/dest/aztec-address/index.d.ts +1 -4
- package/dest/aztec-address/index.d.ts.map +1 -1
- package/dest/block/block_hash.d.ts +1 -3
- package/dest/block/block_hash.d.ts.map +1 -1
- package/dest/block/body.d.ts +1 -4
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +5 -11
- package/dest/block/l2_block.d.ts +1 -3
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +1 -1
- package/dest/block/l2_block_code_to_purge.d.ts +0 -2
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_source.d.ts +0 -1
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/config/{config.d.ts → chain-config.d.ts} +1 -1
- package/dest/config/chain-config.d.ts.map +1 -0
- package/dest/config/index.d.ts +2 -1
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +2 -1
- package/dest/config/node-rpc-config.d.ts +7 -0
- package/dest/config/node-rpc-config.d.ts.map +1 -0
- package/dest/config/node-rpc-config.js +8 -0
- package/dest/contract/artifact_hash.d.ts +1 -3
- package/dest/contract/artifact_hash.d.ts.map +1 -1
- package/dest/contract/artifact_hash.js +3 -2
- package/dest/contract/complete_address.d.ts +0 -2
- package/dest/contract/complete_address.d.ts.map +1 -1
- package/dest/contract/contract_class_id.d.ts +0 -2
- package/dest/contract/contract_class_id.d.ts.map +1 -1
- package/dest/contract/contract_instance.d.ts +1 -3
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance_update.d.ts +1 -3
- package/dest/contract/contract_instance_update.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_class.d.ts +17 -19
- package/dest/contract/interfaces/contract_class.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.d.ts +2 -2
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/private_function.d.ts +0 -2
- package/dest/contract/private_function.d.ts.map +1 -1
- package/dest/database-version/version_manager.d.ts +0 -4
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/errors/proving_error.d.ts.map +1 -1
- package/dest/errors/simulation_error.d.ts.map +1 -1
- package/dest/file-store/factory.js +1 -1
- package/dest/file-store/gcs.d.ts +0 -2
- package/dest/file-store/gcs.d.ts.map +1 -1
- package/dest/file-store/http.d.ts +1 -2
- package/dest/file-store/http.d.ts.map +1 -1
- package/dest/file-store/http.js +32 -16
- package/dest/file-store/interface.d.ts +0 -2
- package/dest/file-store/interface.d.ts.map +1 -1
- package/dest/file-store/local.d.ts +0 -2
- package/dest/file-store/local.d.ts.map +1 -1
- package/dest/gas/gas.d.ts +1 -4
- package/dest/gas/gas.d.ts.map +1 -1
- package/dest/gas/gas_fees.d.ts +1 -4
- package/dest/gas/gas_fees.d.ts.map +1 -1
- package/dest/gas/gas_settings.d.ts +1 -3
- package/dest/gas/gas_settings.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.d.ts +10 -0
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +4 -1
- package/dest/interfaces/aztec-node.d.ts +1 -2
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +7 -2
- package/dest/interfaces/configs.d.ts +5 -0
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +1 -0
- package/dest/interfaces/merkle_tree_operations.d.ts +0 -2
- 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 +1 -0
- package/dest/interfaces/private_kernel_prover.d.ts +0 -2
- package/dest/interfaces/private_kernel_prover.d.ts.map +1 -1
- package/dest/interfaces/prover-client.d.ts.map +1 -1
- package/dest/interfaces/proving-job.d.ts +15 -17
- package/dest/interfaces/proving-job.d.ts.map +1 -1
- package/dest/interfaces/pxe.d.ts +2 -3
- package/dest/interfaces/pxe.d.ts.map +1 -1
- package/dest/interfaces/pxe.js +2 -2
- package/dest/interfaces/service.d.ts +2 -3
- package/dest/interfaces/service.d.ts.map +1 -1
- package/dest/interfaces/world_state.d.ts +4 -1
- package/dest/interfaces/world_state.d.ts.map +1 -1
- package/dest/kernel/combined_constant_data.d.ts +1 -3
- package/dest/kernel/combined_constant_data.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_hint.d.ts +1 -3
- package/dest/kernel/hints/key_validation_hint.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request.d.ts +1 -3
- package/dest/kernel/hints/key_validation_request.d.ts.map +1 -1
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts +1 -3
- package/dest/kernel/hints/key_validation_request_and_generator.d.ts.map +1 -1
- package/dest/kernel/hints/note_hash_read_request_hints.d.ts +0 -2
- package/dest/kernel/hints/note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts +0 -2
- package/dest/kernel/hints/nullifier_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts +1 -3
- package/dest/kernel/hints/private_kernel_reset_hints.d.ts.map +1 -1
- package/dest/kernel/hints/read_request.d.ts +0 -2
- package/dest/kernel/hints/read_request.d.ts.map +1 -1
- package/dest/kernel/hints/read_request_hints.d.ts +4 -6
- package/dest/kernel/hints/read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/rollup_validation_requests.d.ts +1 -3
- package/dest/kernel/hints/rollup_validation_requests.d.ts.map +1 -1
- package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts +1 -3
- package/dest/kernel/hints/scoped_key_validation_request_and_generator.d.ts.map +1 -1
- package/dest/kernel/hints/transient_data_index_hint.d.ts +0 -3
- package/dest/kernel/hints/transient_data_index_hint.d.ts.map +1 -1
- package/dest/kernel/hints/tree_leaf_read_request.d.ts +0 -2
- package/dest/kernel/hints/tree_leaf_read_request.d.ts.map +1 -1
- package/dest/kernel/log_hash.d.ts +27 -9
- package/dest/kernel/log_hash.d.ts.map +1 -1
- package/dest/kernel/log_hash.js +72 -13
- package/dest/kernel/note_hash.d.ts +0 -2
- package/dest/kernel/note_hash.d.ts.map +1 -1
- package/dest/kernel/nullifier.d.ts +0 -2
- package/dest/kernel/nullifier.d.ts.map +1 -1
- package/dest/kernel/private_accumulated_data.d.ts +4 -6
- package/dest/kernel/private_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_accumulated_data.js +3 -3
- package/dest/kernel/private_call_data.d.ts +0 -2
- package/dest/kernel/private_call_data.d.ts.map +1 -1
- package/dest/kernel/private_call_request.d.ts +1 -3
- package/dest/kernel/private_call_request.d.ts.map +1 -1
- package/dest/kernel/private_call_request.js +1 -1
- package/dest/kernel/private_circuit_public_inputs.d.ts +5 -7
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +4 -4
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts +2 -4
- package/dest/kernel/private_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_data.d.ts +1 -3
- package/dest/kernel/private_kernel_data.d.ts.map +1 -1
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts +1 -3
- package/dest/kernel/private_kernel_init_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts +1 -3
- package/dest/kernel/private_kernel_inner_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_prover_output.d.ts +5 -7
- package/dest/kernel/private_kernel_prover_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts +2 -4
- package/dest/kernel/private_kernel_reset_circuit_private_inputs.d.ts.map +1 -1
- package/dest/kernel/private_kernel_reset_dimensions.d.ts +1 -3
- package/dest/kernel/private_kernel_reset_dimensions.d.ts.map +1 -1
- package/dest/kernel/private_kernel_simulated_output.d.ts +0 -2
- package/dest/kernel/private_kernel_simulated_output.d.ts.map +1 -1
- package/dest/kernel/private_kernel_tail_circuit_private_inputs.d.ts +1 -3
- 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 +8 -8
- 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 -2
- package/dest/kernel/private_log_data.d.ts +1 -4
- package/dest/kernel/private_log_data.d.ts.map +1 -1
- package/dest/kernel/private_log_data.js +4 -2
- package/dest/kernel/private_to_avm_accumulated_data.d.ts +3 -5
- package/dest/kernel/private_to_avm_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_avm_accumulated_data.js +7 -0
- package/dest/kernel/private_to_public_accumulated_data.d.ts +1 -4
- package/dest/kernel/private_to_public_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts +1 -3
- package/dest/kernel/private_to_public_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts +2 -5
- package/dest/kernel/private_to_rollup_accumulated_data.d.ts.map +1 -1
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts +2 -4
- package/dest/kernel/private_to_rollup_kernel_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.d.ts +1 -4
- package/dest/kernel/private_validation_requests.d.ts.map +1 -1
- package/dest/kernel/private_validation_requests.js +1 -1
- package/dest/kernel/public_call_request.d.ts +2 -5
- package/dest/kernel/public_call_request.d.ts.map +1 -1
- package/dest/kernel/utils/optional_number.d.ts +1 -3
- package/dest/kernel/utils/optional_number.d.ts.map +1 -1
- package/dest/keys/public_keys.d.ts +0 -2
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +0 -1
- package/dest/logs/contract_class_log.d.ts +53 -12
- package/dest/logs/contract_class_log.d.ts.map +1 -1
- package/dest/logs/contract_class_log.js +129 -66
- package/dest/logs/extended_contract_class_log.d.ts +0 -2
- package/dest/logs/extended_contract_class_log.d.ts.map +1 -1
- package/dest/logs/extended_public_log.d.ts +0 -2
- package/dest/logs/extended_public_log.d.ts.map +1 -1
- package/dest/logs/indexed_tagging_secret.d.ts.map +1 -1
- package/dest/logs/log_id.d.ts +0 -2
- package/dest/logs/log_id.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.d.ts.map +1 -1
- package/dest/logs/log_with_tx_data.js +8 -3
- package/dest/logs/private_log.d.ts +13 -7
- package/dest/logs/private_log.d.ts.map +1 -1
- package/dest/logs/private_log.js +44 -30
- package/dest/logs/public_log.d.ts +9 -9
- package/dest/logs/public_log.d.ts.map +1 -1
- package/dest/logs/public_log.js +45 -32
- package/dest/logs/tx_scoped_l2_log.d.ts +8 -6
- package/dest/logs/tx_scoped_l2_log.d.ts.map +1 -1
- package/dest/logs/tx_scoped_l2_log.js +1 -2
- package/dest/messaging/inbox_leaf.d.ts +5 -2
- package/dest/messaging/inbox_leaf.d.ts.map +1 -1
- package/dest/messaging/inbox_leaf.js +11 -0
- package/dest/messaging/l1_actor.d.ts +0 -2
- package/dest/messaging/l1_actor.d.ts.map +1 -1
- package/dest/messaging/l1_to_l2_message.d.ts +0 -2
- package/dest/messaging/l1_to_l2_message.d.ts.map +1 -1
- package/dest/messaging/l2_actor.d.ts +0 -2
- package/dest/messaging/l2_actor.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_message.d.ts +0 -2
- package/dest/messaging/l2_to_l1_message.d.ts.map +1 -1
- package/dest/note/extended_note.d.ts +3 -5
- package/dest/note/extended_note.d.ts.map +1 -1
- package/dest/note/note.d.ts +5 -13
- package/dest/note/note.d.ts.map +1 -1
- package/dest/p2p/block_attestation.d.ts +1 -3
- package/dest/p2p/block_attestation.d.ts.map +1 -1
- package/dest/p2p/block_attestation.js +1 -1
- package/dest/p2p/block_proposal.d.ts +12 -6
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +25 -9
- package/dest/p2p/consensus_payload.d.ts +2 -3
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +3 -0
- package/dest/p2p/gossipable.d.ts +14 -4
- package/dest/p2p/gossipable.d.ts.map +1 -1
- package/dest/p2p/gossipable.js +43 -0
- package/dest/p2p/signature_utils.d.ts +0 -2
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +5 -0
- package/dest/parity/base_parity_inputs.d.ts +2 -4
- package/dest/parity/base_parity_inputs.d.ts.map +1 -1
- package/dest/parity/parity_public_inputs.d.ts +2 -4
- package/dest/parity/parity_public_inputs.d.ts.map +1 -1
- package/dest/parity/root_parity_input.d.ts +4 -6
- package/dest/parity/root_parity_input.d.ts.map +1 -1
- package/dest/parity/root_parity_inputs.d.ts +2 -4
- package/dest/parity/root_parity_inputs.d.ts.map +1 -1
- package/dest/proofs/client_ivc_proof.d.ts +2 -4
- package/dest/proofs/client_ivc_proof.d.ts.map +1 -1
- package/dest/proofs/proof.d.ts +1 -3
- package/dest/proofs/proof.d.ts.map +1 -1
- package/dest/proofs/recursive_proof.d.ts +4 -6
- package/dest/proofs/recursive_proof.d.ts.map +1 -1
- package/dest/rollup/avm_proof_data.d.ts +1 -3
- package/dest/rollup/avm_proof_data.d.ts.map +1 -1
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts +2 -4
- package/dest/rollup/base_or_merge_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.d.ts +9 -11
- package/dest/rollup/base_rollup_hints.d.ts.map +1 -1
- package/dest/rollup/base_rollup_hints.js +5 -5
- package/dest/rollup/block_merge_rollup.d.ts +2 -4
- package/dest/rollup/block_merge_rollup.d.ts.map +1 -1
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts +3 -5
- package/dest/rollup/block_root_or_block_merge_public_inputs.d.ts.map +1 -1
- package/dest/rollup/block_root_rollup.d.ts +8 -10
- package/dest/rollup/block_root_rollup.d.ts.map +1 -1
- package/dest/rollup/constant_rollup_data.d.ts +1 -3
- package/dest/rollup/constant_rollup_data.d.ts.map +1 -1
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts +2 -4
- package/dest/rollup/empty_block_root_rollup_inputs.d.ts.map +1 -1
- package/dest/rollup/merge_rollup.d.ts +2 -4
- package/dest/rollup/merge_rollup.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_block_data.d.ts +0 -2
- package/dest/rollup/previous_rollup_block_data.d.ts.map +1 -1
- package/dest/rollup/previous_rollup_data.d.ts +0 -2
- package/dest/rollup/previous_rollup_data.d.ts.map +1 -1
- package/dest/rollup/private_base_rollup_inputs.d.ts +2 -4
- package/dest/rollup/private_base_rollup_inputs.d.ts.map +1 -1
- package/dest/rollup/private_tube_data.d.ts +1 -3
- package/dest/rollup/private_tube_data.d.ts.map +1 -1
- package/dest/rollup/public_base_rollup_inputs.d.ts +2 -4
- package/dest/rollup/public_base_rollup_inputs.d.ts.map +1 -1
- package/dest/rollup/public_tube_data.d.ts +1 -3
- package/dest/rollup/public_tube_data.d.ts.map +1 -1
- package/dest/rollup/root_rollup.d.ts +4 -6
- package/dest/rollup/root_rollup.d.ts.map +1 -1
- package/dest/rollup/state_diff_hints.d.ts +0 -2
- package/dest/rollup/state_diff_hints.d.ts.map +1 -1
- package/dest/rollup/tube_inputs.d.ts +2 -4
- package/dest/rollup/tube_inputs.d.ts.map +1 -1
- package/dest/schemas/schemas.d.ts +4 -6
- package/dest/schemas/schemas.d.ts.map +1 -1
- package/dest/shared_mutable/scheduled_delay_change.d.ts.map +1 -1
- package/dest/shared_mutable/scheduled_value_change.d.ts.map +1 -1
- package/dest/shared_mutable/shared_mutable_values.d.ts +0 -2
- package/dest/shared_mutable/shared_mutable_values.d.ts.map +1 -1
- package/dest/tests/factories.d.ts +0 -2
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +17 -14
- package/dest/tests/mocks.d.ts +1 -0
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +1 -1
- package/dest/trees/append_only_tree_snapshot.d.ts +1 -4
- package/dest/trees/append_only_tree_snapshot.d.ts.map +1 -1
- package/dest/trees/nullifier_leaf.d.ts +0 -2
- package/dest/trees/nullifier_leaf.d.ts.map +1 -1
- package/dest/trees/nullifier_membership_witness.d.ts +4 -6
- package/dest/trees/nullifier_membership_witness.d.ts.map +1 -1
- package/dest/trees/protocol_contract_leaf.d.ts +0 -2
- package/dest/trees/protocol_contract_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_leaf.d.ts +1 -3
- package/dest/trees/public_data_leaf.d.ts.map +1 -1
- package/dest/trees/public_data_witness.d.ts +4 -6
- package/dest/trees/public_data_witness.d.ts.map +1 -1
- package/dest/tx/block_header.d.ts +1 -4
- package/dest/tx/block_header.d.ts.map +1 -1
- package/dest/tx/call_context.d.ts +1 -4
- package/dest/tx/call_context.d.ts.map +1 -1
- package/dest/tx/capsule.d.ts +1 -3
- package/dest/tx/capsule.d.ts.map +1 -1
- package/dest/tx/content_commitment.d.ts +10 -12
- package/dest/tx/content_commitment.d.ts.map +1 -1
- package/dest/tx/function_data.d.ts +0 -2
- package/dest/tx/function_data.d.ts.map +1 -1
- package/dest/tx/global_variables.d.ts +1 -4
- package/dest/tx/global_variables.d.ts.map +1 -1
- package/dest/tx/hashed_values.d.ts +1 -3
- package/dest/tx/hashed_values.d.ts.map +1 -1
- package/dest/tx/max_block_number.d.ts +1 -3
- package/dest/tx/max_block_number.d.ts.map +1 -1
- package/dest/tx/partial_state_reference.d.ts +1 -3
- package/dest/tx/partial_state_reference.d.ts.map +1 -1
- package/dest/tx/private_execution_result.d.ts +8 -8
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +3 -2
- package/dest/tx/profiling.d.ts +8 -0
- package/dest/tx/profiling.d.ts.map +1 -1
- package/dest/tx/profiling.js +31 -0
- package/dest/tx/proposed_block_header.d.ts +1 -4
- package/dest/tx/proposed_block_header.d.ts.map +1 -1
- package/dest/tx/proposed_block_header.js +2 -1
- package/dest/tx/proven_tx.d.ts.map +1 -1
- package/dest/tx/public_call_request_with_calldata.d.ts +1 -4
- package/dest/tx/public_call_request_with_calldata.d.ts.map +1 -1
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/dest/tx/state_reference.d.ts +1 -4
- package/dest/tx/state_reference.d.ts.map +1 -1
- package/dest/tx/tree_snapshots.d.ts +1 -4
- package/dest/tx/tree_snapshots.d.ts.map +1 -1
- package/dest/tx/tx.d.ts +6 -11
- package/dest/tx/tx.d.ts.map +1 -1
- package/dest/tx/tx.js +18 -15
- package/dest/tx/tx_constant_data.d.ts +1 -3
- package/dest/tx/tx_constant_data.d.ts.map +1 -1
- package/dest/tx/tx_context.d.ts +1 -3
- package/dest/tx/tx_context.d.ts.map +1 -1
- package/dest/tx/tx_effect.d.ts +1 -4
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +33 -63
- package/dest/tx/tx_execution_request.d.ts +13 -6
- package/dest/tx/tx_execution_request.d.ts.map +1 -1
- package/dest/tx/tx_execution_request.js +14 -7
- package/dest/tx/tx_hash.d.ts +2 -4
- package/dest/tx/tx_hash.d.ts.map +1 -1
- package/dest/tx/tx_receipt.d.ts.map +1 -1
- package/dest/tx/tx_receipt.js +1 -1
- package/dest/tx/tx_request.d.ts +7 -5
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/tx_request.js +8 -5
- 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/types/shared.d.ts +1 -3
- package/dest/types/shared.d.ts.map +1 -1
- package/dest/update-checker/index.d.ts +2 -0
- package/dest/update-checker/index.d.ts.map +1 -0
- package/dest/update-checker/index.js +1 -0
- package/dest/update-checker/update-checker.d.ts +48 -0
- package/dest/update-checker/update-checker.d.ts.map +1 -0
- package/dest/update-checker/update-checker.js +121 -0
- package/dest/versioning/versioning.d.ts +1 -1
- package/dest/versioning/versioning.d.ts.map +1 -1
- package/dest/vks/verification_key.d.ts +7 -9
- package/dest/vks/verification_key.d.ts.map +1 -1
- package/dest/vks/vk_witness_data.d.ts +1 -3
- package/dest/vks/vk_witness_data.d.ts.map +1 -1
- package/package.json +16 -13
- package/src/abi/abi.ts +2 -2
- package/src/abi/contract_artifact.ts +3 -17
- package/src/abi/decoder.ts +10 -3
- package/src/abi/encoder.ts +5 -2
- package/src/avm/avm.ts +13 -7
- package/src/avm/avm_accumulated_data.ts +30 -2
- package/src/avm/avm_circuit_public_inputs.ts +26 -0
- package/src/avm/message_pack.ts +7 -1
- package/src/avm/public_data_write.ts +21 -1
- package/src/avm/public_inner_call_request.ts +1 -1
- package/src/avm/revert_code.ts +5 -5
- package/src/block/body.ts +5 -11
- package/src/block/l2_block.ts +1 -1
- package/src/config/index.ts +2 -1
- package/src/config/node-rpc-config.ts +14 -0
- package/src/contract/artifact_hash.ts +5 -3
- package/src/contract/private_function.ts +4 -2
- package/src/errors/proving_error.ts +5 -1
- package/src/file-store/factory.ts +1 -1
- package/src/file-store/http.ts +27 -18
- package/src/gas/gas.ts +4 -1
- package/src/interfaces/aztec-node-admin.ts +16 -0
- package/src/interfaces/aztec-node.ts +4 -2
- package/src/interfaces/configs.ts +3 -0
- package/src/interfaces/p2p.ts +4 -0
- package/src/interfaces/prover-client.ts +4 -1
- package/src/interfaces/pxe.ts +3 -4
- package/src/interfaces/service.ts +2 -3
- package/src/interfaces/world_state.ts +6 -1
- package/src/kernel/hints/note_hash_read_request_hints.ts +4 -1
- package/src/kernel/hints/nullifier_read_request_hints.ts +4 -1
- package/src/kernel/hints/read_request.ts +4 -1
- package/src/kernel/hints/read_request_hints.ts +12 -3
- package/src/kernel/hints/transient_data_index_hint.ts +4 -1
- package/src/kernel/hints/tree_leaf_read_request.ts +4 -1
- package/src/kernel/log_hash.ts +86 -14
- package/src/kernel/note_hash.ts +8 -2
- package/src/kernel/nullifier.ts +9 -2
- package/src/kernel/private_accumulated_data.ts +4 -4
- package/src/kernel/private_call_request.ts +1 -1
- package/src/kernel/private_circuit_public_inputs.ts +5 -5
- package/src/kernel/private_kernel_tail_circuit_public_inputs.ts +13 -2
- package/src/kernel/private_log_data.ts +13 -4
- package/src/kernel/private_to_avm_accumulated_data.ts +9 -1
- package/src/kernel/private_validation_requests.ts +1 -1
- package/src/kernel/public_call_request.ts +4 -1
- package/src/keys/public_keys.ts +1 -1
- package/src/logs/contract_class_log.ts +156 -57
- package/src/logs/indexed_tagging_secret.ts +4 -1
- package/src/logs/log_with_tx_data.ts +7 -2
- package/src/logs/private_log.ts +52 -30
- package/src/logs/public_log.ts +62 -38
- package/src/logs/tx_scoped_l2_log.ts +1 -2
- package/src/messaging/inbox_leaf.ts +10 -0
- package/src/messaging/l2_to_l1_message.ts +9 -2
- package/src/p2p/block_attestation.ts +1 -1
- package/src/p2p/block_proposal.ts +36 -5
- package/src/p2p/consensus_payload.ts +4 -0
- package/src/p2p/gossipable.ts +44 -2
- package/src/p2p/topic_type.ts +2 -0
- package/src/rollup/base_rollup_hints.ts +7 -7
- package/src/rollup/block_root_or_block_merge_public_inputs.ts +4 -1
- package/src/rollup/private_base_rollup_inputs.ts +4 -1
- package/src/rollup/tube_inputs.ts +4 -1
- package/src/shared_mutable/scheduled_delay_change.ts +5 -1
- package/src/shared_mutable/scheduled_value_change.ts +5 -1
- package/src/shared_mutable/shared_mutable_values.ts +4 -1
- package/src/tests/factories.ts +31 -18
- package/src/tests/mocks.ts +2 -1
- package/src/tx/content_commitment.ts +6 -1
- package/src/tx/private_execution_result.ts +9 -5
- package/src/tx/profiling.ts +39 -1
- package/src/tx/proposed_block_header.ts +2 -1
- package/src/tx/tx.ts +18 -17
- package/src/tx/tx_effect.ts +36 -76
- package/src/tx/tx_execution_request.ts +11 -0
- package/src/tx/tx_receipt.ts +1 -1
- package/src/tx/tx_request.ts +12 -3
- package/src/tx/validator/error_texts.ts +1 -1
- package/src/update-checker/index.ts +1 -0
- package/src/update-checker/update-checker.ts +152 -0
- package/src/versioning/versioning.ts +1 -1
- package/src/vks/verification_key.ts +8 -2
- package/dest/config/config.d.ts.map +0 -1
- /package/dest/config/{config.js → chain-config.js} +0 -0
- /package/src/config/{config.ts → chain-config.ts} +0 -0
package/src/tx/tx.ts
CHANGED
|
@@ -13,7 +13,7 @@ import type { L2LogsSource } from '../interfaces/l2_logs_source.js';
|
|
|
13
13
|
import type { PublicCallRequest } from '../kernel/index.js';
|
|
14
14
|
import type { ScopedLogHash } from '../kernel/log_hash.js';
|
|
15
15
|
import { PrivateKernelTailCircuitPublicInputs } from '../kernel/private_kernel_tail_circuit_public_inputs.js';
|
|
16
|
-
import { ContractClassLog } from '../logs/contract_class_log.js';
|
|
16
|
+
import { ContractClassLog, ContractClassLogFields } from '../logs/contract_class_log.js';
|
|
17
17
|
import { Gossipable } from '../p2p/gossipable.js';
|
|
18
18
|
import { TopicType } from '../p2p/topic_type.js';
|
|
19
19
|
import { ClientIvcProof } from '../proofs/client_ivc_proof.js';
|
|
@@ -44,7 +44,7 @@ export class Tx extends Gossipable {
|
|
|
44
44
|
/**
|
|
45
45
|
* Contract class logs generated by the tx.
|
|
46
46
|
*/
|
|
47
|
-
public contractClassLogs:
|
|
47
|
+
public contractClassLogs: ContractClassLogFields[],
|
|
48
48
|
/**
|
|
49
49
|
* An array of calldata for the enqueued public function calls and the teardown function call.
|
|
50
50
|
*/
|
|
@@ -54,7 +54,7 @@ export class Tx extends Gossipable {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
// Gossipable method
|
|
57
|
-
override async
|
|
57
|
+
override async generateP2PMessageIdentifier(): Promise<Buffer32> {
|
|
58
58
|
return new Buffer32((await this.getTxHash()).toBuffer());
|
|
59
59
|
}
|
|
60
60
|
|
|
@@ -107,7 +107,7 @@ export class Tx extends Gossipable {
|
|
|
107
107
|
return new Tx(
|
|
108
108
|
reader.readObject(PrivateKernelTailCircuitPublicInputs),
|
|
109
109
|
reader.readObject(ClientIvcProof),
|
|
110
|
-
reader.readVectorUint8Prefix(
|
|
110
|
+
reader.readVectorUint8Prefix(ContractClassLogFields),
|
|
111
111
|
reader.readVectorUint8Prefix(HashedValues),
|
|
112
112
|
);
|
|
113
113
|
}
|
|
@@ -130,7 +130,7 @@ export class Tx extends Gossipable {
|
|
|
130
130
|
.object({
|
|
131
131
|
data: PrivateKernelTailCircuitPublicInputs.schema,
|
|
132
132
|
clientIvcProof: ClientIvcProof.schema,
|
|
133
|
-
contractClassLogs: z.array(
|
|
133
|
+
contractClassLogs: z.array(ContractClassLogFields.schema),
|
|
134
134
|
publicFunctionCalldata: z.array(HashedValues.schema),
|
|
135
135
|
})
|
|
136
136
|
.transform(Tx.from);
|
|
@@ -173,12 +173,15 @@ export class Tx extends Gossipable {
|
|
|
173
173
|
*/
|
|
174
174
|
async filterContractClassLogs(logHashes: ScopedLogHash[], silo: boolean = false): Promise<ContractClassLog[]> {
|
|
175
175
|
const contractClassLogs = [];
|
|
176
|
-
for (const
|
|
177
|
-
const hashedLog = await
|
|
178
|
-
const logHash = logHashes.find(
|
|
179
|
-
hash => hash.value.equals(hashedLog) && hash.contractAddress.equals(log.contractAddress),
|
|
180
|
-
);
|
|
176
|
+
for (const fields of this.contractClassLogs) {
|
|
177
|
+
const hashedLog = await fields.hash();
|
|
178
|
+
const logHash = logHashes.find(hash => hash.value.equals(hashedLog));
|
|
181
179
|
if (logHash) {
|
|
180
|
+
const log = ContractClassLog.from({
|
|
181
|
+
contractAddress: logHash.contractAddress,
|
|
182
|
+
fields,
|
|
183
|
+
emittedLength: logHash.logHash.length,
|
|
184
|
+
});
|
|
182
185
|
contractClassLogs.push(silo ? await log.silo() : log);
|
|
183
186
|
}
|
|
184
187
|
}
|
|
@@ -287,7 +290,7 @@ export class Tx extends Gossipable {
|
|
|
287
290
|
static clone(tx: Tx): Tx {
|
|
288
291
|
const publicInputs = PrivateKernelTailCircuitPublicInputs.fromBuffer(tx.data.toBuffer());
|
|
289
292
|
const clientIvcProof = ClientIvcProof.fromBuffer(tx.clientIvcProof.toBuffer());
|
|
290
|
-
const contractClassLogs = tx.contractClassLogs.map(
|
|
293
|
+
const contractClassLogs = tx.contractClassLogs.map(p => p.clone());
|
|
291
294
|
const publicFunctionCalldata = tx.publicFunctionCalldata.map(cd => HashedValues.fromBuffer(cd.toBuffer()));
|
|
292
295
|
const clonedTx = new Tx(publicInputs, clientIvcProof, contractClassLogs, publicFunctionCalldata);
|
|
293
296
|
if (tx.txHash) {
|
|
@@ -302,11 +305,11 @@ export class Tx extends Gossipable {
|
|
|
302
305
|
* @param randomProof - Whether to create a random proof - this will be random bytes of the full size.
|
|
303
306
|
* @returns A random tx.
|
|
304
307
|
*/
|
|
305
|
-
static
|
|
308
|
+
static random(randomProof = false) {
|
|
306
309
|
return new Tx(
|
|
307
310
|
PrivateKernelTailCircuitPublicInputs.emptyWithNullifier(),
|
|
308
311
|
randomProof ? ClientIvcProof.random() : ClientIvcProof.empty(),
|
|
309
|
-
[
|
|
312
|
+
[ContractClassLogFields.random()],
|
|
310
313
|
[HashedValues.random()],
|
|
311
314
|
);
|
|
312
315
|
}
|
|
@@ -321,12 +324,10 @@ export class Tx extends Gossipable {
|
|
|
321
324
|
* The logic therefore is to drop all FunctionLogs if any constituent hash
|
|
322
325
|
* does not appear in the provided hashes: it is impossible for part of a
|
|
323
326
|
* function to revert.
|
|
324
|
-
*
|
|
325
|
-
* @param logHashes the individual log hashes we want to keep
|
|
326
|
-
* @param out the output to put passing logs in, to keep this function abstract
|
|
327
327
|
*/
|
|
328
|
+
// TODO: don't modify the tx object directly. The preimages should match the log hashes. When did the log hashes change?
|
|
328
329
|
public async filterRevertedLogs() {
|
|
329
|
-
this.contractClassLogs = await this.getSplitContractClassLogs(false);
|
|
330
|
+
this.contractClassLogs = (await this.getSplitContractClassLogs(false)).map(log => log.fields);
|
|
330
331
|
}
|
|
331
332
|
|
|
332
333
|
#combinePublicCallRequestWithCallData(request: PublicCallRequest) {
|
package/src/tx/tx_effect.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CONTRACT_CLASS_LOGS_PREFIX,
|
|
3
|
-
CONTRACT_CLASS_LOG_SIZE_IN_FIELDS,
|
|
4
3
|
L2_L1_MSGS_PREFIX,
|
|
5
4
|
MAX_CONTRACT_CLASS_LOGS_PER_TX,
|
|
6
5
|
MAX_L2_TO_L1_MSGS_PER_TX,
|
|
@@ -11,10 +10,8 @@ import {
|
|
|
11
10
|
NOTES_PREFIX,
|
|
12
11
|
NULLIFIERS_PREFIX,
|
|
13
12
|
PRIVATE_LOGS_PREFIX,
|
|
14
|
-
PRIVATE_LOG_SIZE_IN_FIELDS,
|
|
15
13
|
PUBLIC_DATA_UPDATE_REQUESTS_PREFIX,
|
|
16
14
|
PUBLIC_LOGS_PREFIX,
|
|
17
|
-
PUBLIC_LOG_SIZE_IN_FIELDS,
|
|
18
15
|
REVERT_CODE_PREFIX,
|
|
19
16
|
TX_FEE_PREFIX,
|
|
20
17
|
} from '@aztec/constants';
|
|
@@ -243,8 +240,8 @@ export class TxEffect {
|
|
|
243
240
|
makeTuple(MAX_NOTE_HASHES_PER_TX, Fr.random),
|
|
244
241
|
makeTuple(MAX_NULLIFIERS_PER_TX, Fr.random),
|
|
245
242
|
makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, Fr.random),
|
|
246
|
-
makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX,
|
|
247
|
-
makeTuple(MAX_PRIVATE_LOGS_PER_TX, () =>
|
|
243
|
+
makeTuple(MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, PublicDataWrite.random),
|
|
244
|
+
makeTuple(MAX_PRIVATE_LOGS_PER_TX, () => PrivateLog.random()),
|
|
248
245
|
await makeTupleAsync(numPublicCallsPerTx * numPublicLogsPerCall, async () => await PublicLog.random()),
|
|
249
246
|
await makeTupleAsync(MAX_CONTRACT_CLASS_LOGS_PER_TX, ContractClassLog.random),
|
|
250
247
|
);
|
|
@@ -372,41 +369,20 @@ export class TxEffect {
|
|
|
372
369
|
flattened.push(...this.l2ToL1Msgs);
|
|
373
370
|
}
|
|
374
371
|
if (this.publicDataWrites.length) {
|
|
375
|
-
flattened.push(this.toPrefix(PUBLIC_DATA_UPDATE_REQUESTS_PREFIX, this.publicDataWrites.length
|
|
376
|
-
flattened.push(...this.publicDataWrites.
|
|
372
|
+
flattened.push(this.toPrefix(PUBLIC_DATA_UPDATE_REQUESTS_PREFIX, this.publicDataWrites.length));
|
|
373
|
+
flattened.push(...this.publicDataWrites.flatMap(w => w.toBlobFields()));
|
|
377
374
|
}
|
|
378
375
|
if (this.privateLogs.length) {
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1),
|
|
382
|
-
0,
|
|
383
|
-
);
|
|
384
|
-
flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, totalLogLen));
|
|
385
|
-
flattened.push(...this.privateLogs.flatMap(l => [new Fr(l.getEmittedLength()), ...l.getEmittedFields()]));
|
|
376
|
+
flattened.push(this.toPrefix(PRIVATE_LOGS_PREFIX, this.privateLogs.length));
|
|
377
|
+
flattened.push(...this.privateLogs.flatMap(l => l.toBlobFields()));
|
|
386
378
|
}
|
|
387
379
|
if (this.publicLogs.length) {
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 1),
|
|
391
|
-
0,
|
|
392
|
-
);
|
|
393
|
-
flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, totalLogLen));
|
|
394
|
-
flattened.push(...this.publicLogs.flatMap(l => [new Fr(l.getEmittedLength()), ...l.getEmittedFields()]));
|
|
380
|
+
flattened.push(this.toPrefix(PUBLIC_LOGS_PREFIX, this.publicLogs.length));
|
|
381
|
+
flattened.push(...this.publicLogs.flatMap(l => l.toBlobFields()));
|
|
395
382
|
}
|
|
396
383
|
if (this.contractClassLogs.length) {
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
(total, log) => total + (log.getEmittedLength() == 0 ? 0 : log.getEmittedLength() + 2),
|
|
400
|
-
0,
|
|
401
|
-
);
|
|
402
|
-
flattened.push(this.toPrefix(CONTRACT_CLASS_LOGS_PREFIX, totalLogLen));
|
|
403
|
-
flattened.push(
|
|
404
|
-
...this.contractClassLogs.flatMap(l => [
|
|
405
|
-
new Fr(l.getEmittedLength()),
|
|
406
|
-
l.contractAddress.toField(),
|
|
407
|
-
...l.getEmittedFields(),
|
|
408
|
-
]),
|
|
409
|
-
);
|
|
384
|
+
flattened.push(this.toPrefix(CONTRACT_CLASS_LOGS_PREFIX, this.contractClassLogs.length));
|
|
385
|
+
flattened.push(...this.contractClassLogs.flatMap(l => l.toBlobFields()));
|
|
410
386
|
}
|
|
411
387
|
|
|
412
388
|
// The first value appended to each list of fields representing a tx effect is:
|
|
@@ -426,16 +402,20 @@ export class TxEffect {
|
|
|
426
402
|
throw new Error('Invalid fields given to TxEffect.fromBlobFields(): Attempted to assign property twice.');
|
|
427
403
|
}
|
|
428
404
|
};
|
|
405
|
+
|
|
429
406
|
const effect = this.empty();
|
|
430
|
-
|
|
407
|
+
const reader = FieldReader.asReader(fields);
|
|
408
|
+
const totalFields = reader.remainingFields();
|
|
409
|
+
if (!totalFields) {
|
|
431
410
|
return effect;
|
|
432
411
|
}
|
|
433
|
-
|
|
412
|
+
|
|
434
413
|
const firstField = reader.readField();
|
|
435
414
|
if (!this.isFirstField(firstField)) {
|
|
436
415
|
throw new Error('Invalid fields given to TxEffect.fromBlobFields(): First field invalid.');
|
|
437
416
|
}
|
|
438
|
-
|
|
417
|
+
|
|
418
|
+
const { length: fieldsToProcess, revertCode } = this.decodeFirstField(firstField);
|
|
439
419
|
effect.revertCode = RevertCode.fromField(new Fr(revertCode));
|
|
440
420
|
|
|
441
421
|
effect.txHash = new TxHash(reader.readField());
|
|
@@ -444,7 +424,9 @@ export class TxEffect {
|
|
|
444
424
|
// NB: Fr.fromBuffer hangs here if you provide a buffer less than 32 in len
|
|
445
425
|
// todo: try new Fr(prefixedFee.toBuffer().subarray(3))
|
|
446
426
|
effect.transactionFee = Fr.fromBuffer(Buffer.concat([Buffer.alloc(3), prefixedFee.toBuffer().subarray(3)]));
|
|
447
|
-
|
|
427
|
+
|
|
428
|
+
let fieldsProcessed = totalFields - reader.remainingFields();
|
|
429
|
+
while (fieldsProcessed < fieldsToProcess) {
|
|
448
430
|
const { type, length } = this.fromPrefix(reader.readField());
|
|
449
431
|
switch (type) {
|
|
450
432
|
case NOTES_PREFIX:
|
|
@@ -461,58 +443,29 @@ export class TxEffect {
|
|
|
461
443
|
break;
|
|
462
444
|
case PUBLIC_DATA_UPDATE_REQUESTS_PREFIX: {
|
|
463
445
|
ensureEmpty(effect.publicDataWrites);
|
|
464
|
-
|
|
465
|
-
for (let i = 0; i < length; i += 2) {
|
|
466
|
-
effect.publicDataWrites.push(new PublicDataWrite(publicDataPairs[i], publicDataPairs[i + 1]));
|
|
467
|
-
}
|
|
446
|
+
effect.publicDataWrites = Array.from({ length }, () => PublicDataWrite.fromBlobFields(reader));
|
|
468
447
|
break;
|
|
469
448
|
}
|
|
470
449
|
case PRIVATE_LOGS_PREFIX: {
|
|
471
450
|
ensureEmpty(effect.privateLogs);
|
|
472
|
-
|
|
473
|
-
let i = 0;
|
|
474
|
-
while (i < length) {
|
|
475
|
-
const logLen = flatPrivateLogs[i++].toNumber();
|
|
476
|
-
const logFields = flatPrivateLogs.slice(i, (i += logLen));
|
|
477
|
-
effect.privateLogs.push(
|
|
478
|
-
PrivateLog.fromFields(logFields.concat(new Array(PRIVATE_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))),
|
|
479
|
-
);
|
|
480
|
-
}
|
|
451
|
+
effect.privateLogs = Array.from({ length }, () => PrivateLog.fromBlobFields(reader));
|
|
481
452
|
break;
|
|
482
453
|
}
|
|
483
454
|
case PUBLIC_LOGS_PREFIX: {
|
|
484
455
|
ensureEmpty(effect.publicLogs);
|
|
485
|
-
|
|
486
|
-
let i = 0;
|
|
487
|
-
while (i < length) {
|
|
488
|
-
const logLen = flatPublicLogs[i++].toNumber();
|
|
489
|
-
const logFields = flatPublicLogs.slice(i, (i += logLen));
|
|
490
|
-
effect.publicLogs.push(
|
|
491
|
-
PublicLog.fromFields(logFields.concat(new Array(PUBLIC_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO))),
|
|
492
|
-
);
|
|
493
|
-
}
|
|
456
|
+
effect.publicLogs = Array.from({ length }, () => PublicLog.fromBlobFields(reader));
|
|
494
457
|
break;
|
|
495
458
|
}
|
|
496
459
|
case CONTRACT_CLASS_LOGS_PREFIX: {
|
|
497
460
|
ensureEmpty(effect.contractClassLogs);
|
|
498
|
-
|
|
499
|
-
let i = 0;
|
|
500
|
-
while (i < length) {
|
|
501
|
-
const logLen = flatContractClassLogs[i++].toNumber();
|
|
502
|
-
// +1 for address
|
|
503
|
-
const logFields = flatContractClassLogs.slice(i, (i += logLen + 1));
|
|
504
|
-
effect.contractClassLogs.push(
|
|
505
|
-
ContractClassLog.fromFields(
|
|
506
|
-
logFields.concat(new Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - logLen).fill(Fr.ZERO)),
|
|
507
|
-
),
|
|
508
|
-
);
|
|
509
|
-
}
|
|
461
|
+
effect.contractClassLogs = Array.from({ length }, () => ContractClassLog.fromBlobFields(reader));
|
|
510
462
|
break;
|
|
511
463
|
}
|
|
512
464
|
case REVERT_CODE_PREFIX:
|
|
513
465
|
default:
|
|
514
466
|
throw new Error(`Too many fields to decode given to TxEffect.fromBlobFields()`);
|
|
515
467
|
}
|
|
468
|
+
fieldsProcessed = totalFields - reader.remainingFields();
|
|
516
469
|
}
|
|
517
470
|
return effect;
|
|
518
471
|
}
|
|
@@ -551,16 +504,23 @@ export class TxEffect {
|
|
|
551
504
|
|
|
552
505
|
[inspect.custom]() {
|
|
553
506
|
return `TxEffect {
|
|
554
|
-
revertCode: ${this.revertCode},
|
|
507
|
+
revertCode: ${this.revertCode.getCode()},
|
|
555
508
|
txHash: ${this.txHash},
|
|
556
509
|
transactionFee: ${this.transactionFee},
|
|
557
510
|
note hashes: [${this.noteHashes.map(h => h.toString()).join(', ')}],
|
|
558
511
|
nullifiers: [${this.nullifiers.map(h => h.toString()).join(', ')}],
|
|
559
512
|
l2ToL1Msgs: [${this.l2ToL1Msgs.map(h => h.toString()).join(', ')}],
|
|
560
513
|
publicDataWrites: [${this.publicDataWrites.map(h => h.toString()).join(', ')}],
|
|
561
|
-
privateLogs: [${this.privateLogs.map(l => l.toString()).join(', ')}],
|
|
562
|
-
publicLogs: [${this.publicLogs.map(l => l.toString()).join(', ')}],
|
|
563
|
-
contractClassLogs: [${this.contractClassLogs
|
|
514
|
+
privateLogs: [${this.privateLogs.map(l => l.fields.map(f => f.toString()).join(',')).join(', ')}],
|
|
515
|
+
publicLogs: [${this.publicLogs.map(l => l.fields.map(f => f.toString()).join(',')).join(', ')}],
|
|
516
|
+
contractClassLogs: [${this.contractClassLogs
|
|
517
|
+
.map(l =>
|
|
518
|
+
l
|
|
519
|
+
.toFields()
|
|
520
|
+
.map(f => f.toString())
|
|
521
|
+
.join(','),
|
|
522
|
+
)
|
|
523
|
+
.join(', ')}],
|
|
564
524
|
}`;
|
|
565
525
|
}
|
|
566
526
|
|
|
@@ -54,6 +54,11 @@ export class TxExecutionRequest {
|
|
|
54
54
|
* Read-only data passed through the oracle calls during this tx execution.
|
|
55
55
|
*/
|
|
56
56
|
public capsules: Capsule[],
|
|
57
|
+
/**
|
|
58
|
+
* A salt to make the tx request hash difficult to predict.
|
|
59
|
+
* The hash is used as the first nullifier if there is no nullifier emitted throughout the tx.
|
|
60
|
+
*/
|
|
61
|
+
public salt = Fr.random(),
|
|
57
62
|
) {}
|
|
58
63
|
|
|
59
64
|
static get schema(): ZodFor<TxExecutionRequest> {
|
|
@@ -66,6 +71,7 @@ export class TxExecutionRequest {
|
|
|
66
71
|
argsOfCalls: z.array(HashedValues.schema),
|
|
67
72
|
authWitnesses: z.array(AuthWitness.schema),
|
|
68
73
|
capsules: z.array(Capsule.schema),
|
|
74
|
+
salt: schemas.Fr,
|
|
69
75
|
})
|
|
70
76
|
.transform(TxExecutionRequest.from);
|
|
71
77
|
}
|
|
@@ -77,6 +83,7 @@ export class TxExecutionRequest {
|
|
|
77
83
|
new FunctionData(this.functionSelector, true /* isPrivate */),
|
|
78
84
|
this.firstCallArgsHash,
|
|
79
85
|
this.txContext,
|
|
86
|
+
this.salt,
|
|
80
87
|
);
|
|
81
88
|
}
|
|
82
89
|
|
|
@@ -89,6 +96,7 @@ export class TxExecutionRequest {
|
|
|
89
96
|
fields.argsOfCalls,
|
|
90
97
|
fields.authWitnesses,
|
|
91
98
|
fields.capsules,
|
|
99
|
+
fields.salt,
|
|
92
100
|
] as const;
|
|
93
101
|
}
|
|
94
102
|
|
|
@@ -109,6 +117,7 @@ export class TxExecutionRequest {
|
|
|
109
117
|
new Vector(this.argsOfCalls),
|
|
110
118
|
new Vector(this.authWitnesses),
|
|
111
119
|
new Vector(this.capsules),
|
|
120
|
+
this.salt,
|
|
112
121
|
);
|
|
113
122
|
}
|
|
114
123
|
|
|
@@ -135,6 +144,7 @@ export class TxExecutionRequest {
|
|
|
135
144
|
reader.readVector(HashedValues),
|
|
136
145
|
reader.readVector(AuthWitness),
|
|
137
146
|
reader.readVector(Capsule),
|
|
147
|
+
Fr.fromBuffer(reader),
|
|
138
148
|
);
|
|
139
149
|
}
|
|
140
150
|
|
|
@@ -159,6 +169,7 @@ export class TxExecutionRequest {
|
|
|
159
169
|
new Capsule(await AztecAddress.random(), Fr.random(), [Fr.random(), Fr.random()]),
|
|
160
170
|
new Capsule(await AztecAddress.random(), Fr.random(), [Fr.random()]),
|
|
161
171
|
],
|
|
172
|
+
Fr.random(),
|
|
162
173
|
);
|
|
163
174
|
}
|
|
164
175
|
|
package/src/tx/tx_receipt.ts
CHANGED
|
@@ -79,7 +79,7 @@ export class TxReceipt {
|
|
|
79
79
|
} else if (revertCode.equals(RevertCode.BOTH_REVERTED)) {
|
|
80
80
|
return TxStatus.BOTH_REVERTED;
|
|
81
81
|
} else {
|
|
82
|
-
throw new Error(`Unknown revert code: ${revertCode}`);
|
|
82
|
+
throw new Error(`Unknown revert code: ${revertCode.getCode()}`);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
}
|
package/src/tx/tx_request.ts
CHANGED
|
@@ -22,10 +22,12 @@ export class TxRequest {
|
|
|
22
22
|
public argsHash: Fr,
|
|
23
23
|
/** Transaction context. */
|
|
24
24
|
public txContext: TxContext,
|
|
25
|
+
/** A salt to make the hash difficult to predict. The hash is used as the first nullifier if there is no nullifier emitted throughout the tx. */
|
|
26
|
+
public salt: Fr,
|
|
25
27
|
) {}
|
|
26
28
|
// docs:end:constructor
|
|
27
29
|
static getFields(fields: FieldsOf<TxRequest>) {
|
|
28
|
-
return [fields.origin, fields.functionData, fields.argsHash, fields.txContext] as const;
|
|
30
|
+
return [fields.origin, fields.functionData, fields.argsHash, fields.txContext, fields.salt] as const;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
static from(fields: FieldsOf<TxRequest>): TxRequest {
|
|
@@ -60,6 +62,7 @@ export class TxRequest {
|
|
|
60
62
|
reader.readObject(FunctionData),
|
|
61
63
|
Fr.fromBuffer(reader),
|
|
62
64
|
reader.readObject(TxContext),
|
|
65
|
+
Fr.fromBuffer(reader),
|
|
63
66
|
);
|
|
64
67
|
}
|
|
65
68
|
|
|
@@ -68,10 +71,16 @@ export class TxRequest {
|
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
static empty() {
|
|
71
|
-
return new TxRequest(AztecAddress.ZERO, FunctionData.empty(), Fr.zero(), TxContext.empty());
|
|
74
|
+
return new TxRequest(AztecAddress.ZERO, FunctionData.empty(), Fr.zero(), TxContext.empty(), Fr.zero());
|
|
72
75
|
}
|
|
73
76
|
|
|
74
77
|
isEmpty() {
|
|
75
|
-
return
|
|
78
|
+
return (
|
|
79
|
+
this.origin.isZero() &&
|
|
80
|
+
this.functionData.isEmpty() &&
|
|
81
|
+
this.argsHash.isZero() &&
|
|
82
|
+
this.txContext.isEmpty() &&
|
|
83
|
+
this.salt.isZero()
|
|
84
|
+
);
|
|
76
85
|
}
|
|
77
86
|
}
|
|
@@ -25,7 +25,7 @@ export const TX_ERROR_INCORRECT_CALLDATA = 'Incorrect calldata for public call';
|
|
|
25
25
|
export const TX_ERROR_CALLDATA_COUNT_MISMATCH = 'Wrong number of calldata for public calls';
|
|
26
26
|
export const TX_ERROR_CALLDATA_COUNT_TOO_LARGE = 'Total calldata too large for enqueued public calls';
|
|
27
27
|
export const TX_ERROR_CONTRACT_CLASS_LOG_COUNT = 'Mismatched number of contract class logs';
|
|
28
|
-
export const TX_ERROR_CONTRACT_CLASS_LOG_LENGTH = '
|
|
28
|
+
export const TX_ERROR_CONTRACT_CLASS_LOG_LENGTH = 'Incorrect contract class logs length';
|
|
29
29
|
export const TX_ERROR_CONTRACT_CLASS_LOGS = 'Mismatched contract class logs';
|
|
30
30
|
export const TX_ERROR_CONTRACT_CLASS_LOG_SORTING = 'Incorrectly sorted contract class logs';
|
|
31
31
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { UpdateChecker, getPackageVersion } from './update-checker.js';
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { RegistryContract, type ViemClient } from '@aztec/ethereum';
|
|
2
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
+
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
5
|
+
import { fileURLToPath } from '@aztec/foundation/url';
|
|
6
|
+
|
|
7
|
+
import { EventEmitter } from 'events';
|
|
8
|
+
import { readFileSync } from 'fs';
|
|
9
|
+
import { dirname, resolve } from 'path';
|
|
10
|
+
import { isDeepStrictEqual } from 'util';
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
|
|
13
|
+
const updateConfigSchema = z.object({
|
|
14
|
+
version: z.string().optional(),
|
|
15
|
+
config: z.any().optional(),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export type EventMap = {
|
|
19
|
+
newRollupVersion: [{ currentVersion: bigint; latestVersion: bigint }];
|
|
20
|
+
newNodeVersion: [{ currentVersion: string; latestVersion: string }];
|
|
21
|
+
updateNodeConfig: [object];
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
type Config = {
|
|
25
|
+
baseURL: URL;
|
|
26
|
+
nodeVersion?: string;
|
|
27
|
+
checkIntervalMs?: number;
|
|
28
|
+
registryContractAddress: EthAddress;
|
|
29
|
+
publicClient: ViemClient;
|
|
30
|
+
fetch?: typeof fetch;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export class UpdateChecker extends EventEmitter<EventMap> {
|
|
34
|
+
private runningPromise: RunningPromise;
|
|
35
|
+
private lastPatchedConfig: object = {};
|
|
36
|
+
|
|
37
|
+
constructor(
|
|
38
|
+
private updatesUrl: URL,
|
|
39
|
+
private nodeVersion: string | undefined,
|
|
40
|
+
private rollupVersion: bigint,
|
|
41
|
+
private fetch: typeof globalThis.fetch,
|
|
42
|
+
private getLatestRollupVersion: () => Promise<bigint>,
|
|
43
|
+
private checkIntervalMs = 60_000, // every minute
|
|
44
|
+
private log = createLogger('foundation:update-check'),
|
|
45
|
+
) {
|
|
46
|
+
super();
|
|
47
|
+
this.runningPromise = new RunningPromise(this.runChecks, this.log, this.checkIntervalMs);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public static async new(config: Config): Promise<UpdateChecker> {
|
|
51
|
+
const registryContract = new RegistryContract(config.publicClient, config.registryContractAddress);
|
|
52
|
+
const getLatestRollupVersion = () => registryContract.getRollupVersions().then(versions => versions.at(-1)!);
|
|
53
|
+
|
|
54
|
+
return new UpdateChecker(
|
|
55
|
+
config.baseURL,
|
|
56
|
+
config.nodeVersion ?? getPackageVersion(),
|
|
57
|
+
await getLatestRollupVersion(),
|
|
58
|
+
config.fetch ?? fetch,
|
|
59
|
+
getLatestRollupVersion,
|
|
60
|
+
config.checkIntervalMs,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public start(): void {
|
|
65
|
+
if (this.runningPromise.isRunning()) {
|
|
66
|
+
this.log.debug(`Can't start update checker again`);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
this.log.info('Starting update checker', {
|
|
71
|
+
nodeVersion: this.nodeVersion,
|
|
72
|
+
rollupVersion: this.rollupVersion,
|
|
73
|
+
});
|
|
74
|
+
this.runningPromise.start();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
public stop(): Promise<void> {
|
|
78
|
+
if (!this.runningPromise.isRunning()) {
|
|
79
|
+
this.log.debug(`Can't stop update checker because it is not running`);
|
|
80
|
+
return Promise.resolve();
|
|
81
|
+
}
|
|
82
|
+
return this.runningPromise.stop();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
public trigger(): Promise<void> {
|
|
86
|
+
return this.runningPromise.trigger();
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
private runChecks = async (): Promise<void> => {
|
|
90
|
+
await Promise.all([this.checkRollupVersion(), this.checkConfig()]);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
private async checkRollupVersion(): Promise<void> {
|
|
94
|
+
try {
|
|
95
|
+
const canonicalRollupVersion = await this.getLatestRollupVersion();
|
|
96
|
+
if (canonicalRollupVersion !== this.rollupVersion) {
|
|
97
|
+
this.log.debug('New canonical rollup version', {
|
|
98
|
+
currentVersion: this.rollupVersion,
|
|
99
|
+
latestVersion: canonicalRollupVersion,
|
|
100
|
+
});
|
|
101
|
+
this.emit('newRollupVersion', { currentVersion: this.rollupVersion, latestVersion: canonicalRollupVersion });
|
|
102
|
+
}
|
|
103
|
+
} catch (err) {
|
|
104
|
+
this.log.warn(`Failed to check if there is a new rollup`, err);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private async checkConfig(): Promise<void> {
|
|
109
|
+
try {
|
|
110
|
+
const response = await this.fetch(this.updatesUrl);
|
|
111
|
+
const body = await response.json();
|
|
112
|
+
if (!response.ok) {
|
|
113
|
+
this.log.warn(`Unexpected HTTP response checking for updates`, {
|
|
114
|
+
status: response.status,
|
|
115
|
+
body: await response.text(),
|
|
116
|
+
url: this.updatesUrl,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const { version, config } = updateConfigSchema.parse(body);
|
|
121
|
+
|
|
122
|
+
if (this.nodeVersion && version && version !== this.nodeVersion) {
|
|
123
|
+
this.log.debug('New node version', { currentVersion: this.nodeVersion, latestVersion: version });
|
|
124
|
+
this.emit('newNodeVersion', { currentVersion: this.nodeVersion, latestVersion: version });
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
if (config && Object.keys(config).length > 0 && !isDeepStrictEqual(config, this.lastPatchedConfig)) {
|
|
128
|
+
this.log.debug('New node config', { config });
|
|
129
|
+
this.lastPatchedConfig = config;
|
|
130
|
+
this.emit('updateNodeConfig', config);
|
|
131
|
+
}
|
|
132
|
+
} catch (err) {
|
|
133
|
+
this.log.warn(`Failed to check if there is an update`, err);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Returns package version.
|
|
140
|
+
*/
|
|
141
|
+
export function getPackageVersion(): string | undefined {
|
|
142
|
+
try {
|
|
143
|
+
const releasePleaseManifestPath = resolve(
|
|
144
|
+
dirname(fileURLToPath(import.meta.url)),
|
|
145
|
+
'../../../../.release-please-manifest.json',
|
|
146
|
+
);
|
|
147
|
+
const version = JSON.parse(readFileSync(releasePleaseManifestPath).toString())['.'];
|
|
148
|
+
return version;
|
|
149
|
+
} catch {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
@@ -4,7 +4,7 @@ import { jsonStringify } from '@aztec/foundation/json-rpc';
|
|
|
4
4
|
|
|
5
5
|
import type Koa from 'koa';
|
|
6
6
|
|
|
7
|
-
import type { ChainConfig } from '../config/config.js';
|
|
7
|
+
import type { ChainConfig } from '../config/chain-config.js';
|
|
8
8
|
|
|
9
9
|
// REFACTOR: This file is not a circuit-type, but at the moment we don't have any other
|
|
10
10
|
// package common to all components that we can use for this shared code.
|
|
@@ -88,7 +88,10 @@ export const CIRCUIT_RECURSIVE_INDEX = 3;
|
|
|
88
88
|
* Provides a 'fields' representation of a circuit's verification key
|
|
89
89
|
*/
|
|
90
90
|
export class VerificationKeyAsFields {
|
|
91
|
-
constructor(
|
|
91
|
+
constructor(
|
|
92
|
+
public key: Fr[],
|
|
93
|
+
public hash: Fr,
|
|
94
|
+
) {}
|
|
92
95
|
|
|
93
96
|
public get numPublicInputs() {
|
|
94
97
|
return Number(this.key[CIRCUIT_PUBLIC_INPUTS_INDEX]);
|
|
@@ -252,7 +255,10 @@ export class VerificationKey {
|
|
|
252
255
|
}
|
|
253
256
|
|
|
254
257
|
export class VerificationKeyData {
|
|
255
|
-
constructor(
|
|
258
|
+
constructor(
|
|
259
|
+
public readonly keyAsFields: VerificationKeyAsFields,
|
|
260
|
+
public readonly keyAsBytes: Buffer,
|
|
261
|
+
) {}
|
|
256
262
|
|
|
257
263
|
public get numPublicInputs() {
|
|
258
264
|
return this.keyAsFields.numPublicInputs;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,KAAK,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,eAAO,MAAM,gBAAgB,EAAE,WAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,CAAC,WAAW,CAgB/D,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,WAAW,GAAG;IACxB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,WAAW,EAAE;QACX,4BAA4B;QAC5B,aAAa,EAAE,UAAU,CAAC;KAC3B,CAAC;CACH,CAAC"}
|
|
File without changes
|
|
File without changes
|