@aztec/aztec.js 0.0.0-test.1 → 0.0.1-commit.5476d83
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 +59 -0
- package/dest/account/account.d.ts.map +1 -0
- package/dest/account/account.js +59 -0
- package/dest/account/account_contract.d.ts +43 -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 +24 -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} +5 -5
- package/dest/account/index.d.ts +4 -8
- package/dest/account/index.d.ts.map +1 -1
- package/dest/account/index.js +2 -6
- package/dest/account/interface.d.ts +2 -14
- package/dest/account/interface.d.ts.map +1 -1
- package/dest/account/interface.js +1 -0
- package/dest/account/signerless_account.d.ts +23 -0
- package/dest/account/signerless_account.d.ts.map +1 -0
- package/dest/account/signerless_account.js +27 -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 +7 -3
- package/dest/api/account.d.ts.map +1 -1
- package/dest/api/account.js +4 -1
- 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 +49 -0
- package/dest/api/contract.d.ts.map +1 -0
- package/dest/{contract/index.js → api/contract.js} +15 -11
- 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 +1 -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 +21 -0
- package/dest/api/node.d.ts.map +1 -0
- package/dest/api/node.js +18 -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 +3 -0
- package/dest/api/protocol.d.ts.map +1 -0
- package/dest/api/protocol.js +2 -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 +46 -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 +16 -80
- package/dest/contract/base_contract_interaction.d.ts.map +1 -1
- package/dest/contract/base_contract_interaction.js +15 -128
- 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 +86 -68
- 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 +7 -20
- 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 +106 -60
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +125 -133
- package/dest/contract/deploy_sent_tx.d.ts +14 -11
- package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
- package/dest/contract/deploy_sent_tx.js +18 -15
- 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 +114 -0
- package/dest/contract/interaction_options.d.ts.map +1 -0
- package/dest/contract/interaction_options.js +46 -0
- package/dest/contract/protocol_contracts.d.ts +7 -7
- package/dest/contract/protocol_contracts.d.ts.map +1 -1
- package/dest/contract/protocol_contracts.js +7 -7
- package/dest/contract/sent_tx.d.ts +9 -19
- package/dest/contract/sent_tx.d.ts.map +1 -1
- package/dest/contract/sent_tx.js +31 -43
- package/dest/contract/unsafe_contract.d.ts +2 -2
- package/dest/contract/unsafe_contract.d.ts.map +1 -1
- package/dest/contract/unsafe_contract.js +1 -1
- 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/deployment/broadcast_function.d.ts +4 -4
- package/dest/deployment/broadcast_function.d.ts.map +1 -1
- package/dest/deployment/broadcast_function.js +27 -23
- 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 +138 -0
- package/dest/ethereum/portal_manager.d.ts.map +1 -0
- package/dest/{api/ethereum → ethereum}/portal_manager.js +136 -76
- 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 +26 -16
- 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 +44 -22
- 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 +46 -24
- 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/utils/abi_types.d.ts +1 -3
- package/dest/utils/abi_types.d.ts.map +1 -1
- package/dest/utils/authwit.d.ts +82 -25
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +237 -40
- 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 +3 -2
- package/dest/utils/field_compressed_string.d.ts +1 -1
- package/dest/utils/field_compressed_string.d.ts.map +1 -1
- package/dest/utils/node.d.ts +2 -2
- package/dest/utils/node.d.ts.map +1 -1
- package/dest/utils/node.js +1 -1
- package/dest/utils/pub_key.d.ts +1 -1
- package/dest/utils/pub_key.d.ts.map +1 -1
- package/dest/utils/pub_key.js +1 -2
- package/dest/wallet/account_entrypoint_meta_payment_method.d.ts +34 -0
- package/dest/wallet/account_entrypoint_meta_payment_method.d.ts.map +1 -0
- package/dest/wallet/account_entrypoint_meta_payment_method.js +76 -0
- package/dest/wallet/account_manager.d.ts +66 -0
- package/dest/wallet/account_manager.d.ts.map +1 -0
- package/dest/wallet/account_manager.js +113 -0
- package/dest/wallet/deploy_account_method.d.ts +52 -0
- package/dest/wallet/deploy_account_method.d.ts.map +1 -0
- package/dest/wallet/deploy_account_method.js +77 -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 +1965 -0
- package/dest/wallet/wallet.d.ts.map +1 -0
- package/dest/wallet/wallet.js +186 -0
- package/package.json +44 -35
- package/src/account/account.ts +96 -0
- package/src/account/{contract.ts → account_contract.ts} +24 -13
- package/src/{wallet/account_wallet_with_private_key.ts → account/account_with_secret_key.ts} +6 -8
- package/src/account/index.ts +3 -7
- package/src/account/interface.ts +1 -12
- package/src/account/signerless_account.ts +45 -0
- package/src/api/abi.ts +26 -0
- package/src/api/account.ts +6 -9
- package/src/api/addresses.ts +1 -0
- package/src/api/authorization.ts +14 -0
- package/src/api/block.ts +2 -0
- package/src/{contract/index.ts → api/contract.ts} +39 -14
- 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/keys.ts +8 -0
- package/src/api/log.ts +1 -0
- package/src/api/messaging.ts +2 -0
- package/src/api/node.ts +20 -0
- package/src/api/note.ts +1 -0
- package/src/api/protocol.ts +2 -0
- package/src/api/trees.ts +2 -0
- package/src/api/tx.ts +13 -0
- package/src/api/utils.ts +14 -0
- package/src/api/wallet.ts +27 -5
- package/src/authorization/call_authorization_request.ts +63 -0
- package/src/contract/base_contract_interaction.ts +23 -166
- package/src/contract/batch_call.ts +106 -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 +205 -134
- package/src/contract/deploy_sent_tx.ts +24 -23
- package/src/contract/get_gas_limits.ts +15 -8
- package/src/contract/interaction_options.ts +163 -0
- package/src/contract/protocol_contracts.ts +10 -10
- package/src/contract/sent_tx.ts +41 -52
- package/src/contract/unsafe_contract.ts +2 -2
- package/src/contract/wait_for_proven.ts +38 -0
- package/src/deployment/broadcast_function.ts +57 -57
- package/src/deployment/contract_deployer.ts +4 -3
- package/src/deployment/publish_class.ts +34 -0
- package/src/deployment/publish_instance.ts +26 -0
- package/src/{api/ethereum → ethereum}/portal_manager.ts +164 -83
- package/src/fee/fee_juice_payment_method_with_claim.ts +48 -33
- package/src/fee/fee_payment_method.ts +11 -7
- package/src/fee/private_fee_payment_method.ts +79 -57
- package/src/fee/public_fee_payment_method.ts +93 -67
- package/src/fee/sponsored_fee_payment.ts +46 -0
- package/src/utils/authwit.ts +261 -53
- package/src/utils/cross_chain.ts +53 -0
- package/src/utils/fee_juice.ts +4 -4
- package/src/utils/node.ts +1 -1
- package/src/utils/pub_key.ts +1 -2
- package/src/wallet/account_entrypoint_meta_payment_method.ts +106 -0
- package/src/wallet/account_manager.ts +154 -0
- package/src/wallet/deploy_account_method.ts +126 -0
- package/src/wallet/index.ts +2 -33
- package/src/wallet/wallet.ts +318 -0
- package/dest/account/contract.d.ts +0 -37
- package/dest/account/contract.d.ts.map +0 -1
- 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/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/index.d.ts +0 -45
- package/dest/contract/index.d.ts.map +0 -1
- 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/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/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/proven_tx.ts +0 -42
- 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/base_wallet.ts +0 -198
- package/src/wallet/signerless_wallet.ts +0 -52
|
@@ -1,42 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
FunctionCall,
|
|
4
|
-
FunctionSelector,
|
|
5
|
-
FunctionType,
|
|
6
|
-
decodeFromAbi,
|
|
7
|
-
encodeArguments,
|
|
8
|
-
} from '@aztec/stdlib/abi';
|
|
1
|
+
import { type FunctionAbi, FunctionSelector, FunctionType, decodeFromAbi, encodeArguments } from '@aztec/stdlib/abi';
|
|
2
|
+
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
9
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
|
-
import type
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
import type { Wallet } from '../account/wallet.js';
|
|
14
|
-
import { FeeJuicePaymentMethod } from '../fee/fee_juice_payment_method.js';
|
|
15
|
-
import { BaseContractInteraction, type SendMethodOptions } from './base_contract_interaction.js';
|
|
16
|
-
|
|
17
|
-
export type { SendMethodOptions };
|
|
4
|
+
import { type Capsule, type HashedValues, type TxProfileResult, collectOffchainEffects } from '@aztec/stdlib/tx';
|
|
5
|
+
import { ExecutionPayload, mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
18
6
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
skipFeeEnforcement?: boolean;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* The result of a profile() call.
|
|
35
|
-
*/
|
|
36
|
-
export type ProfileResult = PrivateKernelProverProfileResult & {
|
|
37
|
-
/** The result of the transaction as returned by the contract function. */
|
|
38
|
-
returnValues: any;
|
|
39
|
-
};
|
|
7
|
+
import type { Wallet } from '../wallet/wallet.js';
|
|
8
|
+
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
9
|
+
import { getGasLimits } from './get_gas_limits.js';
|
|
10
|
+
import {
|
|
11
|
+
type ProfileInteractionOptions,
|
|
12
|
+
type RequestInteractionOptions,
|
|
13
|
+
type SimulateInteractionOptions,
|
|
14
|
+
type SimulationReturn,
|
|
15
|
+
toProfileOptions,
|
|
16
|
+
toSimulateOptions,
|
|
17
|
+
} from './interaction_options.js';
|
|
40
18
|
|
|
41
19
|
/**
|
|
42
20
|
* This is the class that is returned when calling e.g. `contract.methods.myMethod(arg0, arg1)`.
|
|
@@ -48,40 +26,22 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
48
26
|
protected contractAddress: AztecAddress,
|
|
49
27
|
protected functionDao: FunctionAbi,
|
|
50
28
|
protected args: any[],
|
|
29
|
+
authWitnesses: AuthWitness[] = [],
|
|
30
|
+
capsules: Capsule[] = [],
|
|
31
|
+
private extraHashedArgs: HashedValues[] = [],
|
|
51
32
|
) {
|
|
52
|
-
super(wallet);
|
|
33
|
+
super(wallet, authWitnesses, capsules);
|
|
53
34
|
if (args.some(arg => arg === undefined || arg === null)) {
|
|
54
|
-
throw new Error(
|
|
35
|
+
throw new Error(`All function interaction arguments must be defined and not null. Received: ${args}`);
|
|
55
36
|
}
|
|
56
37
|
}
|
|
57
38
|
|
|
58
|
-
// docs:start:create
|
|
59
39
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* @
|
|
63
|
-
* @returns A Promise that resolves to a transaction instance.
|
|
40
|
+
* Returns the encoded function call wrapped by this interaction
|
|
41
|
+
* Useful when generating authwits
|
|
42
|
+
* @returns An encoded function call
|
|
64
43
|
*/
|
|
65
|
-
public async
|
|
66
|
-
// docs:end:create
|
|
67
|
-
if (this.functionDao.functionType === FunctionType.UNCONSTRAINED) {
|
|
68
|
-
throw new Error("Can't call `create` on an unconstrained function.");
|
|
69
|
-
}
|
|
70
|
-
const calls = [await this.request()];
|
|
71
|
-
const capsules = this.getCapsules();
|
|
72
|
-
const fee = await this.getFeeOptions({ calls, capsules, ...opts });
|
|
73
|
-
const { nonce, cancellable } = opts;
|
|
74
|
-
return await this.wallet.createTxExecutionRequest({ calls, fee, nonce, cancellable, capsules });
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// docs:start:request
|
|
78
|
-
/**
|
|
79
|
-
* Returns an execution request that represents this operation. Useful as a building
|
|
80
|
-
* block for constructing batch requests.
|
|
81
|
-
* @returns An execution request wrapped in promise.
|
|
82
|
-
*/
|
|
83
|
-
public async request(): Promise<FunctionCall> {
|
|
84
|
-
// docs:end:request
|
|
44
|
+
public async getFunctionCall() {
|
|
85
45
|
const args = encodeArguments(this.functionDao, this.args);
|
|
86
46
|
return {
|
|
87
47
|
name: this.functionDao.name,
|
|
@@ -90,35 +50,77 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
90
50
|
type: this.functionDao.functionType,
|
|
91
51
|
to: this.contractAddress,
|
|
92
52
|
isStatic: this.functionDao.isStatic,
|
|
53
|
+
hideMsgSender: false /** Only set to `true` for enqueued public function calls */,
|
|
93
54
|
returnTypes: this.functionDao.returnTypes,
|
|
94
55
|
};
|
|
95
56
|
}
|
|
96
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Returns the execution payload that allows this operation to happen on chain.
|
|
60
|
+
* @param options - Configuration options.
|
|
61
|
+
* @returns The execution payload for this operation
|
|
62
|
+
*/
|
|
63
|
+
public override async request(options: RequestInteractionOptions = {}): Promise<ExecutionPayload> {
|
|
64
|
+
const calls = [await this.getFunctionCall()];
|
|
65
|
+
const { authWitnesses, capsules } = options;
|
|
66
|
+
const feeExecutionPayload = options.fee?.paymentMethod
|
|
67
|
+
? await options.fee.paymentMethod.getExecutionPayload()
|
|
68
|
+
: undefined;
|
|
69
|
+
const functionExecutionPayload = new ExecutionPayload(
|
|
70
|
+
calls,
|
|
71
|
+
this.authWitnesses.concat(authWitnesses ?? []),
|
|
72
|
+
this.capsules.concat(capsules ?? []),
|
|
73
|
+
this.extraHashedArgs,
|
|
74
|
+
);
|
|
75
|
+
const finalExecutionPayload = feeExecutionPayload
|
|
76
|
+
? mergeExecutionPayloads([feeExecutionPayload, functionExecutionPayload])
|
|
77
|
+
: functionExecutionPayload;
|
|
78
|
+
return finalExecutionPayload;
|
|
79
|
+
}
|
|
80
|
+
|
|
97
81
|
// docs:start:simulate
|
|
98
82
|
/**
|
|
99
|
-
* Simulate a transaction and get its
|
|
83
|
+
* Simulate a transaction and get information from its execution.
|
|
100
84
|
* Differs from prove in a few important ways:
|
|
101
|
-
* 1. It returns the values of the function execution
|
|
102
|
-
* 2. It supports `
|
|
85
|
+
* 1. It returns the values of the function execution, plus additional metadata if requested
|
|
86
|
+
* 2. It supports `utility`, `private` and `public` functions
|
|
103
87
|
*
|
|
104
|
-
* @param options - An optional object containing additional configuration for the
|
|
105
|
-
* @returns
|
|
88
|
+
* @param options - An optional object containing additional configuration for the simulation.
|
|
89
|
+
* @returns Depending on the simulation options, this method directly returns the result value of the executed
|
|
90
|
+
* function or a rich object containing extra metadata, such as estimated gas costs (if requested via options),
|
|
91
|
+
* execution statistics and emitted offchain effects
|
|
106
92
|
*/
|
|
107
|
-
public async simulate
|
|
93
|
+
public async simulate<T extends SimulateInteractionOptions>(
|
|
94
|
+
options: T,
|
|
95
|
+
): Promise<SimulationReturn<Exclude<T['fee'], undefined>['estimateGas']>>;
|
|
96
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
97
|
+
public async simulate<T extends SimulateInteractionOptions>(
|
|
98
|
+
options: T,
|
|
99
|
+
): Promise<SimulationReturn<T['includeMetadata']>>;
|
|
100
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
101
|
+
public async simulate(
|
|
102
|
+
options: SimulateInteractionOptions,
|
|
103
|
+
): Promise<SimulationReturn<typeof options.includeMetadata>> {
|
|
108
104
|
// docs:end:simulate
|
|
109
|
-
if (this.functionDao.functionType == FunctionType.
|
|
110
|
-
|
|
105
|
+
if (this.functionDao.functionType == FunctionType.UTILITY) {
|
|
106
|
+
const call = await this.getFunctionCall();
|
|
107
|
+
const utilityResult = await this.wallet.simulateUtility(call, options.authWitnesses ?? []);
|
|
108
|
+
|
|
109
|
+
// Decode the raw field elements to the actual return type
|
|
110
|
+
const returnValue = utilityResult.result ? decodeFromAbi(this.functionDao.returnTypes, utilityResult.result) : [];
|
|
111
|
+
|
|
112
|
+
if (options.includeMetadata) {
|
|
113
|
+
return {
|
|
114
|
+
stats: utilityResult.stats,
|
|
115
|
+
result: returnValue,
|
|
116
|
+
};
|
|
117
|
+
} else {
|
|
118
|
+
return returnValue;
|
|
119
|
+
}
|
|
111
120
|
}
|
|
112
121
|
|
|
113
|
-
const
|
|
114
|
-
const
|
|
115
|
-
const simulatedTx = await this.wallet.simulateTx(
|
|
116
|
-
txRequest,
|
|
117
|
-
true /* simulatePublic */,
|
|
118
|
-
options.from,
|
|
119
|
-
options.skipTxValidation,
|
|
120
|
-
options.skipFeeEnforcement ?? true,
|
|
121
|
-
);
|
|
122
|
+
const executionPayload = await this.request(options);
|
|
123
|
+
const simulatedTx = await this.wallet.simulateTx(executionPayload, toSimulateOptions(options));
|
|
122
124
|
|
|
123
125
|
let rawReturnValues;
|
|
124
126
|
if (this.functionDao.functionType == FunctionType.PRIVATE) {
|
|
@@ -132,42 +134,69 @@ export class ContractFunctionInteraction extends BaseContractInteraction {
|
|
|
132
134
|
}
|
|
133
135
|
} else {
|
|
134
136
|
// For public functions we retrieve the first values directly from the public output.
|
|
135
|
-
rawReturnValues = simulatedTx.getPublicReturnValues()?.[0]
|
|
137
|
+
rawReturnValues = simulatedTx.getPublicReturnValues()?.[0]?.values;
|
|
136
138
|
}
|
|
137
139
|
|
|
138
|
-
|
|
140
|
+
const returnValue = rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
|
|
141
|
+
|
|
142
|
+
if (options.includeMetadata || options.fee?.estimateGas) {
|
|
143
|
+
const { gasLimits, teardownGasLimits } = getGasLimits(simulatedTx, options.fee?.estimatedGasPadding);
|
|
144
|
+
this.log.verbose(
|
|
145
|
+
`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`,
|
|
146
|
+
);
|
|
147
|
+
return {
|
|
148
|
+
stats: simulatedTx.stats,
|
|
149
|
+
offchainEffects: collectOffchainEffects(simulatedTx.privateExecutionResult),
|
|
150
|
+
result: returnValue,
|
|
151
|
+
estimatedGas: { gasLimits, teardownGasLimits },
|
|
152
|
+
};
|
|
153
|
+
} else {
|
|
154
|
+
return returnValue;
|
|
155
|
+
}
|
|
139
156
|
}
|
|
140
157
|
|
|
141
158
|
/**
|
|
142
159
|
* Simulate a transaction and profile the gate count for each function in the transaction.
|
|
143
|
-
* @param options - Same options as `simulate
|
|
160
|
+
* @param options - Same options as `simulate`, plus profiling method
|
|
144
161
|
*
|
|
145
162
|
* @returns An object containing the function return value and profile result.
|
|
146
163
|
*/
|
|
147
|
-
public async
|
|
148
|
-
if (this.functionDao.functionType == FunctionType.
|
|
149
|
-
throw new Error("Can't profile
|
|
164
|
+
public async profile(options: ProfileInteractionOptions): Promise<TxProfileResult> {
|
|
165
|
+
if (this.functionDao.functionType == FunctionType.UTILITY) {
|
|
166
|
+
throw new Error("Can't profile a utility function.");
|
|
150
167
|
}
|
|
151
168
|
|
|
152
|
-
const
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
true,
|
|
156
|
-
options?.from,
|
|
157
|
-
options?.skipTxValidation,
|
|
158
|
-
undefined,
|
|
159
|
-
true,
|
|
160
|
-
);
|
|
161
|
-
|
|
162
|
-
const rawReturnValues =
|
|
163
|
-
this.functionDao.functionType == FunctionType.PRIVATE
|
|
164
|
-
? simulatedTx.getPrivateReturnValues().nested?.[0].values
|
|
165
|
-
: simulatedTx.getPublicReturnValues()?.[0].values;
|
|
166
|
-
const rawReturnValuesDecoded = rawReturnValues ? decodeFromAbi(this.functionDao.returnTypes, rawReturnValues) : [];
|
|
169
|
+
const executionPayload = await this.request(options);
|
|
170
|
+
return await this.wallet.profileTx(executionPayload, toProfileOptions(options));
|
|
171
|
+
}
|
|
167
172
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
173
|
+
/**
|
|
174
|
+
* Augments this ContractFunctionInteraction with additional metadata, such as authWitnesses, capsules, and extraHashedArgs.
|
|
175
|
+
* This is useful when creating a "batteries included" interaction, such as registering a contract class with its associated
|
|
176
|
+
* capsule instead of having the user provide them externally.
|
|
177
|
+
* @param options - An object containing the metadata to add to the interaction
|
|
178
|
+
* @returns A new ContractFunctionInteraction with the added metadata, but calling the same original function in the same manner
|
|
179
|
+
*/
|
|
180
|
+
public with({
|
|
181
|
+
authWitnesses = [],
|
|
182
|
+
capsules = [],
|
|
183
|
+
extraHashedArgs = [],
|
|
184
|
+
}: {
|
|
185
|
+
/** The authWitnesses to add to the interaction */
|
|
186
|
+
authWitnesses?: AuthWitness[];
|
|
187
|
+
/** The capsules to add to the interaction */
|
|
188
|
+
capsules?: Capsule[];
|
|
189
|
+
/** The extra hashed args to add to the interaction */
|
|
190
|
+
extraHashedArgs?: HashedValues[];
|
|
191
|
+
}): ContractFunctionInteraction {
|
|
192
|
+
return new ContractFunctionInteraction(
|
|
193
|
+
this.wallet,
|
|
194
|
+
this.contractAddress,
|
|
195
|
+
this.functionDao,
|
|
196
|
+
this.args,
|
|
197
|
+
this.authWitnesses.concat(authWitnesses),
|
|
198
|
+
this.capsules.concat(capsules),
|
|
199
|
+
this.extraHashedArgs.concat(extraHashedArgs),
|
|
200
|
+
);
|
|
172
201
|
}
|
|
173
202
|
}
|