@aztec/aztec.js 0.80.0 → 0.82.0

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.
Files changed (185) hide show
  1. package/dest/account/{contract.d.ts → account_contract.d.ts} +11 -5
  2. package/dest/account/account_contract.d.ts.map +1 -0
  3. package/dest/account/{contract.js → account_contract.js} +5 -1
  4. package/dest/account/index.d.ts +2 -3
  5. package/dest/account/index.d.ts.map +1 -1
  6. package/dest/account/index.js +1 -2
  7. package/dest/account/interface.d.ts +1 -13
  8. package/dest/account/interface.d.ts.map +1 -1
  9. package/dest/account/interface.js +1 -0
  10. package/dest/account_manager/account_manager.d.ts +105 -0
  11. package/dest/account_manager/account_manager.d.ts.map +1 -0
  12. package/dest/account_manager/account_manager.js +165 -0
  13. package/dest/account_manager/deploy_account_method.d.ts +4 -4
  14. package/dest/account_manager/deploy_account_method.d.ts.map +1 -1
  15. package/dest/account_manager/deploy_account_method.js +28 -13
  16. package/dest/account_manager/deploy_account_sent_tx.d.ts +3 -3
  17. package/dest/account_manager/deploy_account_sent_tx.d.ts.map +1 -1
  18. package/dest/account_manager/deploy_account_sent_tx.js +2 -2
  19. package/dest/account_manager/index.d.ts +1 -104
  20. package/dest/account_manager/index.d.ts.map +1 -1
  21. package/dest/account_manager/index.js +1 -157
  22. package/dest/api/account.d.ts +2 -1
  23. package/dest/api/account.d.ts.map +1 -1
  24. package/dest/api/contract.d.ts +4 -1
  25. package/dest/api/contract.d.ts.map +1 -1
  26. package/dest/api/contract.js +3 -0
  27. package/dest/api/fee.d.ts +1 -1
  28. package/dest/api/fee.d.ts.map +1 -1
  29. package/dest/api/utils.d.ts +2 -1
  30. package/dest/api/utils.d.ts.map +1 -1
  31. package/dest/api/utils.js +2 -1
  32. package/dest/api/wallet.d.ts +1 -1
  33. package/dest/api/wallet.d.ts.map +1 -1
  34. package/dest/contract/base_contract_interaction.d.ts +22 -57
  35. package/dest/contract/base_contract_interaction.d.ts.map +1 -1
  36. package/dest/contract/base_contract_interaction.js +12 -67
  37. package/dest/contract/batch_call.d.ts +6 -18
  38. package/dest/contract/batch_call.d.ts.map +1 -1
  39. package/dest/contract/batch_call.js +25 -54
  40. package/dest/contract/contract.d.ts +1 -1
  41. package/dest/contract/contract.d.ts.map +1 -1
  42. package/dest/contract/contract_base.d.ts +2 -2
  43. package/dest/contract/contract_base.d.ts.map +1 -1
  44. package/dest/contract/contract_function_interaction.d.ts +38 -18
  45. package/dest/contract/contract_function_interaction.d.ts.map +1 -1
  46. package/dest/contract/contract_function_interaction.js +34 -41
  47. package/dest/contract/deploy_method.d.ts +7 -8
  48. package/dest/contract/deploy_method.d.ts.map +1 -1
  49. package/dest/contract/deploy_method.js +27 -32
  50. package/dest/contract/deploy_proven_tx.d.ts +2 -3
  51. package/dest/contract/deploy_proven_tx.d.ts.map +1 -1
  52. package/dest/contract/deploy_sent_tx.d.ts +2 -3
  53. package/dest/contract/deploy_sent_tx.d.ts.map +1 -1
  54. package/dest/contract/deploy_sent_tx.js +4 -4
  55. package/dest/contract/protocol_contracts.d.ts +1 -1
  56. package/dest/contract/protocol_contracts.d.ts.map +1 -1
  57. package/dest/contract/proven_tx.d.ts +3 -4
  58. package/dest/contract/proven_tx.d.ts.map +1 -1
  59. package/dest/contract/sent_tx.d.ts +4 -16
  60. package/dest/contract/sent_tx.d.ts.map +1 -1
  61. package/dest/contract/sent_tx.js +6 -37
  62. package/dest/contract/unsafe_contract.d.ts +1 -1
  63. package/dest/contract/unsafe_contract.d.ts.map +1 -1
  64. package/dest/contract/wait_for_proven.d.ts +17 -0
  65. package/dest/contract/wait_for_proven.d.ts.map +1 -0
  66. package/dest/contract/wait_for_proven.js +17 -0
  67. package/dest/deployment/broadcast_function.js +12 -8
  68. package/dest/deployment/contract_deployer.d.ts +1 -1
  69. package/dest/deployment/contract_deployer.d.ts.map +1 -1
  70. package/dest/deployment/register_class.d.ts +1 -1
  71. package/dest/deployment/register_class.d.ts.map +1 -1
  72. package/dest/deployment/register_class.js +6 -11
  73. package/dest/entrypoint/default_multi_call_entrypoint.d.ts +3 -2
  74. package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +1 -1
  75. package/dest/entrypoint/default_multi_call_entrypoint.js +12 -8
  76. package/dest/ethereum/portal_manager.d.ts +20 -11
  77. package/dest/ethereum/portal_manager.d.ts.map +1 -1
  78. package/dest/ethereum/portal_manager.js +64 -30
  79. package/dest/fee/fee_juice_payment_method.d.ts +3 -3
  80. package/dest/fee/fee_juice_payment_method.d.ts.map +1 -1
  81. package/dest/fee/fee_juice_payment_method.js +3 -2
  82. package/dest/fee/fee_juice_payment_method_with_claim.d.ts +4 -4
  83. package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +1 -1
  84. package/dest/fee/fee_juice_payment_method_with_claim.js +6 -5
  85. package/dest/fee/private_fee_payment_method.d.ts +6 -6
  86. package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
  87. package/dest/fee/private_fee_payment_method.js +13 -12
  88. package/dest/fee/public_fee_payment_method.d.ts +7 -7
  89. package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
  90. package/dest/fee/public_fee_payment_method.js +10 -11
  91. package/dest/fee/utils.d.ts +13 -0
  92. package/dest/fee/utils.d.ts.map +1 -0
  93. package/dest/fee/utils.js +32 -0
  94. package/dest/index.d.ts +1 -1
  95. package/dest/index.d.ts.map +1 -1
  96. package/dest/index.js +1 -1
  97. package/dest/test/aztec_cheat_codes.d.ts +2 -2
  98. package/dest/test/aztec_cheat_codes.d.ts.map +1 -1
  99. package/dest/test/aztec_cheat_codes.js +3 -3
  100. package/dest/utils/authwit.d.ts +16 -9
  101. package/dest/utils/authwit.d.ts.map +1 -1
  102. package/dest/utils/authwit.js +26 -35
  103. package/dest/wallet/account_wallet.d.ts +6 -6
  104. package/dest/wallet/account_wallet.d.ts.map +1 -1
  105. package/dest/wallet/account_wallet.js +15 -17
  106. package/dest/wallet/base_wallet.d.ts +12 -35
  107. package/dest/wallet/base_wallet.d.ts.map +1 -1
  108. package/dest/wallet/base_wallet.js +11 -64
  109. package/dest/wallet/index.d.ts +2 -2
  110. package/dest/wallet/index.d.ts.map +1 -1
  111. package/dest/wallet/index.js +1 -1
  112. package/dest/wallet/signerless_wallet.d.ts +3 -3
  113. package/dest/wallet/signerless_wallet.d.ts.map +1 -1
  114. package/dest/wallet/signerless_wallet.js +3 -6
  115. package/dest/wallet/wallet.d.ts +11 -0
  116. package/dest/wallet/wallet.d.ts.map +1 -0
  117. package/package.json +8 -7
  118. package/src/account/{contract.ts → account_contract.ts} +17 -4
  119. package/src/account/index.ts +2 -3
  120. package/src/account/interface.ts +1 -12
  121. package/src/account_manager/account_manager.ts +235 -0
  122. package/src/account_manager/deploy_account_method.ts +35 -15
  123. package/src/account_manager/deploy_account_sent_tx.ts +4 -4
  124. package/src/account_manager/index.ts +1 -227
  125. package/src/api/account.ts +2 -8
  126. package/src/api/contract.ts +5 -5
  127. package/src/api/fee.ts +1 -1
  128. package/src/api/utils.ts +1 -1
  129. package/src/api/wallet.ts +7 -1
  130. package/src/contract/base_contract_interaction.ts +32 -88
  131. package/src/contract/batch_call.ts +40 -43
  132. package/src/contract/contract.ts +1 -1
  133. package/src/contract/contract_base.ts +1 -1
  134. package/src/contract/contract_function_interaction.ts +85 -56
  135. package/src/contract/deploy_method.ts +24 -26
  136. package/src/contract/deploy_proven_tx.ts +2 -3
  137. package/src/contract/deploy_sent_tx.ts +6 -6
  138. package/src/contract/protocol_contracts.ts +1 -1
  139. package/src/contract/proven_tx.ts +2 -3
  140. package/src/contract/sent_tx.ts +6 -47
  141. package/src/contract/unsafe_contract.ts +1 -1
  142. package/src/contract/wait_for_proven.ts +38 -0
  143. package/src/deployment/broadcast_function.ts +40 -40
  144. package/src/deployment/contract_deployer.ts +1 -1
  145. package/src/deployment/register_class.ts +9 -22
  146. package/src/entrypoint/default_multi_call_entrypoint.ts +14 -7
  147. package/src/ethereum/portal_manager.ts +73 -24
  148. package/src/fee/fee_juice_payment_method.ts +4 -5
  149. package/src/fee/fee_juice_payment_method_with_claim.ts +24 -20
  150. package/src/fee/private_fee_payment_method.ts +29 -28
  151. package/src/fee/public_fee_payment_method.ts +29 -29
  152. package/src/fee/utils.ts +39 -0
  153. package/src/index.ts +1 -1
  154. package/src/test/aztec_cheat_codes.ts +3 -3
  155. package/src/utils/authwit.ts +32 -35
  156. package/src/wallet/account_wallet.ts +18 -17
  157. package/src/wallet/base_wallet.ts +27 -88
  158. package/src/wallet/index.ts +2 -2
  159. package/src/wallet/signerless_wallet.ts +9 -8
  160. package/src/wallet/wallet.ts +34 -0
  161. package/dest/account/contract.d.ts.map +0 -1
  162. package/dest/account/wallet.d.ts +0 -11
  163. package/dest/account/wallet.d.ts.map +0 -1
  164. package/dest/api/entrypoint.d.ts +0 -2
  165. package/dest/api/entrypoint.d.ts.map +0 -1
  166. package/dest/api/entrypoint.js +0 -1
  167. package/dest/entrypoint/default_entrypoint.d.ts +0 -12
  168. package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
  169. package/dest/entrypoint/default_entrypoint.js +0 -28
  170. package/dest/entrypoint/entrypoint.d.ts +0 -39
  171. package/dest/entrypoint/entrypoint.d.ts.map +0 -1
  172. package/dest/entrypoint/entrypoint.js +0 -20
  173. package/dest/entrypoint/payload.d.ts +0 -128
  174. package/dest/entrypoint/payload.d.ts.map +0 -1
  175. package/dest/entrypoint/payload.js +0 -143
  176. package/dest/fee/fee_payment_method.d.ts +0 -22
  177. package/dest/fee/fee_payment_method.d.ts.map +0 -1
  178. package/dest/fee/fee_payment_method.js +0 -3
  179. package/src/account/wallet.ts +0 -13
  180. package/src/api/entrypoint.ts +0 -1
  181. package/src/entrypoint/default_entrypoint.ts +0 -39
  182. package/src/entrypoint/entrypoint.ts +0 -60
  183. package/src/entrypoint/payload.ts +0 -238
  184. package/src/fee/fee_payment_method.ts +0 -22
  185. /package/dest/{account → wallet}/wallet.js +0 -0
