@aztec/aztec.js 0.76.4 → 0.77.0-testnet-ignition.21
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/dest/account/contract.d.ts +9 -5
- package/dest/account/contract.d.ts.map +1 -1
- package/dest/account/contract.js +15 -2
- package/dest/account/index.d.ts +2 -2
- package/dest/account/index.d.ts.map +1 -1
- package/dest/account/index.js +8 -1
- package/dest/account/interface.d.ts +5 -4
- package/dest/account/interface.d.ts.map +1 -1
- package/dest/account/interface.js +4 -3
- package/dest/account/wallet.d.ts +4 -3
- package/dest/account/wallet.d.ts.map +1 -1
- package/dest/account/wallet.js +3 -2
- package/dest/account_manager/deploy_account_method.d.ts +5 -5
- package/dest/account_manager/deploy_account_method.d.ts.map +1 -1
- package/dest/account_manager/deploy_account_method.js +22 -25
- package/dest/account_manager/deploy_account_sent_tx.d.ts +4 -3
- package/dest/account_manager/deploy_account_sent_tx.d.ts.map +1 -1
- package/dest/account_manager/deploy_account_sent_tx.js +16 -17
- package/dest/account_manager/index.d.ts +20 -11
- package/dest/account_manager/index.d.ts.map +1 -1
- package/dest/account_manager/index.js +89 -87
- package/dest/api/abi.d.ts +2 -3
- package/dest/api/abi.d.ts.map +1 -1
- package/dest/api/abi.js +1 -3
- package/dest/api/account.d.ts +1 -2
- package/dest/api/account.d.ts.map +1 -1
- package/dest/api/account.js +1 -2
- package/dest/api/addresses.d.ts +2 -2
- package/dest/api/addresses.d.ts.map +1 -1
- package/dest/api/addresses.js +2 -3
- package/dest/api/cheat_codes.d.ts +4 -4
- package/dest/api/cheat_codes.d.ts.map +1 -1
- package/dest/api/cheat_codes.js +10 -15
- package/dest/api/deployment.js +0 -1
- package/dest/api/entrypoint.js +0 -1
- package/dest/api/eth_address.js +0 -1
- package/dest/api/ethereum/anvil_test_watcher.d.ts +10 -6
- package/dest/api/ethereum/anvil_test_watcher.d.ts.map +1 -1
- package/dest/api/ethereum/anvil_test_watcher.js +43 -18
- package/dest/api/ethereum/chain_monitor.d.ts +6 -2
- package/dest/api/ethereum/chain_monitor.d.ts.map +1 -1
- package/dest/api/ethereum/chain_monitor.js +24 -8
- package/dest/api/ethereum/cheat_codes.d.ts +14 -3
- package/dest/api/ethereum/cheat_codes.d.ts.map +1 -1
- package/dest/api/ethereum/cheat_codes.js +106 -53
- package/dest/api/ethereum/index.d.ts +1 -1
- package/dest/api/ethereum/index.d.ts.map +1 -1
- package/dest/api/ethereum/index.js +1 -2
- package/dest/api/ethereum/l1_contracts.d.ts +1 -1
- package/dest/api/ethereum/l1_contracts.d.ts.map +1 -1
- package/dest/api/ethereum/l1_contracts.js +4 -6
- package/dest/api/ethereum/portal_manager.d.ts +16 -12
- package/dest/api/ethereum/portal_manager.d.ts.map +1 -1
- package/dest/api/ethereum/portal_manager.js +134 -115
- package/dest/api/fee.d.ts +0 -1
- package/dest/api/fee.d.ts.map +1 -1
- package/dest/api/fee.js +0 -2
- package/dest/api/fields.js +0 -1
- package/dest/api/interfaces/pxe.d.ts +1 -1
- package/dest/api/interfaces/pxe.d.ts.map +1 -1
- package/dest/api/interfaces/pxe.js +1 -2
- package/dest/api/log.js +0 -1
- package/dest/api/log_id.d.ts +1 -1
- package/dest/api/log_id.d.ts.map +1 -1
- package/dest/api/log_id.js +1 -2
- package/dest/api/tx_hash.d.ts +1 -1
- package/dest/api/tx_hash.d.ts.map +1 -1
- package/dest/api/tx_hash.js +1 -2
- package/dest/api/wallet.d.ts +1 -1
- package/dest/api/wallet.d.ts.map +1 -1
- package/dest/api/wallet.js +1 -2
- package/dest/contract/base_contract_interaction.d.ts +21 -5
- package/dest/contract/base_contract_interaction.d.ts.map +1 -1
- package/dest/contract/base_contract_interaction.js +97 -55
- package/dest/contract/batch_call.d.ts +3 -2
- package/dest/contract/batch_call.d.ts.map +1 -1
- package/dest/contract/batch_call.js +64 -40
- package/dest/contract/checker.d.ts +1 -1
- package/dest/contract/checker.d.ts.map +1 -1
- package/dest/contract/checker.js +29 -20
- package/dest/contract/contract.d.ts +4 -4
- package/dest/contract/contract.d.ts.map +1 -1
- package/dest/contract/contract.js +30 -28
- package/dest/contract/contract_base.d.ts +5 -5
- package/dest/contract/contract_base.d.ts.map +1 -1
- package/dest/contract/contract_base.js +22 -31
- package/dest/contract/contract_function_interaction.d.ts +9 -8
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +63 -51
- package/dest/contract/deploy_method.d.ts +14 -11
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +115 -87
- package/dest/contract/deploy_proven_tx.d.ts +6 -4
- package/dest/contract/deploy_proven_tx.d.ts.map +1 -1
- package/dest/contract/deploy_proven_tx.js +8 -11
- package/dest/contract/deploy_sent_tx.d.ts +8 -6
- package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
- package/dest/contract/deploy_sent_tx.js +19 -22
- package/dest/contract/get_gas_limits.d.ts +2 -2
- package/dest/contract/get_gas_limits.d.ts.map +1 -1
- package/dest/contract/get_gas_limits.js +2 -4
- package/dest/contract/index.js +2 -4
- package/dest/{deployment → contract}/protocol_contracts.d.ts +4 -2
- package/dest/contract/protocol_contracts.d.ts.map +1 -0
- package/dest/contract/protocol_contracts.js +26 -0
- package/dest/contract/proven_tx.d.ts +3 -2
- package/dest/contract/proven_tx.d.ts.map +1 -1
- package/dest/contract/proven_tx.js +8 -11
- package/dest/contract/sent_tx.d.ts +3 -2
- package/dest/contract/sent_tx.d.ts.map +1 -1
- package/dest/contract/sent_tx.js +33 -35
- package/dest/contract/unsafe_contract.d.ts +3 -3
- package/dest/contract/unsafe_contract.d.ts.map +1 -1
- package/dest/contract/unsafe_contract.js +2 -10
- 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 +39 -32
- package/dest/deployment/contract_deployer.d.ts +3 -3
- package/dest/deployment/contract_deployer.d.ts.map +1 -1
- package/dest/deployment/contract_deployer.js +16 -15
- package/dest/deployment/deploy_instance.d.ts +3 -3
- package/dest/deployment/deploy_instance.d.ts.map +1 -1
- package/dest/deployment/deploy_instance.js +3 -5
- package/dest/deployment/index.js +0 -1
- package/dest/deployment/register_class.d.ts +3 -3
- package/dest/deployment/register_class.d.ts.map +1 -1
- package/dest/deployment/register_class.js +19 -14
- package/dest/entrypoint/default_entrypoint.d.ts +2 -2
- package/dest/entrypoint/default_entrypoint.d.ts.map +1 -1
- package/dest/entrypoint/default_entrypoint.js +11 -9
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts +2 -2
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +1 -1
- package/dest/entrypoint/default_multi_call_entrypoint.js +68 -25
- package/dest/entrypoint/entrypoint.d.ts +7 -3
- package/dest/entrypoint/entrypoint.d.ts.map +1 -1
- package/dest/entrypoint/entrypoint.js +0 -1
- package/dest/entrypoint/payload.d.ts +8 -5
- package/dest/entrypoint/payload.d.ts.map +1 -1
- package/dest/entrypoint/payload.js +78 -85
- package/dest/fee/fee_juice_payment_method.d.ts +3 -3
- package/dest/fee/fee_juice_payment_method.d.ts.map +1 -1
- package/dest/fee/fee_juice_payment_method.js +5 -4
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts +5 -4
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -1
- package/dest/fee/fee_juice_payment_method_with_claim.js +18 -20
- package/dest/fee/fee_payment_method.d.ts +3 -3
- package/dest/fee/fee_payment_method.d.ts.map +1 -1
- package/dest/fee/fee_payment_method.js +3 -2
- package/dest/fee/private_fee_payment_method.d.ts +5 -5
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +40 -38
- package/dest/fee/public_fee_payment_method.d.ts +5 -5
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/public_fee_payment_method.js +38 -35
- package/dest/index.d.ts +25 -12
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +24 -14
- package/dest/rpc_clients/index.js +0 -1
- package/dest/rpc_clients/node/index.d.ts +2 -1
- package/dest/rpc_clients/node/index.d.ts.map +1 -1
- package/dest/rpc_clients/node/index.js +35 -18
- package/dest/rpc_clients/pxe_client.d.ts +2 -2
- package/dest/rpc_clients/pxe_client.d.ts.map +1 -1
- package/dest/rpc_clients/pxe_client.js +9 -7
- package/dest/utils/abi_types.d.ts +4 -1
- package/dest/utils/abi_types.d.ts.map +1 -1
- package/dest/utils/abi_types.js +1 -2
- package/dest/utils/authwit.d.ts +3 -2
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +18 -17
- package/dest/utils/aztec_cheatcodes.d.ts +4 -2
- package/dest/utils/aztec_cheatcodes.d.ts.map +1 -1
- package/dest/utils/aztec_cheatcodes.js +32 -41
- package/dest/utils/field_compressed_string.js +3 -5
- package/dest/utils/index.d.ts +1 -1
- package/dest/utils/index.d.ts.map +1 -1
- package/dest/utils/index.js +1 -2
- package/dest/utils/node.d.ts +3 -3
- package/dest/utils/node.d.ts.map +1 -1
- package/dest/utils/node.js +4 -6
- package/dest/utils/pub_key.d.ts +2 -1
- package/dest/utils/pub_key.d.ts.map +1 -1
- package/dest/utils/pub_key.js +2 -4
- package/dest/utils/pxe.d.ts +2 -2
- package/dest/utils/pxe.d.ts.map +1 -1
- package/dest/utils/pxe.js +3 -5
- package/dest/wallet/account_wallet.d.ts +8 -5
- package/dest/wallet/account_wallet.d.ts.map +1 -1
- package/dest/wallet/account_wallet.js +120 -83
- package/dest/wallet/account_wallet_with_private_key.d.ts +5 -5
- package/dest/wallet/account_wallet_with_private_key.d.ts.map +1 -1
- package/dest/wallet/account_wallet_with_private_key.js +10 -16
- package/dest/wallet/base_wallet.d.ts +19 -10
- package/dest/wallet/base_wallet.d.ts.map +1 -1
- package/dest/wallet/base_wallet.js +12 -13
- package/dest/wallet/index.d.ts +3 -3
- package/dest/wallet/index.d.ts.map +1 -1
- package/dest/wallet/index.js +2 -4
- package/dest/wallet/signerless_wallet.d.ts +7 -4
- package/dest/wallet/signerless_wallet.d.ts.map +1 -1
- package/dest/wallet/signerless_wallet.js +4 -6
- package/package.json +10 -14
- package/src/account/contract.ts +22 -5
- package/src/account/index.ts +2 -2
- package/src/account/interface.ts +5 -4
- package/src/account/wallet.ts +4 -3
- package/src/account_manager/deploy_account_method.ts +5 -5
- package/src/account_manager/deploy_account_sent_tx.ts +4 -3
- package/src/account_manager/index.ts +51 -24
- package/src/api/abi.ts +10 -3
- package/src/api/account.ts +8 -3
- package/src/api/addresses.ts +2 -2
- package/src/api/cheat_codes.ts +6 -6
- package/src/api/ethereum/anvil_test_watcher.ts +31 -7
- package/src/api/ethereum/chain_monitor.ts +9 -2
- package/src/api/ethereum/cheat_codes.ts +65 -24
- package/src/api/ethereum/index.ts +5 -1
- package/src/api/ethereum/l1_contracts.ts +1 -1
- package/src/api/ethereum/portal_manager.ts +27 -32
- package/src/api/fee.ts +0 -1
- package/src/api/interfaces/pxe.ts +1 -1
- package/src/api/log_id.ts +1 -1
- package/src/api/tx_hash.ts +1 -1
- package/src/api/wallet.ts +1 -1
- package/src/contract/base_contract_interaction.ts +35 -9
- package/src/contract/batch_call.ts +9 -7
- package/src/contract/checker.ts +1 -1
- package/src/contract/contract.ts +11 -4
- package/src/contract/contract_base.ts +3 -3
- package/src/contract/contract_function_interaction.ts +24 -13
- package/src/contract/deploy_method.ts +27 -18
- package/src/contract/deploy_proven_tx.ts +6 -4
- package/src/contract/deploy_sent_tx.ts +8 -6
- package/src/contract/get_gas_limits.ts +2 -2
- package/src/contract/protocol_contracts.ts +35 -0
- package/src/contract/proven_tx.ts +3 -2
- package/src/contract/sent_tx.ts +3 -2
- package/src/contract/unsafe_contract.ts +3 -3
- package/src/deployment/broadcast_function.ts +47 -40
- package/src/deployment/contract_deployer.ts +4 -3
- package/src/deployment/deploy_instance.ts +5 -5
- package/src/deployment/register_class.ts +25 -18
- package/src/entrypoint/default_entrypoint.ts +5 -5
- package/src/entrypoint/default_multi_call_entrypoint.ts +5 -4
- package/src/entrypoint/entrypoint.ts +7 -3
- package/src/entrypoint/payload.ts +11 -6
- package/src/fee/fee_juice_payment_method.ts +5 -3
- package/src/fee/fee_juice_payment_method_with_claim.ts +11 -10
- package/src/fee/fee_payment_method.ts +3 -3
- package/src/fee/private_fee_payment_method.ts +10 -11
- package/src/fee/public_fee_payment_method.ts +11 -11
- package/src/index.ts +35 -58
- package/src/rpc_clients/node/index.ts +2 -1
- package/src/rpc_clients/pxe_client.ts +2 -2
- package/src/utils/abi_types.ts +4 -7
- package/src/utils/authwit.ts +5 -2
- package/src/utils/aztec_cheatcodes.ts +5 -3
- package/src/utils/field_compressed_string.ts +1 -1
- package/src/utils/index.ts +1 -1
- package/src/utils/node.ts +3 -3
- package/src/utils/pub_key.ts +3 -2
- package/src/utils/pxe.ts +2 -2
- package/src/wallet/account_wallet.ts +8 -5
- package/src/wallet/account_wallet_with_private_key.ts +5 -4
- package/src/wallet/base_wallet.ts +37 -46
- package/src/wallet/index.ts +3 -3
- package/src/wallet/signerless_wallet.ts +7 -4
- package/dest/deployment/protocol_contracts.d.ts.map +0 -1
- package/dest/deployment/protocol_contracts.js +0 -14
- package/dest/fee/no_fee_payment_method.d.ts +0 -13
- package/dest/fee/no_fee_payment_method.d.ts.map +0 -1
- package/dest/fee/no_fee_payment_method.js +0 -17
- package/src/deployment/protocol_contracts.ts +0 -17
- package/src/fee/no_fee_payment_method.ts +0 -23
|
@@ -1,29 +1,37 @@
|
|
|
1
|
-
import { HashedValues, TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
|
-
import { TxContext } from '@aztec/circuits.js';
|
|
3
|
-
import { FunctionSelector, encodeArguments } from '@aztec/foundation/abi';
|
|
4
1
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
2
|
+
import { FunctionSelector, encodeArguments } from '@aztec/stdlib/abi';
|
|
3
|
+
import { HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
|
|
5
4
|
import { EntrypointPayload } from './entrypoint.js';
|
|
6
5
|
/**
|
|
7
6
|
* Implementation for an entrypoint interface that can execute multiple function calls in a single transaction
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
*/ export class DefaultMultiCallEntrypoint {
|
|
8
|
+
chainId;
|
|
9
|
+
version;
|
|
10
|
+
address;
|
|
11
|
+
constructor(chainId, version, address = ProtocolContractAddress.MultiCallEntrypoint){
|
|
11
12
|
this.chainId = chainId;
|
|
12
13
|
this.version = version;
|
|
13
14
|
this.address = address;
|
|
14
15
|
}
|
|
15
16
|
async createTxExecutionRequest(executions) {
|
|
16
|
-
const { fee, calls, authWitnesses = [], hashedArguments = [] } = executions;
|
|
17
|
+
const { fee, calls, authWitnesses = [], hashedArguments = [], capsules = [] } = executions;
|
|
17
18
|
const payload = await EntrypointPayload.fromAppExecution(calls);
|
|
18
19
|
const abi = this.getEntrypointAbi();
|
|
19
|
-
const entrypointHashedArgs = await HashedValues.fromValues(encodeArguments(abi, [
|
|
20
|
+
const entrypointHashedArgs = await HashedValues.fromValues(encodeArguments(abi, [
|
|
21
|
+
payload
|
|
22
|
+
]));
|
|
20
23
|
const txRequest = TxExecutionRequest.from({
|
|
21
24
|
firstCallArgsHash: entrypointHashedArgs.hash,
|
|
22
25
|
origin: this.address,
|
|
23
26
|
functionSelector: await FunctionSelector.fromNameAndParameters(abi.name, abi.parameters),
|
|
24
27
|
txContext: new TxContext(this.chainId, this.version, fee.gasSettings),
|
|
25
|
-
argsOfCalls: [
|
|
28
|
+
argsOfCalls: [
|
|
29
|
+
...payload.hashedArguments,
|
|
30
|
+
...hashedArguments,
|
|
31
|
+
entrypointHashedArgs
|
|
32
|
+
],
|
|
26
33
|
authWitnesses,
|
|
34
|
+
capsules
|
|
27
35
|
});
|
|
28
36
|
return Promise.resolve(txRequest);
|
|
29
37
|
}
|
|
@@ -50,38 +58,73 @@ export class DefaultMultiCallEntrypoint {
|
|
|
50
58
|
kind: 'struct',
|
|
51
59
|
path: 'authwit::entrypoint::function_call::FunctionCall',
|
|
52
60
|
fields: [
|
|
53
|
-
{
|
|
61
|
+
{
|
|
62
|
+
name: 'args_hash',
|
|
63
|
+
type: {
|
|
64
|
+
kind: 'field'
|
|
65
|
+
}
|
|
66
|
+
},
|
|
54
67
|
{
|
|
55
68
|
name: 'function_selector',
|
|
56
69
|
type: {
|
|
57
70
|
kind: 'struct',
|
|
58
71
|
path: 'authwit::aztec::protocol_types::abis::function_selector::FunctionSelector',
|
|
59
|
-
fields: [
|
|
60
|
-
|
|
72
|
+
fields: [
|
|
73
|
+
{
|
|
74
|
+
name: 'inner',
|
|
75
|
+
type: {
|
|
76
|
+
kind: 'integer',
|
|
77
|
+
sign: 'unsigned',
|
|
78
|
+
width: 32
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
}
|
|
61
83
|
},
|
|
62
84
|
{
|
|
63
85
|
name: 'target_address',
|
|
64
86
|
type: {
|
|
65
87
|
kind: 'struct',
|
|
66
88
|
path: 'authwit::aztec::protocol_types::address::AztecAddress',
|
|
67
|
-
fields: [
|
|
68
|
-
|
|
89
|
+
fields: [
|
|
90
|
+
{
|
|
91
|
+
name: 'inner',
|
|
92
|
+
type: {
|
|
93
|
+
kind: 'field'
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
}
|
|
69
98
|
},
|
|
70
|
-
{
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
99
|
+
{
|
|
100
|
+
name: 'is_public',
|
|
101
|
+
type: {
|
|
102
|
+
kind: 'boolean'
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'is_static',
|
|
107
|
+
type: {
|
|
108
|
+
kind: 'boolean'
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
}
|
|
75
114
|
},
|
|
76
|
-
{
|
|
77
|
-
|
|
115
|
+
{
|
|
116
|
+
name: 'nonce',
|
|
117
|
+
type: {
|
|
118
|
+
kind: 'field'
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
]
|
|
78
122
|
},
|
|
79
|
-
visibility: 'public'
|
|
80
|
-
}
|
|
123
|
+
visibility: 'public'
|
|
124
|
+
}
|
|
81
125
|
],
|
|
82
126
|
returnTypes: [],
|
|
83
|
-
errorTypes: {}
|
|
127
|
+
errorTypes: {}
|
|
84
128
|
};
|
|
85
129
|
}
|
|
86
130
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdF9tdWx0aV9jYWxsX2VudHJ5cG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW50cnlwb2ludC9kZWZhdWx0X211bHRpX2NhbGxfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEUsT0FBTyxFQUFxQixTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQW9CLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFBNEIsaUJBQWlCLEVBQTZCLE1BQU0saUJBQWlCLENBQUM7QUFFekc7O0dBRUc7QUFDSCxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQ1UsT0FBZSxFQUNmLE9BQWUsRUFDZixVQUF3Qix1QkFBdUIsQ0FBQyxtQkFBbUI7UUFGbkUsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixZQUFPLEdBQVAsT0FBTyxDQUE0RDtJQUMxRSxDQUFDO0lBRUosS0FBSyxDQUFDLHdCQUF3QixDQUFDLFVBQWdDO1FBQzdELE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLGFBQWEsR0FBRyxFQUFFLEVBQUUsZUFBZSxHQUFHLEVBQUUsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM1RSxNQUFNLE9BQU8sR0FBRyxNQUFNLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFNUYsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBQ3hDLGlCQUFpQixFQUFFLG9CQUFvQixDQUFDLElBQUk7WUFDNUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3BCLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDO1lBQ3hGLFNBQVMsRUFBRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQztZQUNyRSxXQUFXLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsR0FBRyxlQUFlLEVBQUUsb0JBQW9CLENBQUM7WUFDbkYsYUFBYTtTQUNkLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU87WUFDTCxJQUFJLEVBQUUsWUFBWTtZQUNsQixhQUFhLEVBQUUsS0FBSztZQUNwQixZQUFZLEVBQUUsU0FBUztZQUN2QixVQUFVLEVBQUUsS0FBSztZQUNqQixRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRTtnQkFDVjtvQkFDRSxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxzQ0FBc0M7d0JBQzVDLE1BQU0sRUFBRTs0QkFDTjtnQ0FDRSxJQUFJLEVBQUUsZ0JBQWdCO2dDQUN0QixJQUFJLEVBQUU7b0NBQ0osSUFBSSxFQUFFLE9BQU87b0NBQ2IsTUFBTSxFQUFFLENBQUM7b0NBQ1QsSUFBSSxFQUFFO3dDQUNKLElBQUksRUFBRSxRQUFRO3dDQUNkLElBQUksRUFBRSxrREFBa0Q7d0NBQ3hELE1BQU0sRUFBRTs0Q0FDTixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFOzRDQUM5QztnREFDRSxJQUFJLEVBQUUsbUJBQW1CO2dEQUN6QixJQUFJLEVBQUU7b0RBQ0osSUFBSSxFQUFFLFFBQVE7b0RBQ2QsSUFBSSxFQUFFLDJFQUEyRTtvREFDakYsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztpREFDcEY7NkNBQ0Y7NENBQ0Q7Z0RBQ0UsSUFBSSxFQUFFLGdCQUFnQjtnREFDdEIsSUFBSSxFQUFFO29EQUNKLElBQUksRUFBRSxRQUFRO29EQUNkLElBQUksRUFBRSx1REFBdUQ7b0RBQzdELE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztpREFDckQ7NkNBQ0Y7NENBQ0QsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRTs0Q0FDaEQsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFBRTt5Q0FDakQ7cUNBQ0Y7aUNBQ0Y7NkJBQ0Y7NEJBQ0QsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTt5QkFDM0M7cUJBQ0Y7b0JBQ0QsVUFBVSxFQUFFLFFBQVE7aUJBQ3JCO2FBQ0Y7WUFDRCxXQUFXLEVBQUUsRUFBRTtZQUNmLFVBQVUsRUFBRSxFQUFFO1NBQ0EsQ0FBQztJQUNuQixDQUFDO0NBQ0YifQ==
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import type { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import type { FunctionCall } from '@aztec/stdlib/abi';
|
|
3
|
+
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
4
|
+
import type { Capsule, HashedValues, TxExecutionRequest } from '@aztec/stdlib/tx';
|
|
3
5
|
import { EntrypointPayload, type FeeOptions, computeCombinedPayloadHash } from './payload.js';
|
|
4
|
-
export { EntrypointPayload, FeeOptions, computeCombinedPayloadHash };
|
|
6
|
+
export { EntrypointPayload, type FeeOptions, computeCombinedPayloadHash };
|
|
5
7
|
export { DefaultEntrypoint } from './default_entrypoint.js';
|
|
6
8
|
export { DefaultMultiCallEntrypoint } from './default_multi_call_entrypoint.js';
|
|
7
9
|
/** Encodes the calls to be done in a transaction. */
|
|
@@ -12,6 +14,8 @@ export type ExecutionRequestInit = {
|
|
|
12
14
|
authWitnesses?: AuthWitness[];
|
|
13
15
|
/** Any transient hashed arguments for this execution */
|
|
14
16
|
hashedArguments?: HashedValues[];
|
|
17
|
+
/** Data passed through an oracle for this execution. */
|
|
18
|
+
capsules?: Capsule[];
|
|
15
19
|
/** How the fee is going to be payed */
|
|
16
20
|
fee: FeeOptions;
|
|
17
21
|
/** An optional nonce. Used to repeat a previous tx with a higher fee so that the first one is cancelled */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../../src/entrypoint/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../../src/entrypoint/entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,0BAA0B,EAAE,CAAC;AAE1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAEhF,qDAAqD;AACrD,MAAM,MAAM,oBAAoB,GAAG;IACjC,yCAAyC;IACzC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAC9B,wDAAwD;IACxD,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IACjC,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,uCAAuC;IACvC,GAAG,EAAE,UAAU,CAAC;IAChB,2GAA2G;IAC3G,KAAK,CAAC,EAAE,EAAE,CAAC;IACX,qIAAqI;IACrI,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACxF"}
|
|
@@ -2,4 +2,3 @@ import { EntrypointPayload, computeCombinedPayloadHash } from './payload.js';
|
|
|
2
2
|
export { EntrypointPayload, computeCombinedPayloadHash };
|
|
3
3
|
export { DefaultEntrypoint } from './default_entrypoint.js';
|
|
4
4
|
export { DefaultMultiCallEntrypoint } from './default_multi_call_entrypoint.js';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50cnlwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRyeXBvaW50L2VudHJ5cG9pbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGlCQUFpQixFQUFtQiwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RixPQUFPLEVBQUUsaUJBQWlCLEVBQWMsMEJBQTBCLEVBQUUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQyJ9
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
+
import type { Tuple } from '@aztec/foundation/serialize';
|
|
3
|
+
import type { FieldsOf } from '@aztec/foundation/types';
|
|
4
|
+
import { FunctionCall } from '@aztec/stdlib/abi';
|
|
5
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
6
|
+
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
7
|
+
import { HashedValues } from '@aztec/stdlib/tx';
|
|
8
|
+
import type { FeePaymentMethod } from '../fee/fee_payment_method.js';
|
|
6
9
|
/**
|
|
7
10
|
* Fee payment options for a transaction.
|
|
8
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/entrypoint/payload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/entrypoint/payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
-
import { FunctionCall, HashedValues } from '@aztec/circuit-types';
|
|
4
|
-
import { Fr, GeneratorIndex } from '@aztec/circuits.js';
|
|
5
|
-
import { FunctionType } from '@aztec/foundation/abi';
|
|
1
|
+
import { GeneratorIndex } from '@aztec/constants';
|
|
6
2
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
7
3
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
|
|
4
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
5
|
+
import { FunctionCall, FunctionType } from '@aztec/stdlib/abi';
|
|
6
|
+
import { HashedValues } from '@aztec/stdlib/tx';
|
|
7
|
+
// docs:end:user_fee_options
|
|
8
8
|
// These must match the values defined in:
|
|
9
9
|
// - noir-projects/aztec-nr/aztec/src/entrypoint/app.nr
|
|
10
10
|
const APP_MAX_CALLS = 4;
|
|
11
11
|
// - and noir-projects/aztec-nr/aztec/src/entrypoint/fee.nr
|
|
12
12
|
const FEE_MAX_CALLS = 2;
|
|
13
|
-
/* eslint-enable camelcase */
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
/* eslint-enable camelcase */ /** Assembles an entrypoint payload */ export class EntrypointPayload {
|
|
14
|
+
functionCalls;
|
|
15
|
+
_hashedArguments;
|
|
16
|
+
generatorIndex;
|
|
17
|
+
_nonce;
|
|
18
|
+
constructor(functionCalls, _hashedArguments, generatorIndex, _nonce){
|
|
17
19
|
this.functionCalls = functionCalls;
|
|
18
20
|
this._hashedArguments = _hashedArguments;
|
|
19
21
|
this.generatorIndex = generatorIndex;
|
|
@@ -21,78 +23,67 @@ export class EntrypointPayload {
|
|
|
21
23
|
}
|
|
22
24
|
static async create(functionCalls) {
|
|
23
25
|
const hashedArguments = [];
|
|
24
|
-
for (const call of functionCalls)
|
|
26
|
+
for (const call of functionCalls){
|
|
25
27
|
hashedArguments.push(await HashedValues.fromValues(call.args));
|
|
26
28
|
}
|
|
27
|
-
/* eslint-disable camelcase */
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/* eslint-enable camelcase */
|
|
36
|
-
return {
|
|
29
|
+
/* eslint-disable camelcase */ const encodedFunctionCalls = functionCalls.map((call, index)=>({
|
|
30
|
+
args_hash: hashedArguments[index].hash,
|
|
31
|
+
function_selector: call.selector.toField(),
|
|
32
|
+
target_address: call.to.toField(),
|
|
33
|
+
is_public: call.type == FunctionType.PUBLIC,
|
|
34
|
+
is_static: call.isStatic
|
|
35
|
+
}));
|
|
36
|
+
/* eslint-enable camelcase */ return {
|
|
37
37
|
encodedFunctionCalls,
|
|
38
|
-
hashedArguments
|
|
38
|
+
hashedArguments
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
-
/* eslint-disable camelcase */
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
*/
|
|
46
|
-
get function_calls() {
|
|
41
|
+
/* eslint-disable camelcase */ /**
|
|
42
|
+
* The function calls to execute. This uses snake_case naming so that it is compatible with Noir encoding
|
|
43
|
+
* @internal
|
|
44
|
+
*/ get function_calls() {
|
|
47
45
|
return this.functionCalls;
|
|
48
46
|
}
|
|
49
|
-
/* eslint-enable camelcase */
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
*/
|
|
54
|
-
get nonce() {
|
|
47
|
+
/* eslint-enable camelcase */ /**
|
|
48
|
+
* The nonce
|
|
49
|
+
* @internal
|
|
50
|
+
*/ get nonce() {
|
|
55
51
|
return this._nonce;
|
|
56
52
|
}
|
|
57
53
|
/**
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
get hashedArguments() {
|
|
54
|
+
* The hashed arguments for the function calls
|
|
55
|
+
*/ get hashedArguments() {
|
|
61
56
|
return this._hashedArguments;
|
|
62
57
|
}
|
|
63
58
|
/**
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
hash() {
|
|
59
|
+
* Hashes the payload
|
|
60
|
+
* @returns The hash of the payload
|
|
61
|
+
*/ hash() {
|
|
68
62
|
return poseidon2HashWithSeparator(this.toFields(), this.generatorIndex);
|
|
69
63
|
}
|
|
70
|
-
/** Serializes the function calls to an array of fields. */
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
]);
|
|
64
|
+
/** Serializes the function calls to an array of fields. */ functionCallsToFields() {
|
|
65
|
+
return this.functionCalls.flatMap((call)=>[
|
|
66
|
+
call.args_hash,
|
|
67
|
+
call.function_selector,
|
|
68
|
+
call.target_address,
|
|
69
|
+
new Fr(call.is_public),
|
|
70
|
+
new Fr(call.is_static)
|
|
71
|
+
]);
|
|
79
72
|
}
|
|
80
73
|
/**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
static async fromFunctionCalls(functionCalls) {
|
|
74
|
+
* Creates an execution payload for a dapp from a set of function calls
|
|
75
|
+
* @param functionCalls - The function calls to execute
|
|
76
|
+
* @returns The execution payload
|
|
77
|
+
*/ static async fromFunctionCalls(functionCalls) {
|
|
86
78
|
const { encodedFunctionCalls, hashedArguments } = await this.create(functionCalls);
|
|
87
79
|
return new AppEntrypointPayload(encodedFunctionCalls, hashedArguments, 0, Fr.random());
|
|
88
80
|
}
|
|
89
81
|
/**
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
static async fromAppExecution(functionCalls, nonce = Fr.random()) {
|
|
82
|
+
* Creates an execution payload for the app-portion of a transaction from a set of function calls
|
|
83
|
+
* @param functionCalls - The function calls to execute
|
|
84
|
+
* @param nonce - The nonce for the payload, used to emit a nullifier identifying the call
|
|
85
|
+
* @returns The execution payload
|
|
86
|
+
*/ static async fromAppExecution(functionCalls, nonce = Fr.random()) {
|
|
96
87
|
if (functionCalls.length > APP_MAX_CALLS) {
|
|
97
88
|
throw new Error(`Expected at most ${APP_MAX_CALLS} function calls, got ${functionCalls.length}`);
|
|
98
89
|
}
|
|
@@ -101,13 +92,12 @@ export class EntrypointPayload {
|
|
|
101
92
|
return new AppEntrypointPayload(encodedFunctionCalls, hashedArguments, GeneratorIndex.SIGNATURE_PAYLOAD, nonce);
|
|
102
93
|
}
|
|
103
94
|
/**
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
const calls = (await feeOpts?.paymentMethod.getFunctionCalls(feeOpts?.gasSettings)) ?? [];
|
|
95
|
+
* Creates an execution payload to pay the fee for a transaction
|
|
96
|
+
* @param sender - The address sending this payload
|
|
97
|
+
* @param feeOpts - The fee payment options
|
|
98
|
+
* @returns The execution payload
|
|
99
|
+
*/ static async fromFeeOptions(sender, feeOpts) {
|
|
100
|
+
const calls = await feeOpts?.paymentMethod.getFunctionCalls(feeOpts?.gasSettings) ?? [];
|
|
111
101
|
const feePayer = await feeOpts?.paymentMethod.getFeePayer(feeOpts?.gasSettings);
|
|
112
102
|
const isFeePayer = !!feePayer && feePayer.equals(sender);
|
|
113
103
|
const paddedCalls = padArrayEnd(calls, FunctionCall.empty(), FEE_MAX_CALLS);
|
|
@@ -115,36 +105,39 @@ export class EntrypointPayload {
|
|
|
115
105
|
return new FeeEntrypointPayload(encodedFunctionCalls, hashedArguments, GeneratorIndex.FEE_PAYLOAD, Fr.random(), isFeePayer);
|
|
116
106
|
}
|
|
117
107
|
}
|
|
118
|
-
/** Entrypoint payload for app phase execution. */
|
|
119
|
-
class AppEntrypointPayload extends EntrypointPayload {
|
|
108
|
+
/** Entrypoint payload for app phase execution. */ class AppEntrypointPayload extends EntrypointPayload {
|
|
120
109
|
toFields() {
|
|
121
|
-
return [
|
|
110
|
+
return [
|
|
111
|
+
...this.functionCallsToFields(),
|
|
112
|
+
this.nonce
|
|
113
|
+
];
|
|
122
114
|
}
|
|
123
115
|
}
|
|
124
|
-
/** Entrypoint payload for fee payment to be run during setup phase. */
|
|
125
|
-
|
|
126
|
-
constructor(functionCalls, hashedArguments, generatorIndex, nonce, isFeePayer)
|
|
116
|
+
/** Entrypoint payload for fee payment to be run during setup phase. */ class FeeEntrypointPayload extends EntrypointPayload {
|
|
117
|
+
#isFeePayer;
|
|
118
|
+
constructor(functionCalls, hashedArguments, generatorIndex, nonce, isFeePayer){
|
|
127
119
|
super(functionCalls, hashedArguments, generatorIndex, nonce);
|
|
128
|
-
|
|
129
|
-
__classPrivateFieldSet(this, _FeeEntrypointPayload_isFeePayer, isFeePayer, "f");
|
|
120
|
+
this.#isFeePayer = isFeePayer;
|
|
130
121
|
}
|
|
131
122
|
toFields() {
|
|
132
|
-
return [
|
|
123
|
+
return [
|
|
124
|
+
...this.functionCallsToFields(),
|
|
125
|
+
this.nonce,
|
|
126
|
+
new Fr(this.#isFeePayer)
|
|
127
|
+
];
|
|
133
128
|
}
|
|
134
|
-
/* eslint-disable camelcase */
|
|
135
|
-
|
|
136
|
-
get is_fee_payer() {
|
|
137
|
-
return __classPrivateFieldGet(this, _FeeEntrypointPayload_isFeePayer, "f");
|
|
129
|
+
/* eslint-disable camelcase */ /** Whether the sender should be appointed as fee payer. */ get is_fee_payer() {
|
|
130
|
+
return this.#isFeePayer;
|
|
138
131
|
}
|
|
139
132
|
}
|
|
140
|
-
_FeeEntrypointPayload_isFeePayer = new WeakMap();
|
|
141
133
|
/**
|
|
142
134
|
* Computes a hash of a combined payload.
|
|
143
135
|
* @param appPayload - An app payload.
|
|
144
136
|
* @param feePayload - A fee payload.
|
|
145
137
|
* @returns A hash of a combined payload.
|
|
146
|
-
*/
|
|
147
|
-
|
|
148
|
-
|
|
138
|
+
*/ export async function computeCombinedPayloadHash(appPayload, feePayload) {
|
|
139
|
+
return poseidon2HashWithSeparator([
|
|
140
|
+
await appPayload.hash(),
|
|
141
|
+
await feePayload.hash()
|
|
142
|
+
], GeneratorIndex.COMBINED_PAYLOAD);
|
|
149
143
|
}
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRyeXBvaW50L3BheWxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xFLE9BQU8sRUFBcUIsRUFBRSxFQUFvQixjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBOEJ0RSwwQ0FBMEM7QUFDMUMsdURBQXVEO0FBQ3ZELE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQztBQUN4QiwyREFBMkQ7QUFDM0QsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDO0FBZ0J4Qiw2QkFBNkI7QUFFN0Isc0NBQXNDO0FBQ3RDLE1BQU0sT0FBZ0IsaUJBQWlCO0lBQ3JDLFlBQ1UsYUFBb0MsRUFDcEMsZ0JBQWdDLEVBQ2hDLGNBQXNCLEVBQ3RCLE1BQVU7UUFIVixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFnQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFJO0lBQ2pCLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUE2QjtRQUN6RCxNQUFNLGVBQWUsR0FBbUIsRUFBRSxDQUFDO1FBQzNDLEtBQUssTUFBTSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7WUFDakMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELDhC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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { FunctionCall } from '@aztec/stdlib/abi';
|
|
2
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
import type { FeePaymentMethod } from './fee_payment_method.js';
|
|
4
4
|
/**
|
|
5
5
|
* Pay fee directly in the Fee Juice.
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee_juice_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/fee_juice_payment_method.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fee_juice_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/fee_juice_payment_method.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE;;GAEG;AACH,qBAAa,qBAAsB,YAAW,gBAAgB;IAEhD,SAAS,CAAC,MAAM,EAAE,YAAY;gBAApB,MAAM,EAAE,YAAY;IAE1C,QAAQ;IAIR,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAI3C,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC;CAGrC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
2
|
+
// docs:start:fee_juice_method
|
|
2
3
|
/**
|
|
3
4
|
* Pay fee directly in the Fee Juice.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
*/ export class FeeJuicePaymentMethod {
|
|
6
|
+
sender;
|
|
7
|
+
// docs:end:fee_juice_method
|
|
8
|
+
constructor(sender){
|
|
7
9
|
this.sender = sender;
|
|
8
10
|
}
|
|
9
11
|
getAsset() {
|
|
@@ -16,4 +18,3 @@ export class FeeJuicePaymentMethod {
|
|
|
16
18
|
return Promise.resolve(this.sender);
|
|
17
19
|
}
|
|
18
20
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2p1aWNlX3BheW1lbnRfbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZlZS9mZWVfanVpY2VfcGF5bWVudF9tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJcEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQXNCLE1BQW9CO1FBQXBCLFdBQU0sR0FBTixNQUFNLENBQWM7SUFBRyxDQUFDO0lBRTlDLFFBQVE7UUFDTixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNGIn0=
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { FunctionCall } from '@aztec/stdlib/abi';
|
|
2
|
+
import type { L2AmountClaim } from '../api/ethereum/portal_manager.js';
|
|
3
|
+
import type { Wallet } from '../wallet/index.js';
|
|
4
4
|
import { FeeJuicePaymentMethod } from './fee_juice_payment_method.js';
|
|
5
5
|
/**
|
|
6
6
|
* Pay fee directly with Fee Juice claimed on the same tx.
|
|
7
7
|
*/
|
|
8
8
|
export declare class FeeJuicePaymentMethodWithClaim extends FeeJuicePaymentMethod {
|
|
9
|
+
private senderWallet;
|
|
9
10
|
private claim;
|
|
10
|
-
constructor(
|
|
11
|
+
constructor(senderWallet: Wallet, claim: Pick<L2AmountClaim, 'claimAmount' | 'claimSecret' | 'messageLeafIndex'>);
|
|
11
12
|
/**
|
|
12
13
|
* Creates a function call to pay the fee in Fee Juice.
|
|
13
14
|
* @returns A function call
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee_juice_payment_method_with_claim.d.ts","sourceRoot":"","sources":["../../src/fee/fee_juice_payment_method_with_claim.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fee_juice_payment_method_with_claim.d.ts","sourceRoot":"","sources":["../../src/fee/fee_juice_payment_method_with_claim.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE;;GAEG;AACH,qBAAa,8BAA+B,SAAQ,qBAAqB;IAErE,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,KAAK;gBADL,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,GAAG,aAAa,GAAG,kBAAkB,CAAC;IAKxF;;;OAGG;IACY,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;CAuB3D"}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import { Fr
|
|
2
|
-
import { FunctionType, U128 } from '@aztec/foundation/abi';
|
|
1
|
+
import { Fr } from '@aztec/foundation/fields';
|
|
3
2
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
4
|
-
import {
|
|
3
|
+
import { FunctionSelector, FunctionType } from '@aztec/stdlib/abi';
|
|
4
|
+
import { getFeeJuice } from '../contract/protocol_contracts.js';
|
|
5
5
|
import { FeeJuicePaymentMethod } from './fee_juice_payment_method.js';
|
|
6
6
|
/**
|
|
7
7
|
* Pay fee directly with Fee Juice claimed on the same tx.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
this.claim = claim;
|
|
8
|
+
*/ export class FeeJuicePaymentMethodWithClaim extends FeeJuicePaymentMethod {
|
|
9
|
+
senderWallet;
|
|
10
|
+
claim;
|
|
11
|
+
constructor(senderWallet, claim){
|
|
12
|
+
super(senderWallet.getAddress()), this.senderWallet = senderWallet, this.claim = claim;
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
const selector = await FunctionSelector.fromNameAndParameters(canonicalFeeJuice.artifact.functions.find(f => f.name === 'claim'));
|
|
15
|
+
* Creates a function call to pay the fee in Fee Juice.
|
|
16
|
+
* @returns A function call
|
|
17
|
+
*/ async getFunctionCalls() {
|
|
18
|
+
const canonicalFeeJuice = await getFeeJuice(this.senderWallet);
|
|
19
|
+
const selector = await FunctionSelector.fromNameAndParameters(canonicalFeeJuice.artifact.functions.find((f)=>f.name === 'claim'));
|
|
21
20
|
return Promise.resolve([
|
|
22
21
|
{
|
|
23
22
|
to: ProtocolContractAddress.FeeJuice,
|
|
@@ -25,15 +24,14 @@ export class FeeJuicePaymentMethodWithClaim extends FeeJuicePaymentMethod {
|
|
|
25
24
|
selector,
|
|
26
25
|
isStatic: false,
|
|
27
26
|
args: [
|
|
28
|
-
this.
|
|
29
|
-
|
|
27
|
+
this.senderWallet.getAddress().toField(),
|
|
28
|
+
new Fr(this.claim.claimAmount),
|
|
30
29
|
this.claim.claimSecret,
|
|
31
|
-
new Fr(this.claim.messageLeafIndex)
|
|
30
|
+
new Fr(this.claim.messageLeafIndex)
|
|
32
31
|
],
|
|
33
32
|
returnTypes: [],
|
|
34
|
-
type: FunctionType.PRIVATE
|
|
35
|
-
}
|
|
33
|
+
type: FunctionType.PRIVATE
|
|
34
|
+
}
|
|
36
35
|
]);
|
|
37
36
|
}
|
|
38
37
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlX2p1aWNlX3BheW1lbnRfbWV0aG9kX3dpdGhfY2xhaW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmVlL2ZlZV9qdWljZV9wYXltZW50X21ldGhvZF93aXRoX2NsYWltLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBcUIsRUFBRSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUczRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUV0RTs7R0FFRztBQUNILE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxxQkFBcUI7SUFDdkUsWUFDRSxNQUFvQixFQUNaLEtBQThFO1FBRXRGLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUZOLFVBQUssR0FBTCxLQUFLLENBQXlFO0lBR3hGLENBQUM7SUFFRDs7O09BR0c7SUFDTSxLQUFLLENBQUMsZ0JBQWdCO1FBQzdCLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMscUJBQXFCLENBQzNELGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUUsQ0FDcEUsQ0FBQztRQUVGLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNyQjtnQkFDRSxFQUFFLEVBQUUsdUJBQXVCLENBQUMsUUFBUTtnQkFDcEMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsUUFBUTtnQkFDUixRQUFRLEVBQUUsS0FBSztnQkFDZixJQUFJLEVBQUU7b0JBQ0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ3JCLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUU7b0JBQzlDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVztvQkFDdEIsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDcEM7Z0JBQ0QsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxFQUFFLFlBQVksQ0FBQyxPQUFPO2FBQzNCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import type { FunctionCall } from '@aztec/stdlib/abi';
|
|
2
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
4
4
|
/**
|
|
5
5
|
* Holds information about how the fee for a transaction is to be paid.
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fee_payment_method.d.ts","sourceRoot":"","sources":["../../src/fee/fee_payment_method.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC;;;;OAIG;IACH,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE;;;OAGG;IACH,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC9D"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Holds information about how the fee for a transaction is to be paid.
|
|
3
|
+
*/ export { };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type FunctionCall } from '@aztec/
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { type FunctionCall } from '@aztec/stdlib/abi';
|
|
2
|
+
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
|
+
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
4
|
+
import type { Wallet } from '../account/wallet.js';
|
|
5
|
+
import type { FeePaymentMethod } from './fee_payment_method.js';
|
|
6
6
|
/**
|
|
7
7
|
* Holds information about how the fee for a transaction is to be paid.
|
|
8
8
|
*/
|