@aztec/aztec.js 0.0.0-test.1 → 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,17 +1,24 @@
|
|
|
1
|
+
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
1
2
|
import { getInitializer } from '@aztec/stdlib/abi';
|
|
2
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
-
import { computePartialAddress, getContractClassFromArtifact,
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { computePartialAddress, getContractClassFromArtifact, getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
5
|
+
import { collectOffchainEffects } from '@aztec/stdlib/tx';
|
|
6
|
+
import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
7
|
+
import { publishContractClass } from '../deployment/publish_class.js';
|
|
8
|
+
import { publishInstance } from '../deployment/publish_instance.js';
|
|
6
9
|
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
7
10
|
import { ContractFunctionInteraction } from './contract_function_interaction.js';
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
// docs:end:deploy_options
|
|
11
|
-
// TODO(@spalladino): Add unit tests for this class!
|
|
11
|
+
import { getGasLimits } from './get_gas_limits.js';
|
|
12
|
+
import { NO_WAIT, toProfileOptions, toSendOptions, toSimulateOptions } from './interaction_options.js';
|
|
12
13
|
/**
|
|
13
|
-
* Contract interaction for deployment.
|
|
14
|
-
* and initialization of the contract.
|
|
14
|
+
* Contract interaction for deployment.
|
|
15
|
+
* Handles class publication, instance publication, and initialization of the contract.
|
|
16
|
+
*
|
|
17
|
+
* Note that for some contracts, a tx is not required as part of its "creation":
|
|
18
|
+
* If there are no public functions, and if there are no initialization functions,
|
|
19
|
+
* then technically the contract has already been "created", and all of the contract's
|
|
20
|
+
* functions (private and utility) can be interacted-with immediately, without any
|
|
21
|
+
* "deployment tx".
|
|
15
22
|
*/ export class DeployMethod extends BaseContractInteraction {
|
|
16
23
|
publicKeys;
|
|
17
24
|
artifact;
|
|
@@ -19,99 +26,69 @@ import { DeploySentTx } from './deploy_sent_tx.js';
|
|
|
19
26
|
args;
|
|
20
27
|
/** The contract instance to be deployed. */ instance;
|
|
21
28
|
/** Constructor function to call. */ constructorArtifact;
|
|
22
|
-
constructor(publicKeys, wallet, artifact, postDeployCtor, args = [], constructorNameOrArtifact){
|
|
23
|
-
super(wallet), this.publicKeys = publicKeys, this.artifact = artifact, this.postDeployCtor = postDeployCtor, this.args = args, this.instance = undefined;
|
|
29
|
+
constructor(publicKeys, wallet, artifact, postDeployCtor, args = [], constructorNameOrArtifact, authWitnesses = [], capsules = []){
|
|
30
|
+
super(wallet, authWitnesses, capsules), this.publicKeys = publicKeys, this.artifact = artifact, this.postDeployCtor = postDeployCtor, this.args = args, this.instance = undefined;
|
|
24
31
|
this.constructorArtifact = getInitializer(artifact, constructorNameOrArtifact);
|
|
25
32
|
}
|
|
26
33
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
*/ async create(options = {}) {
|
|
35
|
-
return this.wallet.createTxExecutionRequest(await this.request(options));
|
|
36
|
-
}
|
|
37
|
-
// REFACTOR: Having a `request` method with different semantics than the ones in the other
|
|
38
|
-
// derived ContractInteractions is confusing. We should unify the flow of all ContractInteractions.
|
|
39
|
-
/**
|
|
40
|
-
* Returns an array of function calls that represent this operation. Useful as a building
|
|
41
|
-
* block for constructing batch requests.
|
|
42
|
-
* @param options - Deployment options.
|
|
43
|
-
* @returns An array of function calls.
|
|
44
|
-
* @remarks This method does not have the same return type as the `request` in the ContractInteraction object,
|
|
45
|
-
* it returns a promise for an array instead of a function call directly.
|
|
46
|
-
*/ async request(options = {}) {
|
|
47
|
-
const deployment = await this.getDeploymentFunctionCalls(options);
|
|
48
|
-
// NOTE: MEGA HACK. Remove with #10007
|
|
49
|
-
// register the contract after generating deployment function calls in order to publicly register the class and (optioanlly) emit its bytecode
|
|
50
|
-
//
|
|
51
|
-
// TODO: Should we add the contracts to the DB here, or once the tx has been sent or mined?
|
|
52
|
-
// Note that we need to run this registerContract here so it's available when computeFeeOptionsFromEstimatedGas
|
|
53
|
-
// runs, since it needs the contract to have been registered in order to estimate gas for its initialization,
|
|
54
|
-
// in case the initializer is public. This hints at the need of having "transient" contracts scoped to a
|
|
55
|
-
// simulation, so we can run the simulation with a set of contracts, but only "commit" them to the wallet
|
|
56
|
-
// once this tx has gone through.
|
|
57
|
-
await this.wallet.registerContract({
|
|
58
|
-
artifact: this.artifact,
|
|
59
|
-
instance: await this.getInstance(options)
|
|
60
|
-
});
|
|
61
|
-
const bootstrap = await this.getInitializeFunctionCalls(options);
|
|
62
|
-
if (deployment.calls.length + bootstrap.calls.length === 0) {
|
|
63
|
-
throw new Error(`No function calls needed to deploy contract ${this.artifact.name}`);
|
|
34
|
+
* Returns the execution payload that allows this operation to happen on chain.
|
|
35
|
+
* @param options - Configuration options.
|
|
36
|
+
* @returns The execution payload for this operation
|
|
37
|
+
*/ async request(options) {
|
|
38
|
+
const publication = await this.getPublicationExecutionPayload(options);
|
|
39
|
+
if (!options?.skipRegistration) {
|
|
40
|
+
await this.wallet.registerContract(await this.getInstance(options), this.artifact);
|
|
64
41
|
}
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
authWitnesses,
|
|
85
|
-
hashedArguments,
|
|
86
|
-
capsules,
|
|
87
|
-
cancellable,
|
|
88
|
-
fee: userFee,
|
|
89
|
-
nonce
|
|
42
|
+
const initialization = await this.getInitializationExecutionPayload(options);
|
|
43
|
+
const feeExecutionPayload = options?.fee?.paymentMethod ? await options.fee.paymentMethod.getExecutionPayload() : undefined;
|
|
44
|
+
const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
|
|
45
|
+
feeExecutionPayload,
|
|
46
|
+
publication,
|
|
47
|
+
initialization
|
|
48
|
+
]) : mergeExecutionPayloads([
|
|
49
|
+
publication,
|
|
50
|
+
initialization
|
|
51
|
+
]);
|
|
52
|
+
if (!finalExecutionPayload.calls.length) {
|
|
53
|
+
throw new Error(`No transactions are needed to publish or initialize contract ${this.artifact.name}`);
|
|
54
|
+
}
|
|
55
|
+
return finalExecutionPayload;
|
|
56
|
+
}
|
|
57
|
+
convertDeployOptionsToRequestOptions(options) {
|
|
58
|
+
return {
|
|
59
|
+
...options,
|
|
60
|
+
deployer: !options?.universalDeploy ? options.from : undefined
|
|
90
61
|
};
|
|
91
|
-
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Converts DeployOptions to SendOptions, stripping out the returnReceipt flag if present.
|
|
65
|
+
* @param options - Deploy options with wait parameter
|
|
66
|
+
* @returns Send options with wait parameter
|
|
67
|
+
*/ convertDeployOptionsToSendOptions(options) {
|
|
92
68
|
return {
|
|
93
|
-
...
|
|
94
|
-
|
|
69
|
+
...toSendOptions({
|
|
70
|
+
...options,
|
|
71
|
+
wait: options.wait
|
|
72
|
+
})
|
|
95
73
|
};
|
|
96
74
|
}
|
|
97
75
|
/**
|
|
98
|
-
*
|
|
76
|
+
* Adds this contract to the wallet and returns the Contract object.
|
|
99
77
|
* @param options - Deployment options.
|
|
100
|
-
*/ async register(options
|
|
78
|
+
*/ async register(options) {
|
|
101
79
|
const instance = await this.getInstance(options);
|
|
102
|
-
await this.wallet.registerContract(
|
|
103
|
-
|
|
104
|
-
instance
|
|
105
|
-
});
|
|
106
|
-
return this.postDeployCtor(instance.address, this.wallet);
|
|
80
|
+
await this.wallet.registerContract(instance, this.artifact);
|
|
81
|
+
return this.postDeployCtor(instance, this.wallet);
|
|
107
82
|
}
|
|
108
83
|
/**
|
|
109
|
-
* Returns
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
|
|
84
|
+
* Returns an execution payload for:
|
|
85
|
+
* - publication of the contract class and
|
|
86
|
+
* - publication of the contract instance to enable public execution
|
|
87
|
+
* depending on the provided options.
|
|
88
|
+
* @param options - Contract creation options.
|
|
89
|
+
* @returns An execution payload with potentially calls (and bytecode capsule) to the class registry and instance registry.
|
|
90
|
+
*/ async getPublicationExecutionPayload(options) {
|
|
113
91
|
const calls = [];
|
|
114
|
-
const capsules = [];
|
|
115
92
|
// Set contract instance object so it's available for populating the DeploySendTx object
|
|
116
93
|
const instance = await this.getInstance(options);
|
|
117
94
|
// Obtain contract class from artifact and check it matches the reported one by the instance.
|
|
@@ -120,88 +97,114 @@ import { DeploySentTx } from './deploy_sent_tx.js';
|
|
|
120
97
|
if (!instance.currentContractClassId.equals(contractClass.id)) {
|
|
121
98
|
throw new Error(`Contract class mismatch when deploying contract: got ${instance.currentContractClassId.toString()} from instance and ${contractClass.id.toString()} from artifact`);
|
|
122
99
|
}
|
|
123
|
-
//
|
|
124
|
-
if (!options
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
const registerContractClassInteraction = await registerContractClass(this.wallet, this.artifact);
|
|
100
|
+
// Publish the contract class if it hasn't been published already.
|
|
101
|
+
if (!options?.skipClassPublication) {
|
|
102
|
+
const classMetadata = await this.wallet.getContractClassMetadata(contractClass.id);
|
|
103
|
+
if (!classMetadata.isContractClassPubliclyRegistered) {
|
|
104
|
+
this.log.info(`Creating request for publishing contract class ${contractClass.id.toString()} as part of deployment for ${instance.address.toString()}`);
|
|
105
|
+
const registerContractClassInteraction = await publishContractClass(this.wallet, this.artifact);
|
|
130
106
|
calls.push(await registerContractClassInteraction.request());
|
|
131
|
-
|
|
107
|
+
} else {
|
|
108
|
+
this.log.debug(`Skipping contract class publication for ${contractClass.id.toString()} as it is already registered`);
|
|
132
109
|
}
|
|
133
110
|
}
|
|
134
|
-
//
|
|
135
|
-
if (!options
|
|
136
|
-
|
|
111
|
+
// Publish the contract instance:
|
|
112
|
+
if (!options?.skipInstancePublication) {
|
|
113
|
+
// TODO(https://github.com/AztecProtocol/aztec-packages/issues/15596):
|
|
114
|
+
// Read the artifact, and if there are no public functions, warn the caller that publication of the
|
|
115
|
+
// contract instance is not necessary (until such time as they wish to update the instance (i.e. change its class_id)).
|
|
116
|
+
const deploymentInteraction = publishInstance(this.wallet, instance);
|
|
137
117
|
calls.push(await deploymentInteraction.request());
|
|
138
|
-
capsules.push(...deploymentInteraction.getCapsules());
|
|
139
118
|
}
|
|
140
|
-
return
|
|
141
|
-
calls,
|
|
142
|
-
capsules
|
|
143
|
-
};
|
|
119
|
+
return mergeExecutionPayloads(calls);
|
|
144
120
|
}
|
|
145
121
|
/**
|
|
146
122
|
* Returns the calls necessary to initialize the contract.
|
|
147
123
|
* @param options - Deployment options.
|
|
148
124
|
* @returns - An array of function calls.
|
|
149
|
-
*/ async
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
if (this.constructorArtifact && !options.skipInitialization) {
|
|
125
|
+
*/ async getInitializationExecutionPayload(options) {
|
|
126
|
+
const executionsPayloads = [];
|
|
127
|
+
if (this.constructorArtifact && !options?.skipInitialization) {
|
|
128
|
+
const { address } = await this.getInstance(options);
|
|
154
129
|
const constructorCall = new ContractFunctionInteraction(this.wallet, address, this.constructorArtifact, this.args);
|
|
155
|
-
|
|
156
|
-
capsules.push(...constructorCall.getCapsules());
|
|
130
|
+
executionsPayloads.push(await constructorCall.request());
|
|
157
131
|
}
|
|
158
|
-
return
|
|
159
|
-
calls,
|
|
160
|
-
capsules
|
|
161
|
-
};
|
|
132
|
+
return mergeExecutionPayloads(executionsPayloads);
|
|
162
133
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
134
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
135
|
+
async send(options) {
|
|
136
|
+
const executionPayload = await this.request(this.convertDeployOptionsToRequestOptions(options));
|
|
137
|
+
const sendOptions = this.convertDeployOptionsToSendOptions(options);
|
|
138
|
+
if (options.wait === NO_WAIT) {
|
|
139
|
+
const txHash = await this.wallet.sendTx(executionPayload, sendOptions);
|
|
140
|
+
this.log.debug(`Sent deployment tx ${txHash.hash} of ${this.artifact.name} contract`);
|
|
141
|
+
return txHash;
|
|
142
|
+
}
|
|
143
|
+
const receipt = await this.wallet.sendTx(executionPayload, sendOptions);
|
|
144
|
+
this.log.debug(`Deployed ${this.artifact.name} contract in tx ${receipt.txHash}`);
|
|
145
|
+
// Attach contract instance
|
|
146
|
+
const instance = await this.getInstance(options);
|
|
147
|
+
const contract = this.postDeployCtor(instance, this.wallet);
|
|
148
|
+
// Return full receipt if requested, otherwise just the contract
|
|
149
|
+
if (options.wait && typeof options.wait === 'object' && options.wait.returnReceipt) {
|
|
150
|
+
return {
|
|
151
|
+
...receipt,
|
|
152
|
+
contract,
|
|
153
|
+
instance
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
return contract;
|
|
174
157
|
}
|
|
175
158
|
/**
|
|
176
|
-
* Builds the contract instance
|
|
159
|
+
* Builds the contract instance and returns it.
|
|
177
160
|
*
|
|
178
|
-
* @param options - An object containing various
|
|
161
|
+
* @param options - An object containing various initialization and publication options.
|
|
179
162
|
* @returns An instance object.
|
|
180
|
-
*/ async getInstance(options
|
|
163
|
+
*/ async getInstance(options) {
|
|
181
164
|
if (!this.instance) {
|
|
182
|
-
this.instance = await
|
|
165
|
+
this.instance = await getContractInstanceFromInstantiationParams(this.artifact, {
|
|
183
166
|
constructorArgs: this.args,
|
|
184
|
-
salt: options.
|
|
167
|
+
salt: options?.contractAddressSalt ?? Fr.random(),
|
|
185
168
|
publicKeys: this.publicKeys,
|
|
186
169
|
constructorArtifact: this.constructorArtifact,
|
|
187
|
-
deployer: options
|
|
170
|
+
deployer: options?.deployer ? options.deployer : AztecAddress.ZERO
|
|
188
171
|
});
|
|
189
172
|
}
|
|
190
173
|
return this.instance;
|
|
191
174
|
}
|
|
192
175
|
/**
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
* @
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
176
|
+
* Simulate the deployment
|
|
177
|
+
*
|
|
178
|
+
* @param options - An optional object containing additional configuration for the simulation.
|
|
179
|
+
* @returns A simulation result object containing metadata of the execution, including gas
|
|
180
|
+
* estimations (if requested via options), execution statistics and emitted offchain effects
|
|
181
|
+
*/ async simulate(options) {
|
|
182
|
+
const executionPayload = await this.request(this.convertDeployOptionsToRequestOptions(options));
|
|
183
|
+
const simulatedTx = await this.wallet.simulateTx(executionPayload, toSimulateOptions(options));
|
|
184
|
+
const { gasLimits, teardownGasLimits } = getGasLimits(simulatedTx, options.fee?.estimatedGasPadding);
|
|
185
|
+
this.log.verbose(`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`);
|
|
186
|
+
return {
|
|
187
|
+
stats: simulatedTx.stats,
|
|
188
|
+
offchainEffects: collectOffchainEffects(simulatedTx.privateExecutionResult),
|
|
189
|
+
result: undefined,
|
|
190
|
+
estimatedGas: {
|
|
191
|
+
gasLimits,
|
|
192
|
+
teardownGasLimits
|
|
193
|
+
}
|
|
194
|
+
};
|
|
199
195
|
}
|
|
200
196
|
/**
|
|
201
|
-
*
|
|
202
|
-
* @param options -
|
|
203
|
-
|
|
204
|
-
|
|
197
|
+
* Simulate a deployment and profile the gate count for each function in the transaction.
|
|
198
|
+
* @param options - Same options as `send`, plus extra profiling options.
|
|
199
|
+
*
|
|
200
|
+
* @returns An object containing the function return value and profile result.
|
|
201
|
+
*/ async profile(options) {
|
|
202
|
+
const executionPayload = await this.request(this.convertDeployOptionsToRequestOptions(options));
|
|
203
|
+
return await this.wallet.profileTx(executionPayload, {
|
|
204
|
+
...toProfileOptions(options),
|
|
205
|
+
profileMode: options.profileMode,
|
|
206
|
+
skipProofGeneration: options.skipProofGeneration
|
|
207
|
+
});
|
|
205
208
|
}
|
|
206
209
|
/** Return this deployment address. */ get address() {
|
|
207
210
|
return this.instance?.address;
|
|
@@ -209,4 +212,11 @@ import { DeploySentTx } from './deploy_sent_tx.js';
|
|
|
209
212
|
/** Returns the partial address for this deployment. */ get partialAddress() {
|
|
210
213
|
return this.instance && computePartialAddress(this.instance);
|
|
211
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Augments this DeployMethod with additional metadata, such as authWitnesses and capsules.
|
|
217
|
+
* @param options - An object containing the metadata to add to the interaction
|
|
218
|
+
* @returns A new DeployMethod with the added metadata, but calling the same original function in the same manner
|
|
219
|
+
*/ with({ authWitnesses = [], capsules = [] }) {
|
|
220
|
+
return new DeployMethod(this.publicKeys, this.wallet, this.artifact, this.postDeployCtor, this.args, this.constructorArtifact?.name, this.authWitnesses.concat(authWitnesses), this.capsules.concat(capsules));
|
|
221
|
+
}
|
|
212
222
|
}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Gas } from '@aztec/stdlib/gas';
|
|
2
2
|
import type { TxSimulationResult } from '@aztec/stdlib/tx';
|
|
3
3
|
/**
|
|
4
4
|
* Returns suggested total and teardown gas limits for a simulated tx.
|
|
5
|
-
* Note that public gas usage is only accounted for if the publicOutput is present.
|
|
6
5
|
* @param pad - Percentage to pad the suggested gas limits by, (as decimal, e.g., 0.10 for 10%).
|
|
7
6
|
*/
|
|
8
7
|
export declare function getGasLimits(simulationResult: TxSimulationResult, pad?: number): {
|
|
9
8
|
/**
|
|
10
|
-
*
|
|
9
|
+
* Gas limit for the tx, excluding teardown gas
|
|
11
10
|
*/
|
|
12
|
-
|
|
11
|
+
gasLimits: Gas;
|
|
13
12
|
/**
|
|
14
|
-
*
|
|
13
|
+
* Gas limit for the teardown phase
|
|
15
14
|
*/
|
|
16
|
-
|
|
15
|
+
teardownGasLimits: Gas;
|
|
17
16
|
};
|
|
18
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0X2dhc19saW1pdHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9nZXRfZ2FzX2xpbWl0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEMsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUUzRDs7O0dBR0c7QUFDSCx3QkFBZ0IsWUFBWSxDQUMxQixnQkFBZ0IsRUFBRSxrQkFBa0IsRUFDcEMsR0FBRyxTQUFNLEdBQ1I7SUFDRDs7T0FFRztJQUNILFNBQVMsRUFBRSxHQUFHLENBQUM7SUFDZjs7T0FFRztJQUNILGlCQUFpQixFQUFFLEdBQUcsQ0FBQztDQUN4QixDQVlBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_gas_limits.d.ts","sourceRoot":"","sources":["../../src/contract/get_gas_limits.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get_gas_limits.d.ts","sourceRoot":"","sources":["../../src/contract/get_gas_limits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,gBAAgB,EAAE,kBAAkB,EACpC,GAAG,SAAM,GACR;IACD;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC;IACf;;OAEG;IACH,iBAAiB,EAAE,GAAG,CAAC;CACxB,CAYA"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import { AVM_MAX_PROCESSABLE_L2_GAS } from '@aztec/constants';
|
|
1
2
|
/**
|
|
2
3
|
* Returns suggested total and teardown gas limits for a simulated tx.
|
|
3
|
-
* Note that public gas usage is only accounted for if the publicOutput is present.
|
|
4
4
|
* @param pad - Percentage to pad the suggested gas limits by, (as decimal, e.g., 0.10 for 10%).
|
|
5
5
|
*/ export function getGasLimits(simulationResult, pad = 0.1) {
|
|
6
|
+
// Total gas does not use the teardown gas limit, but the actual total gas used by the tx.
|
|
7
|
+
const gasLimits = simulationResult.gasUsed.totalGas.mul(1 + pad);
|
|
8
|
+
const teardownGasLimits = simulationResult.gasUsed.teardownGas.mul(1 + pad);
|
|
9
|
+
if (gasLimits.l2Gas > AVM_MAX_PROCESSABLE_L2_GAS) {
|
|
10
|
+
throw new Error('Transaction consumes more gas than the AVM maximum processable gas');
|
|
11
|
+
}
|
|
6
12
|
return {
|
|
7
|
-
|
|
8
|
-
|
|
13
|
+
gasLimits,
|
|
14
|
+
teardownGasLimits
|
|
9
15
|
};
|
|
10
16
|
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
2
|
+
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
3
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
|
+
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
5
|
+
import type { Capsule, OffchainEffect, SimulationStats, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
6
|
+
import type { FeePaymentMethod } from '../fee/fee_payment_method.js';
|
|
7
|
+
import type { ProfileOptions, SendOptions, SimulateOptions } from '../wallet/index.js';
|
|
8
|
+
import type { WaitOpts } from './wait_opts.js';
|
|
9
|
+
/**
|
|
10
|
+
* Options used to tweak the simulation and add gas estimation capabilities
|
|
11
|
+
*/
|
|
12
|
+
export type FeeEstimationOptions = {
|
|
13
|
+
/** Whether to modify the fee settings of the simulation with high gas limit to figure out actual gas settings. */
|
|
14
|
+
estimateGas?: boolean;
|
|
15
|
+
/** Percentage to pad the estimated gas limits by, if empty, defaults to 0.1. Only relevant if estimateGas is set. */
|
|
16
|
+
estimatedGasPadding?: number;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Interactions allow configuring a custom fee payment method that gets bundled with the transaction before
|
|
20
|
+
* sending it to the wallet
|
|
21
|
+
*/
|
|
22
|
+
export type FeePaymentMethodOption = {
|
|
23
|
+
/** Fee payment method to embed in the interaction */
|
|
24
|
+
paymentMethod?: FeePaymentMethod;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* User-defined partial gas settings for the interaction. This type is completely optional since
|
|
28
|
+
* the wallet will fill in the missing options
|
|
29
|
+
*/
|
|
30
|
+
export type GasSettingsOption = {
|
|
31
|
+
/** The gas settings */
|
|
32
|
+
gasSettings?: Partial<FieldsOf<GasSettings>>;
|
|
33
|
+
};
|
|
34
|
+
/** Fee options as set by a user. */
|
|
35
|
+
export type InteractionFeeOptions = GasSettingsOption & FeePaymentMethodOption;
|
|
36
|
+
/** Fee options that can be set for simulation *only* */
|
|
37
|
+
export type SimulationInteractionFeeOptions = InteractionFeeOptions & FeeEstimationOptions;
|
|
38
|
+
/**
|
|
39
|
+
* Represents the options to configure a request from a contract interaction.
|
|
40
|
+
* Allows specifying additional auth witnesses and capsules to use during execution
|
|
41
|
+
*/
|
|
42
|
+
export type RequestInteractionOptions = {
|
|
43
|
+
/** Extra authwits to use during execution */
|
|
44
|
+
authWitnesses?: AuthWitness[];
|
|
45
|
+
/** Extra capsules to use during execution */
|
|
46
|
+
capsules?: Capsule[];
|
|
47
|
+
/** Fee payment method to embed in the interaction request */
|
|
48
|
+
fee?: FeePaymentMethodOption;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Constant for explicitly not waiting for transaction confirmation.
|
|
52
|
+
* We use this instead of false to avoid confusion with falsy checks.
|
|
53
|
+
*/
|
|
54
|
+
export declare const NO_WAIT: "NO_WAIT";
|
|
55
|
+
/**
|
|
56
|
+
* Type for the NO_WAIT constant.
|
|
57
|
+
*/
|
|
58
|
+
export type NoWait = typeof NO_WAIT;
|
|
59
|
+
/**
|
|
60
|
+
* Type for wait options in interactions.
|
|
61
|
+
* - NO_WAIT symbol: Don't wait for confirmation, return TxHash immediately
|
|
62
|
+
* - WaitOpts object: Wait with custom options and return receipt/result
|
|
63
|
+
* - undefined: Wait with default options and return receipt/result
|
|
64
|
+
*/
|
|
65
|
+
export type InteractionWaitOptions = NoWait | WaitOpts | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Base options for calling a (constrained) function in a contract, without wait parameter.
|
|
68
|
+
*/
|
|
69
|
+
export type SendInteractionOptionsWithoutWait = RequestInteractionOptions & {
|
|
70
|
+
/** The sender's Aztec address. */
|
|
71
|
+
from: AztecAddress;
|
|
72
|
+
/** The fee options for the transaction. */
|
|
73
|
+
fee?: InteractionFeeOptions;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Represents options for calling a (constrained) function in a contract.
|
|
77
|
+
*/
|
|
78
|
+
export type SendInteractionOptions<W extends InteractionWaitOptions = undefined> = SendInteractionOptionsWithoutWait & {
|
|
79
|
+
/**
|
|
80
|
+
* Whether to wait for the transaction to be mined.
|
|
81
|
+
* - undefined (default): wait with default options and return TxReceipt
|
|
82
|
+
* - WaitOpts object: wait with custom options and return TxReceipt
|
|
83
|
+
* - NO_WAIT: return txHash immediately without waiting
|
|
84
|
+
*/
|
|
85
|
+
wait?: W;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Represents the options for simulating a contract function interaction.
|
|
89
|
+
* Allows specifying the address from which the method should be called.
|
|
90
|
+
* Disregarded for simulation of public functions
|
|
91
|
+
*/
|
|
92
|
+
export type SimulateInteractionOptions = Omit<SendInteractionOptions, 'fee'> & {
|
|
93
|
+
/** The fee options for the transaction. */
|
|
94
|
+
fee?: SimulationInteractionFeeOptions;
|
|
95
|
+
/** Simulate without checking for the validity of the resulting transaction, e.g. whether it emits any existing nullifiers. */
|
|
96
|
+
skipTxValidation?: boolean;
|
|
97
|
+
/** Whether to ensure the fee payer is not empty and has enough balance to pay for the fee. */
|
|
98
|
+
skipFeeEnforcement?: boolean;
|
|
99
|
+
/** Whether to include metadata such as offchain effects and performance statistics (e.g. timing information of the different circuits and oracles) in
|
|
100
|
+
* the simulation result, instead of just the return value of the function */
|
|
101
|
+
includeMetadata?: boolean;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Represents the options for profiling an interaction.
|
|
105
|
+
*/
|
|
106
|
+
export type ProfileInteractionOptions = SimulateInteractionOptions & {
|
|
107
|
+
/** Whether to return gates information or the bytecode/witnesses. */
|
|
108
|
+
profileMode: 'gates' | 'execution-steps' | 'full';
|
|
109
|
+
/** Whether to generate a Chonk proof or not */
|
|
110
|
+
skipProofGeneration?: boolean;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* Represents the result type of a simulation.
|
|
114
|
+
* By default, it will just be the return value of the simulated function
|
|
115
|
+
* If `includeMetadata` is set to true in `SimulateInteractionOptions` on the input of `simulate(...)`,
|
|
116
|
+
* it will provide extra information.
|
|
117
|
+
*/
|
|
118
|
+
export type SimulationReturn<T extends boolean | undefined> = T extends true ? {
|
|
119
|
+
/** Additional stats about the simulation */
|
|
120
|
+
stats: SimulationStats;
|
|
121
|
+
/** Offchain effects generated during the simulation */
|
|
122
|
+
offchainEffects: OffchainEffect[];
|
|
123
|
+
/** Return value of the function */
|
|
124
|
+
result: any;
|
|
125
|
+
/** Gas estimation results */
|
|
126
|
+
estimatedGas: Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>;
|
|
127
|
+
} : any;
|
|
128
|
+
/**
|
|
129
|
+
* Represents the result type of sending a transaction.
|
|
130
|
+
* If `wait` is NO_WAIT, returns TxHash immediately without waiting.
|
|
131
|
+
* If `wait` is undefined or WaitOpts, returns TReturn (defaults to TxReceipt) after waiting.
|
|
132
|
+
*/
|
|
133
|
+
export type SendReturn<T extends InteractionWaitOptions, TReturn = TxReceipt> = T extends NoWait ? TxHash : TReturn;
|
|
134
|
+
/**
|
|
135
|
+
* Transforms and cleans up the higher level SendInteractionOptions defined by the interaction into
|
|
136
|
+
* SendOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
137
|
+
* @param options - The send interaction options with optional wait parameter
|
|
138
|
+
* @returns The send options to forward to the wallet
|
|
139
|
+
*/
|
|
140
|
+
export declare function toSendOptions<W extends InteractionWaitOptions = undefined>(options: SendInteractionOptions<W>): SendOptions<W>;
|
|
141
|
+
/**
|
|
142
|
+
* Transforms and cleans up the higher level SimulateInteractionOptions defined by the interaction into
|
|
143
|
+
* SimulateOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
144
|
+
*/
|
|
145
|
+
export declare function toSimulateOptions(options: SimulateInteractionOptions): SimulateOptions;
|
|
146
|
+
/**
|
|
147
|
+
* Transforms and cleans up the higher level ProfileInteractionOptions defined by the interaction into
|
|
148
|
+
* ProfileOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
149
|
+
*/
|
|
150
|
+
export declare function toProfileOptions(options: ProfileInteractionOptions): ProfileOptions;
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25fb3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2ludGVyYWN0aW9uX29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBHLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sTUFBTSxvQkFBb0IsR0FBRztJQUNqQyxrSEFBa0g7SUFDbEgsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLHFIQUFxSDtJQUNySCxtQkFBbUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUM5QixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxNQUFNLHNCQUFzQixHQUFHO0lBQ25DLHFEQUFxRDtJQUNyRCxhQUFhLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQztDQUNsQyxDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxNQUFNLGlCQUFpQixHQUFHO0lBQzlCLHVCQUF1QjtJQUN2QixXQUFXLENBQUMsRUFBRSxPQUFP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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction_options.d.ts","sourceRoot":"","sources":["../../src/contract/interaction_options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constant for explicitly not waiting for transaction confirmation.
|
|
3
|
+
* We use this instead of false to avoid confusion with falsy checks.
|
|
4
|
+
*/ export const NO_WAIT = 'NO_WAIT';
|
|
5
|
+
/**
|
|
6
|
+
* Transforms and cleans up the higher level SendInteractionOptions defined by the interaction into
|
|
7
|
+
* SendOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
8
|
+
* @param options - The send interaction options with optional wait parameter
|
|
9
|
+
* @returns The send options to forward to the wallet
|
|
10
|
+
*/ export function toSendOptions(options) {
|
|
11
|
+
return {
|
|
12
|
+
...options,
|
|
13
|
+
fee: {
|
|
14
|
+
// If a payment method that includes gas settings was used,
|
|
15
|
+
// try to reuse as much as possible while still allowing
|
|
16
|
+
// manual override. CAREFUL: this can cause mismatches during proving
|
|
17
|
+
gasSettings: {
|
|
18
|
+
...options.fee?.paymentMethod?.getGasSettings(),
|
|
19
|
+
...options.fee?.gasSettings
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
wait: options.wait
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Transforms and cleans up the higher level SimulateInteractionOptions defined by the interaction into
|
|
27
|
+
* SimulateOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
28
|
+
*/ export function toSimulateOptions(options) {
|
|
29
|
+
return {
|
|
30
|
+
...options,
|
|
31
|
+
fee: {
|
|
32
|
+
// If a payment method that includes gas settings was used,
|
|
33
|
+
// try to reuse as much as possible while still allowing
|
|
34
|
+
// manual override. CAREFUL: this can cause mismatches during proving
|
|
35
|
+
gasSettings: {
|
|
36
|
+
...options.fee?.paymentMethod?.getGasSettings(),
|
|
37
|
+
...options.fee?.gasSettings
|
|
38
|
+
},
|
|
39
|
+
estimateGas: options.fee?.estimateGas,
|
|
40
|
+
estimatedGasPadding: options.fee?.estimatedGasPadding
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Transforms and cleans up the higher level ProfileInteractionOptions defined by the interaction into
|
|
46
|
+
* ProfileOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
47
|
+
*/ export function toProfileOptions(options) {
|
|
48
|
+
return {
|
|
49
|
+
...toSimulateOptions(options),
|
|
50
|
+
profileMode: options.profileMode,
|
|
51
|
+
skipProofGeneration: options.skipProofGeneration
|
|
52
|
+
};
|
|
53
|
+
}
|