@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
|
@@ -1,139 +1,238 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CONTRACT_CLASS_LOG_LENGTH, CONTRACT_CLASS_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { poseidon2Hash } from '@aztec/foundation/crypto';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { schemas } from '@aztec/foundation/schemas';
|
|
5
|
-
import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
5
|
+
import { BufferReader, FieldReader, serializeToBuffer, serializeToFields } from '@aztec/foundation/serialize';
|
|
6
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
6
7
|
|
|
7
8
|
import { inspect } from 'util';
|
|
8
9
|
import { z } from 'zod';
|
|
9
10
|
|
|
10
11
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
11
12
|
|
|
12
|
-
export class
|
|
13
|
-
static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * CONTRACT_CLASS_LOG_SIZE_IN_FIELDS;
|
|
14
|
-
// Keeps original first field pre-siloing. Only set by silo().
|
|
15
|
-
public unsiloedFirstField?: Fr | undefined;
|
|
16
|
-
|
|
13
|
+
export class ContractClassLogFields {
|
|
17
14
|
// Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
18
|
-
// public fields: Tuple<Fr, typeof
|
|
19
|
-
constructor(public
|
|
20
|
-
if (fields.length !==
|
|
15
|
+
// public fields: Tuple<Fr, typeof CONTRACT_CLASS_LOG_SIZE_IN_FIELDS>
|
|
16
|
+
constructor(public fields: Fr[]) {
|
|
17
|
+
if (fields.length !== CONTRACT_CLASS_LOG_SIZE_IN_FIELDS) {
|
|
21
18
|
throw new Error(
|
|
22
|
-
`Invalid number of fields for ContractClassLog. Expected ${
|
|
19
|
+
`Invalid number of fields for ContractClassLog. Expected ${CONTRACT_CLASS_LOG_SIZE_IN_FIELDS}, got ${fields.length}`,
|
|
23
20
|
);
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
|
|
24
|
+
static get schema() {
|
|
25
|
+
return z
|
|
26
|
+
.object({
|
|
27
|
+
fields: z.array(schemas.Fr).refine(arr => arr.length === CONTRACT_CLASS_LOG_SIZE_IN_FIELDS),
|
|
28
|
+
})
|
|
29
|
+
.transform(({ fields }) => new ContractClassLogFields(fields));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
toFields(): Fr[] {
|
|
33
|
+
return this.fields;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static fromFields(fields: Fr[] | FieldReader) {
|
|
37
|
+
const reader = FieldReader.asReader(fields);
|
|
38
|
+
// Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
39
|
+
// reader.readFieldArray(CONTRACT_CLASS_LOG_LENGTH);
|
|
40
|
+
return new ContractClassLogFields(
|
|
41
|
+
Array.from({ length: CONTRACT_CLASS_LOG_SIZE_IN_FIELDS }, () => reader.readField()),
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
toBuffer() {
|
|
46
|
+
return serializeToBuffer(this.fields);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
50
|
+
const reader = BufferReader.asReader(buffer);
|
|
51
|
+
// Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
52
|
+
// reader.readArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, Fr)
|
|
53
|
+
return new ContractClassLogFields(
|
|
54
|
+
Array.from({ length: CONTRACT_CLASS_LOG_SIZE_IN_FIELDS }, () => reader.readObject(Fr)),
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
equals(other: ContractClassLogFields) {
|
|
59
|
+
return this.fields.every((f, i) => f.equals(other.fields[i]));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
getEmittedFields(emittedLength: number) {
|
|
63
|
+
return this.fields.slice(0, emittedLength);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
static fromEmittedFields(emittedFields: Fr[]) {
|
|
67
|
+
return new ContractClassLogFields(
|
|
68
|
+
emittedFields.concat(Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - emittedFields.length).fill(Fr.ZERO)),
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
isEmpty() {
|
|
73
|
+
return this.fields.every(f => f.isZero());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static empty() {
|
|
77
|
+
return new ContractClassLogFields(Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS).fill(Fr.ZERO));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static random(emittedLength = CONTRACT_CLASS_LOG_SIZE_IN_FIELDS) {
|
|
81
|
+
return new ContractClassLogFields(
|
|
82
|
+
Array.from({ length: emittedLength }, () => Fr.random()).concat(
|
|
83
|
+
Array(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS - emittedLength).fill(Fr.ZERO),
|
|
84
|
+
),
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
async hash() {
|
|
89
|
+
return await poseidon2Hash(this.fields);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
clone() {
|
|
93
|
+
return ContractClassLogFields.fromBuffer(this.toBuffer());
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export class ContractClassLog {
|
|
98
|
+
static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * CONTRACT_CLASS_LOG_LENGTH;
|
|
99
|
+
// Keeps original first field pre-siloing. Only set by silo().
|
|
100
|
+
public unsiloedFirstField?: Fr | undefined;
|
|
101
|
+
|
|
102
|
+
constructor(
|
|
103
|
+
public contractAddress: AztecAddress,
|
|
104
|
+
public fields: ContractClassLogFields,
|
|
105
|
+
public emittedLength: number,
|
|
106
|
+
) {}
|
|
107
|
+
|
|
108
|
+
static from(fields: FieldsOf<ContractClassLog>) {
|
|
109
|
+
return new ContractClassLog(fields.contractAddress, fields.fields, fields.emittedLength);
|
|
110
|
+
}
|
|
111
|
+
|
|
27
112
|
toFields(): Fr[] {
|
|
28
|
-
return [this.contractAddress.
|
|
113
|
+
return serializeToFields([this.contractAddress, this.fields, this.emittedLength]);
|
|
29
114
|
}
|
|
30
115
|
|
|
31
116
|
equals(other: ContractClassLog) {
|
|
32
117
|
return (
|
|
33
118
|
this.contractAddress.equals(other.contractAddress) &&
|
|
34
|
-
this.fields.
|
|
35
|
-
this.
|
|
119
|
+
this.fields.equals(other.fields) &&
|
|
120
|
+
this.emittedLength === other.emittedLength
|
|
36
121
|
);
|
|
37
122
|
}
|
|
38
123
|
|
|
39
124
|
static fromFields(fields: Fr[] | FieldReader) {
|
|
40
125
|
const reader = FieldReader.asReader(fields);
|
|
41
|
-
// Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
42
|
-
// return new ContractClassLog(reader.readFieldArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS));
|
|
43
126
|
return new ContractClassLog(
|
|
44
127
|
reader.readObject(AztecAddress),
|
|
45
|
-
|
|
128
|
+
reader.readObject(ContractClassLogFields),
|
|
129
|
+
reader.readU32(),
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
getEmittedFields() {
|
|
134
|
+
return this.fields.getEmittedFields(this.emittedLength);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
toBlobFields(): Fr[] {
|
|
138
|
+
return [new Fr(this.emittedLength), this.contractAddress.toField()].concat(this.getEmittedFields());
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
static fromBlobFields(fields: Fr[] | FieldReader) {
|
|
142
|
+
const reader = FieldReader.asReader(fields);
|
|
143
|
+
const emittedLength = reader.readU32();
|
|
144
|
+
const contractAddress = reader.readObject(AztecAddress);
|
|
145
|
+
const emittedFields = reader.readFieldArray(emittedLength);
|
|
146
|
+
return new ContractClassLog(
|
|
147
|
+
contractAddress,
|
|
148
|
+
ContractClassLogFields.fromEmittedFields(emittedFields),
|
|
149
|
+
emittedLength,
|
|
46
150
|
);
|
|
47
151
|
}
|
|
48
152
|
|
|
49
153
|
isEmpty() {
|
|
50
|
-
return this.
|
|
154
|
+
return this.contractAddress.isZero() && this.fields.isEmpty() && this.emittedLength === 0;
|
|
51
155
|
}
|
|
52
156
|
|
|
53
157
|
static empty() {
|
|
54
|
-
return new ContractClassLog(AztecAddress.ZERO,
|
|
158
|
+
return new ContractClassLog(AztecAddress.ZERO, ContractClassLogFields.empty(), 0);
|
|
55
159
|
}
|
|
56
160
|
|
|
57
161
|
toBuffer(): Buffer {
|
|
58
|
-
return serializeToBuffer([this.contractAddress, this.fields]);
|
|
162
|
+
return serializeToBuffer([this.contractAddress, this.fields, this.emittedLength]);
|
|
59
163
|
}
|
|
60
164
|
|
|
61
165
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
62
166
|
const reader = BufferReader.asReader(buffer);
|
|
63
|
-
// Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
64
|
-
// reader.readArray(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, Fr);
|
|
65
167
|
const address = reader.readObject(AztecAddress);
|
|
66
|
-
const fields =
|
|
67
|
-
|
|
68
|
-
);
|
|
69
|
-
return new ContractClassLog(address, fields);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
clone() {
|
|
73
|
-
return ContractClassLog.fromBuffer(this.toBuffer());
|
|
168
|
+
const fields = ContractClassLogFields.fromBuffer(reader);
|
|
169
|
+
const emittedLength = reader.readNumber();
|
|
170
|
+
return new ContractClassLog(address, fields, emittedLength);
|
|
74
171
|
}
|
|
75
172
|
|
|
76
173
|
static async random() {
|
|
77
174
|
// NB: Using half the maximum number of fields per log because max fields keeps overfilling blobs in tests.
|
|
78
|
-
|
|
79
|
-
// makeTuple(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS, Fr.random);
|
|
80
|
-
const fields = Array.from({ length: Math.ceil(CONTRACT_CLASS_LOG_DATA_SIZE_IN_FIELDS / 2) }, () => Fr.random());
|
|
175
|
+
const emittedLength = Math.ceil(CONTRACT_CLASS_LOG_SIZE_IN_FIELDS / 2);
|
|
81
176
|
return new ContractClassLog(
|
|
82
177
|
await AztecAddress.random(),
|
|
83
|
-
|
|
178
|
+
ContractClassLogFields.random(emittedLength),
|
|
179
|
+
emittedLength,
|
|
84
180
|
);
|
|
85
181
|
}
|
|
86
182
|
|
|
87
|
-
getEmittedLength() {
|
|
88
|
-
// This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
|
|
89
|
-
// Does not include address or length prefix.
|
|
90
|
-
// Note: Unlike public logs, address is not included here because it is not included in the log itself.
|
|
91
|
-
return this.getEmittedFields().length;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
getEmittedFields() {
|
|
95
|
-
const lastNonZeroIndex = this.fields.findLastIndex(f => !f.isZero());
|
|
96
|
-
return this.fields.slice(0, lastNonZeroIndex + 1);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
183
|
setUnsiloedFirstField(field: Fr) {
|
|
100
184
|
this.unsiloedFirstField = field;
|
|
101
185
|
}
|
|
102
186
|
|
|
103
187
|
toUnsiloed() {
|
|
188
|
+
if (this.contractAddress.isZero()) {
|
|
189
|
+
return this;
|
|
190
|
+
}
|
|
104
191
|
if (this.unsiloedFirstField) {
|
|
105
|
-
return new ContractClassLog(
|
|
192
|
+
return new ContractClassLog(
|
|
193
|
+
this.contractAddress,
|
|
194
|
+
new ContractClassLogFields([this.unsiloedFirstField].concat(this.fields.fields.slice(1))),
|
|
195
|
+
this.emittedLength,
|
|
196
|
+
);
|
|
106
197
|
} else {
|
|
107
198
|
return this;
|
|
108
199
|
}
|
|
109
200
|
}
|
|
110
201
|
|
|
202
|
+
// TODO(#13914): Don't need to silo the contract class logs.
|
|
111
203
|
async silo() {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return innerLog;
|
|
204
|
+
if (this.contractAddress.isZero()) {
|
|
205
|
+
return this;
|
|
115
206
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
207
|
+
|
|
208
|
+
const fields = this.fields.clone();
|
|
209
|
+
const unsiloedField = fields.fields[0];
|
|
210
|
+
const siloedField = await poseidon2Hash([this.contractAddress, unsiloedField]);
|
|
211
|
+
fields.fields[0] = siloedField;
|
|
212
|
+
const cloned = new ContractClassLog(this.contractAddress, fields, this.emittedLength);
|
|
213
|
+
cloned.setUnsiloedFirstField(unsiloedField);
|
|
214
|
+
return cloned;
|
|
119
215
|
}
|
|
120
216
|
|
|
121
217
|
async hash() {
|
|
122
|
-
return await
|
|
218
|
+
return await this.fields.hash();
|
|
123
219
|
}
|
|
124
220
|
|
|
125
221
|
static get schema() {
|
|
126
222
|
return z
|
|
127
223
|
.object({
|
|
128
224
|
contractAddress: AztecAddress.schema,
|
|
129
|
-
fields:
|
|
225
|
+
fields: ContractClassLogFields.schema,
|
|
226
|
+
emittedLength: z.number(),
|
|
130
227
|
})
|
|
131
|
-
.transform(
|
|
228
|
+
.transform(ContractClassLog.from);
|
|
132
229
|
}
|
|
133
230
|
|
|
134
231
|
[inspect.custom](): string {
|
|
135
232
|
return `ContractClassLog {
|
|
136
|
-
|
|
233
|
+
contractAddress: ${this.contractAddress.toString()},
|
|
234
|
+
emittedLength: ${this.emittedLength},
|
|
235
|
+
fields: [${this.fields.fields.map((x: Fr) => inspect(x)).join(', ')}],
|
|
137
236
|
}`;
|
|
138
237
|
}
|
|
139
238
|
}
|
|
@@ -4,7 +4,10 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
4
4
|
import type { AztecAddress } from '../aztec-address/index.js';
|
|
5
5
|
|
|
6
6
|
export class IndexedTaggingSecret {
|
|
7
|
-
constructor(
|
|
7
|
+
constructor(
|
|
8
|
+
public appTaggingSecret: Fr,
|
|
9
|
+
public index: number,
|
|
10
|
+
) {
|
|
8
11
|
if (index < 0) {
|
|
9
12
|
throw new Error('IndexedTaggingSecret index out of bounds');
|
|
10
13
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MAX_NOTE_HASHES_PER_TX,
|
|
1
|
+
import { MAX_NOTE_HASHES_PER_TX, PUBLIC_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
4
4
|
|
|
@@ -6,6 +6,8 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
6
6
|
// response for PXE's custom getLogByTag oracle.
|
|
7
7
|
export class LogWithTxData {
|
|
8
8
|
constructor(
|
|
9
|
+
// The emitted fields of a log.
|
|
10
|
+
// For public logs, the contract address is prepended to the content.
|
|
9
11
|
public logContent: Fr[],
|
|
10
12
|
public txHash: TxHash,
|
|
11
13
|
public uniqueNoteHashesInTx: Fr[],
|
|
@@ -14,7 +16,10 @@ export class LogWithTxData {
|
|
|
14
16
|
|
|
15
17
|
toNoirSerialization(): (Fr | Fr[])[] {
|
|
16
18
|
return [
|
|
17
|
-
|
|
19
|
+
// The log fields length is PUBLIC_LOG_SIZE_IN_FIELDS. + 1 because the contract address is prepended to the content.
|
|
20
|
+
// This is only used for public logs currently, so the maxLength is PUBLIC_LOG_SIZE_IN_FIELDS + 1.
|
|
21
|
+
// TODO(#11639): this could also be used for private logs.
|
|
22
|
+
...toBoundedVecSerialization(this.logContent, PUBLIC_LOG_SIZE_IN_FIELDS + 1),
|
|
18
23
|
this.txHash.hash,
|
|
19
24
|
...toBoundedVecSerialization(this.uniqueNoteHashesInTx, MAX_NOTE_HASHES_PER_TX),
|
|
20
25
|
this.firstNullifierInTx,
|
package/src/logs/private_log.ts
CHANGED
|
@@ -1,24 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { makeTuple } from '@aztec/foundation/array';
|
|
1
|
+
import { PRIVATE_LOG_LENGTH, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
|
+
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
3
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
5
|
import { schemas } from '@aztec/foundation/schemas';
|
|
5
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
BufferReader,
|
|
8
|
+
FieldReader,
|
|
9
|
+
type Tuple,
|
|
10
|
+
serializeToBuffer,
|
|
11
|
+
serializeToFields,
|
|
12
|
+
} from '@aztec/foundation/serialize';
|
|
6
13
|
|
|
7
14
|
import { inspect } from 'util';
|
|
8
15
|
import { z } from 'zod';
|
|
9
16
|
|
|
10
17
|
export class PrivateLog {
|
|
11
|
-
static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES *
|
|
18
|
+
static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * PRIVATE_LOG_LENGTH;
|
|
12
19
|
|
|
13
|
-
constructor(
|
|
20
|
+
constructor(
|
|
21
|
+
public fields: Tuple<Fr, typeof PRIVATE_LOG_SIZE_IN_FIELDS>,
|
|
22
|
+
// Named `emittedLength` instead of `length` to avoid being confused with fields.length.
|
|
23
|
+
public emittedLength: number,
|
|
24
|
+
) {}
|
|
25
|
+
|
|
26
|
+
static from(fields: FieldsOf<PrivateLog>) {
|
|
27
|
+
return new PrivateLog(...PrivateLog.getFields(fields));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
static getFields(fields: FieldsOf<PrivateLog>) {
|
|
31
|
+
return [fields.fields, fields.emittedLength] as const;
|
|
32
|
+
}
|
|
14
33
|
|
|
15
34
|
toFields(): Fr[] {
|
|
16
|
-
return this
|
|
35
|
+
return serializeToFields(...PrivateLog.getFields(this));
|
|
17
36
|
}
|
|
18
37
|
|
|
19
38
|
static fromFields(fields: Fr[] | FieldReader) {
|
|
20
39
|
const reader = FieldReader.asReader(fields);
|
|
21
|
-
return new PrivateLog(reader.readFieldArray(PRIVATE_LOG_SIZE_IN_FIELDS));
|
|
40
|
+
return new PrivateLog(reader.readFieldArray(PRIVATE_LOG_SIZE_IN_FIELDS), reader.readU32());
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
getEmittedFields() {
|
|
44
|
+
return this.fields.slice(0, this.emittedLength);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
toBlobFields(): Fr[] {
|
|
48
|
+
return [new Fr(this.emittedLength)].concat(this.getEmittedFields());
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static fromBlobFields(fields: Fr[] | FieldReader) {
|
|
52
|
+
const reader = FieldReader.asReader(fields);
|
|
53
|
+
const emittedLength = reader.readU32();
|
|
54
|
+
const emittedFields = reader.readFieldArray(emittedLength);
|
|
55
|
+
return new PrivateLog(padArrayEnd(emittedFields, Fr.ZERO, PRIVATE_LOG_SIZE_IN_FIELDS), emittedLength);
|
|
22
56
|
}
|
|
23
57
|
|
|
24
58
|
isEmpty() {
|
|
@@ -26,54 +60,42 @@ export class PrivateLog {
|
|
|
26
60
|
}
|
|
27
61
|
|
|
28
62
|
static empty() {
|
|
29
|
-
return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.zero));
|
|
63
|
+
return new PrivateLog(makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.zero), 0);
|
|
30
64
|
}
|
|
31
65
|
|
|
32
66
|
toBuffer(): Buffer {
|
|
33
|
-
return serializeToBuffer(this.fields);
|
|
67
|
+
return serializeToBuffer(this.fields, this.emittedLength);
|
|
34
68
|
}
|
|
35
69
|
|
|
36
70
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
37
71
|
const reader = BufferReader.asReader(buffer);
|
|
38
|
-
return new PrivateLog(reader.readArray(PRIVATE_LOG_SIZE_IN_FIELDS, Fr));
|
|
72
|
+
return new PrivateLog(reader.readArray(PRIVATE_LOG_SIZE_IN_FIELDS, Fr), reader.readNumber());
|
|
39
73
|
}
|
|
40
74
|
|
|
41
75
|
static random(tag = Fr.random()) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
getEmittedLength() {
|
|
46
|
-
// This assumes that we cut trailing zeroes from the end of the log. In ts, these will always be added back.
|
|
47
|
-
// Does not include length prefix.
|
|
48
|
-
return this.getEmittedFields().length;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
getEmittedFields() {
|
|
52
|
-
const lastNonZeroIndex = this.fields.findLastIndex(f => !f.isZero());
|
|
53
|
-
return this.fields.slice(0, lastNonZeroIndex + 1);
|
|
76
|
+
const fields = makeTuple(PRIVATE_LOG_SIZE_IN_FIELDS, Fr.random);
|
|
77
|
+
fields[0] = tag;
|
|
78
|
+
return new PrivateLog(fields, PRIVATE_LOG_SIZE_IN_FIELDS);
|
|
54
79
|
}
|
|
55
80
|
|
|
56
81
|
static get schema() {
|
|
57
|
-
if (PUBLIC_LOG_DATA_SIZE_IN_FIELDS + 1 == PRIVATE_LOG_SIZE_IN_FIELDS) {
|
|
58
|
-
throw new Error(
|
|
59
|
-
'Constants got updated and schema for PublicLog matches that of PrivateLog. This needs to be updated now as Zod is no longer able to differentiate the 2 in TxScopedL2Log.',
|
|
60
|
-
);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
82
|
return z
|
|
64
83
|
.object({
|
|
65
84
|
fields: z.array(schemas.Fr),
|
|
85
|
+
emittedLength: z.number(),
|
|
66
86
|
})
|
|
67
|
-
.
|
|
87
|
+
.strict()
|
|
88
|
+
.transform(({ fields, emittedLength }) => PrivateLog.fromFields(fields.concat(new Fr(emittedLength))));
|
|
68
89
|
}
|
|
69
90
|
|
|
70
91
|
equals(other: PrivateLog) {
|
|
71
|
-
return this.fields.every((field, i) => field.equals(other.fields[i]));
|
|
92
|
+
return this.fields.every((field, i) => field.equals(other.fields[i])) && this.emittedLength === other.emittedLength;
|
|
72
93
|
}
|
|
73
94
|
|
|
74
95
|
[inspect.custom](): string {
|
|
75
96
|
return `PrivateLog {
|
|
76
97
|
fields: [${this.fields.map(x => inspect(x)).join(', ')}],
|
|
98
|
+
emittedLength: ${this.emittedLength},
|
|
77
99
|
}`;
|
|
78
100
|
}
|
|
79
101
|
}
|
package/src/logs/public_log.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
PRIVATE_LOG_SIZE_IN_FIELDS,
|
|
3
|
-
PUBLIC_LOG_DATA_SIZE_IN_FIELDS,
|
|
4
|
-
PUBLIC_LOG_SIZE_IN_FIELDS,
|
|
5
|
-
} from '@aztec/constants';
|
|
1
|
+
import { PUBLIC_LOG_LENGTH, PUBLIC_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
6
2
|
import { type FieldsOf, makeTuple } from '@aztec/foundation/array';
|
|
3
|
+
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
7
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
8
5
|
import { type ZodFor, schemas } from '@aztec/foundation/schemas';
|
|
9
6
|
import {
|
|
@@ -20,29 +17,61 @@ import { z } from 'zod';
|
|
|
20
17
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
21
18
|
|
|
22
19
|
export class PublicLog {
|
|
23
|
-
static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES *
|
|
20
|
+
static SIZE_IN_BYTES = Fr.SIZE_IN_BYTES * PUBLIC_LOG_LENGTH;
|
|
24
21
|
|
|
25
|
-
constructor(
|
|
22
|
+
constructor(
|
|
23
|
+
public contractAddress: AztecAddress,
|
|
24
|
+
public fields: Tuple<Fr, typeof PUBLIC_LOG_SIZE_IN_FIELDS>,
|
|
25
|
+
public emittedLength: number,
|
|
26
|
+
) {}
|
|
26
27
|
|
|
27
|
-
|
|
28
|
-
return
|
|
28
|
+
static from(fields: FieldsOf<PublicLog>) {
|
|
29
|
+
return new PublicLog(...PublicLog.getFields(fields));
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
static getFields(fields: FieldsOf<PublicLog>) {
|
|
32
|
-
return [fields.contractAddress, fields.
|
|
33
|
+
return [fields.contractAddress, fields.fields, fields.emittedLength] as const;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
toFields(): Fr[] {
|
|
37
|
+
return serializeToFields(...PublicLog.getFields(this));
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
static fromFields(fields: Fr[] | FieldReader) {
|
|
36
41
|
const reader = FieldReader.asReader(fields);
|
|
37
|
-
return new PublicLog(
|
|
42
|
+
return new PublicLog(
|
|
43
|
+
reader.readObject(AztecAddress),
|
|
44
|
+
reader.readFieldArray(PUBLIC_LOG_SIZE_IN_FIELDS),
|
|
45
|
+
reader.readU32(),
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
getEmittedFields() {
|
|
50
|
+
return this.fields.slice(0, this.emittedLength);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
toBlobFields(): Fr[] {
|
|
54
|
+
return [new Fr(this.emittedLength), this.contractAddress.toField()].concat(this.getEmittedFields());
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static fromBlobFields(fields: Fr[] | FieldReader) {
|
|
58
|
+
const reader = FieldReader.asReader(fields);
|
|
59
|
+
const emittedLength = reader.readU32();
|
|
60
|
+
const contractAddress = reader.readObject(AztecAddress);
|
|
61
|
+
const emittedFields = reader.readFieldArray(emittedLength);
|
|
62
|
+
return new PublicLog(
|
|
63
|
+
contractAddress,
|
|
64
|
+
padArrayEnd(emittedFields, Fr.ZERO, PUBLIC_LOG_SIZE_IN_FIELDS),
|
|
65
|
+
emittedLength,
|
|
66
|
+
);
|
|
38
67
|
}
|
|
39
68
|
|
|
40
69
|
isEmpty() {
|
|
41
|
-
return this.contractAddress.isZero() && this.
|
|
70
|
+
return this.contractAddress.isZero() && this.fields.every(f => f.isZero()) && this.emittedLength === 0;
|
|
42
71
|
}
|
|
43
72
|
|
|
44
73
|
static empty() {
|
|
45
|
-
return new PublicLog(AztecAddress.ZERO, makeTuple(
|
|
74
|
+
return new PublicLog(AztecAddress.ZERO, makeTuple(PUBLIC_LOG_SIZE_IN_FIELDS, Fr.zero), 0);
|
|
46
75
|
}
|
|
47
76
|
|
|
48
77
|
toBuffer(): Buffer {
|
|
@@ -51,55 +80,50 @@ export class PublicLog {
|
|
|
51
80
|
|
|
52
81
|
static fromBuffer(buffer: Buffer | BufferReader) {
|
|
53
82
|
const reader = BufferReader.asReader(buffer);
|
|
54
|
-
return new PublicLog(
|
|
83
|
+
return new PublicLog(
|
|
84
|
+
reader.readObject(AztecAddress),
|
|
85
|
+
reader.readArray(PUBLIC_LOG_SIZE_IN_FIELDS, Fr),
|
|
86
|
+
reader.readNumber(),
|
|
87
|
+
);
|
|
55
88
|
}
|
|
56
89
|
|
|
57
90
|
static async random() {
|
|
58
|
-
return new PublicLog(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
// Does not include length prefix.
|
|
64
|
-
return this.getEmittedFields().length;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
getEmittedFields() {
|
|
68
|
-
const fields = this.toFields();
|
|
69
|
-
const lastNonZeroIndex = fields.findLastIndex(f => !f.isZero());
|
|
70
|
-
return fields.slice(0, lastNonZeroIndex + 1);
|
|
91
|
+
return new PublicLog(
|
|
92
|
+
await AztecAddress.random(),
|
|
93
|
+
makeTuple(PUBLIC_LOG_SIZE_IN_FIELDS, Fr.random),
|
|
94
|
+
PUBLIC_LOG_SIZE_IN_FIELDS,
|
|
95
|
+
);
|
|
71
96
|
}
|
|
72
97
|
|
|
73
98
|
equals(other: this) {
|
|
74
99
|
return (
|
|
75
100
|
this.contractAddress.equals(other.contractAddress) &&
|
|
76
|
-
this.
|
|
101
|
+
this.fields.every((field, i) => field.equals(other.fields[i])) &&
|
|
102
|
+
this.emittedLength === other.emittedLength
|
|
77
103
|
);
|
|
78
104
|
}
|
|
79
105
|
|
|
80
106
|
toHumanReadable(): string {
|
|
81
|
-
return `PublicLog: (contractAddress: ${this.contractAddress}
|
|
107
|
+
return `PublicLog: (contractAddress: ${this.contractAddress} fields: ${this.fields}) emittedLength: ${this.emittedLength}`;
|
|
82
108
|
}
|
|
83
109
|
|
|
84
110
|
static get schema(): ZodFor<PublicLog> {
|
|
85
|
-
if (PUBLIC_LOG_DATA_SIZE_IN_FIELDS + 1 == PRIVATE_LOG_SIZE_IN_FIELDS) {
|
|
86
|
-
throw new Error(
|
|
87
|
-
'Constants got updated and schema for PrivateLog matches that of PublicLog. This needs to be updated now as Zod is no longer able to differentiate the 2 in TxScopedL2Log.',
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
111
|
return z
|
|
92
112
|
.object({
|
|
93
113
|
contractAddress: AztecAddress.schema,
|
|
94
|
-
|
|
114
|
+
fields: z.array(schemas.Fr).refine(arr => arr.length === PUBLIC_LOG_SIZE_IN_FIELDS),
|
|
115
|
+
emittedLength: z.number(),
|
|
95
116
|
})
|
|
96
|
-
.transform(({ contractAddress,
|
|
117
|
+
.transform(({ contractAddress, fields, emittedLength }) =>
|
|
118
|
+
PublicLog.fromFields([contractAddress.toField(), ...fields, new Fr(emittedLength)]),
|
|
119
|
+
);
|
|
97
120
|
}
|
|
98
121
|
|
|
99
122
|
[inspect.custom](): string {
|
|
100
123
|
return `PublicLog {
|
|
101
124
|
contractAddress: ${inspect(this.contractAddress)},
|
|
102
|
-
|
|
125
|
+
fields: [${this.fields.map(x => inspect(x)).join(', ')}],
|
|
126
|
+
emittedLength: ${this.emittedLength},
|
|
103
127
|
}`;
|
|
104
128
|
}
|
|
105
129
|
}
|
|
@@ -75,8 +75,7 @@ export class TxScopedL2Log {
|
|
|
75
75
|
return new TxScopedL2Log(txHash, dataStartIndexForTx, logIndexInTx, blockNumber, log);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
static async random() {
|
|
79
|
-
const isFromPublic = Math.random() < 0.5;
|
|
78
|
+
static async random(isFromPublic = Math.random() < 0.5) {
|
|
80
79
|
const log = isFromPublic ? await PublicLog.random() : PrivateLog.random();
|
|
81
80
|
return new TxScopedL2Log(TxHash.random(), 1, 1, 1, log);
|
|
82
81
|
}
|
|
@@ -25,4 +25,14 @@ export class InboxLeaf {
|
|
|
25
25
|
static smallestIndexFromL2Block(l2block: bigint): bigint {
|
|
26
26
|
return (l2block - BigInt(INITIAL_L2_BLOCK_NUM)) * BigInt(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Returns the range of valid indices for a given L2 block.
|
|
31
|
+
* Start index is inclusive, end index is exclusive.
|
|
32
|
+
*/
|
|
33
|
+
static indexRangeFromL2Block(l2block: bigint): [bigint, bigint] {
|
|
34
|
+
const start = this.smallestIndexFromL2Block(l2block);
|
|
35
|
+
const end = start + BigInt(NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
|
|
36
|
+
return [start, end];
|
|
37
|
+
}
|
|
28
38
|
}
|
|
@@ -10,7 +10,11 @@ import { z } from 'zod';
|
|
|
10
10
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
11
11
|
|
|
12
12
|
export class L2ToL1Message {
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(
|
|
14
|
+
public recipient: EthAddress,
|
|
15
|
+
public content: Fr,
|
|
16
|
+
public counter: number,
|
|
17
|
+
) {}
|
|
14
18
|
|
|
15
19
|
static get schema() {
|
|
16
20
|
return z
|
|
@@ -97,7 +101,10 @@ export class L2ToL1Message {
|
|
|
97
101
|
}
|
|
98
102
|
|
|
99
103
|
export class ScopedL2ToL1Message {
|
|
100
|
-
constructor(
|
|
104
|
+
constructor(
|
|
105
|
+
public message: L2ToL1Message,
|
|
106
|
+
public contractAddress: AztecAddress,
|
|
107
|
+
) {}
|
|
101
108
|
|
|
102
109
|
static get schema() {
|
|
103
110
|
return z
|