@aztec/aztec.js 0.0.0-test.0 → 0.0.1-commit.0208eb9
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 +5 -2
- package/dest/api/wallet.d.ts.map +1 -1
- package/dest/api/wallet.js +4 -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 +27 -0
- package/dest/contract/protocol_contracts/auth-registry.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/auth-registry.js +558 -0
- package/dest/contract/protocol_contracts/contract-class-registry.d.ts +26 -0
- package/dest/contract/protocol_contracts/contract-class-registry.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/contract-class-registry.js +385 -0
- package/dest/contract/protocol_contracts/contract-instance-registry.d.ts +22 -0
- package/dest/contract/protocol_contracts/contract-instance-registry.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/contract-instance-registry.js +465 -0
- package/dest/contract/protocol_contracts/fee-juice.d.ts +21 -0
- package/dest/contract/protocol_contracts/fee-juice.d.ts.map +1 -0
- package/dest/contract/protocol_contracts/fee-juice.js +426 -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 +585 -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 +593 -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/capabilities.d.ts +444 -0
- package/dest/wallet/capabilities.d.ts.map +1 -0
- package/dest/wallet/capabilities.js +3 -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 +4 -17
- package/dest/wallet/index.d.ts.map +1 -1
- package/dest/wallet/index.js +3 -20
- package/dest/wallet/wallet.d.ts +2590 -0
- package/dest/wallet/wallet.d.ts.map +1 -0
- package/dest/wallet/wallet.js +291 -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 +72 -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 +351 -0
- package/src/contract/protocol_contracts/contract-class-registry.ts +241 -0
- package/src/contract/protocol_contracts/contract-instance-registry.ts +302 -0
- package/src/contract/protocol_contracts/fee-juice.ts +264 -0
- package/src/contract/protocol_contracts/multi-call-entrypoint.ts +332 -0
- package/src/contract/protocol_contracts/public-checks.ts +316 -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/capabilities.ts +491 -0
- package/src/wallet/deploy_account_method.ts +150 -0
- package/src/wallet/index.ts +3 -33
- package/src/wallet/wallet.ts +533 -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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base_contract_interaction.d.ts","sourceRoot":"","sources":["../../src/contract/base_contract_interaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,iCAAiC,EACtC,KAAK,UAAU,EAEhB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,8BAAsB,uBAAuB;IAIzC,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,aAAa,EAAE,WAAW,EAAE;IACtC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE;IAL/B,SAAS,CAAC,GAAG,yCAAgD;IAE7D,YACY,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,WAAW,EAAO,EACjC,QAAQ,GAAE,OAAO,EAAO,EAChC;IAEJ;;;;;OAKG;IACH,SAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAGxF;;;;;;OAMG;IAEI,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,OAAO,EAAE,iCAAiC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAGxF,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,CAAC,SAAS,sBAAsB,GAAG,SAAS,EAC3E,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,GACjC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;CAWpC"}
|
|
@@ -1,149 +1,24 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
-
import {
|
|
3
|
-
import { FeeJuicePaymentMethod } from '../fee/fee_juice_payment_method.js';
|
|
4
|
-
import { getGasLimits } from './get_gas_limits.js';
|
|
5
|
-
import { ProvenTx } from './proven_tx.js';
|
|
6
|
-
import { SentTx } from './sent_tx.js';
|
|
2
|
+
import { toSendOptions } from './interaction_options.js';
|
|
7
3
|
/**
|
|
8
4
|
* Base class for an interaction with a contract, be it a deployment, a function call, or a batch.
|
|
9
5
|
* Implements the sequence create/simulate/send.
|
|
10
6
|
*/ export class BaseContractInteraction {
|
|
11
7
|
wallet;
|
|
12
|
-
|
|
8
|
+
authWitnesses;
|
|
13
9
|
capsules;
|
|
14
|
-
|
|
10
|
+
log;
|
|
11
|
+
constructor(wallet, authWitnesses = [], capsules = []){
|
|
15
12
|
this.wallet = wallet;
|
|
13
|
+
this.authWitnesses = authWitnesses;
|
|
14
|
+
this.capsules = capsules;
|
|
16
15
|
this.log = createLogger('aztecjs:contract_interaction');
|
|
17
|
-
this.capsules = [];
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Creates a transaction execution request, simulates and proves it. Differs from .prove in
|
|
21
|
-
* that its result does not include the wallet nor the composed tx object, but only the proving result.
|
|
22
|
-
* This object can then be used to either create a ProvenTx ready to be sent, or directly send the transaction.
|
|
23
|
-
* @param options - optional arguments to be used in the creation of the transaction
|
|
24
|
-
* @returns The proving result.
|
|
25
|
-
*/ async proveInternal(options = {}) {
|
|
26
|
-
const txRequest = await this.create(options);
|
|
27
|
-
const txSimulationResult = await this.wallet.simulateTx(txRequest, !options.skipPublicSimulation, undefined, true);
|
|
28
|
-
return await this.wallet.proveTx(txRequest, txSimulationResult.privateExecutionResult);
|
|
29
16
|
}
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
* Proves a transaction execution request and returns a tx object ready to be sent.
|
|
33
|
-
* @param options - optional arguments to be used in the creation of the transaction
|
|
34
|
-
* @returns The resulting transaction
|
|
35
|
-
*/ async prove(options = {}) {
|
|
36
|
-
// docs:end:prove
|
|
37
|
-
const txProvingResult = await this.proveInternal(options);
|
|
38
|
-
return new ProvenTx(this.wallet, txProvingResult.toTx());
|
|
39
|
-
}
|
|
40
|
-
// docs:start:send
|
|
41
|
-
/**
|
|
42
|
-
* Sends a transaction to the contract function with the specified options.
|
|
43
|
-
* This function throws an error if called on an unconstrained function.
|
|
44
|
-
* It creates and signs the transaction if necessary, and returns a SentTx instance,
|
|
45
|
-
* which can be used to track the transaction status, receipt, and events.
|
|
46
|
-
* @param options - An optional object containing 'from' property representing
|
|
47
|
-
* the AztecAddress of the sender. If not provided, the default address is used.
|
|
48
|
-
* @returns A SentTx instance for tracking the transaction status and information.
|
|
49
|
-
*/ send(options = {}) {
|
|
17
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
18
|
+
async send(options) {
|
|
50
19
|
// docs:end:send
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
})();
|
|
55
|
-
return new SentTx(this.wallet, promise);
|
|
56
|
-
}
|
|
57
|
-
// docs:start:estimateGas
|
|
58
|
-
/**
|
|
59
|
-
* Estimates gas for a given tx request and returns gas limits for it.
|
|
60
|
-
* @param opts - Options.
|
|
61
|
-
* @param pad - Percentage to pad the suggested gas limits by, if empty, defaults to 10%.
|
|
62
|
-
* @returns Gas limits.
|
|
63
|
-
*/ async estimateGas(opts) {
|
|
64
|
-
// docs:end:estimateGas
|
|
65
|
-
const txRequest = await this.create({
|
|
66
|
-
...opts,
|
|
67
|
-
fee: {
|
|
68
|
-
...opts?.fee,
|
|
69
|
-
estimateGas: false
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
const simulationResult = await this.wallet.simulateTx(txRequest, true, undefined /* msgSender */ , undefined /* skipTxValidation */ , true);
|
|
73
|
-
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(simulationResult, opts?.fee?.estimatedGasPadding);
|
|
74
|
-
return {
|
|
75
|
-
gasLimits,
|
|
76
|
-
teardownGasLimits
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Returns default fee options based on the user opts without running a simulation for gas estimation.
|
|
81
|
-
* @param fee - User-provided fee options.
|
|
82
|
-
*/ async getDefaultFeeOptions(fee) {
|
|
83
|
-
const maxFeesPerGas = fee?.gasSettings?.maxFeesPerGas ?? (await this.wallet.getCurrentBaseFees()).mul(1 + (fee?.baseFeePadding ?? 0.5));
|
|
84
|
-
const paymentMethod = fee?.paymentMethod ?? new FeeJuicePaymentMethod(this.wallet.getAddress());
|
|
85
|
-
const gasSettings = GasSettings.default({
|
|
86
|
-
...fee?.gasSettings,
|
|
87
|
-
maxFeesPerGas
|
|
88
|
-
});
|
|
89
|
-
this.log.debug(`Using L2 gas settings`, gasSettings);
|
|
90
|
-
return {
|
|
91
|
-
gasSettings,
|
|
92
|
-
paymentMethod
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
// docs:start:getFeeOptions
|
|
96
|
-
/**
|
|
97
|
-
* Return fee options based on the user opts, estimating tx gas if needed.
|
|
98
|
-
* @param request - Request to execute for this interaction.
|
|
99
|
-
* @param pad - Percentage to pad the suggested gas limits by, as decimal (e.g., 0.10 for 10%).
|
|
100
|
-
* @returns Fee options for the actual transaction.
|
|
101
|
-
*/ async getFeeOptions(request) {
|
|
102
|
-
// docs:end:getFeeOptions
|
|
103
|
-
const defaultFeeOptions = await this.getDefaultFeeOptions(request.fee);
|
|
104
|
-
const paymentMethod = defaultFeeOptions.paymentMethod;
|
|
105
|
-
const maxFeesPerGas = defaultFeeOptions.gasSettings.maxFeesPerGas;
|
|
106
|
-
const maxPriorityFeesPerGas = defaultFeeOptions.gasSettings.maxPriorityFeesPerGas;
|
|
107
|
-
let gasSettings = defaultFeeOptions.gasSettings;
|
|
108
|
-
if (request.fee?.estimateGas) {
|
|
109
|
-
const feeForEstimation = {
|
|
110
|
-
paymentMethod,
|
|
111
|
-
gasSettings
|
|
112
|
-
};
|
|
113
|
-
const txRequest = await this.wallet.createTxExecutionRequest({
|
|
114
|
-
...request,
|
|
115
|
-
fee: feeForEstimation
|
|
116
|
-
});
|
|
117
|
-
const simulationResult = await this.wallet.simulateTx(txRequest, true, undefined /* msgSender */ , undefined /* skipTxValidation */ , true);
|
|
118
|
-
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(simulationResult, request.fee?.estimatedGasPadding);
|
|
119
|
-
gasSettings = GasSettings.from({
|
|
120
|
-
maxFeesPerGas,
|
|
121
|
-
maxPriorityFeesPerGas,
|
|
122
|
-
gasLimits,
|
|
123
|
-
teardownGasLimits
|
|
124
|
-
});
|
|
125
|
-
this.log.verbose(`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`);
|
|
126
|
-
}
|
|
127
|
-
return {
|
|
128
|
-
gasSettings,
|
|
129
|
-
paymentMethod
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Add data passed to the oracle calls during this contract interaction.
|
|
134
|
-
* @param capsule - Data passed to oracle calls.
|
|
135
|
-
*/ addCapsule(capsule) {
|
|
136
|
-
this.capsules.push(capsule);
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Add data passed to the oracle calls during this contract interaction.
|
|
140
|
-
* @param capsules - Data passed to oracle calls.
|
|
141
|
-
*/ addCapsules(capsules) {
|
|
142
|
-
this.capsules.push(...capsules);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Return all capsules added for this function interaction.
|
|
146
|
-
*/ getCapsules() {
|
|
147
|
-
return this.capsules;
|
|
20
|
+
const executionPayload = await this.request(options);
|
|
21
|
+
const sendOptions = toSendOptions(options);
|
|
22
|
+
return await this.wallet.sendTx(executionPayload, sendOptions);
|
|
148
23
|
}
|
|
149
24
|
}
|
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import type { SimulateMethodOptions } from './contract_function_interaction.js';
|
|
1
|
+
import { ExecutionPayload } from '@aztec/stdlib/tx';
|
|
2
|
+
import type { Wallet } from '../wallet/wallet.js';
|
|
3
|
+
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
4
|
+
import { type RequestInteractionOptions, type SimulateInteractionOptions } from './interaction_options.js';
|
|
6
5
|
/** A batch of function calls to be sent as a single transaction through a wallet. */
|
|
7
6
|
export declare class BatchCall extends BaseContractInteraction {
|
|
8
|
-
protected
|
|
9
|
-
constructor(wallet: Wallet,
|
|
7
|
+
protected interactions: (BaseContractInteraction | ExecutionPayload)[];
|
|
8
|
+
constructor(wallet: Wallet, interactions: (BaseContractInteraction | ExecutionPayload)[]);
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* @
|
|
14
|
-
* @returns A Promise that resolves to a transaction instance.
|
|
10
|
+
* Returns an execution request that represents this operation.
|
|
11
|
+
* @param options - An optional object containing additional configuration for the request generation.
|
|
12
|
+
* @returns An execution payload wrapped in promise.
|
|
15
13
|
*/
|
|
16
|
-
|
|
14
|
+
request(options?: RequestInteractionOptions): Promise<ExecutionPayload>;
|
|
17
15
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* @
|
|
24
|
-
* @returns The result of the transaction as returned by the contract function.
|
|
16
|
+
* Simulates the batch, supporting private, public and utility functions. Although this is a single
|
|
17
|
+
* interaction with the wallet, private and public functions will be grouped into a single ExecutionPayload
|
|
18
|
+
* that the wallet will simulate as a single transaction. Utility function calls will simply be executed
|
|
19
|
+
* one by one.
|
|
20
|
+
* @param options - An optional object containing additional configuration for the interaction.
|
|
21
|
+
* @returns The results of all the interactions that make up the batch
|
|
25
22
|
*/
|
|
26
|
-
simulate(options
|
|
23
|
+
simulate(options: SimulateInteractionOptions): Promise<any>;
|
|
24
|
+
protected getExecutionPayloads(): Promise<ExecutionPayload[]>;
|
|
27
25
|
}
|
|
28
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfY2FsbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2JhdGNoX2NhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGdCQUFnQixFQUlqQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sS0FBSyxFQUFpQixNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsS0FBSyx5QkFBeUIsRUFDOUIsS0FBSywwQkFBMEIsRUFFaEMsTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxxRkFBcUY7QUFFckYscUJBQWEsU0FBVSxTQUFRLHVCQUF1QjtJQUdsRCxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsdUJBQXVCLEdBQUcsZ0JBQWdCLENBQUMsRUFBRTtJQUZ4RSxZQUNFLE1BQU0sRUFBRSxNQUFNLEVBQ0osWUFBWSxFQUFFLENBQUMsdUJBQXVCLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxFQUd2RTtJQUdEOzs7O09BSUc7SUFDVSxPQUFPLENBQUMsT0FBTyxHQUFFLHlCQUE4QixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQVN2RjtJQUVEOzs7Ozs7O09BT0c7SUFDVSxRQUFRLENBQUMsT0FBTyxFQUFFLDBCQUEwQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0F5RnZFO0lBRUQsVUFBZ0Isb0JBQW9CLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FFbEU7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch_call.d.ts","sourceRoot":"","sources":["../../src/contract/batch_call.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"batch_call.d.ts","sourceRoot":"","sources":["../../src/contract/batch_call.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAIjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAC;AAElC,qFAAqF;AAErF,qBAAa,SAAU,SAAQ,uBAAuB;IAGlD,SAAS,CAAC,YAAY,EAAE,CAAC,uBAAuB,GAAG,gBAAgB,CAAC,EAAE;IAFxE,YACE,MAAM,EAAE,MAAM,EACJ,YAAY,EAAE,CAAC,uBAAuB,GAAG,gBAAgB,CAAC,EAAE,EAGvE;IAGD;;;;OAIG;IACU,OAAO,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CASvF;IAED;;;;;;;OAOG;IACU,QAAQ,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,CAyFvE;IAED,UAAgB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAElE;CACF"}
|
|
@@ -1,91 +1,111 @@
|
|
|
1
1
|
import { FunctionType, decodeFromAbi } from '@aztec/stdlib/abi';
|
|
2
|
+
import { ExecutionPayload, mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
2
3
|
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { toSimulateOptions } from './interaction_options.js';
|
|
5
|
+
/** A batch of function calls to be sent as a single transaction through a wallet. */ // docs:start:batch_call_class
|
|
6
|
+
export class BatchCall extends BaseContractInteraction {
|
|
7
|
+
interactions;
|
|
8
|
+
constructor(wallet, interactions){
|
|
9
|
+
super(wallet), this.interactions = interactions;
|
|
7
10
|
}
|
|
11
|
+
// docs:end:batch_call_class
|
|
8
12
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
...
|
|
20
|
-
|
|
21
|
-
return
|
|
22
|
-
calls,
|
|
23
|
-
capsules,
|
|
24
|
-
...opts,
|
|
25
|
-
fee
|
|
26
|
-
});
|
|
13
|
+
* Returns an execution request that represents this operation.
|
|
14
|
+
* @param options - An optional object containing additional configuration for the request generation.
|
|
15
|
+
* @returns An execution payload wrapped in promise.
|
|
16
|
+
*/ async request(options = {}) {
|
|
17
|
+
const requests = await this.getExecutionPayloads();
|
|
18
|
+
const feeExecutionPayload = options.fee?.paymentMethod ? await options.fee.paymentMethod.getExecutionPayload() : undefined;
|
|
19
|
+
const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
|
|
20
|
+
feeExecutionPayload,
|
|
21
|
+
...requests
|
|
22
|
+
]) : mergeExecutionPayloads([
|
|
23
|
+
...requests
|
|
24
|
+
]);
|
|
25
|
+
return finalExecutionPayload;
|
|
27
26
|
}
|
|
28
27
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* @
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
acc.
|
|
40
|
-
|
|
28
|
+
* Simulates the batch, supporting private, public and utility functions. Although this is a single
|
|
29
|
+
* interaction with the wallet, private and public functions will be grouped into a single ExecutionPayload
|
|
30
|
+
* that the wallet will simulate as a single transaction. Utility function calls will simply be executed
|
|
31
|
+
* one by one.
|
|
32
|
+
* @param options - An optional object containing additional configuration for the interaction.
|
|
33
|
+
* @returns The results of all the interactions that make up the batch
|
|
34
|
+
*/ async simulate(options) {
|
|
35
|
+
const { indexedExecutionPayloads, utility } = (await this.getExecutionPayloads()).reduce((acc, current, index)=>{
|
|
36
|
+
const call = current.calls[0];
|
|
37
|
+
if (call.type === FunctionType.UTILITY) {
|
|
38
|
+
acc.utility.push([
|
|
39
|
+
call,
|
|
41
40
|
index
|
|
42
41
|
]);
|
|
43
42
|
} else {
|
|
44
|
-
acc.
|
|
43
|
+
acc.indexedExecutionPayloads.push([
|
|
45
44
|
current,
|
|
46
45
|
index,
|
|
47
|
-
|
|
46
|
+
call.type === FunctionType.PRIVATE ? acc.privateIndex++ : acc.publicIndex++
|
|
48
47
|
]);
|
|
49
48
|
}
|
|
50
49
|
return acc;
|
|
51
50
|
}, {
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
indexedExecutionPayloads: [],
|
|
52
|
+
utility: [],
|
|
54
53
|
publicIndex: 0,
|
|
55
54
|
privateIndex: 0
|
|
56
55
|
});
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
56
|
+
const batchRequests = [];
|
|
57
|
+
// Add utility calls to batch
|
|
58
|
+
for (const [call] of utility){
|
|
59
|
+
batchRequests.push({
|
|
60
|
+
name: 'simulateUtility',
|
|
61
|
+
args: [
|
|
62
|
+
call,
|
|
63
|
+
options?.authWitnesses
|
|
64
|
+
]
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Add tx simulation to batch if there are any private/public calls
|
|
68
|
+
if (indexedExecutionPayloads.length > 0) {
|
|
69
|
+
const payloads = indexedExecutionPayloads.map(([request])=>request);
|
|
70
|
+
const combinedPayload = mergeExecutionPayloads(payloads);
|
|
71
|
+
const executionPayload = new ExecutionPayload(combinedPayload.calls, combinedPayload.authWitnesses.concat(options.authWitnesses ?? []), combinedPayload.capsules.concat(options.capsules ?? []), combinedPayload.extraHashedArgs);
|
|
72
|
+
batchRequests.push({
|
|
73
|
+
name: 'simulateTx',
|
|
74
|
+
args: [
|
|
75
|
+
executionPayload,
|
|
76
|
+
toSimulateOptions(options)
|
|
77
|
+
]
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const batchResults = batchRequests.length > 0 ? await this.wallet.batch(batchRequests) : [];
|
|
78
81
|
const results = [];
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
// Process utility results (they come first in batch results)
|
|
83
|
+
for(let i = 0; i < utility.length; i++){
|
|
84
|
+
const [call, resultIndex] = utility[i];
|
|
85
|
+
const wrappedResult = batchResults[i];
|
|
86
|
+
if (wrappedResult.name === 'simulateUtility') {
|
|
87
|
+
const rawReturnValues = wrappedResult.result.result;
|
|
88
|
+
results[resultIndex] = rawReturnValues ? decodeFromAbi(call.returnTypes, rawReturnValues) : [];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Process tx simulation result (it comes last if present)
|
|
92
|
+
if (indexedExecutionPayloads.length > 0) {
|
|
93
|
+
const txResultWrapper = batchResults[utility.length];
|
|
94
|
+
if (txResultWrapper.name === 'simulateTx') {
|
|
95
|
+
const simulatedTx = txResultWrapper.result;
|
|
96
|
+
indexedExecutionPayloads.forEach(([request, callIndex, resultIndex])=>{
|
|
97
|
+
const call = request.calls[0];
|
|
98
|
+
// As account entrypoints are private, for private functions we retrieve the return values from the first nested call
|
|
99
|
+
// since we're interested in the first set of values AFTER the account entrypoint
|
|
100
|
+
// For public functions we retrieve the first values directly from the public output.
|
|
101
|
+
const rawReturnValues = call.type == FunctionType.PRIVATE ? simulatedTx.getPrivateReturnValues()?.nested?.[resultIndex].values : simulatedTx.getPublicReturnValues()?.[resultIndex].values;
|
|
102
|
+
results[callIndex] = rawReturnValues ? decodeFromAbi(call.returnTypes, rawReturnValues) : [];
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
89
106
|
return results;
|
|
90
107
|
}
|
|
108
|
+
async getExecutionPayloads() {
|
|
109
|
+
return await Promise.all(this.interactions.map((i)=>i instanceof ExecutionPayload ? i : i.request()));
|
|
110
|
+
}
|
|
91
111
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ContractArtifact } from '@aztec/stdlib/abi';
|
|
2
2
|
/**
|
|
3
3
|
* Validates the given ContractArtifact object by checking its functions and their parameters.
|
|
4
4
|
* Ensures that the ABI has at least one function, a constructor, valid bytecode, and correct parameter types.
|
|
@@ -8,4 +8,4 @@ import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
|
8
8
|
* @returns A boolean value indicating whether the artifact is valid or not.
|
|
9
9
|
*/
|
|
10
10
|
export declare function abiChecker(artifact: ContractArtifact): boolean;
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2NoZWNrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLEtBQUssZ0JBQWdCLEVBR3RCLE1BQU0sbUJBQW1CLENBQUM7QUFRM0I7Ozs7Ozs7R0FPRztBQUNILHdCQUFnQixVQUFVLENBQUMsUUFBUSxFQUFFLGdCQUFnQixXQTZCcEQifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/contract/checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/contract/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EAGtB,MAAM,mBAAmB,CAAC;AAQ3B;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,gBAAgB,WA6BpD"}
|
package/dest/contract/checker.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getDefaultInitializer } from '@aztec/stdlib/abi';
|
|
1
2
|
/**
|
|
2
3
|
* Validates the given ContractArtifact object by checking its functions and their parameters.
|
|
3
4
|
* Ensures that the ABI has at least one function, a constructor, valid bytecode, and correct parameter types.
|
|
@@ -24,8 +25,7 @@
|
|
|
24
25
|
abiParameterTypeChecker(param.type);
|
|
25
26
|
});
|
|
26
27
|
});
|
|
27
|
-
|
|
28
|
-
if (!artifact.functions.find((func)=>func.name === 'constructor')) {
|
|
28
|
+
if (!getDefaultInitializer(artifact)) {
|
|
29
29
|
throw new Error('ABI has no constructor');
|
|
30
30
|
}
|
|
31
31
|
return true;
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import type { ContractArtifact } from '@aztec/stdlib/abi';
|
|
2
2
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
4
|
-
import type { Wallet } from '../
|
|
4
|
+
import type { Wallet } from '../wallet/wallet.js';
|
|
5
5
|
import { ContractBase } from './contract_base.js';
|
|
6
6
|
import { DeployMethod } from './deploy_method.js';
|
|
7
7
|
/**
|
|
8
8
|
* The Contract class represents a contract and provides utility methods for interacting with it.
|
|
9
9
|
* It enables the creation of ContractFunctionInteraction instances for each function in the contract's ABI,
|
|
10
10
|
* allowing users to call or send transactions to these functions. Additionally, the Contract class can be used
|
|
11
|
-
* to attach the contract instance to a deployed contract
|
|
11
|
+
* to attach the contract instance to a deployed contract onchain through the PXE, which facilitates
|
|
12
12
|
* interaction with Aztec's privacy protocol.
|
|
13
13
|
*/
|
|
14
14
|
export declare class Contract extends ContractBase {
|
|
15
15
|
/**
|
|
16
|
-
*
|
|
17
|
-
* @param address - The
|
|
16
|
+
* Gets a contract instance.
|
|
17
|
+
* @param address - The address of the contract instance.
|
|
18
18
|
* @param artifact - Build artifact of the contract.
|
|
19
19
|
* @param wallet - The wallet to use when interacting with the contract.
|
|
20
20
|
* @returns A promise that resolves to a new Contract instance.
|
|
21
21
|
*/
|
|
22
|
-
static at(address: AztecAddress, artifact: ContractArtifact, wallet: Wallet):
|
|
22
|
+
static at(address: AztecAddress, artifact: ContractArtifact, wallet: Wallet): Contract;
|
|
23
23
|
/**
|
|
24
|
-
* Creates a tx to deploy a new instance of a contract.
|
|
24
|
+
* Creates a tx to deploy (initialize and/or publish) a new instance of a contract.
|
|
25
25
|
* @param wallet - The wallet for executing the deployment.
|
|
26
26
|
* @param artifact - Build artifact of the contract to deploy
|
|
27
27
|
* @param args - Arguments for the constructor.
|
|
@@ -29,7 +29,8 @@ export declare class Contract extends ContractBase {
|
|
|
29
29
|
*/
|
|
30
30
|
static deploy(wallet: Wallet, artifact: ContractArtifact, args: any[], constructorName?: string): DeployMethod<Contract>;
|
|
31
31
|
/**
|
|
32
|
-
* Creates a tx to deploy a new instance of a contract
|
|
32
|
+
* Creates a tx to deploy (initialize and/or publish) a new instance of a contract
|
|
33
|
+
* using the specified public keys hash to derive the address.
|
|
33
34
|
* @param publicKeys - Hash of public keys to use for deriving the address.
|
|
34
35
|
* @param wallet - The wallet for executing the deployment.
|
|
35
36
|
* @param artifact - Build artifact of the contract.
|
|
@@ -38,4 +39,4 @@ export declare class Contract extends ContractBase {
|
|
|
38
39
|
*/
|
|
39
40
|
static deployWithPublicKeys(publicKeys: PublicKeys, wallet: Wallet, artifact: ContractArtifact, args: any[], constructorName?: string): DeployMethod<Contract>;
|
|
40
41
|
}
|
|
41
|
-
//# sourceMappingURL=
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3QuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxEOzs7Ozs7R0FNRztBQUNILHFCQUFhLFFBQVMsU0FBUSxZQUFZO0lBQ3hDOzs7Ozs7T0FNRztJQUNILE9BQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUcsUUFBUSxDQUU1RjtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQWMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxlQUFlLENBQUMsRUFBRSxNQUFNLDBCQUlyRztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsT0FBYyxvQkFBb0IsQ0FDaEMsVUFBVSxFQUFFLFVBQVUsRUFDdEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxRQUFRLEVBQUUsZ0JBQWdCLEVBQzFCLElBQUksRUFBRSxHQUFHLEVBQUUsRUFDWCxlQUFlLENBQUMsRUFBRSxNQUFNLDBCQUt6QjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contract/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC;;;;;;OAMG;
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/contract/contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD;;;;;;GAMG;AACH,qBAAa,QAAS,SAAQ,YAAY;IACxC;;;;;;OAMG;IACH,OAAc,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAE5F;IAED;;;;;;OAMG;IACH,OAAc,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,0BAIrG;IAED;;;;;;;;OAQG;IACH,OAAc,oBAAoB,CAChC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,GAAG,EAAE,EACX,eAAe,CAAC,EAAE,MAAM,0BAKzB;CACF"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { getContractClassFromArtifact } from '@aztec/stdlib/contract';
|
|
2
1
|
import { PublicKeys } from '@aztec/stdlib/keys';
|
|
3
2
|
import { ContractBase } from './contract_base.js';
|
|
4
3
|
import { DeployMethod } from './deploy_method.js';
|
|
@@ -6,47 +5,38 @@ import { DeployMethod } from './deploy_method.js';
|
|
|
6
5
|
* The Contract class represents a contract and provides utility methods for interacting with it.
|
|
7
6
|
* It enables the creation of ContractFunctionInteraction instances for each function in the contract's ABI,
|
|
8
7
|
* allowing users to call or send transactions to these functions. Additionally, the Contract class can be used
|
|
9
|
-
* to attach the contract instance to a deployed contract
|
|
8
|
+
* to attach the contract instance to a deployed contract onchain through the PXE, which facilitates
|
|
10
9
|
* interaction with Aztec's privacy protocol.
|
|
11
10
|
*/ export class Contract extends ContractBase {
|
|
12
11
|
/**
|
|
13
|
-
*
|
|
14
|
-
* @param address - The
|
|
12
|
+
* Gets a contract instance.
|
|
13
|
+
* @param address - The address of the contract instance.
|
|
15
14
|
* @param artifact - Build artifact of the contract.
|
|
16
15
|
* @param wallet - The wallet to use when interacting with the contract.
|
|
17
16
|
* @returns A promise that resolves to a new Contract instance.
|
|
18
|
-
*/ static
|
|
19
|
-
|
|
20
|
-
if (instance === undefined) {
|
|
21
|
-
throw new Error(`Contract instance at ${address.toString()} has not been registered in the wallet's PXE`);
|
|
22
|
-
}
|
|
23
|
-
const thisContractClass = await getContractClassFromArtifact(artifact);
|
|
24
|
-
if (!thisContractClass.id.equals(instance.currentContractClassId)) {
|
|
25
|
-
// wallet holds an outdated version of this contract
|
|
26
|
-
await wallet.updateContract(address, artifact);
|
|
27
|
-
instance.currentContractClassId = thisContractClass.id;
|
|
28
|
-
}
|
|
29
|
-
return new Contract(instance, artifact, wallet);
|
|
17
|
+
*/ static at(address, artifact, wallet) {
|
|
18
|
+
return new Contract(address, artifact, wallet);
|
|
30
19
|
}
|
|
31
20
|
/**
|
|
32
|
-
* Creates a tx to deploy a new instance of a contract.
|
|
21
|
+
* Creates a tx to deploy (initialize and/or publish) a new instance of a contract.
|
|
33
22
|
* @param wallet - The wallet for executing the deployment.
|
|
34
23
|
* @param artifact - Build artifact of the contract to deploy
|
|
35
24
|
* @param args - Arguments for the constructor.
|
|
36
25
|
* @param constructorName - The name of the constructor function to call.
|
|
37
26
|
*/ static deploy(wallet, artifact, args, constructorName) {
|
|
38
|
-
const postDeployCtor = (
|
|
27
|
+
const postDeployCtor = (instance, wallet)=>Contract.at(instance.address, artifact, wallet);
|
|
39
28
|
return new DeployMethod(PublicKeys.default(), wallet, artifact, postDeployCtor, args, constructorName);
|
|
40
29
|
}
|
|
41
30
|
/**
|
|
42
|
-
* Creates a tx to deploy a new instance of a contract
|
|
31
|
+
* Creates a tx to deploy (initialize and/or publish) a new instance of a contract
|
|
32
|
+
* using the specified public keys hash to derive the address.
|
|
43
33
|
* @param publicKeys - Hash of public keys to use for deriving the address.
|
|
44
34
|
* @param wallet - The wallet for executing the deployment.
|
|
45
35
|
* @param artifact - Build artifact of the contract.
|
|
46
36
|
* @param args - Arguments for the constructor.
|
|
47
37
|
* @param constructorName - The name of the constructor function to call.
|
|
48
38
|
*/ static deployWithPublicKeys(publicKeys, wallet, artifact, args, constructorName) {
|
|
49
|
-
const postDeployCtor = (
|
|
39
|
+
const postDeployCtor = (instance, wallet)=>Contract.at(instance.address, artifact, wallet);
|
|
50
40
|
return new DeployMethod(publicKeys, wallet, artifact, postDeployCtor, args, constructorName);
|
|
51
41
|
}
|
|
52
42
|
}
|