@@ -1,7 +1,6 @@
1
- import { GeneratorIndex } from '@aztec/constants';
2
- import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto';
3
1
  import { Fr } from '@aztec/foundation/fields';
4
2
  import type { FunctionCall } from '@aztec/stdlib/abi';
3
+ import { computeInnerAuthWitHash, computeOuterAuthWitHash } from '@aztec/stdlib/auth-witness';
5
4
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
6
5
  import { HashedValues } from '@aztec/stdlib/tx';
7
6
 
@@ -58,13 +57,13 @@ export const computeAuthWitMessageHash = async (intent: IntentInnerHash | Intent
58
57
  const version = metadata.version;
59
58
 
60
59
  if ('caller' in intent) {
61
- const action =
60
+ const fnCall =
62
61
  intent.action instanceof ContractFunctionInteraction ? (await intent.action.request()).calls[0] : intent.action;
63
62
  return computeOuterAuthWitHash(
64
- action.to,
63
+ fnCall.to,
65
64
  chainId,
66
65
  version,
67
- await computeInnerAuthWitHashFromAction(intent.caller, action),
66
+ await computeInnerAuthWitHashFromFunctionCall(intent.caller, fnCall),
68
67
  );
69
68
  } else {
70
69
  const inner = Buffer.isBuffer(intent.innerHash) ? Fr.fromBuffer(intent.innerHash) : intent.innerHash;
@@ -73,39 +72,37 @@ export const computeAuthWitMessageHash = async (intent: IntentInnerHash | Intent
73
72
  };
74
73
  // docs:end:authwit_computeAuthWitMessageHash
75
74
 
76
- export const computeInnerAuthWitHashFromAction = async (caller: AztecAddress, action: FunctionCall) =>
77
- computeInnerAuthWitHash([
75
+ /**
76
+ * Computes the inner authwitness hash for a function call, for it to later be combined with the metadata
77
+ * required for the outer hash and eventually the full AuthWitness.
78
+ * @param caller - Who is going to be calling the function
79
+ * @param fnCall - The function call to compute the inner hash from
80
+ * @returns The inner hash for the function call
81
+ **/
82
+ export const computeInnerAuthWitHashFromFunctionCall = async (caller: AztecAddress, fnCall: FunctionCall) => {
83
+ return computeInnerAuthWitHash([
78
84
  caller.toField(),
79
- action.selector.toField(),
80
- (await HashedValues.fromValues(action.args)).hash,
85
+ fnCall.selector.toField(),
86
+ (await HashedValues.fromValues(fnCall.args)).hash,
81
87
  ]);
82
-
83
- /**
84
- * Compute the inner hash for an authentication witness.
85
- * This is the "intent" of the message, before siloed with the consumer.
86
- * It is used as part of the `computeAuthWitMessageHash` but can also be used
87
- * in case the message is not a "call" to a function, but arbitrary data.
88
- * @param args - The arguments to hash
89
- * @returns The inner hash for the witness
90
- */
91
- export const computeInnerAuthWitHash = (args: Fr[]) => {
92
- return poseidon2HashWithSeparator(args, GeneratorIndex.AUTHWIT_INNER);
93
88
  };
94
89
 
95
90
  /**
96
- * Compute the outer hash for an authentication witness.
97
- * This is the value siloed with its "consumer" and what the `on_behalf_of`
98
- * should be signing.
99
- * The consumer is who will be consuming the message, for token approvals it
100
- * is the token contract itself (because the token makes the call to check the approval).
101
- * It is used as part of the `computeAuthWitMessageHash` but can also be used
102
- * in case the message is not a "call" to a function, but arbitrary data.
103
- * @param consumer - The address that can "consume" the authwit
104
- * @param chainId - The chain id that can "consume" the authwit
105
- * @param version - The version that can "consume" the authwit
106
- * @param innerHash - The inner hash for the witness
107
- * @returns The outer hash for the witness
108
- */
109
- const computeOuterAuthWitHash = (consumer: AztecAddress, chainId: Fr, version: Fr, innerHash: Fr) => {
110
- return poseidon2HashWithSeparator([consumer.toField(), chainId, version, innerHash], GeneratorIndex.AUTHWIT_OUTER);
91
+ * Computes the inner authwitness hash for an action, that can either be a ContractFunctionInteraction
92
+ * or an isolated FunctionCall. Since the former is just a wrapper around the latter, we can just extract
93
+ * the first (and only) call from the ContractFunctionInteraction and use it to compute the inner hash.
94
+ * @param caller - Who is going to be performing the action
95
+ * @param action - The ContractFunctionInteraction or FunctionCall to compute the inner hash for
96
+ * @returns The inner hash for the action
97
+ **/
98
+ export const computeInnerAuthWitHashFromAction = async (
99
+ caller: AztecAddress,
100
+ action: FunctionCall | ContractFunctionInteraction,
101
+ ) => {
102
+ action = action instanceof ContractFunctionInteraction ? (await action.request()).calls[0] : action;
103
+ return computeInnerAuthWitHash([
104
+ caller.toField(),
105
+ action.selector.toField(),
106
+ (await HashedValues.fromValues(action.args)).hash,
107
+ ]);
111
108
  };
@@ -1,14 +1,15 @@
1
+ import type { FeeOptions, TxExecutionOptions } from '@aztec/entrypoints/interfaces';
2
+ import type { ExecutionPayload } from '@aztec/entrypoints/payload';
1
3
  import { Fr } from '@aztec/foundation/fields';
2
4
  import { ProtocolContractAddress } from '@aztec/protocol-contracts';
3
5
  import { type ABIParameterVisibility, type FunctionAbi, FunctionType } from '@aztec/stdlib/abi';
4
- import type { AuthWitness } from '@aztec/stdlib/auth-witness';
6
+ import { AuthWitness } from '@aztec/stdlib/auth-witness';
5
7
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
6
8
  import type { PXE } from '@aztec/stdlib/interfaces/client';
7
9
  import type { TxExecutionRequest } from '@aztec/stdlib/tx';
8
10
 
9
11
  import type { AccountInterface } from '../account/interface.js';
10
12
  import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
11
- import type { ExecutionRequestInit } from '../entrypoint/entrypoint.js';
12
13
  import {
13
14
  type IntentAction,
14
15
  type IntentInnerHash,
@@ -22,11 +23,15 @@ import { BaseWallet } from './base_wallet.js';
22
23
  */
23
24
  export class AccountWallet extends BaseWallet {
24
25
  constructor(pxe: PXE, protected account: AccountInterface) {
25
- super(pxe, [account.getAddress()]);
26
+ super(pxe);
26
27
  }
27
28
 
28
- createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest> {
29
- return this.account.createTxExecutionRequest(exec);
29
+ createTxExecutionRequest(
30
+ exec: ExecutionPayload,
31
+ fee: FeeOptions,
32
+ options: TxExecutionOptions,
33
+ ): Promise<TxExecutionRequest> {
34
+ return this.account.createTxExecutionRequest(exec, fee, options);
30
35
  }
31
36
 
32
37
  getChainId(): Fr {
@@ -37,10 +42,6 @@ export class AccountWallet extends BaseWallet {
37
42
  return this.account.getVersion();
38
43
  }
39
44
 
40
- override isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean> {
41
- return this.pxe.isL1ToL2MessageSynced(l1ToL2Message);
42
- }
43
-
44
45
  /**
45
46
  * Computes an authentication witness from either a message hash or an intent.
46
47
  *
@@ -61,9 +62,7 @@ export class AccountWallet extends BaseWallet {
61
62
  messageHash = await this.getMessageHash(messageHashOrIntent);
62
63
  }
63
64
 
64
- const witness = await this.account.createAuthWit(messageHash);
65
- await this.pxe.addAuthWitness(witness);
66
- return witness;
65
+ return this.account.createAuthWit(messageHash);
67
66
  }
68
67
 
69
68
  /**
@@ -132,12 +131,13 @@ export class AccountWallet extends BaseWallet {
132
131
  *
133
132
  * @param onBehalfOf - The address of the "approver"
134
133
  * @param intent - The consumer and inner hash or the caller and action to lookup
135
- *
134
+ * @param witness - The computed authentication witness to check
136
135
  * @returns - A struct containing the validity of the authwit in private and public contexts.
137
136
  */
138
137
  async lookupValidity(
139
138
  onBehalfOf: AztecAddress,
140
139
  intent: IntentInnerHash | IntentAction,
140
+ witness: AuthWitness,
141
141
  ): Promise<{
142
142
  /** boolean flag indicating if the authwit is valid in private context */
143
143
  isValidInPrivate: boolean;
@@ -150,13 +150,14 @@ export class AccountWallet extends BaseWallet {
150
150
  const results = { isValidInPrivate: false, isValidInPublic: false };
151
151
 
152
152
  // Check private
153
- const witness = await this.getAuthWitness(messageHash);
154
- if (witness !== undefined) {
153
+ try {
155
154
  results.isValidInPrivate = (await new ContractFunctionInteraction(this, onBehalfOf, this.getLookupValidityAbi(), [
156
155
  consumer,
157
156
  innerHash,
158
- ]).simulate()) as boolean;
159
- }
157
+ ]).simulate({ authWitnesses: [witness] })) as boolean;
158
+ // TODO: Narrow down the error to make sure simulation failed due to an invalid authwit
159
+ // eslint-disable-next-line no-empty
160
+ } catch {}
160
161
 
161
162
  // check public
162
163
  results.isValidInPublic = (await new ContractFunctionInteraction(
@@ -1,44 +1,37 @@
1
- import type { L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/constants';
1
+ import type { FeeOptions, TxExecutionOptions } from '@aztec/entrypoints/interfaces';
2
+ import type { ExecutionPayload } from '@aztec/entrypoints/payload';
2
3
  import type { Fr, Point } from '@aztec/foundation/fields';
3
- import type { SiblingPath } from '@aztec/foundation/trees';
4
4
  import type { AbiDecoded, ContractArtifact } from '@aztec/stdlib/abi';
5
5
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
6
6
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
7
- import type { L2Block } from '@aztec/stdlib/block';
8
- import type { CompleteAddress, ContractInstanceWithAddress, NodeInfo, PartialAddress } from '@aztec/stdlib/contract';
7
+ import type { CompleteAddress, ContractInstanceWithAddress, NodeInfo } from '@aztec/stdlib/contract';
9
8
  import type { GasFees } from '@aztec/stdlib/gas';
10
9
  import type {
11
10
  ContractClassMetadata,
12
11
  ContractMetadata,
13
12
  EventMetadataDefinition,
14
- GetContractClassLogsResponse,
15
- GetPublicLogsResponse,
16
13
  PXE,
17
14
  PXEInfo,
18
15
  } from '@aztec/stdlib/interfaces/client';
19
- import type { LogFilter } from '@aztec/stdlib/logs';
20
- import type { NotesFilter, UniqueNote } from '@aztec/stdlib/note';
21
16
  import type {
22
17
  PrivateExecutionResult,
23
18
  Tx,
24
19
  TxExecutionRequest,
25
20
  TxHash,
21
+ TxProfileResult,
26
22
  TxProvingResult,
27
23
  TxReceipt,
28
24
  TxSimulationResult,
29
25
  } from '@aztec/stdlib/tx';
30
26
 
31
- import type { Wallet } from '../account/wallet.js';
32
- import type { ExecutionRequestInit } from '../entrypoint/entrypoint.js';
33
27
  import type { IntentAction, IntentInnerHash } from '../utils/authwit.js';
28
+ import type { Wallet } from './wallet.js';
34
29
 
35
30
  /**
36
31
  * A base class for Wallet implementations
37
32
  */
38
33
  export abstract class BaseWallet implements Wallet {
39
- constructor(protected readonly pxe: PXE, private scopes?: AztecAddress[]) {}
40
-
41
- abstract isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean>;
34
+ constructor(protected readonly pxe: PXE) {}
42
35
 
43
36
  abstract getCompleteAddress(): CompleteAddress;
44
37
 
@@ -46,30 +39,18 @@ export abstract class BaseWallet implements Wallet {
46
39
 
47
40
  abstract getVersion(): Fr;
48
41
 
49
- abstract createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest>;
42
+ abstract createTxExecutionRequest(
43
+ exec: ExecutionPayload,
44
+ fee: FeeOptions,
45
+ options: TxExecutionOptions,
46
+ ): Promise<TxExecutionRequest>;
50
47
 
51
48
  abstract createAuthWit(intent: Fr | Buffer | IntentInnerHash | IntentAction): Promise<AuthWitness>;
52
49
 
53
- setScopes(scopes: AztecAddress[]) {
54
- this.scopes = scopes;
55
- }
56
-
57
- getScopes() {
58
- return this.scopes;
59
- }
60
-
61
50
  getAddress() {
62
51
  return this.getCompleteAddress().address;
63
52
  }
64
- storeCapsule(contract: AztecAddress, storageSlot: Fr, capsule: Fr[]): Promise<void> {
65
- return this.pxe.storeCapsule(contract, storageSlot, capsule);
66
- }
67
- registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress> {
68
- return this.pxe.registerAccount(secretKey, partialAddress);
69
- }
70
- getRegisteredAccounts(): Promise<CompleteAddress[]> {
71
- return this.pxe.getRegisteredAccounts();
72
- }
53
+
73
54
  registerSender(address: AztecAddress): Promise<AztecAddress> {
74
55
  return this.pxe.registerSender(address);
75
56
  }
@@ -91,48 +72,28 @@ export abstract class BaseWallet implements Wallet {
91
72
  updateContract(contractAddress: AztecAddress, artifact: ContractArtifact): Promise<void> {
92
73
  return this.pxe.updateContract(contractAddress, artifact);
93
74
  }
94
- getContracts(): Promise<AztecAddress[]> {
95
- return this.pxe.getContracts();
96
- }
97
75
  proveTx(txRequest: TxExecutionRequest, privateExecutionResult: PrivateExecutionResult): Promise<TxProvingResult> {
98
76
  return this.pxe.proveTx(txRequest, privateExecutionResult);
99
77
  }
78
+ profileTx(
79
+ txRequest: TxExecutionRequest,
80
+ profileMode: 'gates' | 'execution-steps' | 'full',
81
+ msgSender?: AztecAddress,
82
+ ): Promise<TxProfileResult> {
83
+ return this.pxe.profileTx(txRequest, profileMode, msgSender);
84
+ }
100
85
  simulateTx(
101
86
  txRequest: TxExecutionRequest,
102
87
  simulatePublic: boolean,
103
88
  msgSender?: AztecAddress,
104
89
  skipTxValidation?: boolean,
105
90
  skipFeeEnforcement?: boolean,
106
- profile?: boolean,
107
91
  ): Promise<TxSimulationResult> {
108
- return this.pxe.simulateTx(
109
- txRequest,
110
- simulatePublic,
111
- msgSender,
112
- skipTxValidation,
113
- skipFeeEnforcement,
114
- profile,
115
- this.scopes,
116
- );
92
+ return this.pxe.simulateTx(txRequest, simulatePublic, msgSender, skipTxValidation, skipFeeEnforcement);
117
93
  }
118
94
  sendTx(tx: Tx): Promise<TxHash> {
119
95
  return this.pxe.sendTx(tx);
120
96
  }
121
- getTxEffect(txHash: TxHash) {
122
- return this.pxe.getTxEffect(txHash);
123
- }
124
- getTxReceipt(txHash: TxHash): Promise<TxReceipt> {
125
- return this.pxe.getTxReceipt(txHash);
126
- }
127
- getNotes(filter: NotesFilter): Promise<UniqueNote[]> {
128
- return this.pxe.getNotes(filter);
129
- }
130
- getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<any> {
131
- return this.pxe.getPublicStorageAt(contract, storageSlot);
132
- }
133
- getBlock(number: number): Promise<L2Block | undefined> {
134
- return this.pxe.getBlock(number);
135
- }
136
97
  getCurrentBaseFees(): Promise<GasFees> {
137
98
  return this.pxe.getCurrentBaseFees();
138
99
  }
@@ -140,31 +101,14 @@ export abstract class BaseWallet implements Wallet {
140
101
  functionName: string,
141
102
  args: any[],
142
103
  to: AztecAddress,
104
+ authwits?: AuthWitness[],
143
105
  from?: AztecAddress | undefined,
144
106
  ): Promise<AbiDecoded> {
145
- return this.pxe.simulateUnconstrained(functionName, args, to, from);
146
- }
147
- getPublicLogs(filter: LogFilter): Promise<GetPublicLogsResponse> {
148
- return this.pxe.getPublicLogs(filter);
149
- }
150
- getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse> {
151
- return this.pxe.getContractClassLogs(filter);
152
- }
153
- getBlockNumber(): Promise<number> {
154
- return this.pxe.getBlockNumber();
155
- }
156
- getProvenBlockNumber(): Promise<number> {
157
- return this.pxe.getProvenBlockNumber();
107
+ return this.pxe.simulateUnconstrained(functionName, args, to, authwits, from);
158
108
  }
159
109
  getNodeInfo(): Promise<NodeInfo> {
160
110
  return this.pxe.getNodeInfo();
161
111
  }
162
- addAuthWitness(authWitness: AuthWitness) {
163
- return this.pxe.addAuthWitness(authWitness);
164
- }
165
- getAuthWitness(messageHash: Fr) {
166
- return this.pxe.getAuthWitness(messageHash);
167
- }
168
112
  getPXEInfo(): Promise<PXEInfo> {
169
113
  return this.pxe.getPXEInfo();
170
114
  }
@@ -174,6 +118,11 @@ export abstract class BaseWallet implements Wallet {
174
118
  getContractMetadata(address: AztecAddress): Promise<ContractMetadata> {
175
119
  return this.pxe.getContractMetadata(address);
176
120
  }
121
+
122
+ getTxReceipt(txHash: TxHash): Promise<TxReceipt> {
123
+ return this.pxe.getTxReceipt(txHash);
124
+ }
125
+
177
126
  getPrivateEvents<T>(
178
127
  event: EventMetadataDefinition,
179
128
  from: number,
@@ -185,14 +134,4 @@ export abstract class BaseWallet implements Wallet {
185
134
  getPublicEvents<T>(event: EventMetadataDefinition, from: number, limit: number): Promise<T[]> {
186
135
  return this.pxe.getPublicEvents(event, from, limit);
187
136
  }
188
- public getL1ToL2MembershipWitness(
189
- contractAddress: AztecAddress,
190
- messageHash: Fr,
191
- secret: Fr,
192
- ): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]> {
193
- return this.pxe.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
194
- }
195
- getL2ToL1MembershipWitness(blockNumber: number, l2Tol1Message: Fr): Promise<[bigint, SiblingPath<number>]> {
196
- return this.pxe.getL2ToL1MembershipWitness(blockNumber, l2Tol1Message);
197
- }
198
137
  }
@@ -1,10 +1,10 @@
1
1
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
2
2
  import type { PXE } from '@aztec/stdlib/interfaces/client';
3
3
 
4
- import type { AccountContract } from '../account/contract.js';
4
+ import type { AccountContract } from '../account/account_contract.js';
5
5
  import { AccountWallet } from './account_wallet.js';
6
6
 
7
- export * from '../account/wallet.js';
7
+ export * from './wallet.js';
8
8
  export * from './account_wallet.js';
9
9
  export * from './account_wallet_with_private_key.js';
10
10
  export * from './signerless_wallet.js';
@@ -1,11 +1,12 @@
1
+ import { DefaultEntrypoint } from '@aztec/entrypoints/default';
2
+ import type { EntrypointInterface, FeeOptions, TxExecutionOptions } from '@aztec/entrypoints/interfaces';
3
+ import type { ExecutionPayload } from '@aztec/entrypoints/payload';
1
4
  import type { Fr } from '@aztec/foundation/fields';
2
5
  import { AuthWitness } from '@aztec/stdlib/auth-witness';
3
6
  import type { CompleteAddress } from '@aztec/stdlib/contract';
4
7
  import type { PXE } from '@aztec/stdlib/interfaces/client';
5
8
  import type { TxExecutionRequest } from '@aztec/stdlib/tx';
6
9
 
7
- import { DefaultEntrypoint } from '../entrypoint/default_entrypoint.js';
8
- import type { EntrypointInterface, ExecutionRequestInit } from '../entrypoint/entrypoint.js';
9
10
  import type { IntentAction, IntentInnerHash } from '../utils/authwit.js';
10
11
  import { BaseWallet } from './base_wallet.js';
11
12
 
@@ -16,14 +17,18 @@ export class SignerlessWallet extends BaseWallet {
16
17
  constructor(pxe: PXE, private entrypoint?: EntrypointInterface) {
17
18
  super(pxe);
18
19
  }
19
- async createTxExecutionRequest(execution: ExecutionRequestInit): Promise<TxExecutionRequest> {
20
+ async createTxExecutionRequest(
21
+ execution: ExecutionPayload,
22
+ fee: FeeOptions,
23
+ options: TxExecutionOptions,
24
+ ): Promise<TxExecutionRequest> {
20
25
  let entrypoint = this.entrypoint;
21
26
  if (!entrypoint) {
22
27
  const { l1ChainId: chainId, protocolVersion } = await this.pxe.getNodeInfo();
23
28
  entrypoint = new DefaultEntrypoint(chainId, protocolVersion);
24
29
  }
25
30
 
26
- return entrypoint.createTxExecutionRequest(execution);
31
+ return entrypoint.createTxExecutionRequest(execution, fee, options);
27
32
  }
28
33
 
29
34
  getChainId(): Fr {
@@ -45,8 +50,4 @@ export class SignerlessWallet extends BaseWallet {
45
50
  createAuthWit(_intent: Fr | Buffer | IntentInnerHash | IntentAction): Promise<AuthWitness> {
46
51
  throw new Error('SignerlessWallet: Method createAuthWit not implemented.');
47
52
  }
48
-
49
- override isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean> {
50
- return this.pxe.isL1ToL2MessageSynced(l1ToL2Message);
51
- }
52
53
  }
@@ -0,0 +1,34 @@
1
+ import type { AuthWitness } from '@aztec/stdlib/auth-witness';
2
+ import type { PXE } from '@aztec/stdlib/interfaces/client';
3
+
4
+ import type { AccountInterface } from '../account/interface.js';
5
+ import type { IntentAction, IntentInnerHash } from '../utils/authwit.js';
6
+
7
+ /**
8
+ * The wallet interface.
9
+ */
10
+ export type Wallet = AccountInterface &
11
+ Pick<
12
+ PXE,
13
+ | 'simulateTx'
14
+ | 'simulateUnconstrained'
15
+ | 'profileTx'
16
+ | 'sendTx'
17
+ | 'getContractClassMetadata'
18
+ | 'getContractMetadata'
19
+ | 'registerContract'
20
+ | 'registerContractClass'
21
+ | 'proveTx'
22
+ | 'getNodeInfo'
23
+ | 'getPXEInfo'
24
+ | 'getCurrentBaseFees'
25
+ | 'updateContract'
26
+ | 'registerSender'
27
+ | 'getSenders'
28
+ | 'removeSender'
29
+ | 'getTxReceipt'
30
+ | 'getPrivateEvents'
31
+ | 'getPublicEvents'
32
+ > & {
33
+ createAuthWit(intent: IntentInnerHash | IntentAction): Promise<AuthWitness>;
34
+ };
@@ -1 +0,0 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/account/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG5E;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEjD;;OAEG;IACH,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;IAEhD;;;;;;;OAOG;IACH,YAAY,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAE7E;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,mBAAmB,CAAC;CACvE;AAGD;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,+DAUrG"}
@@ -1,11 +0,0 @@
1
- import type { AuthWitness } from '@aztec/stdlib/auth-witness';
2
- import type { PXE } from '@aztec/stdlib/interfaces/client';
3
- import type { IntentAction, IntentInnerHash } from '../utils/authwit.js';
4
- import type { AccountInterface } from './interface.js';
5
- /**
6
- * The wallet interface.
7
- */
8
- export type Wallet = AccountInterface & PXE & {
9
- createAuthWit(intent: IntentInnerHash | IntentAction): Promise<AuthWitness>;
10
- };
11
- //# sourceMappingURL=wallet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/account/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,gBAAgB,GACnC,GAAG,GAAG;IACJ,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC7E,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from '../entrypoint/entrypoint.js';
2
- //# sourceMappingURL=entrypoint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../../src/api/entrypoint.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
@@ -1 +0,0 @@
1
- export * from '../entrypoint/entrypoint.js';
@@ -1,12 +0,0 @@
1
- import { TxExecutionRequest } from '@aztec/stdlib/tx';
2
- import type { EntrypointInterface, ExecutionRequestInit } from './entrypoint.js';
3
- /**
4
- * Default implementation of the entrypoint interface. It calls a function on a contract directly
5
- */
6
- export declare class DefaultEntrypoint implements EntrypointInterface {
7
- private chainId;
8
- private protocolVersion;
9
- constructor(chainId: number, protocolVersion: number);
10
- createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest>;
11
- }
12
- //# sourceMappingURL=default_entrypoint.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default_entrypoint.d.ts","sourceRoot":"","sources":["../../src/entrypoint/default_entrypoint.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEjF;;GAEG;AACH,qBAAa,iBAAkB,YAAW,mBAAmB;IAC/C,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,eAAe;gBAAxC,OAAO,EAAE,MAAM,EAAU,eAAe,EAAE,MAAM;IAE9D,wBAAwB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2BxF"}
@@ -1,28 +0,0 @@
1
- import { FunctionType } from '@aztec/stdlib/abi';
2
- import { HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
3
- /**
4
- * Default implementation of the entrypoint interface. It calls a function on a contract directly
5
- */ export class DefaultEntrypoint {
6
- chainId;
7
- protocolVersion;
8
- constructor(chainId, protocolVersion){
9
- this.chainId = chainId;
10
- this.protocolVersion = protocolVersion;
11
- }
12
- async createTxExecutionRequest(exec) {
13
- const { fee, calls, authWitnesses = [], hashedArguments = [], capsules = [] } = exec;
14
- if (calls.length > 1) {
15
- throw new Error(`Expected a single call, got ${calls.length}`);
16
- }
17
- const call = calls[0];
18
- if (call.type !== FunctionType.PRIVATE) {
19
- throw new Error('Public entrypoints are not allowed');
20
- }
21
- const entrypointHashedValues = await HashedValues.fromValues(call.args);
22
- const txContext = new TxContext(this.chainId, this.protocolVersion, fee.gasSettings);
23
- return Promise.resolve(new TxExecutionRequest(call.to, call.selector, entrypointHashedValues.hash, txContext, [
24
- ...hashedArguments,
25
- entrypointHashedValues
26
- ], authWitnesses, capsules));
27
- }
28
- }
@@ -1,39 +0,0 @@
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';
5
- import { EntrypointPayload, type FeeOptions, computeCombinedPayloadHash } from './payload.js';
6
- export { EntrypointPayload, type FeeOptions, computeCombinedPayloadHash };
7
- export { DefaultEntrypoint } from './default_entrypoint.js';
8
- export { DefaultMultiCallEntrypoint } from './default_multi_call_entrypoint.js';
9
- /** Encodes the calls to be done in a transaction. */
10
- export type ExecutionRequestInit = {
11
- /** The function calls to be executed. */
12
- calls: FunctionCall[];
13
- /** Any transient auth witnesses needed for this execution */
14
- authWitnesses?: AuthWitness[];
15
- /** Any transient hashed arguments for this execution */
16
- hashedArguments?: HashedValues[];
17
- /** Data passed through an oracle for this execution. */
18
- capsules?: Capsule[];
19
- /** How the fee is going to be payed */
20
- fee: FeeOptions;
21
- /** An optional nonce. Used to repeat a previous tx with a higher fee so that the first one is cancelled */
22
- nonce?: Fr;
23
- /** Whether the transaction can be cancelled. If true, an extra nullifier will be emitted: H(nonce, GENERATOR_INDEX__TX_NULLIFIER) */
24
- cancellable?: boolean;
25
- };
26
- /**
27
- * Merges an array of ExecutionRequestInits.
28
- */
29
- export declare function mergeExecutionRequestInits(requests: Pick<ExecutionRequestInit, 'calls' | 'authWitnesses' | 'hashedArguments' | 'capsules'>[], { nonce, cancellable }?: Pick<ExecutionRequestInit, 'nonce' | 'cancellable'>): Omit<ExecutionRequestInit, 'fee'>;
30
- /** Creates transaction execution requests out of a set of function calls. */
31
- export interface EntrypointInterface {
32
- /**
33
- * Generates an execution request out of set of function calls.
34
- * @param execution - The execution intents to be run.
35
- * @returns The authenticated transaction execution request.
36
- */
37
- createTxExecutionRequest(execution: ExecutionRequestInit): Promise<TxExecutionRequest>;
38
- }
39
- //# sourceMappingURL=entrypoint.d.ts.map
@@ -1 +0,0 @@
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;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,eAAe,GAAG,iBAAiB,GAAG,UAAU,CAAC,EAAE,EAClG,EAAE,KAAK,EAAE,WAAW,EAAE,GAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,aAAa,CAAM,GAC/E,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAanC;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;CACxF"}
@@ -1,20 +0,0 @@
1
- import { EntrypointPayload, computeCombinedPayloadHash } from './payload.js';
2
- export { EntrypointPayload, computeCombinedPayloadHash };
3
- export { DefaultEntrypoint } from './default_entrypoint.js';
4
- export { DefaultMultiCallEntrypoint } from './default_multi_call_entrypoint.js';
5
- /**
6
- * Merges an array of ExecutionRequestInits.
7
- */ export function mergeExecutionRequestInits(requests, { nonce, cancellable } = {}) {
8
- const calls = requests.map((r)=>r.calls).flat();
9
- const authWitnesses = requests.map((r)=>r.authWitnesses ?? []).flat();
10
- const hashedArguments = requests.map((r)=>r.hashedArguments ?? []).flat();
11
- const capsules = requests.map((r)=>r.capsules ?? []).flat();
12
- return {
13
- calls,
14
- authWitnesses,
15
- hashedArguments,
16
- capsules,
17
- nonce,
18
- cancellable
19
- };
20
- }