@aztec/aztec.js 0.0.0-test.1 → 0.0.1-commit.b655e406
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 +60 -0
- package/dest/account/account.d.ts.map +1 -0
- package/dest/account/account.js +59 -0
- package/dest/account/{contract.d.ts → account_contract.d.ts} +16 -10
- package/dest/account/account_contract.d.ts.map +1 -0
- package/dest/account/{contract.js → account_contract.js} +7 -4
- package/dest/{wallet/account_wallet_with_private_key.d.ts → account/account_with_secret_key.d.ts} +7 -8
- package/dest/account/account_with_secret_key.d.ts.map +1 -0
- package/dest/{wallet/account_wallet_with_private_key.js → account/account_with_secret_key.js} +5 -5
- package/dest/account/index.d.ts +3 -7
- package/dest/account/index.d.ts.map +1 -1
- package/dest/account/index.js +2 -6
- package/dest/account/interface.d.ts +1 -13
- package/dest/account/interface.d.ts.map +1 -1
- package/dest/account/interface.js +1 -0
- package/dest/account/signerless_account.d.ts +24 -0
- package/dest/account/signerless_account.d.ts.map +1 -0
- package/dest/account/signerless_account.js +27 -0
- package/dest/api/abi.d.ts +2 -1
- package/dest/api/abi.d.ts.map +1 -1
- package/dest/api/abi.js +1 -1
- package/dest/api/account.d.ts +5 -2
- package/dest/api/account.d.ts.map +1 -1
- package/dest/api/account.js +3 -1
- package/dest/api/addresses.d.ts +1 -0
- 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/{contract/index.d.ts → api/contract.d.ts} +15 -11
- package/dest/api/contract.d.ts.map +1 -0
- package/dest/{contract/index.js → api/contract.js} +14 -10
- 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 +4 -3
- package/dest/api/deployment.d.ts.map +1 -1
- package/dest/api/deployment.js +4 -3
- 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 +1 -1
- 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/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 +1 -0
- package/dest/api/log.d.ts.map +1 -1
- package/dest/api/log.js +1 -0
- package/dest/api/messaging.d.ts +3 -0
- package/dest/api/messaging.d.ts.map +1 -0
- package/dest/api/messaging.js +2 -0
- package/dest/api/node.d.ts +21 -0
- package/dest/api/node.d.ts.map +1 -0
- package/dest/api/node.js +18 -0
- package/dest/api/note.d.ts +2 -0
- package/dest/api/note.d.ts.map +1 -0
- package/dest/api/note.js +1 -0
- package/dest/api/protocol.d.ts +3 -0
- package/dest/api/protocol.d.ts.map +1 -0
- package/dest/api/protocol.js +2 -0
- package/dest/api/trees.d.ts +3 -0
- package/dest/api/trees.d.ts.map +1 -0
- package/dest/api/trees.js +2 -0
- package/dest/api/tx.d.ts +2 -0
- package/dest/api/tx.d.ts.map +1 -0
- package/dest/api/tx.js +1 -0
- package/dest/api/utils.d.ts +13 -0
- package/dest/api/utils.d.ts.map +1 -0
- package/dest/api/utils.js +12 -0
- package/dest/api/wallet.d.ts +4 -1
- 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 +16 -79
- package/dest/contract/base_contract_interaction.d.ts.map +1 -1
- package/dest/contract/base_contract_interaction.js +15 -128
- package/dest/contract/batch_call.d.ts +13 -14
- package/dest/contract/batch_call.d.ts.map +1 -1
- package/dest/contract/batch_call.js +60 -60
- package/dest/contract/checker.d.ts +1 -1
- package/dest/contract/checker.d.ts.map +1 -1
- package/dest/contract/checker.js +2 -2
- package/dest/contract/contract.d.ts +7 -6
- package/dest/contract/contract.d.ts.map +1 -1
- package/dest/contract/contract.js +7 -16
- package/dest/contract/contract_base.d.ts +3 -9
- package/dest/contract/contract_base.d.ts.map +1 -1
- package/dest/contract/contract_base.js +2 -2
- package/dest/contract/contract_function_interaction.d.ts +52 -44
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +75 -74
- package/dest/contract/deploy_method.d.ts +102 -57
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +122 -132
- package/dest/contract/deploy_sent_tx.d.ts +3 -5
- package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
- package/dest/contract/deploy_sent_tx.js +10 -13
- package/dest/contract/get_gas_limits.d.ts +5 -6
- package/dest/contract/get_gas_limits.d.ts.map +1 -1
- package/dest/contract/get_gas_limits.js +9 -3
- package/dest/contract/interaction_options.d.ts +114 -0
- package/dest/contract/interaction_options.d.ts.map +1 -0
- package/dest/contract/interaction_options.js +52 -0
- package/dest/contract/protocol_contracts.d.ts +6 -6
- package/dest/contract/protocol_contracts.d.ts.map +1 -1
- package/dest/contract/protocol_contracts.js +7 -7
- package/dest/contract/sent_tx.d.ts +8 -18
- package/dest/contract/sent_tx.d.ts.map +1 -1
- package/dest/contract/sent_tx.js +30 -42
- package/dest/contract/unsafe_contract.d.ts +1 -1
- package/dest/contract/unsafe_contract.d.ts.map +1 -1
- package/dest/contract/wait_for_proven.d.ts +17 -0
- package/dest/contract/wait_for_proven.d.ts.map +1 -0
- package/dest/contract/wait_for_proven.js +17 -0
- package/dest/deployment/broadcast_function.d.ts +3 -3
- package/dest/deployment/broadcast_function.d.ts.map +1 -1
- package/dest/deployment/broadcast_function.js +27 -23
- package/dest/deployment/contract_deployer.d.ts +1 -1
- package/dest/deployment/contract_deployer.d.ts.map +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/{api/ethereum → ethereum}/portal_manager.d.ts +29 -25
- package/dest/ethereum/portal_manager.d.ts.map +1 -0
- package/dest/{api/ethereum → ethereum}/portal_manager.js +106 -73
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts +16 -11
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -1
- package/dest/fee/fee_juice_payment_method_with_claim.js +26 -16
- package/dest/fee/fee_payment_method.d.ts +11 -7
- package/dest/fee/fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.d.ts +25 -8
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +43 -21
- package/dest/fee/public_fee_payment_method.d.ts +26 -9
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/public_fee_payment_method.js +45 -23
- package/dest/fee/sponsored_fee_payment.d.ts +17 -0
- package/dest/fee/sponsored_fee_payment.d.ts.map +1 -0
- package/dest/fee/sponsored_fee_payment.js +34 -0
- package/dest/utils/abi_types.d.ts +0 -2
- package/dest/utils/abi_types.d.ts.map +1 -1
- package/dest/utils/authwit.d.ts +81 -24
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +226 -40
- package/dest/utils/cross_chain.d.ts +24 -0
- package/dest/utils/cross_chain.d.ts.map +1 -0
- package/dest/utils/cross_chain.js +30 -0
- package/dest/utils/fee_juice.d.ts +3 -2
- package/dest/utils/fee_juice.d.ts.map +1 -1
- package/dest/utils/fee_juice.js +3 -2
- package/dest/utils/field_compressed_string.d.ts.map +1 -1
- package/dest/utils/node.d.ts.map +1 -1
- package/dest/utils/node.js +1 -1
- package/dest/utils/pub_key.d.ts.map +1 -1
- package/dest/utils/pub_key.js +1 -2
- package/dest/wallet/account_entrypoint_meta_payment_method.d.ts +34 -0
- package/dest/wallet/account_entrypoint_meta_payment_method.d.ts.map +1 -0
- package/dest/wallet/account_entrypoint_meta_payment_method.js +76 -0
- package/dest/wallet/account_manager.d.ts +69 -0
- package/dest/wallet/account_manager.d.ts.map +1 -0
- package/dest/wallet/account_manager.js +113 -0
- package/dest/wallet/base_wallet.d.ts +81 -63
- package/dest/wallet/base_wallet.d.ts.map +1 -1
- package/dest/wallet/base_wallet.js +221 -106
- package/dest/wallet/deploy_account_method.d.ts +52 -0
- package/dest/wallet/deploy_account_method.d.ts.map +1 -0
- package/dest/wallet/deploy_account_method.js +77 -0
- package/dest/wallet/index.d.ts +3 -16
- package/dest/wallet/index.d.ts.map +1 -1
- package/dest/wallet/index.js +3 -20
- package/dest/wallet/wallet.d.ts +2478 -0
- package/dest/wallet/wallet.d.ts.map +1 -0
- package/dest/wallet/wallet.js +202 -0
- package/package.json +40 -32
- package/src/account/account.ts +97 -0
- package/src/account/{contract.ts → account_contract.ts} +24 -13
- package/src/{wallet/account_wallet_with_private_key.ts → account/account_with_secret_key.ts} +6 -8
- package/src/account/index.ts +3 -7
- package/src/account/interface.ts +1 -12
- package/src/account/signerless_account.ts +46 -0
- package/src/api/abi.ts +26 -0
- package/src/api/account.ts +5 -9
- package/src/api/addresses.ts +1 -0
- package/src/api/authorization.ts +14 -0
- package/src/api/block.ts +2 -0
- package/src/{contract/index.ts → api/contract.ts} +37 -13
- package/src/api/crypto.ts +1 -0
- package/src/api/deployment.ts +4 -3
- package/src/api/ethereum.ts +10 -0
- package/src/api/events.ts +44 -0
- package/src/api/fee.ts +1 -1
- package/src/api/fee_testing.ts +1 -0
- package/src/api/keys.ts +8 -0
- package/src/api/log.ts +1 -0
- package/src/api/messaging.ts +2 -0
- package/src/api/node.ts +20 -0
- package/src/api/note.ts +1 -0
- package/src/api/protocol.ts +2 -0
- package/src/api/trees.ts +2 -0
- package/src/api/tx.ts +11 -0
- package/src/api/utils.ts +14 -0
- package/src/api/wallet.ts +33 -5
- package/src/authorization/call_authorization_request.ts +63 -0
- package/src/contract/base_contract_interaction.ts +24 -166
- package/src/contract/batch_call.ts +81 -49
- package/src/contract/checker.ts +8 -3
- package/src/contract/contract.ts +8 -17
- package/src/contract/contract_base.ts +4 -11
- package/src/contract/contract_function_interaction.ts +136 -106
- package/src/contract/deploy_method.ts +199 -129
- package/src/contract/deploy_sent_tx.ts +9 -15
- package/src/contract/get_gas_limits.ts +15 -8
- package/src/contract/interaction_options.ts +169 -0
- package/src/contract/protocol_contracts.ts +10 -10
- package/src/contract/sent_tx.ts +40 -51
- package/src/contract/unsafe_contract.ts +1 -1
- package/src/contract/wait_for_proven.ts +38 -0
- package/src/deployment/broadcast_function.ts +57 -57
- package/src/deployment/contract_deployer.ts +1 -1
- package/src/deployment/publish_class.ts +34 -0
- package/src/deployment/publish_instance.ts +26 -0
- package/src/{api/ethereum → ethereum}/portal_manager.ts +120 -74
- package/src/fee/fee_juice_payment_method_with_claim.ts +46 -33
- package/src/fee/fee_payment_method.ts +11 -7
- package/src/fee/private_fee_payment_method.ts +77 -57
- package/src/fee/public_fee_payment_method.ts +91 -67
- package/src/fee/sponsored_fee_payment.ts +44 -0
- package/src/utils/authwit.ts +255 -53
- package/src/utils/cross_chain.ts +53 -0
- package/src/utils/fee_juice.ts +4 -4
- package/src/utils/node.ts +1 -1
- package/src/utils/pub_key.ts +1 -2
- package/src/wallet/account_entrypoint_meta_payment_method.ts +105 -0
- package/src/wallet/account_manager.ts +154 -0
- package/src/wallet/base_wallet.ts +295 -143
- package/src/wallet/deploy_account_method.ts +125 -0
- package/src/wallet/index.ts +3 -33
- package/src/wallet/wallet.ts +362 -0
- package/dest/account/contract.d.ts.map +0 -1
- package/dest/account/wallet.d.ts +0 -11
- package/dest/account/wallet.d.ts.map +0 -1
- package/dest/account/wallet.js +0 -3
- package/dest/account_manager/deploy_account_method.d.ts +0 -15
- package/dest/account_manager/deploy_account_method.d.ts.map +0 -1
- package/dest/account_manager/deploy_account_method.js +0 -43
- package/dest/account_manager/deploy_account_sent_tx.d.ts +0 -30
- package/dest/account_manager/deploy_account_sent_tx.d.ts.map +0 -1
- package/dest/account_manager/deploy_account_sent_tx.js +0 -29
- package/dest/account_manager/index.d.ts +0 -108
- package/dest/account_manager/index.d.ts.map +0 -1
- package/dest/account_manager/index.js +0 -159
- package/dest/api/cheat_codes.d.ts +0 -26
- package/dest/api/cheat_codes.d.ts.map +0 -1
- package/dest/api/cheat_codes.js +0 -25
- package/dest/api/entrypoint.d.ts +0 -2
- package/dest/api/entrypoint.d.ts.map +0 -1
- package/dest/api/entrypoint.js +0 -1
- package/dest/api/ethereum/anvil_test_watcher.d.ts +0 -32
- package/dest/api/ethereum/anvil_test_watcher.d.ts.map +0 -1
- package/dest/api/ethereum/anvil_test_watcher.js +0 -133
- package/dest/api/ethereum/chain_monitor.d.ts +0 -25
- package/dest/api/ethereum/chain_monitor.d.ts.map +0 -1
- package/dest/api/ethereum/chain_monitor.js +0 -74
- package/dest/api/ethereum/cheat_codes.d.ts +0 -63
- package/dest/api/ethereum/cheat_codes.d.ts.map +0 -1
- package/dest/api/ethereum/cheat_codes.js +0 -162
- package/dest/api/ethereum/index.d.ts +0 -7
- package/dest/api/ethereum/index.d.ts.map +0 -1
- package/dest/api/ethereum/index.js +0 -6
- package/dest/api/ethereum/l1_contracts.d.ts +0 -3
- package/dest/api/ethereum/l1_contracts.d.ts.map +0 -1
- package/dest/api/ethereum/l1_contracts.js +0 -13
- package/dest/api/ethereum/portal_manager.d.ts.map +0 -1
- package/dest/api/interfaces/pxe.d.ts +0 -2
- package/dest/api/interfaces/pxe.d.ts.map +0 -1
- package/dest/api/interfaces/pxe.js +0 -1
- package/dest/api/log_id.d.ts +0 -2
- package/dest/api/log_id.d.ts.map +0 -1
- package/dest/api/log_id.js +0 -1
- package/dest/api/tx_hash.d.ts +0 -2
- package/dest/api/tx_hash.d.ts.map +0 -1
- package/dest/api/tx_hash.js +0 -1
- package/dest/contract/deploy_proven_tx.d.ts +0 -21
- package/dest/contract/deploy_proven_tx.d.ts.map +0 -1
- package/dest/contract/deploy_proven_tx.js +0 -19
- package/dest/contract/index.d.ts.map +0 -1
- package/dest/contract/proven_tx.d.ts +0 -17
- package/dest/contract/proven_tx.d.ts.map +0 -1
- package/dest/contract/proven_tx.js +0 -22
- package/dest/deployment/deploy_instance.d.ts +0 -10
- package/dest/deployment/deploy_instance.d.ts.map +0 -1
- package/dest/deployment/deploy_instance.js +0 -14
- package/dest/deployment/index.d.ts +0 -2
- package/dest/deployment/index.d.ts.map +0 -1
- package/dest/deployment/index.js +0 -1
- package/dest/deployment/register_class.d.ts +0 -6
- package/dest/deployment/register_class.d.ts.map +0 -1
- package/dest/deployment/register_class.js +0 -22
- package/dest/entrypoint/default_entrypoint.d.ts +0 -12
- package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/default_entrypoint.js +0 -28
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts +0 -15
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/default_multi_call_entrypoint.js +0 -130
- package/dest/entrypoint/entrypoint.d.ts +0 -35
- package/dest/entrypoint/entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/entrypoint.js +0 -4
- package/dest/entrypoint/payload.d.ts +0 -128
- package/dest/entrypoint/payload.d.ts.map +0 -1
- package/dest/entrypoint/payload.js +0 -143
- package/dest/fee/fee_juice_payment_method.d.ts +0 -14
- package/dest/fee/fee_juice_payment_method.d.ts.map +0 -1
- package/dest/fee/fee_juice_payment_method.js +0 -20
- package/dest/index.d.ts +0 -66
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -69
- package/dest/rpc_clients/index.d.ts +0 -3
- package/dest/rpc_clients/index.d.ts.map +0 -1
- package/dest/rpc_clients/index.js +0 -2
- package/dest/rpc_clients/node/index.d.ts +0 -12
- package/dest/rpc_clients/node/index.d.ts.map +0 -1
- package/dest/rpc_clients/node/index.js +0 -78
- package/dest/rpc_clients/pxe_client.d.ts +0 -10
- package/dest/rpc_clients/pxe_client.d.ts.map +0 -1
- package/dest/rpc_clients/pxe_client.js +0 -23
- package/dest/utils/aztec_cheatcodes.d.ts +0 -59
- package/dest/utils/aztec_cheatcodes.d.ts.map +0 -1
- package/dest/utils/aztec_cheatcodes.js +0 -62
- package/dest/utils/index.d.ts +0 -8
- package/dest/utils/index.d.ts.map +0 -1
- package/dest/utils/index.js +0 -6
- package/dest/utils/pxe.d.ts +0 -4
- package/dest/utils/pxe.d.ts.map +0 -1
- package/dest/utils/pxe.js +0 -14
- package/dest/wallet/account_wallet.d.ts +0 -76
- package/dest/wallet/account_wallet.d.ts.map +0 -1
- package/dest/wallet/account_wallet.js +0 -231
- package/dest/wallet/account_wallet_with_private_key.d.ts.map +0 -1
- package/dest/wallet/signerless_wallet.d.ts +0 -25
- package/dest/wallet/signerless_wallet.d.ts.map +0 -1
- package/dest/wallet/signerless_wallet.js +0 -36
- package/src/account/wallet.ts +0 -13
- package/src/account_manager/deploy_account_method.ts +0 -86
- package/src/account_manager/deploy_account_sent_tx.ts +0 -42
- package/src/account_manager/index.ts +0 -229
- package/src/api/cheat_codes.ts +0 -35
- package/src/api/entrypoint.ts +0 -1
- package/src/api/ethereum/anvil_test_watcher.ts +0 -158
- package/src/api/ethereum/chain_monitor.ts +0 -88
- package/src/api/ethereum/cheat_codes.ts +0 -184
- package/src/api/ethereum/index.ts +0 -19
- package/src/api/ethereum/l1_contracts.ts +0 -21
- package/src/api/interfaces/pxe.ts +0 -1
- package/src/api/log_id.ts +0 -1
- package/src/api/tx_hash.ts +0 -1
- package/src/contract/deploy_proven_tx.ts +0 -34
- package/src/contract/proven_tx.ts +0 -42
- package/src/deployment/deploy_instance.ts +0 -31
- package/src/deployment/index.ts +0 -1
- package/src/deployment/register_class.ts +0 -44
- package/src/entrypoint/default_entrypoint.ts +0 -39
- package/src/entrypoint/default_multi_call_entrypoint.ts +0 -93
- package/src/entrypoint/entrypoint.ts +0 -39
- package/src/entrypoint/payload.ts +0 -238
- package/src/fee/fee_juice_payment_method.ts +0 -26
- package/src/index.ts +0 -106
- package/src/rpc_clients/index.ts +0 -2
- package/src/rpc_clients/node/index.ts +0 -77
- package/src/rpc_clients/pxe_client.ts +0 -25
- package/src/utils/aztec_cheatcodes.ts +0 -77
- package/src/utils/index.ts +0 -21
- package/src/utils/pxe.ts +0 -17
- package/src/wallet/account_wallet.ts +0 -242
- package/src/wallet/signerless_wallet.ts +0 -52
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ExtendedViemWalletClient, ViemContract } from '@aztec/ethereum';
|
|
2
2
|
import { extractEvent } from '@aztec/ethereum/utils';
|
|
3
3
|
import { sha256ToField } from '@aztec/foundation/crypto';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
6
6
|
import type { Logger } from '@aztec/foundation/log';
|
|
7
7
|
import type { SiblingPath } from '@aztec/foundation/trees';
|
|
8
|
-
import {
|
|
8
|
+
import { FeeAssetHandlerAbi } from '@aztec/l1-artifacts/FeeAssetHandlerAbi';
|
|
9
|
+
import { FeeJuicePortalAbi } from '@aztec/l1-artifacts/FeeJuicePortalAbi';
|
|
10
|
+
import { OutboxAbi } from '@aztec/l1-artifacts/OutboxAbi';
|
|
11
|
+
import { TestERC20Abi } from '@aztec/l1-artifacts/TestERC20Abi';
|
|
12
|
+
import { TokenPortalAbi } from '@aztec/l1-artifacts/TokenPortalAbi';
|
|
9
13
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
10
|
-
import { computeSecretHash } from '@aztec/stdlib/hash';
|
|
11
|
-
import type {
|
|
14
|
+
import { computeL2ToL1MessageHash, computeSecretHash } from '@aztec/stdlib/hash';
|
|
15
|
+
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
16
|
+
import { getL2ToL1MessageLeafId } from '@aztec/stdlib/messaging';
|
|
12
17
|
|
|
13
|
-
import { type
|
|
18
|
+
import { type Hex, getContract, toFunctionSelector } from 'viem';
|
|
14
19
|
|
|
15
|
-
// docs:start:claim_type
|
|
16
|
-
// docs:start:claim_type_amount
|
|
17
20
|
/** L1 to L2 message info to claim it on L2. */
|
|
18
21
|
export type L2Claim = {
|
|
19
22
|
/** Secret for claiming. */
|
|
@@ -25,11 +28,9 @@ export type L2Claim = {
|
|
|
25
28
|
/** Leaf index in the L1 to L2 message tree. */
|
|
26
29
|
messageLeafIndex: bigint;
|
|
27
30
|
};
|
|
28
|
-
// docs:end:claim_type
|
|
29
31
|
|
|
30
32
|
/** L1 to L2 message info that corresponds to an amount to claim. */
|
|
31
33
|
export type L2AmountClaim = L2Claim & { /** Amount to claim */ claimAmount: bigint };
|
|
32
|
-
// docs:end:claim_type_amount
|
|
33
34
|
|
|
34
35
|
/** L1 to L2 message info that corresponds to an amount to claim with associated recipient. */
|
|
35
36
|
export type L2AmountClaimWithRecipient = L2AmountClaim & {
|
|
@@ -51,20 +52,39 @@ export async function generateClaimSecret(logger?: Logger): Promise<[Fr, Fr]> {
|
|
|
51
52
|
|
|
52
53
|
/** Helper for managing an ERC20 on L1. */
|
|
53
54
|
export class L1TokenManager {
|
|
54
|
-
private contract:
|
|
55
|
+
private contract: ViemContract<typeof TestERC20Abi>;
|
|
56
|
+
private handler: ViemContract<typeof FeeAssetHandlerAbi> | undefined;
|
|
55
57
|
|
|
56
58
|
public constructor(
|
|
57
59
|
/** Address of the ERC20 contract. */
|
|
58
|
-
public readonly
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
public readonly tokenAddress: EthAddress,
|
|
61
|
+
/** Address of the handler/faucet contract. */
|
|
62
|
+
public readonly handlerAddress: EthAddress | undefined,
|
|
63
|
+
private readonly extendedClient: ExtendedViemWalletClient,
|
|
61
64
|
private logger: Logger,
|
|
62
65
|
) {
|
|
63
66
|
this.contract = getContract({
|
|
64
|
-
address: this.
|
|
67
|
+
address: this.tokenAddress.toString(),
|
|
65
68
|
abi: TestERC20Abi,
|
|
66
|
-
client: this.
|
|
69
|
+
client: this.extendedClient,
|
|
67
70
|
});
|
|
71
|
+
if (this.handlerAddress) {
|
|
72
|
+
this.handler = getContract({
|
|
73
|
+
address: this.handlerAddress.toString(),
|
|
74
|
+
abi: FeeAssetHandlerAbi,
|
|
75
|
+
client: this.extendedClient,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/** Returns the amount of tokens available to mint via the handler.
|
|
81
|
+
* @throws if the handler is not provided.
|
|
82
|
+
*/
|
|
83
|
+
public async getMintAmount() {
|
|
84
|
+
if (!this.handler) {
|
|
85
|
+
throw new Error('Minting handler was not provided');
|
|
86
|
+
}
|
|
87
|
+
return await this.handler.read.mintAmount();
|
|
68
88
|
}
|
|
69
89
|
|
|
70
90
|
/**
|
|
@@ -76,16 +96,18 @@ export class L1TokenManager {
|
|
|
76
96
|
}
|
|
77
97
|
|
|
78
98
|
/**
|
|
79
|
-
* Mints tokens for the given address. Returns once the tx has been mined.
|
|
80
|
-
* @param amount - Amount to mint.
|
|
99
|
+
* Mints a fixed amount of tokens for the given address. Returns once the tx has been mined.
|
|
81
100
|
* @param address - Address to mint the tokens for.
|
|
82
101
|
* @param addressName - Optional name of the address for logging.
|
|
83
102
|
*/
|
|
84
|
-
public async mint(
|
|
85
|
-
this.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
103
|
+
public async mint(address: Hex, addressName?: string) {
|
|
104
|
+
if (!this.handler) {
|
|
105
|
+
throw new Error('Minting handler was not provided');
|
|
106
|
+
}
|
|
107
|
+
const mintAmount = await this.getMintAmount();
|
|
108
|
+
this.logger.info(`Minting ${mintAmount} tokens for ${stringifyEthAddress(address, addressName)}`);
|
|
109
|
+
// NOTE: the handler mints a fixed amount.
|
|
110
|
+
await this.handler.write.mint([address]);
|
|
89
111
|
}
|
|
90
112
|
|
|
91
113
|
/**
|
|
@@ -96,7 +118,7 @@ export class L1TokenManager {
|
|
|
96
118
|
*/
|
|
97
119
|
public async approve(amount: bigint, address: Hex, addressName = '') {
|
|
98
120
|
this.logger.info(`Approving ${amount} tokens for ${stringifyEthAddress(address, addressName)}`);
|
|
99
|
-
await this.
|
|
121
|
+
await this.extendedClient.waitForTransactionReceipt({
|
|
100
122
|
hash: await this.contract.write.approve([address, amount]),
|
|
101
123
|
});
|
|
102
124
|
}
|
|
@@ -105,20 +127,20 @@ export class L1TokenManager {
|
|
|
105
127
|
/** Helper for interacting with the FeeJuicePortal on L1. */
|
|
106
128
|
export class L1FeeJuicePortalManager {
|
|
107
129
|
private readonly tokenManager: L1TokenManager;
|
|
108
|
-
private readonly contract:
|
|
130
|
+
private readonly contract: ViemContract<typeof FeeJuicePortalAbi>;
|
|
109
131
|
|
|
110
132
|
constructor(
|
|
111
133
|
portalAddress: EthAddress,
|
|
112
134
|
tokenAddress: EthAddress,
|
|
113
|
-
|
|
114
|
-
private readonly
|
|
135
|
+
handlerAddress: EthAddress,
|
|
136
|
+
private readonly extendedClient: ExtendedViemWalletClient,
|
|
115
137
|
private readonly logger: Logger,
|
|
116
138
|
) {
|
|
117
|
-
this.tokenManager = new L1TokenManager(tokenAddress,
|
|
139
|
+
this.tokenManager = new L1TokenManager(tokenAddress, handlerAddress, extendedClient, logger);
|
|
118
140
|
this.contract = getContract({
|
|
119
141
|
address: portalAddress.toString(),
|
|
120
142
|
abi: FeeJuicePortalAbi,
|
|
121
|
-
client:
|
|
143
|
+
client: extendedClient,
|
|
122
144
|
});
|
|
123
145
|
}
|
|
124
146
|
|
|
@@ -133,20 +155,25 @@ export class L1FeeJuicePortalManager {
|
|
|
133
155
|
* @param amount - Amount of tokens to send.
|
|
134
156
|
* @param mint - Whether to mint the tokens before sending (only during testing).
|
|
135
157
|
*/
|
|
136
|
-
public async bridgeTokensPublic(to: AztecAddress, amount: bigint, mint = false): Promise<L2AmountClaim> {
|
|
158
|
+
public async bridgeTokensPublic(to: AztecAddress, amount: bigint | undefined, mint = false): Promise<L2AmountClaim> {
|
|
137
159
|
const [claimSecret, claimSecretHash] = await generateClaimSecret();
|
|
160
|
+
const mintableAmount = await this.tokenManager.getMintAmount();
|
|
161
|
+
const amountToBridge = amount ?? mintableAmount;
|
|
138
162
|
if (mint) {
|
|
139
|
-
|
|
163
|
+
if (amountToBridge !== mintableAmount) {
|
|
164
|
+
throw new Error(`Minting amount must be ${mintableAmount}`);
|
|
165
|
+
}
|
|
166
|
+
await this.tokenManager.mint(this.extendedClient.account.address);
|
|
140
167
|
}
|
|
141
168
|
|
|
142
|
-
await this.tokenManager.approve(
|
|
169
|
+
await this.tokenManager.approve(amountToBridge, this.contract.address, 'FeeJuice Portal');
|
|
143
170
|
|
|
144
171
|
this.logger.info('Sending L1 Fee Juice to L2 to be claimed publicly');
|
|
145
|
-
const args = [to.toString(),
|
|
172
|
+
const args = [to.toString(), amountToBridge, claimSecretHash.toString()] as const;
|
|
146
173
|
|
|
147
174
|
await this.contract.simulate.depositToAztecPublic(args);
|
|
148
175
|
|
|
149
|
-
const txReceipt = await this.
|
|
176
|
+
const txReceipt = await this.extendedClient.waitForTransactionReceipt({
|
|
150
177
|
hash: await this.contract.write.depositToAztecPublic(args),
|
|
151
178
|
});
|
|
152
179
|
|
|
@@ -159,13 +186,13 @@ export class L1FeeJuicePortalManager {
|
|
|
159
186
|
'DepositToAztecPublic',
|
|
160
187
|
log =>
|
|
161
188
|
log.args.secretHash === claimSecretHash.toString() &&
|
|
162
|
-
log.args.amount ===
|
|
189
|
+
log.args.amount === amountToBridge &&
|
|
163
190
|
log.args.to === to.toString(),
|
|
164
191
|
this.logger,
|
|
165
192
|
);
|
|
166
193
|
|
|
167
194
|
return {
|
|
168
|
-
claimAmount:
|
|
195
|
+
claimAmount: amountToBridge,
|
|
169
196
|
claimSecret,
|
|
170
197
|
claimSecretHash,
|
|
171
198
|
messageHash: log.args.key,
|
|
@@ -175,46 +202,53 @@ export class L1FeeJuicePortalManager {
|
|
|
175
202
|
|
|
176
203
|
/**
|
|
177
204
|
* Creates a new instance
|
|
178
|
-
* @param
|
|
179
|
-
* @param
|
|
180
|
-
* @param walletClient - L1 wallet client.
|
|
205
|
+
* @param node - Aztec node client used for retrieving the L1 contract addresses.
|
|
206
|
+
* @param extendedClient - Wallet client, extended with public actions.
|
|
181
207
|
* @param logger - Logger.
|
|
182
208
|
*/
|
|
183
209
|
public static async new(
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
walletClient: ViemWalletClient,
|
|
210
|
+
node: AztecNode,
|
|
211
|
+
extendedClient: ExtendedViemWalletClient,
|
|
187
212
|
logger: Logger,
|
|
188
213
|
): Promise<L1FeeJuicePortalManager> {
|
|
189
214
|
const {
|
|
190
|
-
l1ContractAddresses: { feeJuiceAddress, feeJuicePortalAddress },
|
|
191
|
-
} = await
|
|
215
|
+
l1ContractAddresses: { feeJuiceAddress, feeJuicePortalAddress, feeAssetHandlerAddress },
|
|
216
|
+
} = await node.getNodeInfo();
|
|
192
217
|
|
|
193
218
|
if (feeJuiceAddress.isZero() || feeJuicePortalAddress.isZero()) {
|
|
194
219
|
throw new Error('Portal or token not deployed on L1');
|
|
195
220
|
}
|
|
221
|
+
if (!feeAssetHandlerAddress || feeAssetHandlerAddress.isZero()) {
|
|
222
|
+
throw new Error('Handler not deployed on L1, or handler address is zero');
|
|
223
|
+
}
|
|
196
224
|
|
|
197
|
-
return new L1FeeJuicePortalManager(
|
|
225
|
+
return new L1FeeJuicePortalManager(
|
|
226
|
+
feeJuicePortalAddress,
|
|
227
|
+
feeJuiceAddress,
|
|
228
|
+
feeAssetHandlerAddress,
|
|
229
|
+
extendedClient,
|
|
230
|
+
logger,
|
|
231
|
+
);
|
|
198
232
|
}
|
|
199
233
|
}
|
|
200
234
|
|
|
201
235
|
/** Helper for interacting with a test TokenPortal on L1 for sending tokens to L2. */
|
|
202
236
|
export class L1ToL2TokenPortalManager {
|
|
203
|
-
protected readonly portal:
|
|
237
|
+
protected readonly portal: ViemContract<typeof TokenPortalAbi>;
|
|
204
238
|
protected readonly tokenManager: L1TokenManager;
|
|
205
239
|
|
|
206
240
|
constructor(
|
|
207
241
|
portalAddress: EthAddress,
|
|
208
242
|
tokenAddress: EthAddress,
|
|
209
|
-
|
|
210
|
-
protected
|
|
243
|
+
handlerAddress: EthAddress | undefined,
|
|
244
|
+
protected extendedClient: ExtendedViemWalletClient,
|
|
211
245
|
protected logger: Logger,
|
|
212
246
|
) {
|
|
213
|
-
this.tokenManager = new L1TokenManager(tokenAddress,
|
|
247
|
+
this.tokenManager = new L1TokenManager(tokenAddress, handlerAddress, extendedClient, logger);
|
|
214
248
|
this.portal = getContract({
|
|
215
249
|
address: portalAddress.toString(),
|
|
216
250
|
abi: TokenPortalAbi,
|
|
217
|
-
client:
|
|
251
|
+
client: extendedClient,
|
|
218
252
|
});
|
|
219
253
|
}
|
|
220
254
|
|
|
@@ -239,8 +273,8 @@ export class L1ToL2TokenPortalManager {
|
|
|
239
273
|
claimSecretHash.toString(),
|
|
240
274
|
]);
|
|
241
275
|
|
|
242
|
-
const txReceipt = await this.
|
|
243
|
-
hash: await this.
|
|
276
|
+
const txReceipt = await this.extendedClient.waitForTransactionReceipt({
|
|
277
|
+
hash: await this.extendedClient.writeContract(request),
|
|
244
278
|
});
|
|
245
279
|
|
|
246
280
|
const log = extractEvent(
|
|
@@ -280,8 +314,8 @@ export class L1ToL2TokenPortalManager {
|
|
|
280
314
|
this.logger.info('Sending L1 tokens to L2 to be claimed privately');
|
|
281
315
|
const { request } = await this.portal.simulate.depositToAztecPrivate([amount, claimSecretHash.toString()]);
|
|
282
316
|
|
|
283
|
-
const txReceipt = await this.
|
|
284
|
-
hash: await this.
|
|
317
|
+
const txReceipt = await this.extendedClient.waitForTransactionReceipt({
|
|
318
|
+
hash: await this.extendedClient.writeContract(request),
|
|
285
319
|
});
|
|
286
320
|
|
|
287
321
|
const log = extractEvent(
|
|
@@ -309,7 +343,11 @@ export class L1ToL2TokenPortalManager {
|
|
|
309
343
|
|
|
310
344
|
private async bridgeSetup(amount: bigint, mint: boolean) {
|
|
311
345
|
if (mint) {
|
|
312
|
-
await this.tokenManager.
|
|
346
|
+
const mintableAmount = await this.tokenManager.getMintAmount();
|
|
347
|
+
if (amount !== mintableAmount) {
|
|
348
|
+
throw new Error(`Minting amount must be ${mintableAmount} for testing`);
|
|
349
|
+
}
|
|
350
|
+
await this.tokenManager.mint(this.extendedClient.account.address);
|
|
313
351
|
}
|
|
314
352
|
await this.tokenManager.approve(amount, this.portal.address, 'TokenPortal');
|
|
315
353
|
return generateClaimSecret();
|
|
@@ -318,21 +356,21 @@ export class L1ToL2TokenPortalManager {
|
|
|
318
356
|
|
|
319
357
|
/** Helper for interacting with a test TokenPortal on L1 for both withdrawing from and bridging to L2. */
|
|
320
358
|
export class L1TokenPortalManager extends L1ToL2TokenPortalManager {
|
|
321
|
-
private readonly outbox:
|
|
359
|
+
private readonly outbox: ViemContract<typeof OutboxAbi>;
|
|
322
360
|
|
|
323
361
|
constructor(
|
|
324
362
|
portalAddress: EthAddress,
|
|
325
363
|
tokenAddress: EthAddress,
|
|
364
|
+
handlerAddress: EthAddress | undefined,
|
|
326
365
|
outboxAddress: EthAddress,
|
|
327
|
-
|
|
328
|
-
walletClient: ViemWalletClient,
|
|
366
|
+
extendedClient: ExtendedViemWalletClient,
|
|
329
367
|
logger: Logger,
|
|
330
368
|
) {
|
|
331
|
-
super(portalAddress, tokenAddress,
|
|
369
|
+
super(portalAddress, tokenAddress, handlerAddress, extendedClient, logger);
|
|
332
370
|
this.outbox = getContract({
|
|
333
371
|
address: outboxAddress.toString(),
|
|
334
372
|
abi: OutboxAbi,
|
|
335
|
-
client:
|
|
373
|
+
client: extendedClient,
|
|
336
374
|
});
|
|
337
375
|
}
|
|
338
376
|
|
|
@@ -355,9 +393,12 @@ export class L1TokenPortalManager extends L1ToL2TokenPortalManager {
|
|
|
355
393
|
`Sending L1 tx to consume message at block ${blockNumber} index ${messageIndex} to withdraw ${amount}`,
|
|
356
394
|
);
|
|
357
395
|
|
|
358
|
-
const
|
|
396
|
+
const messageLeafId = getL2ToL1MessageLeafId({ leafIndex: messageIndex, siblingPath });
|
|
397
|
+
const isConsumedBefore = await this.outbox.read.hasMessageBeenConsumedAtBlock([blockNumber, messageLeafId]);
|
|
359
398
|
if (isConsumedBefore) {
|
|
360
|
-
throw new Error(
|
|
399
|
+
throw new Error(
|
|
400
|
+
`L1 to L2 message at block ${blockNumber} index ${messageIndex} height ${siblingPath.pathSize} has already been consumed`,
|
|
401
|
+
);
|
|
361
402
|
}
|
|
362
403
|
|
|
363
404
|
// Call function on L1 contract to consume the message
|
|
@@ -370,11 +411,15 @@ export class L1TokenPortalManager extends L1ToL2TokenPortalManager {
|
|
|
370
411
|
siblingPath.toBufferArray().map((buf: Buffer): Hex => `0x${buf.toString('hex')}`),
|
|
371
412
|
]);
|
|
372
413
|
|
|
373
|
-
await this.
|
|
414
|
+
await this.extendedClient.waitForTransactionReceipt({
|
|
415
|
+
hash: await this.extendedClient.writeContract(withdrawRequest),
|
|
416
|
+
});
|
|
374
417
|
|
|
375
|
-
const isConsumedAfter = await this.outbox.read.
|
|
418
|
+
const isConsumedAfter = await this.outbox.read.hasMessageBeenConsumedAtBlock([blockNumber, messageLeafId]);
|
|
376
419
|
if (!isConsumedAfter) {
|
|
377
|
-
throw new Error(
|
|
420
|
+
throw new Error(
|
|
421
|
+
`L1 to L2 message at block ${blockNumber} index ${messageIndex} height ${siblingPath.pathSize} not consumed after withdrawal`,
|
|
422
|
+
);
|
|
378
423
|
}
|
|
379
424
|
}
|
|
380
425
|
|
|
@@ -385,26 +430,27 @@ export class L1TokenPortalManager extends L1ToL2TokenPortalManager {
|
|
|
385
430
|
* @param l2Bridge - Address of the L2 bridge.
|
|
386
431
|
* @param callerOnL1 - Caller address on L1.
|
|
387
432
|
*/
|
|
388
|
-
public getL2ToL1MessageLeaf(
|
|
433
|
+
public async getL2ToL1MessageLeaf(
|
|
389
434
|
amount: bigint,
|
|
390
435
|
recipient: EthAddress,
|
|
391
436
|
l2Bridge: AztecAddress,
|
|
392
437
|
callerOnL1: EthAddress = EthAddress.ZERO,
|
|
393
|
-
): Fr {
|
|
438
|
+
): Promise<Fr> {
|
|
439
|
+
const version = await this.outbox.read.VERSION();
|
|
440
|
+
|
|
394
441
|
const content = sha256ToField([
|
|
395
442
|
Buffer.from(toFunctionSelector('withdraw(address,uint256,address)').substring(2), 'hex'),
|
|
396
443
|
recipient.toBuffer32(),
|
|
397
444
|
new Fr(amount).toBuffer(),
|
|
398
445
|
callerOnL1.toBuffer32(),
|
|
399
446
|
]);
|
|
400
|
-
const leaf = sha256ToField([
|
|
401
|
-
l2Bridge.toBuffer(),
|
|
402
|
-
new Fr(1).toBuffer(), // aztec version
|
|
403
|
-
EthAddress.fromString(this.portal.address).toBuffer32() ?? Buffer.alloc(32, 0),
|
|
404
|
-
new Fr(this.publicClient.chain.id).toBuffer(), // chain id
|
|
405
|
-
content.toBuffer(),
|
|
406
|
-
]);
|
|
407
447
|
|
|
408
|
-
return
|
|
448
|
+
return computeL2ToL1MessageHash({
|
|
449
|
+
l2Sender: l2Bridge,
|
|
450
|
+
l1Recipient: EthAddress.fromString(this.portal.address),
|
|
451
|
+
content,
|
|
452
|
+
rollupVersion: new Fr(version),
|
|
453
|
+
chainId: new Fr(this.extendedClient.chain.id),
|
|
454
|
+
});
|
|
409
455
|
}
|
|
410
456
|
}
|
|
@@ -1,49 +1,62 @@
|
|
|
1
|
+
import { ExecutionPayload } from '@aztec/entrypoints/payload';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
3
|
-
import type { FunctionCall } from '@aztec/stdlib/abi';
|
|
4
4
|
import { FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
|
|
5
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
+
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
5
7
|
|
|
6
|
-
import type { L2AmountClaim } from '../
|
|
7
|
-
import {
|
|
8
|
-
import type { Wallet } from '../wallet/index.js';
|
|
9
|
-
import { FeeJuicePaymentMethod } from './fee_juice_payment_method.js';
|
|
8
|
+
import type { L2AmountClaim } from '../ethereum/portal_manager.js';
|
|
9
|
+
import type { FeePaymentMethod } from './fee_payment_method.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Pay fee directly with Fee Juice claimed
|
|
12
|
+
* Pay fee directly with Fee Juice claimed in the same tx. Claiming consumes an L1 to L2 message that "contains"
|
|
13
|
+
* the fee juice bridged from L1.
|
|
13
14
|
*/
|
|
14
|
-
export class FeeJuicePaymentMethodWithClaim
|
|
15
|
+
export class FeeJuicePaymentMethodWithClaim implements FeePaymentMethod {
|
|
15
16
|
constructor(
|
|
16
|
-
private
|
|
17
|
+
private sender: AztecAddress,
|
|
17
18
|
private claim: Pick<L2AmountClaim, 'claimAmount' | 'claimSecret' | 'messageLeafIndex'>,
|
|
18
|
-
) {
|
|
19
|
-
super(senderWallet.getAddress());
|
|
20
|
-
}
|
|
19
|
+
) {}
|
|
21
20
|
|
|
22
21
|
/**
|
|
23
|
-
* Creates
|
|
24
|
-
* @returns
|
|
22
|
+
* Creates an execution payload to pay the fee in Fee Juice.
|
|
23
|
+
* @returns An execution payload that just contains the `claim_and_end_setup` function call.
|
|
25
24
|
*/
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
async getExecutionPayload(): Promise<ExecutionPayload> {
|
|
26
|
+
const selector = await FunctionSelector.fromSignature('claim_and_end_setup((Field),u128,Field,Field)');
|
|
27
|
+
|
|
28
|
+
return new ExecutionPayload(
|
|
29
|
+
[
|
|
30
|
+
{
|
|
31
|
+
to: ProtocolContractAddress.FeeJuice,
|
|
32
|
+
name: 'claim_and_end_setup',
|
|
33
|
+
selector,
|
|
34
|
+
hideMsgSender: false,
|
|
35
|
+
isStatic: false,
|
|
36
|
+
args: [
|
|
37
|
+
this.sender.toField(),
|
|
38
|
+
new Fr(this.claim.claimAmount),
|
|
39
|
+
this.claim.claimSecret,
|
|
40
|
+
new Fr(this.claim.messageLeafIndex),
|
|
41
|
+
],
|
|
42
|
+
returnTypes: [],
|
|
43
|
+
type: FunctionType.PRIVATE,
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
[],
|
|
47
|
+
[],
|
|
30
48
|
);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
getAsset() {
|
|
52
|
+
return Promise.resolve(ProtocolContractAddress.FeeJuice);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
getFeePayer(): Promise<AztecAddress> {
|
|
56
|
+
return Promise.resolve(this.sender);
|
|
57
|
+
}
|
|
31
58
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
to: ProtocolContractAddress.FeeJuice,
|
|
35
|
-
name: 'claim',
|
|
36
|
-
selector,
|
|
37
|
-
isStatic: false,
|
|
38
|
-
args: [
|
|
39
|
-
this.senderWallet.getAddress().toField(),
|
|
40
|
-
new Fr(this.claim.claimAmount),
|
|
41
|
-
this.claim.claimSecret,
|
|
42
|
-
new Fr(this.claim.messageLeafIndex),
|
|
43
|
-
],
|
|
44
|
-
returnTypes: [],
|
|
45
|
-
type: FunctionType.PRIVATE,
|
|
46
|
-
},
|
|
47
|
-
]);
|
|
59
|
+
getGasSettings(): GasSettings | undefined {
|
|
60
|
+
return;
|
|
48
61
|
}
|
|
49
62
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ExecutionPayload } from '@aztec/entrypoints/payload';
|
|
2
2
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
4
4
|
|
|
@@ -9,14 +9,18 @@ export interface FeePaymentMethod {
|
|
|
9
9
|
/** The asset used to pay the fee. */
|
|
10
10
|
getAsset(): Promise<AztecAddress>;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @returns The function
|
|
12
|
+
* Returns the data to be added to the final execution request
|
|
13
|
+
* to pay the fee in the given asset
|
|
14
|
+
* @returns The function calls to pay the fee.
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
getExecutionPayload(): Promise<ExecutionPayload>;
|
|
17
17
|
/**
|
|
18
18
|
* The expected fee payer for this tx.
|
|
19
|
-
* @param gasSettings - The gas limits and max fees.
|
|
20
19
|
*/
|
|
21
|
-
getFeePayer(
|
|
20
|
+
getFeePayer(): Promise<AztecAddress>;
|
|
21
|
+
/**
|
|
22
|
+
* The gas settings (if any) used to compute the
|
|
23
|
+
* execution payload of the payment method
|
|
24
|
+
*/
|
|
25
|
+
getGasSettings(): GasSettings | undefined;
|
|
22
26
|
}
|