@aztec/aztec.js 0.0.0-test.1 → 0.0.1-commit.0b941701
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/README.md +1 -1
- package/dest/account/account.d.ts +44 -0
- package/dest/account/account.d.ts.map +1 -0
- package/dest/account/account.js +31 -0
- package/dest/account/account_contract.d.ts +42 -0
- package/dest/account/account_contract.d.ts.map +1 -0
- package/dest/account/{contract.js → account_contract.js} +7 -4
- package/dest/account/account_with_secret_key.d.ts +36 -0
- package/dest/account/account_with_secret_key.d.ts.map +1 -0
- package/dest/{wallet/account_wallet_with_private_key.js → account/account_with_secret_key.js} +22 -5
- package/dest/account/index.d.ts +6 -9
- package/dest/account/index.d.ts.map +1 -1
- package/dest/account/index.js +4 -6
- package/dest/account/signerless_account.d.ts +22 -0
- package/dest/account/signerless_account.d.ts.map +1 -0
- package/dest/account/signerless_account.js +24 -0
- package/dest/api/abi.d.ts +3 -2
- package/dest/api/abi.d.ts.map +1 -1
- package/dest/api/abi.js +1 -1
- package/dest/api/account.d.ts +5 -3
- package/dest/api/account.d.ts.map +1 -1
- package/dest/api/account.js +3 -2
- package/dest/api/addresses.d.ts +2 -1
- package/dest/api/addresses.d.ts.map +1 -1
- package/dest/api/addresses.js +1 -0
- package/dest/api/authorization.d.ts +5 -0
- package/dest/api/authorization.d.ts.map +1 -0
- package/dest/api/authorization.js +4 -0
- package/dest/api/block.d.ts +3 -0
- package/dest/api/block.d.ts.map +1 -0
- package/dest/api/block.js +2 -0
- package/dest/api/contract.d.ts +55 -0
- package/dest/api/contract.d.ts.map +1 -0
- package/dest/api/contract.js +53 -0
- package/dest/api/crypto.d.ts +2 -0
- package/dest/api/crypto.d.ts.map +1 -0
- package/dest/api/crypto.js +1 -0
- package/dest/api/deployment.d.ts +5 -4
- package/dest/api/deployment.d.ts.map +1 -1
- package/dest/api/deployment.js +4 -3
- package/dest/api/eth_address.d.ts +1 -1
- package/dest/api/ethereum.d.ts +2 -0
- package/dest/api/ethereum.d.ts.map +1 -0
- package/dest/api/ethereum.js +1 -0
- package/dest/api/events.d.ts +12 -0
- package/dest/api/events.d.ts.map +1 -0
- package/dest/api/events.js +30 -0
- package/dest/api/fee.d.ts +2 -2
- package/dest/api/fee.d.ts.map +1 -1
- package/dest/api/fee.js +1 -1
- package/dest/api/fee_testing.d.ts +2 -0
- package/dest/api/fee_testing.d.ts.map +1 -0
- package/dest/api/fee_testing.js +1 -0
- package/dest/api/fields.d.ts +3 -2
- package/dest/api/fields.d.ts.map +1 -1
- package/dest/api/fields.js +2 -1
- package/dest/api/keys.d.ts +4 -0
- package/dest/api/keys.d.ts.map +1 -0
- package/dest/api/keys.js +3 -0
- package/dest/api/log.d.ts +2 -1
- package/dest/api/log.d.ts.map +1 -1
- package/dest/api/log.js +1 -0
- package/dest/api/messaging.d.ts +3 -0
- package/dest/api/messaging.d.ts.map +1 -0
- package/dest/api/messaging.js +2 -0
- package/dest/api/node.d.ts +25 -0
- package/dest/api/node.d.ts.map +1 -0
- package/dest/api/node.js +22 -0
- package/dest/api/note.d.ts +2 -0
- package/dest/api/note.d.ts.map +1 -0
- package/dest/api/note.js +1 -0
- package/dest/api/protocol.d.ts +9 -0
- package/dest/api/protocol.d.ts.map +1 -0
- package/dest/api/protocol.js +8 -0
- package/dest/api/trees.d.ts +3 -0
- package/dest/api/trees.d.ts.map +1 -0
- package/dest/api/trees.js +2 -0
- package/dest/api/tx.d.ts +2 -0
- package/dest/api/tx.d.ts.map +1 -0
- package/dest/api/tx.js +1 -0
- package/dest/api/utils.d.ts +13 -0
- package/dest/api/utils.d.ts.map +1 -0
- package/dest/api/utils.js +12 -0
- package/dest/api/wallet.d.ts +4 -2
- package/dest/api/wallet.d.ts.map +1 -1
- package/dest/api/wallet.js +3 -1
- package/dest/authorization/call_authorization_request.d.ts +67 -0
- package/dest/authorization/call_authorization_request.d.ts.map +1 -0
- package/dest/authorization/call_authorization_request.js +49 -0
- package/dest/contract/base_contract_interaction.d.ts +18 -84
- package/dest/contract/base_contract_interaction.d.ts.map +1 -1
- package/dest/contract/base_contract_interaction.js +11 -136
- package/dest/contract/batch_call.d.ts +19 -21
- package/dest/contract/batch_call.d.ts.map +1 -1
- package/dest/contract/batch_call.js +89 -69
- package/dest/contract/checker.d.ts +2 -2
- package/dest/contract/checker.d.ts.map +1 -1
- package/dest/contract/checker.js +2 -2
- package/dest/contract/contract.d.ts +9 -8
- package/dest/contract/contract.d.ts.map +1 -1
- package/dest/contract/contract.js +10 -20
- package/dest/contract/contract_base.d.ts +8 -18
- package/dest/contract/contract_base.d.ts.map +1 -1
- package/dest/contract/contract_base.js +7 -14
- package/dest/contract/contract_function_interaction.d.ts +53 -45
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +78 -74
- package/dest/contract/deploy_method.d.ts +155 -62
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +152 -142
- package/dest/contract/get_gas_limits.d.ts +6 -7
- package/dest/contract/get_gas_limits.d.ts.map +1 -1
- package/dest/contract/get_gas_limits.js +9 -3
- package/dest/contract/interaction_options.d.ts +151 -0
- package/dest/contract/interaction_options.d.ts.map +1 -0
- package/dest/contract/interaction_options.js +53 -0
- package/dest/contract/protocol_contracts/auth-registry.d.ts +36 -0
- package/dest/contract/protocol_contracts/auth-registry.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/auth-registry.js +963 -0
- package/dest/contract/protocol_contracts/contract-class-registry.d.ts +35 -0
- package/dest/contract/protocol_contracts/contract-class-registry.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/contract-class-registry.js +784 -0
- package/dest/contract/protocol_contracts/contract-instance-registry.d.ts +31 -0
- package/dest/contract/protocol_contracts/contract-instance-registry.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/contract-instance-registry.js +858 -0
- package/dest/contract/protocol_contracts/fee-juice.d.ts +30 -0
- package/dest/contract/protocol_contracts/fee-juice.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/fee-juice.js +827 -0
- package/dest/contract/protocol_contracts/multi-call-entrypoint.d.ts +34 -0
- package/dest/contract/protocol_contracts/multi-call-entrypoint.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/multi-call-entrypoint.js +563 -0
- package/dest/contract/protocol_contracts/public-checks.d.ts +26 -0
- package/dest/contract/protocol_contracts/public-checks.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/public-checks.js +579 -0
- package/dest/contract/wait_for_proven.d.ts +17 -0
- package/dest/contract/wait_for_proven.d.ts.map +1 -0
- package/dest/contract/wait_for_proven.js +17 -0
- package/dest/contract/wait_opts.d.ts +16 -0
- package/dest/contract/wait_opts.d.ts.map +1 -0
- package/dest/contract/wait_opts.js +5 -0
- package/dest/deployment/broadcast_function.d.ts +4 -4
- package/dest/deployment/broadcast_function.d.ts.map +1 -1
- package/dest/deployment/broadcast_function.js +28 -24
- package/dest/deployment/contract_deployer.d.ts +2 -2
- package/dest/deployment/contract_deployer.d.ts.map +1 -1
- package/dest/deployment/contract_deployer.js +1 -1
- package/dest/deployment/publish_class.d.ts +6 -0
- package/dest/deployment/publish_class.d.ts.map +1 -0
- package/dest/deployment/publish_class.js +17 -0
- package/dest/deployment/publish_instance.d.ts +10 -0
- package/dest/deployment/publish_instance.d.ts.map +1 -0
- package/dest/deployment/publish_instance.js +11 -0
- package/dest/ethereum/portal_manager.d.ts +141 -0
- package/dest/ethereum/portal_manager.d.ts.map +1 -0
- package/dest/ethereum/portal_manager.js +345 -0
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts +17 -12
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -1
- package/dest/fee/fee_juice_payment_method_with_claim.js +27 -17
- package/dest/fee/fee_payment_method.d.ts +12 -8
- package/dest/fee/fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.d.ts +26 -9
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +45 -23
- package/dest/fee/public_fee_payment_method.d.ts +27 -10
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/public_fee_payment_method.js +47 -25
- package/dest/fee/sponsored_fee_payment.d.ts +17 -0
- package/dest/fee/sponsored_fee_payment.d.ts.map +1 -0
- package/dest/fee/sponsored_fee_payment.js +34 -0
- package/dest/scripts/generate_protocol_contract_types.d.ts +2 -0
- package/dest/scripts/generate_protocol_contract_types.d.ts.map +1 -0
- package/dest/scripts/generate_protocol_contract_types.js +120 -0
- package/dest/utils/abi_types.d.ts +2 -4
- package/dest/utils/abi_types.d.ts.map +1 -1
- package/dest/utils/authwit.d.ts +85 -26
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +234 -41
- package/dest/utils/cross_chain.d.ts +24 -0
- package/dest/utils/cross_chain.d.ts.map +1 -0
- package/dest/utils/cross_chain.js +30 -0
- package/dest/utils/fee_juice.d.ts +4 -3
- package/dest/utils/fee_juice.d.ts.map +1 -1
- package/dest/utils/fee_juice.js +4 -3
- package/dest/utils/field_compressed_string.d.ts +1 -1
- package/dest/utils/field_compressed_string.d.ts.map +1 -1
- package/dest/utils/field_compressed_string.js +1 -1
- package/dest/utils/node.d.ts +13 -2
- package/dest/utils/node.d.ts.map +1 -1
- package/dest/utils/node.js +47 -1
- package/dest/utils/pub_key.d.ts +2 -2
- package/dest/utils/pub_key.d.ts.map +1 -1
- package/dest/utils/pub_key.js +2 -3
- package/dest/wallet/account_entrypoint_meta_payment_method.d.ts +31 -0
- package/dest/wallet/account_entrypoint_meta_payment_method.d.ts.map +1 -0
- package/dest/wallet/account_entrypoint_meta_payment_method.js +61 -0
- package/dest/wallet/account_manager.d.ts +63 -0
- package/dest/wallet/account_manager.d.ts.map +1 -0
- package/dest/wallet/account_manager.js +107 -0
- package/dest/wallet/deploy_account_method.d.ts +80 -0
- package/dest/wallet/deploy_account_method.d.ts.map +1 -0
- package/dest/wallet/deploy_account_method.js +79 -0
- package/dest/wallet/index.d.ts +3 -17
- package/dest/wallet/index.d.ts.map +1 -1
- package/dest/wallet/index.js +2 -20
- package/dest/wallet/wallet.d.ts +1297 -0
- package/dest/wallet/wallet.d.ts.map +1 -0
- package/dest/wallet/wallet.js +172 -0
- package/package.json +47 -36
- package/src/account/account.ts +72 -0
- package/src/account/account_contract.ts +66 -0
- package/src/account/account_with_secret_key.ts +63 -0
- package/src/account/index.ts +5 -8
- package/src/account/signerless_account.ts +46 -0
- package/src/api/abi.ts +26 -0
- package/src/api/account.ts +8 -5
- package/src/api/addresses.ts +1 -0
- package/src/api/authorization.ts +15 -0
- package/src/api/block.ts +2 -0
- package/src/api/contract.ts +88 -0
- package/src/api/crypto.ts +1 -0
- package/src/api/deployment.ts +4 -3
- package/src/api/ethereum.ts +10 -0
- package/src/api/events.ts +44 -0
- package/src/api/fee.ts +1 -1
- package/src/api/fee_testing.ts +1 -0
- package/src/api/fields.ts +2 -1
- package/src/api/keys.ts +8 -0
- package/src/api/log.ts +1 -0
- package/src/api/messaging.ts +2 -0
- package/src/api/node.ts +24 -0
- package/src/api/note.ts +1 -0
- package/src/api/protocol.ts +9 -0
- package/src/api/trees.ts +2 -0
- package/src/api/tx.ts +15 -0
- package/src/api/utils.ts +14 -0
- package/src/api/wallet.ts +34 -5
- package/src/authorization/call_authorization_request.ts +63 -0
- package/src/contract/base_contract_interaction.ts +40 -171
- package/src/contract/batch_call.ts +108 -57
- package/src/contract/checker.ts +8 -3
- package/src/contract/contract.ts +14 -21
- package/src/contract/contract_base.ts +9 -26
- package/src/contract/contract_function_interaction.ts +135 -106
- package/src/contract/deploy_method.ts +307 -143
- package/src/contract/get_gas_limits.ts +15 -8
- package/src/contract/interaction_options.ts +208 -0
- package/src/contract/protocol_contracts/auth-registry.ts +545 -0
- package/src/contract/protocol_contracts/contract-class-registry.ts +433 -0
- package/src/contract/protocol_contracts/contract-instance-registry.ts +493 -0
- package/src/contract/protocol_contracts/fee-juice.ts +457 -0
- package/src/contract/protocol_contracts/multi-call-entrypoint.ts +329 -0
- package/src/contract/protocol_contracts/public-checks.ts +315 -0
- package/src/contract/wait_for_proven.ts +38 -0
- package/src/contract/wait_opts.ts +21 -0
- package/src/deployment/broadcast_function.ts +58 -58
- package/src/deployment/contract_deployer.ts +4 -3
- package/src/deployment/publish_class.ts +34 -0
- package/src/deployment/publish_instance.ts +23 -0
- package/src/{api/ethereum → ethereum}/portal_manager.ts +166 -89
- package/src/fee/fee_juice_payment_method_with_claim.ts +49 -34
- package/src/fee/fee_payment_method.ts +11 -7
- package/src/fee/private_fee_payment_method.ts +80 -58
- package/src/fee/public_fee_payment_method.ts +94 -68
- package/src/fee/sponsored_fee_payment.ts +46 -0
- package/src/scripts/generate_protocol_contract_types.ts +150 -0
- package/src/utils/abi_types.ts +1 -1
- package/src/utils/authwit.ts +274 -54
- package/src/utils/cross_chain.ts +53 -0
- package/src/utils/fee_juice.ts +5 -5
- package/src/utils/field_compressed_string.ts +1 -1
- package/src/utils/node.ts +63 -1
- package/src/utils/pub_key.ts +3 -4
- package/src/wallet/account_entrypoint_meta_payment_method.ts +74 -0
- package/src/wallet/account_manager.ts +146 -0
- package/src/wallet/deploy_account_method.ts +150 -0
- package/src/wallet/index.ts +2 -33
- package/src/wallet/wallet.ts +417 -0
- package/dest/account/contract.d.ts +0 -37
- package/dest/account/contract.d.ts.map +0 -1
- package/dest/account/interface.d.ts +0 -31
- package/dest/account/interface.d.ts.map +0 -1
- package/dest/account/interface.js +0 -4
- package/dest/account/wallet.d.ts +0 -11
- package/dest/account/wallet.d.ts.map +0 -1
- package/dest/account/wallet.js +0 -3
- package/dest/account_manager/deploy_account_method.d.ts +0 -15
- package/dest/account_manager/deploy_account_method.d.ts.map +0 -1
- package/dest/account_manager/deploy_account_method.js +0 -43
- package/dest/account_manager/deploy_account_sent_tx.d.ts +0 -30
- package/dest/account_manager/deploy_account_sent_tx.d.ts.map +0 -1
- package/dest/account_manager/deploy_account_sent_tx.js +0 -29
- package/dest/account_manager/index.d.ts +0 -108
- package/dest/account_manager/index.d.ts.map +0 -1
- package/dest/account_manager/index.js +0 -159
- package/dest/api/cheat_codes.d.ts +0 -26
- package/dest/api/cheat_codes.d.ts.map +0 -1
- package/dest/api/cheat_codes.js +0 -25
- package/dest/api/entrypoint.d.ts +0 -2
- package/dest/api/entrypoint.d.ts.map +0 -1
- package/dest/api/entrypoint.js +0 -1
- package/dest/api/ethereum/anvil_test_watcher.d.ts +0 -32
- package/dest/api/ethereum/anvil_test_watcher.d.ts.map +0 -1
- package/dest/api/ethereum/anvil_test_watcher.js +0 -133
- package/dest/api/ethereum/chain_monitor.d.ts +0 -25
- package/dest/api/ethereum/chain_monitor.d.ts.map +0 -1
- package/dest/api/ethereum/chain_monitor.js +0 -74
- package/dest/api/ethereum/cheat_codes.d.ts +0 -63
- package/dest/api/ethereum/cheat_codes.d.ts.map +0 -1
- package/dest/api/ethereum/cheat_codes.js +0 -162
- package/dest/api/ethereum/index.d.ts +0 -7
- package/dest/api/ethereum/index.d.ts.map +0 -1
- package/dest/api/ethereum/index.js +0 -6
- package/dest/api/ethereum/l1_contracts.d.ts +0 -3
- package/dest/api/ethereum/l1_contracts.d.ts.map +0 -1
- package/dest/api/ethereum/l1_contracts.js +0 -13
- package/dest/api/ethereum/portal_manager.d.ts +0 -136
- package/dest/api/ethereum/portal_manager.d.ts.map +0 -1
- package/dest/api/ethereum/portal_manager.js +0 -286
- package/dest/api/interfaces/pxe.d.ts +0 -2
- package/dest/api/interfaces/pxe.d.ts.map +0 -1
- package/dest/api/interfaces/pxe.js +0 -1
- package/dest/api/log_id.d.ts +0 -2
- package/dest/api/log_id.d.ts.map +0 -1
- package/dest/api/log_id.js +0 -1
- package/dest/api/tx_hash.d.ts +0 -2
- package/dest/api/tx_hash.d.ts.map +0 -1
- package/dest/api/tx_hash.js +0 -1
- package/dest/contract/deploy_proven_tx.d.ts +0 -21
- package/dest/contract/deploy_proven_tx.d.ts.map +0 -1
- package/dest/contract/deploy_proven_tx.js +0 -19
- package/dest/contract/deploy_sent_tx.d.ts +0 -45
- package/dest/contract/deploy_sent_tx.d.ts.map +0 -1
- package/dest/contract/deploy_sent_tx.js +0 -43
- package/dest/contract/index.d.ts +0 -45
- package/dest/contract/index.d.ts.map +0 -1
- package/dest/contract/index.js +0 -43
- package/dest/contract/protocol_contracts.d.ts +0 -9
- package/dest/contract/protocol_contracts.d.ts.map +0 -1
- package/dest/contract/protocol_contracts.js +0 -26
- package/dest/contract/proven_tx.d.ts +0 -17
- package/dest/contract/proven_tx.d.ts.map +0 -1
- package/dest/contract/proven_tx.js +0 -22
- package/dest/contract/sent_tx.d.ts +0 -61
- package/dest/contract/sent_tx.d.ts.map +0 -1
- package/dest/contract/sent_tx.js +0 -102
- package/dest/contract/unsafe_contract.d.ts +0 -15
- package/dest/contract/unsafe_contract.d.ts.map +0 -1
- package/dest/contract/unsafe_contract.js +0 -6
- package/dest/deployment/deploy_instance.d.ts +0 -10
- package/dest/deployment/deploy_instance.d.ts.map +0 -1
- package/dest/deployment/deploy_instance.js +0 -14
- package/dest/deployment/index.d.ts +0 -2
- package/dest/deployment/index.d.ts.map +0 -1
- package/dest/deployment/index.js +0 -1
- package/dest/deployment/register_class.d.ts +0 -6
- package/dest/deployment/register_class.d.ts.map +0 -1
- package/dest/deployment/register_class.js +0 -22
- package/dest/entrypoint/default_entrypoint.d.ts +0 -12
- package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/default_entrypoint.js +0 -28
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts +0 -15
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/default_multi_call_entrypoint.js +0 -130
- package/dest/entrypoint/entrypoint.d.ts +0 -35
- package/dest/entrypoint/entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/entrypoint.js +0 -4
- package/dest/entrypoint/payload.d.ts +0 -128
- package/dest/entrypoint/payload.d.ts.map +0 -1
- package/dest/entrypoint/payload.js +0 -143
- package/dest/fee/fee_juice_payment_method.d.ts +0 -14
- package/dest/fee/fee_juice_payment_method.d.ts.map +0 -1
- package/dest/fee/fee_juice_payment_method.js +0 -20
- package/dest/index.d.ts +0 -66
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -69
- package/dest/rpc_clients/index.d.ts +0 -3
- package/dest/rpc_clients/index.d.ts.map +0 -1
- package/dest/rpc_clients/index.js +0 -2
- package/dest/rpc_clients/node/index.d.ts +0 -12
- package/dest/rpc_clients/node/index.d.ts.map +0 -1
- package/dest/rpc_clients/node/index.js +0 -78
- package/dest/rpc_clients/pxe_client.d.ts +0 -10
- package/dest/rpc_clients/pxe_client.d.ts.map +0 -1
- package/dest/rpc_clients/pxe_client.js +0 -23
- package/dest/utils/aztec_cheatcodes.d.ts +0 -59
- package/dest/utils/aztec_cheatcodes.d.ts.map +0 -1
- package/dest/utils/aztec_cheatcodes.js +0 -62
- package/dest/utils/index.d.ts +0 -8
- package/dest/utils/index.d.ts.map +0 -1
- package/dest/utils/index.js +0 -6
- package/dest/utils/pxe.d.ts +0 -4
- package/dest/utils/pxe.d.ts.map +0 -1
- package/dest/utils/pxe.js +0 -14
- package/dest/wallet/account_wallet.d.ts +0 -76
- package/dest/wallet/account_wallet.d.ts.map +0 -1
- package/dest/wallet/account_wallet.js +0 -231
- package/dest/wallet/account_wallet_with_private_key.d.ts +0 -26
- package/dest/wallet/account_wallet_with_private_key.d.ts.map +0 -1
- package/dest/wallet/base_wallet.d.ts +0 -73
- package/dest/wallet/base_wallet.d.ts.map +0 -1
- package/dest/wallet/base_wallet.js +0 -123
- package/dest/wallet/signerless_wallet.d.ts +0 -25
- package/dest/wallet/signerless_wallet.d.ts.map +0 -1
- package/dest/wallet/signerless_wallet.js +0 -36
- package/src/account/contract.ts +0 -56
- package/src/account/interface.ts +0 -36
- package/src/account/wallet.ts +0 -13
- package/src/account_manager/deploy_account_method.ts +0 -86
- package/src/account_manager/deploy_account_sent_tx.ts +0 -42
- package/src/account_manager/index.ts +0 -229
- package/src/api/cheat_codes.ts +0 -35
- package/src/api/entrypoint.ts +0 -1
- package/src/api/ethereum/anvil_test_watcher.ts +0 -158
- package/src/api/ethereum/chain_monitor.ts +0 -88
- package/src/api/ethereum/cheat_codes.ts +0 -184
- package/src/api/ethereum/index.ts +0 -19
- package/src/api/ethereum/l1_contracts.ts +0 -21
- package/src/api/interfaces/pxe.ts +0 -1
- package/src/api/log_id.ts +0 -1
- package/src/api/tx_hash.ts +0 -1
- package/src/contract/deploy_proven_tx.ts +0 -34
- package/src/contract/deploy_sent_tx.ts +0 -74
- package/src/contract/index.ts +0 -48
- package/src/contract/protocol_contracts.ts +0 -35
- package/src/contract/proven_tx.ts +0 -42
- package/src/contract/sent_tx.ts +0 -141
- package/src/contract/unsafe_contract.ts +0 -19
- package/src/deployment/deploy_instance.ts +0 -31
- package/src/deployment/index.ts +0 -1
- package/src/deployment/register_class.ts +0 -44
- package/src/entrypoint/default_entrypoint.ts +0 -39
- package/src/entrypoint/default_multi_call_entrypoint.ts +0 -93
- package/src/entrypoint/entrypoint.ts +0 -39
- package/src/entrypoint/payload.ts +0 -238
- package/src/fee/fee_juice_payment_method.ts +0 -26
- package/src/index.ts +0 -106
- package/src/rpc_clients/index.ts +0 -2
- package/src/rpc_clients/node/index.ts +0 -77
- package/src/rpc_clients/pxe_client.ts +0 -25
- package/src/utils/aztec_cheatcodes.ts +0 -77
- package/src/utils/index.ts +0 -21
- package/src/utils/pxe.ts +0 -17
- package/src/wallet/account_wallet.ts +0 -242
- package/src/wallet/account_wallet_with_private_key.ts +0 -40
- package/src/wallet/base_wallet.ts +0 -198
- package/src/wallet/signerless_wallet.ts +0 -52
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
2
|
+
export {
|
|
3
|
+
SetPublicAuthwitContractInteraction,
|
|
4
|
+
type ContractFunctionInteractionCallIntent,
|
|
5
|
+
isContractFunctionInteractionCallIntent,
|
|
6
|
+
getMessageHashFromIntent,
|
|
7
|
+
computeAuthWitMessageHash,
|
|
8
|
+
computeInnerAuthWitHashFromAction,
|
|
9
|
+
lookupValidity,
|
|
10
|
+
type CallIntent,
|
|
11
|
+
type IntentInnerHash,
|
|
12
|
+
} from '../utils/authwit.js';
|
|
13
|
+
export { computeInnerAuthWitHash } from '@aztec/stdlib/auth-witness';
|
|
14
|
+
|
|
15
|
+
export { CallAuthorizationRequest } from '../authorization/call_authorization_request.js';
|
package/src/api/block.ts
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `contract` module provides utilities for deploying and interacting with contracts, based on a
|
|
3
|
+
* `Wallet` instance and a compiled artifact. Refer to the {@link account} module for how to obtain a valid
|
|
4
|
+
* `Wallet` instance, and to the {@link https://docs.aztec.network/developers/aztec-nr/how_to_compile_contract | Compiling contracts}
|
|
5
|
+
* section of the documentation for how to generate an artifact out of your Noir source code.
|
|
6
|
+
*
|
|
7
|
+
* The {@link Contract} class is the main class in this module, and provides static methods for deploying
|
|
8
|
+
* a contract or interacting with an already deployed one. The `methods` property of the contract instance
|
|
9
|
+
* provides access to private, public, and simulate methods, that can be invoked in a transaction via `send()`,
|
|
10
|
+
* or can be queried via `simulate()`.
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* // Deploy and get the contract instance directly (default behavior)
|
|
14
|
+
* const contract = await Contract.deploy(wallet, MyContractArtifact, [...constructorArgs]).send({ from: accountAddress });
|
|
15
|
+
* console.log(`Contract deployed at ${contract.address}`);
|
|
16
|
+
*
|
|
17
|
+
* // Or get the full receipt with contract and instance
|
|
18
|
+
* const receipt = await Contract.deploy(wallet, MyContractArtifact, [...constructorArgs]).send({
|
|
19
|
+
* from: accountAddress,
|
|
20
|
+
* wait: { returnReceipt: true }
|
|
21
|
+
* });
|
|
22
|
+
* console.log(`Contract deployed at ${receipt.contract.address}`);
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* ```ts
|
|
26
|
+
* const contract = Contract.at(address, MyContractArtifact, wallet);
|
|
27
|
+
* await contract.methods.mint(1000, owner).send({ from: accountAddress });
|
|
28
|
+
* console.log(`Total supply is now ${await contract.methods.totalSupply().simulate()}`);
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* The result of calling a method in a contract instance, such as `contract.methods.mint(1000, owner)`
|
|
32
|
+
* in the example, is a {@link ContractFunctionInteraction} instance. Usually this will be just sent as
|
|
33
|
+
* a transaction to the network via the `send` method, but you can also `simulate` it without sending,
|
|
34
|
+
* or obtaining the `request` for aggregating into a {@link BatchCall}.
|
|
35
|
+
*
|
|
36
|
+
* The `send` method returns a {@link TxReceipt} by default (waits for the transaction to be mined).
|
|
37
|
+
* If you pass `wait: NO_WAIT` in the options, it will return a {@link TxHash} immediately without waiting.
|
|
38
|
+
*
|
|
39
|
+
* @remarks If you are using typescript, consider using the
|
|
40
|
+
* {@link https://docs.aztec.network/developers/aztec-nr/how_to_compile_contract#use-generated-interfaces | autogenerated type-safe interfaces}
|
|
41
|
+
* for interacting with your contracts.
|
|
42
|
+
*
|
|
43
|
+
* @packageDocumentation
|
|
44
|
+
*/
|
|
45
|
+
export { Contract } from '../contract/contract.js';
|
|
46
|
+
export { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
47
|
+
|
|
48
|
+
export {
|
|
49
|
+
NO_WAIT,
|
|
50
|
+
type NoWait,
|
|
51
|
+
type RequestInteractionOptions,
|
|
52
|
+
type SendInteractionOptions,
|
|
53
|
+
type ProfileInteractionOptions,
|
|
54
|
+
type SimulateInteractionOptions,
|
|
55
|
+
type InteractionFeeOptions,
|
|
56
|
+
type InteractionWaitOptions,
|
|
57
|
+
type GasSettingsOption,
|
|
58
|
+
type SendReturn,
|
|
59
|
+
type SimulationReturn,
|
|
60
|
+
toProfileOptions,
|
|
61
|
+
toSendOptions,
|
|
62
|
+
toSimulateOptions,
|
|
63
|
+
} from '../contract/interaction_options.js';
|
|
64
|
+
|
|
65
|
+
export { DefaultWaitOpts, type WaitOpts } from '../contract/wait_opts.js';
|
|
66
|
+
export { ContractBase, type ContractMethod, type ContractStorageLayout } from '../contract/contract_base.js';
|
|
67
|
+
export { BatchCall } from '../contract/batch_call.js';
|
|
68
|
+
export {
|
|
69
|
+
type DeployOptions,
|
|
70
|
+
type DeployReturn,
|
|
71
|
+
type DeployTxReceipt,
|
|
72
|
+
type DeployWaitOptions,
|
|
73
|
+
type DeployInteractionWaitOptions,
|
|
74
|
+
DeployMethod,
|
|
75
|
+
type RequestDeployOptions,
|
|
76
|
+
type SimulateDeployOptions,
|
|
77
|
+
} from '../contract/deploy_method.js';
|
|
78
|
+
export { waitForProven, type WaitForProvenOpts, DefaultWaitForProvenOpts } from '../contract/wait_for_proven.js';
|
|
79
|
+
export { getGasLimits } from '../contract/get_gas_limits.js';
|
|
80
|
+
|
|
81
|
+
export {
|
|
82
|
+
type PartialAddress,
|
|
83
|
+
type ContractClassWithId,
|
|
84
|
+
type ContractInstanceWithAddress,
|
|
85
|
+
getContractClassFromArtifact,
|
|
86
|
+
getContractInstanceFromInstantiationParams,
|
|
87
|
+
type NodeInfo,
|
|
88
|
+
} from '@aztec/stdlib/contract';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { computeSecretHash } from '@aztec/stdlib/hash';
|
package/src/api/deployment.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { broadcastPrivateFunction,
|
|
3
|
-
export {
|
|
1
|
+
export { publishContractClass } from '../deployment/publish_class.js';
|
|
2
|
+
export { broadcastPrivateFunction, broadcastUtilityFunction } from '../deployment/broadcast_function.js';
|
|
3
|
+
export { publishInstance } from '../deployment/publish_instance.js';
|
|
4
|
+
export { ContractDeployer } from '../deployment/contract_deployer.js';
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type EventMetadataDefinition, EventSelector, decodeFromAbi } from '@aztec/stdlib/abi';
|
|
2
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Returns decoded public events given search parameters.
|
|
6
|
+
* @param node - The node to request events from
|
|
7
|
+
* @param eventMetadata - Metadata of the event. This should be the class generated from the contract. e.g. Contract.events.Event
|
|
8
|
+
* @param from - The block number to search from.
|
|
9
|
+
* @param limit - The amount of blocks to search.
|
|
10
|
+
* @returns - The deserialized events.
|
|
11
|
+
*/
|
|
12
|
+
export async function getDecodedPublicEvents<T>(
|
|
13
|
+
node: AztecNode,
|
|
14
|
+
eventMetadataDef: EventMetadataDefinition,
|
|
15
|
+
from: number,
|
|
16
|
+
limit: number,
|
|
17
|
+
): Promise<T[]> {
|
|
18
|
+
const { logs } = await node.getPublicLogs({
|
|
19
|
+
fromBlock: from,
|
|
20
|
+
toBlock: from + limit,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const decodedEvents = logs
|
|
24
|
+
.map(log => {
|
|
25
|
+
// +1 for the event selector
|
|
26
|
+
const expectedLength = eventMetadataDef.fieldNames.length + 1;
|
|
27
|
+
if (log.log.fields.length !== expectedLength) {
|
|
28
|
+
throw new Error(
|
|
29
|
+
`Something is weird here, we have matching EventSelectors, but the actual payload has mismatched length. Expected ${expectedLength}. Got ${log.log.fields.length}.`,
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const logFields = log.log.getEmittedFields();
|
|
34
|
+
// We are assuming here that event logs are the last 4 bytes of the event. This is not enshrined but is a function of aztec.nr raw log emission.
|
|
35
|
+
if (!EventSelector.fromField(logFields[logFields.length - 1]).equals(eventMetadataDef.eventSelector)) {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return decodeFromAbi([eventMetadataDef.abiType], log.log.fields) as T;
|
|
40
|
+
})
|
|
41
|
+
.filter(log => log !== undefined) as T[];
|
|
42
|
+
|
|
43
|
+
return decodedEvents;
|
|
44
|
+
}
|
package/src/api/fee.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { FeePaymentMethod } from '../fee/fee_payment_method.js';
|
|
2
|
-
export { FeeJuicePaymentMethod } from '../fee/fee_juice_payment_method.js';
|
|
3
2
|
export { PrivateFeePaymentMethod } from '../fee/private_fee_payment_method.js';
|
|
4
3
|
export { PublicFeePaymentMethod } from '../fee/public_fee_payment_method.js';
|
|
5
4
|
export { FeeJuicePaymentMethodWithClaim } from '../fee/fee_juice_payment_method_with_claim.js';
|
|
5
|
+
export { SponsoredFeePaymentMethod } from '../fee/sponsored_fee_payment.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SponsoredFeePaymentMethod } from '../fee/sponsored_fee_payment.js';
|
package/src/api/fields.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { Fr, Fq } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
export { GrumpkinScalar, Point } from '@aztec/foundation/curves/grumpkin';
|
package/src/api/keys.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { type PublicKey, PublicKeys } from '@aztec/stdlib/keys';
|
|
2
|
+
export {
|
|
3
|
+
computeAppNullifierSecretKey,
|
|
4
|
+
deriveKeys,
|
|
5
|
+
deriveMasterIncomingViewingSecretKey,
|
|
6
|
+
deriveMasterNullifierSecretKey,
|
|
7
|
+
} from '@aztec/stdlib/keys';
|
|
8
|
+
export { generatePublicKey } from '../utils/pub_key.js';
|
package/src/api/log.ts
CHANGED
package/src/api/node.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `node` module provides utilities for connecting to and interacting with an Aztec node.
|
|
3
|
+
*
|
|
4
|
+
* The primary function is {@link createAztecNodeClient}, which creates a JSON-RPC client
|
|
5
|
+
* that connects to a running Aztec node instance. Use {@link waitForNode} to wait for
|
|
6
|
+
* the node to be ready before proceeding, and {@link waitForTx} to wait for a transaction
|
|
7
|
+
* to be mined.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { createAztecNodeClient, waitForNode, waitForTx } from '@aztec/aztec.js/node';
|
|
12
|
+
*
|
|
13
|
+
* const node = createAztecNodeClient('http://localhost:8080');
|
|
14
|
+
* await waitForNode(node);
|
|
15
|
+
* const blockNumber = await node.getBlockNumber();
|
|
16
|
+
*
|
|
17
|
+
* // Wait for a transaction
|
|
18
|
+
* const receipt = await waitForTx(node, txHash);
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @packageDocumentation
|
|
22
|
+
*/
|
|
23
|
+
export { createAztecNodeClient, waitForNode, waitForTx, type AztecNode } from '../utils/node.js';
|
|
24
|
+
export { type NodeInfo } from '@aztec/stdlib/contract';
|
package/src/api/note.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Comparator, Note } from '@aztec/stdlib/note';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
2
|
+
export { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
3
|
+
|
|
4
|
+
export { AuthRegistryContract } from '../contract/protocol_contracts/auth-registry.js';
|
|
5
|
+
export { ContractClassRegistryContract } from '../contract/protocol_contracts/contract-class-registry.js';
|
|
6
|
+
export { ContractInstanceRegistryContract } from '../contract/protocol_contracts/contract-instance-registry.js';
|
|
7
|
+
export { FeeJuiceContract } from '../contract/protocol_contracts/fee-juice.js';
|
|
8
|
+
export { MultiCallEntrypointContract } from '../contract/protocol_contracts/multi-call-entrypoint.js';
|
|
9
|
+
export { PublicChecksContract } from '../contract/protocol_contracts/public-checks.js';
|
package/src/api/trees.ts
ADDED
package/src/api/tx.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export {
|
|
2
|
+
Tx,
|
|
3
|
+
TxExecutionRequest,
|
|
4
|
+
TxExecutionResult,
|
|
5
|
+
TxHash,
|
|
6
|
+
TxReceipt,
|
|
7
|
+
TxStatus,
|
|
8
|
+
SortedTxStatuses,
|
|
9
|
+
Capsule,
|
|
10
|
+
HashedValues,
|
|
11
|
+
GlobalVariables,
|
|
12
|
+
TxProfileResult,
|
|
13
|
+
ExecutionPayload,
|
|
14
|
+
mergeExecutionPayloads,
|
|
15
|
+
} from '@aztec/stdlib/tx';
|
package/src/api/utils.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for aztec.js.
|
|
3
|
+
*
|
|
4
|
+
* NOTE: This module contains low-usage utilities and may be deprecated in the future.
|
|
5
|
+
* Prefer using more specific modules:
|
|
6
|
+
* - Node connection utilities → `@aztec/aztec.js/node`
|
|
7
|
+
* - Type converters → `@aztec/aztec.js/abi`
|
|
8
|
+
* - Key generation → `@aztec/aztec.js/keys`
|
|
9
|
+
* - Messaging utilities → `@aztec/aztec.js/messaging`
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
// Low-usage utilities - consider these internal/experimental
|
|
13
|
+
export { getFeeJuiceBalance } from '../utils/fee_juice.js';
|
|
14
|
+
export { readFieldCompressedString } from '../utils/field_compressed_string.js';
|
package/src/api/wallet.ts
CHANGED
|
@@ -1,7 +1,36 @@
|
|
|
1
1
|
export {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
type Aliased,
|
|
3
|
+
type SimulateOptions,
|
|
4
|
+
type ProfileOptions,
|
|
5
|
+
type SendOptions,
|
|
6
|
+
type BatchableMethods,
|
|
7
|
+
type BatchedMethod,
|
|
8
|
+
type BatchedMethodResult,
|
|
9
|
+
type BatchedMethodResultWrapper,
|
|
10
|
+
type BatchResults,
|
|
5
11
|
type Wallet,
|
|
6
|
-
|
|
7
|
-
|
|
12
|
+
type PrivateEvent,
|
|
13
|
+
type PrivateEventFilter,
|
|
14
|
+
type ContractMetadata,
|
|
15
|
+
type ContractClassMetadata,
|
|
16
|
+
FunctionCallSchema,
|
|
17
|
+
ExecutionPayloadSchema,
|
|
18
|
+
GasSettingsOptionSchema,
|
|
19
|
+
WalletSimulationFeeOptionSchema,
|
|
20
|
+
WaitOptsSchema,
|
|
21
|
+
SendOptionsSchema,
|
|
22
|
+
SimulateOptionsSchema,
|
|
23
|
+
ProfileOptionsSchema,
|
|
24
|
+
MessageHashOrIntentSchema,
|
|
25
|
+
BatchedMethodSchema,
|
|
26
|
+
EventMetadataDefinitionSchema,
|
|
27
|
+
PrivateEventSchema,
|
|
28
|
+
PrivateEventFilterSchema,
|
|
29
|
+
ContractClassMetadataSchema,
|
|
30
|
+
ContractMetadataSchema,
|
|
31
|
+
WalletSchema,
|
|
32
|
+
} from '../wallet/wallet.js';
|
|
33
|
+
|
|
34
|
+
export { AccountManager } from '../wallet/account_manager.js';
|
|
35
|
+
|
|
36
|
+
export { type DeployAccountOptions, DeployAccountMethod } from '../wallet/deploy_account_method.js';
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
+
import { FieldReader } from '@aztec/foundation/serialize';
|
|
3
|
+
import { AuthorizationSelector, FunctionSelector } from '@aztec/stdlib/abi';
|
|
4
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* An authwit request for a function call. Includes the preimage of the data
|
|
8
|
+
* to be signed, as opposed of just the inner hash.
|
|
9
|
+
*/
|
|
10
|
+
export class CallAuthorizationRequest {
|
|
11
|
+
constructor(
|
|
12
|
+
/**
|
|
13
|
+
* The selector of the authwit type, used to identify it
|
|
14
|
+
* when emitted from `emit_offchain_effect`oracle.
|
|
15
|
+
* Computed as poseidon2("CallAuthwit((Field),(u32),Field)".to_bytes())
|
|
16
|
+
*/
|
|
17
|
+
public selector: AuthorizationSelector,
|
|
18
|
+
/**
|
|
19
|
+
* The inner hash of the authwit, computed as
|
|
20
|
+
* poseidon2([msg_sender, selector, args_hash])
|
|
21
|
+
*/
|
|
22
|
+
public innerHash: Fr,
|
|
23
|
+
/**
|
|
24
|
+
* The address performing the call
|
|
25
|
+
*/
|
|
26
|
+
public msgSender: AztecAddress,
|
|
27
|
+
/**
|
|
28
|
+
* The selector of the function that is to be authorized
|
|
29
|
+
* */
|
|
30
|
+
public functionSelector: FunctionSelector,
|
|
31
|
+
/**
|
|
32
|
+
* The hash of the arguments to the function call,
|
|
33
|
+
*/
|
|
34
|
+
public argsHash: Fr,
|
|
35
|
+
/**
|
|
36
|
+
* The arguments to the function call.
|
|
37
|
+
*/
|
|
38
|
+
public args: Fr[],
|
|
39
|
+
) {}
|
|
40
|
+
|
|
41
|
+
static getSelector(): Promise<AuthorizationSelector> {
|
|
42
|
+
return AuthorizationSelector.fromSignature('CallAuthorization((Field),(u32),Field)');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static async fromFields(fields: Fr[]): Promise<CallAuthorizationRequest> {
|
|
46
|
+
const expectedSelector = await CallAuthorizationRequest.getSelector();
|
|
47
|
+
const reader = FieldReader.asReader(fields);
|
|
48
|
+
const selector = AuthorizationSelector.fromField(reader.readField());
|
|
49
|
+
if (!selector.equals(expectedSelector)) {
|
|
50
|
+
throw new Error(
|
|
51
|
+
`Invalid authorization selector for CallAuthwit: expected ${expectedSelector.toString()}, got ${selector.toString()}`,
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
return new CallAuthorizationRequest(
|
|
55
|
+
selector,
|
|
56
|
+
reader.readField(),
|
|
57
|
+
AztecAddress.fromField(reader.readField()),
|
|
58
|
+
FunctionSelector.fromField(reader.readField()),
|
|
59
|
+
reader.readField(),
|
|
60
|
+
reader.readFieldArray(reader.remainingFields()),
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -1,30 +1,16 @@
|
|
|
1
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
2
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import {
|
|
4
|
-
import type { Capsule,
|
|
5
|
-
|
|
6
|
-
import type { Wallet } from '../
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* Represents options for calling a (constrained) function in a contract.
|
|
16
|
-
* Allows the user to specify the sender address and nonce for a transaction.
|
|
17
|
-
*/
|
|
18
|
-
export type SendMethodOptions = {
|
|
19
|
-
/** Wether to skip the simulation of the public part of the transaction. */
|
|
20
|
-
skipPublicSimulation?: boolean;
|
|
21
|
-
/** The fee options for the transaction. */
|
|
22
|
-
fee?: UserFeeOptions;
|
|
23
|
-
/** Custom nonce to inject into the app payload of the transaction. Useful when trying to cancel an ongoing transaction by creating a new one with a higher fee */
|
|
24
|
-
nonce?: Fr;
|
|
25
|
-
/** Whether the transaction can be cancelled. If true, an extra nullifier will be emitted: H(nonce, GENERATOR_INDEX__TX_NULLIFIER) */
|
|
26
|
-
cancellable?: boolean;
|
|
27
|
-
};
|
|
2
|
+
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
3
|
+
import type { Capsule, ExecutionPayload, TxReceipt } from '@aztec/stdlib/tx';
|
|
4
|
+
|
|
5
|
+
import type { Wallet } from '../wallet/wallet.js';
|
|
6
|
+
import {
|
|
7
|
+
type InteractionWaitOptions,
|
|
8
|
+
type RequestInteractionOptions,
|
|
9
|
+
type SendInteractionOptions,
|
|
10
|
+
type SendInteractionOptionsWithoutWait,
|
|
11
|
+
type SendReturn,
|
|
12
|
+
toSendOptions,
|
|
13
|
+
} from './interaction_options.js';
|
|
28
14
|
|
|
29
15
|
/**
|
|
30
16
|
* Base class for an interaction with a contract, be it a deployment, a function call, or a batch.
|
|
@@ -33,160 +19,43 @@ export type SendMethodOptions = {
|
|
|
33
19
|
export abstract class BaseContractInteraction {
|
|
34
20
|
protected log = createLogger('aztecjs:contract_interaction');
|
|
35
21
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
22
|
+
constructor(
|
|
23
|
+
protected wallet: Wallet,
|
|
24
|
+
protected authWitnesses: AuthWitness[] = [],
|
|
25
|
+
protected capsules: Capsule[] = [],
|
|
26
|
+
) {}
|
|
39
27
|
|
|
40
28
|
/**
|
|
41
|
-
*
|
|
29
|
+
* Returns an execution request that represents this operation.
|
|
30
|
+
* Can be used as a building block for constructing batch requests.
|
|
42
31
|
* @param options - An optional object containing additional configuration for the transaction.
|
|
43
|
-
* @returns
|
|
44
|
-
*/
|
|
45
|
-
public abstract create(options?: SendMethodOptions): Promise<TxExecutionRequest>;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Creates a transaction execution request, simulates and proves it. Differs from .prove in
|
|
49
|
-
* that its result does not include the wallet nor the composed tx object, but only the proving result.
|
|
50
|
-
* This object can then be used to either create a ProvenTx ready to be sent, or directly send the transaction.
|
|
51
|
-
* @param options - optional arguments to be used in the creation of the transaction
|
|
52
|
-
* @returns The proving result.
|
|
53
|
-
*/
|
|
54
|
-
protected async proveInternal(options: SendMethodOptions = {}): Promise<TxProvingResult> {
|
|
55
|
-
const txRequest = await this.create(options);
|
|
56
|
-
const txSimulationResult = await this.wallet.simulateTx(txRequest, !options.skipPublicSimulation, undefined, true);
|
|
57
|
-
return await this.wallet.proveTx(txRequest, txSimulationResult.privateExecutionResult);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// docs:start:prove
|
|
61
|
-
/**
|
|
62
|
-
* Proves a transaction execution request and returns a tx object ready to be sent.
|
|
63
|
-
* @param options - optional arguments to be used in the creation of the transaction
|
|
64
|
-
* @returns The resulting transaction
|
|
32
|
+
* @returns An execution request wrapped in promise.
|
|
65
33
|
*/
|
|
66
|
-
public
|
|
67
|
-
// docs:end:prove
|
|
68
|
-
const txProvingResult = await this.proveInternal(options);
|
|
69
|
-
return new ProvenTx(this.wallet, txProvingResult.toTx());
|
|
70
|
-
}
|
|
34
|
+
public abstract request(options?: RequestInteractionOptions): Promise<ExecutionPayload>;
|
|
71
35
|
|
|
72
36
|
// docs:start:send
|
|
73
37
|
/**
|
|
74
38
|
* Sends a transaction to the contract function with the specified options.
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* @
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
39
|
+
* By default, waits for the transaction to be mined and returns the receipt (or custom type).
|
|
40
|
+
* @param options - An object containing 'from' property representing
|
|
41
|
+
* the AztecAddress of the sender, optional fee configuration, and optional wait settings
|
|
42
|
+
* @returns TReturn (if wait is undefined/WaitOpts) or TxHash (if wait is NO_WAIT)
|
|
43
|
+
*/
|
|
44
|
+
// Overload for when wait is not specified at all - returns TReturn
|
|
45
|
+
public send<TReturn = TxReceipt>(options: SendInteractionOptionsWithoutWait): Promise<TReturn>;
|
|
46
|
+
// Generic overload for explicit wait values
|
|
47
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
48
|
+
public send<TReturn = TxReceipt, W extends InteractionWaitOptions = undefined>(
|
|
49
|
+
options: SendInteractionOptions<W>,
|
|
50
|
+
): Promise<SendReturn<W, TReturn>>;
|
|
51
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
52
|
+
public async send<TReturn = TxReceipt>(
|
|
53
|
+
options: SendInteractionOptions<InteractionWaitOptions>,
|
|
54
|
+
): Promise<SendReturn<typeof options.wait, TReturn>> {
|
|
83
55
|
// docs:end:send
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
return this.wallet.sendTx(txProvingResult.toTx());
|
|
87
|
-
})();
|
|
88
|
-
return new SentTx(this.wallet, promise);
|
|
89
|
-
}
|
|
56
|
+
const executionPayload = await this.request(options);
|
|
57
|
+
const sendOptions = toSendOptions(options);
|
|
90
58
|
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Estimates gas for a given tx request and returns gas limits for it.
|
|
94
|
-
* @param opts - Options.
|
|
95
|
-
* @param pad - Percentage to pad the suggested gas limits by, if empty, defaults to 10%.
|
|
96
|
-
* @returns Gas limits.
|
|
97
|
-
*/
|
|
98
|
-
public async estimateGas(
|
|
99
|
-
opts?: Omit<SendMethodOptions, 'estimateGas' | 'skipPublicSimulation'>,
|
|
100
|
-
): Promise<Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>> {
|
|
101
|
-
// docs:end:estimateGas
|
|
102
|
-
const txRequest = await this.create({ ...opts, fee: { ...opts?.fee, estimateGas: false } });
|
|
103
|
-
const simulationResult = await this.wallet.simulateTx(
|
|
104
|
-
txRequest,
|
|
105
|
-
true /*simulatePublic*/,
|
|
106
|
-
undefined /* msgSender */,
|
|
107
|
-
undefined /* skipTxValidation */,
|
|
108
|
-
true /* skipFeeEnforcement */,
|
|
109
|
-
);
|
|
110
|
-
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(
|
|
111
|
-
simulationResult,
|
|
112
|
-
opts?.fee?.estimatedGasPadding,
|
|
113
|
-
);
|
|
114
|
-
return { gasLimits, teardownGasLimits };
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Returns default fee options based on the user opts without running a simulation for gas estimation.
|
|
119
|
-
* @param fee - User-provided fee options.
|
|
120
|
-
*/
|
|
121
|
-
protected async getDefaultFeeOptions(fee: UserFeeOptions | undefined): Promise<FeeOptions> {
|
|
122
|
-
const maxFeesPerGas =
|
|
123
|
-
fee?.gasSettings?.maxFeesPerGas ?? (await this.wallet.getCurrentBaseFees()).mul(1 + (fee?.baseFeePadding ?? 0.5));
|
|
124
|
-
const paymentMethod = fee?.paymentMethod ?? new FeeJuicePaymentMethod(this.wallet.getAddress());
|
|
125
|
-
const gasSettings: GasSettings = GasSettings.default({ ...fee?.gasSettings, maxFeesPerGas });
|
|
126
|
-
this.log.debug(`Using L2 gas settings`, gasSettings);
|
|
127
|
-
return { gasSettings, paymentMethod };
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
// docs:start:getFeeOptions
|
|
131
|
-
/**
|
|
132
|
-
* Return fee options based on the user opts, estimating tx gas if needed.
|
|
133
|
-
* @param request - Request to execute for this interaction.
|
|
134
|
-
* @param pad - Percentage to pad the suggested gas limits by, as decimal (e.g., 0.10 for 10%).
|
|
135
|
-
* @returns Fee options for the actual transaction.
|
|
136
|
-
*/
|
|
137
|
-
protected async getFeeOptions(
|
|
138
|
-
request: Omit<ExecutionRequestInit, 'fee'> & { /** User-provided fee options */ fee?: UserFeeOptions },
|
|
139
|
-
): Promise<FeeOptions> {
|
|
140
|
-
// docs:end:getFeeOptions
|
|
141
|
-
const defaultFeeOptions = await this.getDefaultFeeOptions(request.fee);
|
|
142
|
-
const paymentMethod = defaultFeeOptions.paymentMethod;
|
|
143
|
-
const maxFeesPerGas = defaultFeeOptions.gasSettings.maxFeesPerGas;
|
|
144
|
-
const maxPriorityFeesPerGas = defaultFeeOptions.gasSettings.maxPriorityFeesPerGas;
|
|
145
|
-
|
|
146
|
-
let gasSettings = defaultFeeOptions.gasSettings;
|
|
147
|
-
if (request.fee?.estimateGas) {
|
|
148
|
-
const feeForEstimation: FeeOptions = { paymentMethod, gasSettings };
|
|
149
|
-
const txRequest = await this.wallet.createTxExecutionRequest({ ...request, fee: feeForEstimation });
|
|
150
|
-
const simulationResult = await this.wallet.simulateTx(
|
|
151
|
-
txRequest,
|
|
152
|
-
true /*simulatePublic*/,
|
|
153
|
-
undefined /* msgSender */,
|
|
154
|
-
undefined /* skipTxValidation */,
|
|
155
|
-
true /* skipFeeEnforcement */,
|
|
156
|
-
);
|
|
157
|
-
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(
|
|
158
|
-
simulationResult,
|
|
159
|
-
request.fee?.estimatedGasPadding,
|
|
160
|
-
);
|
|
161
|
-
gasSettings = GasSettings.from({ maxFeesPerGas, maxPriorityFeesPerGas, gasLimits, teardownGasLimits });
|
|
162
|
-
this.log.verbose(
|
|
163
|
-
`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`,
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return { gasSettings, paymentMethod };
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Add data passed to the oracle calls during this contract interaction.
|
|
172
|
-
* @param capsule - Data passed to oracle calls.
|
|
173
|
-
*/
|
|
174
|
-
public addCapsule(capsule: Capsule) {
|
|
175
|
-
this.capsules.push(capsule);
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Add data passed to the oracle calls during this contract interaction.
|
|
180
|
-
* @param capsules - Data passed to oracle calls.
|
|
181
|
-
*/
|
|
182
|
-
public addCapsules(capsules: Capsule[]) {
|
|
183
|
-
this.capsules.push(...capsules);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Return all capsules added for this function interaction.
|
|
188
|
-
*/
|
|
189
|
-
public getCapsules() {
|
|
190
|
-
return this.capsules;
|
|
59
|
+
return (await this.wallet.sendTx(executionPayload, sendOptions as any)) as SendReturn<typeof options.wait, TReturn>;
|
|
191
60
|
}
|
|
192
61
|
}
|