@walletmesh/aztec-rpc-wallet 0.3.0 → 0.4.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/CHANGELOG.md +26 -0
  2. package/README.md +290 -228
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/client/aztec-dapp-wallet.d.ts +401 -0
  5. package/dist/client/aztec-dapp-wallet.d.ts.map +1 -0
  6. package/dist/client/aztec-dapp-wallet.js +705 -0
  7. package/dist/client/aztec-router-provider.d.ts +58 -0
  8. package/dist/client/aztec-router-provider.d.ts.map +1 -0
  9. package/dist/client/aztec-router-provider.js +62 -0
  10. package/dist/client/helpers.d.ts +44 -0
  11. package/dist/client/helpers.d.ts.map +1 -0
  12. package/dist/client/helpers.js +79 -0
  13. package/dist/client/register-serializers.d.ts +41 -0
  14. package/dist/client/register-serializers.d.ts.map +1 -0
  15. package/dist/client/register-serializers.js +97 -0
  16. package/dist/contractArtifactCache.d.ts +49 -32
  17. package/dist/contractArtifactCache.d.ts.map +1 -1
  18. package/dist/contractArtifactCache.js +47 -34
  19. package/dist/errors.d.ts +50 -8
  20. package/dist/errors.d.ts.map +1 -1
  21. package/dist/errors.js +50 -10
  22. package/dist/index.d.ts +53 -40
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +52 -17
  25. package/dist/types.d.ts +345 -268
  26. package/dist/types.d.ts.map +1 -1
  27. package/dist/types.js +10 -8
  28. package/dist/wallet/create-node.d.ts +73 -0
  29. package/dist/wallet/create-node.d.ts.map +1 -0
  30. package/dist/wallet/create-node.js +99 -0
  31. package/dist/wallet/handlers/account.d.ts +67 -0
  32. package/dist/wallet/handlers/account.d.ts.map +1 -0
  33. package/dist/wallet/handlers/account.js +85 -0
  34. package/dist/wallet/handlers/contract-interaction.d.ts +77 -0
  35. package/dist/wallet/handlers/contract-interaction.d.ts.map +1 -0
  36. package/dist/wallet/handlers/contract-interaction.js +219 -0
  37. package/dist/wallet/handlers/contract.d.ts +96 -0
  38. package/dist/wallet/handlers/contract.d.ts.map +1 -0
  39. package/dist/wallet/handlers/contract.js +146 -0
  40. package/dist/wallet/handlers/event.d.ts +62 -0
  41. package/dist/wallet/handlers/event.d.ts.map +1 -0
  42. package/dist/wallet/handlers/event.js +85 -0
  43. package/dist/wallet/handlers/index.d.ts +88 -0
  44. package/dist/wallet/handlers/index.d.ts.map +1 -0
  45. package/dist/wallet/handlers/index.js +47 -0
  46. package/dist/wallet/handlers/node.d.ts +117 -0
  47. package/dist/wallet/handlers/node.d.ts.map +1 -0
  48. package/dist/wallet/handlers/node.js +196 -0
  49. package/dist/wallet/handlers/senders.d.ts +70 -0
  50. package/dist/wallet/handlers/senders.d.ts.map +1 -0
  51. package/dist/wallet/handlers/senders.js +92 -0
  52. package/dist/wallet/handlers/transaction.d.ts +123 -0
  53. package/dist/wallet/handlers/transaction.d.ts.map +1 -0
  54. package/dist/wallet/handlers/transaction.js +191 -0
  55. package/dist/wallet/serializers.d.ts +75 -0
  56. package/dist/wallet/serializers.d.ts.map +1 -0
  57. package/dist/wallet/serializers.js +501 -0
  58. package/docs/README.md +290 -229
  59. package/docs/classes/AztecDappWallet.md +1304 -0
  60. package/docs/classes/AztecRouterProvider.md +1058 -0
  61. package/docs/classes/AztecWalletError.md +124 -47
  62. package/docs/classes/ContractArtifactCache.md +48 -31
  63. package/docs/functions/connectAztec.md +62 -0
  64. package/docs/functions/createAztecWallet.md +46 -0
  65. package/docs/functions/createAztecWalletNode.md +96 -0
  66. package/docs/functions/registerAztecSerializers.md +61 -0
  67. package/docs/functions/registerWalletAztecSerializers.md +39 -0
  68. package/docs/globals.md +16 -14
  69. package/docs/interfaces/AztecHandlerContext.md +54 -0
  70. package/docs/interfaces/AztecWalletContext.md +50 -0
  71. package/docs/interfaces/AztecWalletMethodMap.md +471 -470
  72. package/docs/type-aliases/AztecChainId.md +16 -3
  73. package/docs/variables/ALL_AZTEC_METHODS.md +20 -0
  74. package/docs/variables/AztecWalletErrorMap.md +9 -4
  75. package/docs/variables/AztecWalletSerializer.md +45 -0
  76. package/package.json +9 -9
  77. package/src/client/aztec-dapp-wallet.test.ts +628 -0
  78. package/src/client/aztec-dapp-wallet.ts +879 -0
  79. package/src/client/aztec-router-provider.test.ts +235 -0
  80. package/src/client/aztec-router-provider.ts +64 -0
  81. package/src/client/helpers.test.ts +187 -0
  82. package/src/client/helpers.ts +91 -0
  83. package/src/client/register-serializers.ts +108 -0
  84. package/src/contractArtifactCache.test.ts +21 -10
  85. package/src/contractArtifactCache.ts +54 -35
  86. package/src/errors.ts +58 -10
  87. package/src/index.test.ts +2 -6
  88. package/src/index.ts +73 -37
  89. package/src/types.ts +379 -217
  90. package/src/wallet/create-node.test.ts +332 -0
  91. package/src/wallet/create-node.ts +120 -0
  92. package/src/wallet/handlers/account.test.ts +172 -0
  93. package/src/wallet/handlers/account.ts +99 -0
  94. package/src/wallet/handlers/contract-interaction.test.ts +248 -0
  95. package/src/wallet/handlers/contract-interaction.ts +269 -0
  96. package/src/wallet/handlers/contract.test.ts +245 -0
  97. package/src/wallet/handlers/contract.ts +174 -0
  98. package/src/wallet/handlers/event.test.ts +216 -0
  99. package/src/wallet/handlers/event.ts +99 -0
  100. package/src/wallet/handlers/index.ts +84 -0
  101. package/src/wallet/handlers/node.test.ts +304 -0
  102. package/src/wallet/handlers/node.ts +230 -0
  103. package/src/wallet/handlers/senders.test.ts +172 -0
  104. package/src/wallet/handlers/senders.ts +106 -0
  105. package/src/wallet/handlers/transaction.test.ts +371 -0
  106. package/src/wallet/handlers/transaction.ts +239 -0
  107. package/src/wallet/serializers.test.ts +253 -0
  108. package/src/wallet/serializers.ts +586 -0
  109. package/typedoc.json +23 -1
  110. package/dist/aztecRemoteWallet.d.ts +0 -70
  111. package/dist/aztecRemoteWallet.d.ts.map +0 -1
  112. package/dist/aztecRemoteWallet.js +0 -335
  113. package/dist/chainProvider.d.ts +0 -56
  114. package/dist/chainProvider.d.ts.map +0 -1
  115. package/dist/chainProvider.js +0 -98
  116. package/dist/handlers/aztecAccountWallet.d.ts +0 -4
  117. package/dist/handlers/aztecAccountWallet.d.ts.map +0 -1
  118. package/dist/handlers/aztecAccountWallet.js +0 -296
  119. package/dist/handlers/transactions.d.ts +0 -21
  120. package/dist/handlers/transactions.d.ts.map +0 -1
  121. package/dist/handlers/transactions.js +0 -98
  122. package/dist/handlers.d.ts +0 -27
  123. package/dist/handlers.d.ts.map +0 -1
  124. package/dist/handlers.js +0 -55
  125. package/dist/provider.d.ts +0 -105
  126. package/dist/provider.d.ts.map +0 -1
  127. package/dist/provider.js +0 -160
  128. package/dist/serializers/account.d.ts +0 -164
  129. package/dist/serializers/account.d.ts.map +0 -1
  130. package/dist/serializers/account.js +0 -244
  131. package/dist/serializers/contract.d.ts +0 -62
  132. package/dist/serializers/contract.d.ts.map +0 -1
  133. package/dist/serializers/contract.js +0 -130
  134. package/dist/serializers/index.d.ts +0 -21
  135. package/dist/serializers/index.d.ts.map +0 -1
  136. package/dist/serializers/index.js +0 -154
  137. package/dist/serializers/log.d.ts +0 -66
  138. package/dist/serializers/log.d.ts.map +0 -1
  139. package/dist/serializers/log.js +0 -222
  140. package/dist/serializers/note.d.ts +0 -124
  141. package/dist/serializers/note.d.ts.map +0 -1
  142. package/dist/serializers/note.js +0 -208
  143. package/dist/serializers/transaction.d.ts +0 -99
  144. package/dist/serializers/transaction.d.ts.map +0 -1
  145. package/dist/serializers/transaction.js +0 -275
  146. package/dist/wallet.d.ts +0 -62
  147. package/dist/wallet.d.ts.map +0 -1
  148. package/dist/wallet.js +0 -77
  149. package/docs/classes/AztecChainProvider.md +0 -553
  150. package/docs/classes/AztecChainWallet.md +0 -409
  151. package/docs/classes/AztecProvider.md +0 -1112
  152. package/docs/interfaces/AztecWalletBaseMethodMap.md +0 -135
  153. package/docs/interfaces/AztecWalletEventMap.md +0 -17
  154. package/docs/type-aliases/AztecChainWalletMiddleware.md +0 -13
  155. package/docs/type-aliases/AztecWalletContext.md +0 -29
  156. package/docs/type-aliases/AztecWalletMethodHandler.md +0 -37
  157. package/docs/type-aliases/AztecWalletMiddleware.md +0 -13
  158. package/docs/type-aliases/AztecWalletRouterClient.md +0 -13
  159. package/docs/type-aliases/TransactionFunctionCall.md +0 -33
  160. package/docs/type-aliases/TransactionParams.md +0 -27
  161. package/src/aztecRemoteWallet.test.ts +0 -504
  162. package/src/aztecRemoteWallet.ts +0 -467
  163. package/src/chainProvider.test.ts +0 -401
  164. package/src/chainProvider.ts +0 -116
  165. package/src/handlers/aztecAccountWallet.test.ts +0 -649
  166. package/src/handlers/aztecAccountWallet.ts +0 -532
  167. package/src/handlers/transactions.ts +0 -124
  168. package/src/handlers.test.ts +0 -270
  169. package/src/handlers.ts +0 -70
  170. package/src/provider.test.ts +0 -274
  171. package/src/provider.ts +0 -189
  172. package/src/serializers/account.test.ts +0 -125
  173. package/src/serializers/account.ts +0 -301
  174. package/src/serializers/contract.test.ts +0 -24
  175. package/src/serializers/contract.ts +0 -183
  176. package/src/serializers/index.test.ts +0 -136
  177. package/src/serializers/index.ts +0 -191
  178. package/src/serializers/log.test.ts +0 -286
  179. package/src/serializers/log.ts +0 -292
  180. package/src/serializers/note.test.ts +0 -125
  181. package/src/serializers/note.ts +0 -250
  182. package/src/serializers/transaction.test.ts +0 -320
  183. package/src/serializers/transaction.ts +0 -409
  184. package/src/wallet.test.ts +0 -275
  185. package/src/wallet.ts +0 -94
@@ -1,467 +0,0 @@
1
- import type {
2
- AuthWitness,
3
- AztecAddress,
4
- ContractArtifact,
5
- ContractInstanceWithAddress,
6
- ExtendedNote,
7
- TxExecutionRequest,
8
- TxHash,
9
- TxReceipt,
10
- L2Block,
11
- LogFilter,
12
- Point,
13
- SiblingPath,
14
- PartialAddress,
15
- CompleteAddress,
16
- NodeInfo,
17
- Tx,
18
- Wallet,
19
- } from '@aztec/aztec.js';
20
-
21
- import type { IntentAction, IntentInnerHash } from '@aztec/aztec.js/utils';
22
- import type { ExecutionRequestInit } from '@aztec/aztec.js/entrypoint';
23
- import type { AbiDecoded } from '@aztec/foundation/abi';
24
- import type {
25
- NotesFilter,
26
- EventMetadataDefinition,
27
- PrivateExecutionResult,
28
- TxProvingResult,
29
- UniqueNote,
30
- PXEInfo,
31
- TxSimulationResult,
32
- InBlock,
33
- TxEffect,
34
- GetPublicLogsResponse,
35
- GetContractClassLogsResponse,
36
- ContractMetadata,
37
- ContractClassMetadata,
38
- } from '@aztec/circuit-types';
39
- import type { GasFees, L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
40
-
41
- import { Fr } from '@aztec/aztec.js';
42
-
43
- import type { JSONRPCTransport } from '@walletmesh/jsonrpc';
44
- import { AztecProvider } from './provider.js';
45
- import type { AztecChainId, AztecWalletMethodMap } from './types.js';
46
-
47
- export class AztecRemoteWallet implements Wallet {
48
- private _address: AztecAddress | undefined;
49
- private _completeAddress: CompleteAddress | undefined;
50
- private _chainId: Fr | undefined;
51
- private _version: Fr | undefined;
52
- private _scopes: AztecAddress[] | undefined;
53
-
54
- constructor(
55
- private _provider: AztecProvider,
56
- private _providerChainId: AztecChainId,
57
- ) {}
58
-
59
- async isL1ToL2MessageSynced(l1ToL2Message: Fr): Promise<boolean> {
60
- return this._provider
61
- .chain(this._providerChainId)
62
- .call('aztec_isL1ToL2MessageSynced', { l1ToL2Message })
63
- .execute() as Promise<AztecWalletMethodMap['aztec_isL1ToL2MessageSynced']['result']>;
64
- }
65
-
66
- getAddress(): AztecAddress {
67
- if (!this._address) {
68
- this._provider
69
- .chain(this._providerChainId)
70
- .call('aztec_getAddress')
71
- .execute()
72
- .then((result) => {
73
- this._address = result as AztecWalletMethodMap['aztec_getAddress']['result'];
74
- });
75
- throw new Error('Address not yet available');
76
- }
77
- return this._address;
78
- }
79
-
80
- getCompleteAddress(): CompleteAddress {
81
- if (!this._completeAddress) {
82
- this._provider
83
- .chain(this._providerChainId)
84
- .call('aztec_getCompleteAddress')
85
- .execute()
86
- .then((result) => {
87
- this._completeAddress = result as AztecWalletMethodMap['aztec_getCompleteAddress']['result'];
88
- });
89
- throw new Error('Complete address not yet available');
90
- }
91
- return this._completeAddress;
92
- }
93
-
94
- getChainId(): Fr {
95
- if (!this._chainId) {
96
- this._provider
97
- .chain(this._providerChainId)
98
- .call('aztec_getChainId')
99
- .execute()
100
- .then((result) => {
101
- const chainId = result as AztecWalletMethodMap['aztec_getChainId']['result'];
102
- this._chainId = Fr.fromString(chainId.toString(10));
103
- });
104
- throw new Error('Chain ID not yet available');
105
- }
106
- return this._chainId;
107
- }
108
-
109
- getVersion(): Fr {
110
- if (!this._version) {
111
- this._provider
112
- .chain(this._providerChainId)
113
- .call('aztec_getVersion')
114
- .execute()
115
- .then((result) => {
116
- const version = result as AztecWalletMethodMap['aztec_getVersion']['result'];
117
- this._version = Fr.fromString(version.toString(10));
118
- });
119
- throw new Error('Version not yet available');
120
- }
121
- return this._version;
122
- }
123
-
124
- async createTxExecutionRequest(exec: ExecutionRequestInit): Promise<TxExecutionRequest> {
125
- return this._provider
126
- .chain(this._providerChainId)
127
- .call('aztec_createTxExecutionRequest', { exec })
128
- .execute() as Promise<AztecWalletMethodMap['aztec_createTxExecutionRequest']['result']>;
129
- }
130
-
131
- async createAuthWit(intent: Fr | Buffer | IntentAction | IntentInnerHash): Promise<AuthWitness> {
132
- return this._provider
133
- .chain(this._providerChainId)
134
- .call('aztec_createAuthWit', { intent })
135
- .execute() as Promise<AztecWalletMethodMap['aztec_createAuthWit']['result']>;
136
- }
137
-
138
- setScopes(scopes: AztecAddress[]): void {
139
- // TODO: would be nice to return a promise here
140
- this._scopes = scopes;
141
- this._provider
142
- .chain(this._providerChainId)
143
- .call('aztec_setScopes', { scopes })
144
- .execute()
145
- .then((result) => {
146
- const success = result as AztecWalletMethodMap['aztec_setScopes']['result'];
147
- console.debug(`setScopes(${scopes}) result: ${success}`);
148
- });
149
- }
150
-
151
- getScopes(): AztecAddress[] {
152
- // TODO: would be nice to return a promise here
153
- if (!this._scopes) {
154
- this._provider
155
- .chain(this._providerChainId)
156
- .call('aztec_getScopes')
157
- .execute()
158
- .then((result) => {
159
- this._scopes = result as AztecWalletMethodMap['aztec_getScopes']['result'];
160
- });
161
- throw new Error('Scopes not yet available');
162
- }
163
- return this._scopes;
164
- }
165
-
166
- async getScopesAsync(): Promise<AztecAddress[]> {
167
- const scopes = (await this._provider
168
- .chain(this._providerChainId)
169
- .call('aztec_getScopes')
170
- .execute()) as AztecWalletMethodMap['aztec_getScopes']['result'];
171
- this._scopes = scopes;
172
- return scopes;
173
- }
174
-
175
- async getContractMetadata(address: AztecAddress): Promise<ContractMetadata> {
176
- return this._provider
177
- .chain(this._providerChainId)
178
- .call('aztec_getContractMetadata', { address })
179
- .execute() as Promise<AztecWalletMethodMap['aztec_getContractMetadata']['result']>;
180
- }
181
-
182
- async getContractClassMetadata(id: Fr, includeArtifact?: boolean): Promise<ContractClassMetadata> {
183
- return this._provider
184
- .chain(this._providerChainId)
185
- .call('aztec_getContractClassMetadata', { id, includeArtifact })
186
- .execute() as Promise<AztecWalletMethodMap['aztec_getContractClassMetadata']['result']>;
187
- }
188
-
189
- async addCapsule(capsule: Fr[]): Promise<void> {
190
- const result = (await this._provider
191
- .chain(this._providerChainId)
192
- .call('aztec_addCapsule', { capsule })
193
- .execute()) as AztecWalletMethodMap['aztec_addCapsule']['result'];
194
- if (!result) throw new Error('Failed to add capsule');
195
- }
196
-
197
- async registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress> {
198
- return this._provider
199
- .chain(this._providerChainId)
200
- .call('aztec_registerAccount', { secretKey, partialAddress })
201
- .execute() as Promise<AztecWalletMethodMap['aztec_registerAccount']['result']>;
202
- }
203
-
204
- async getRegisteredAccounts(): Promise<CompleteAddress[]> {
205
- return this._provider
206
- .chain(this._providerChainId)
207
- .call('aztec_getRegisteredAccounts')
208
- .execute() as Promise<AztecWalletMethodMap['aztec_getRegisteredAccounts']['result']>;
209
- }
210
-
211
- async registerSender(address: AztecAddress): Promise<AztecAddress> {
212
- return this._provider
213
- .chain(this._providerChainId)
214
- .call('aztec_registerSender', { sender: address })
215
- .execute() as Promise<AztecWalletMethodMap['aztec_registerSender']['result']>;
216
- }
217
-
218
- async getSenders(): Promise<AztecAddress[]> {
219
- return this._provider.chain(this._providerChainId).call('aztec_getSenders').execute() as Promise<
220
- AztecWalletMethodMap['aztec_getSenders']['result']
221
- >;
222
- }
223
-
224
- async removeSender(address: AztecAddress): Promise<void> {
225
- const result = (await this._provider
226
- .chain(this._providerChainId)
227
- .call('aztec_removeSender', { sender: address })
228
- .execute()) as AztecWalletMethodMap['aztec_removeSender']['result'];
229
- if (!result) throw new Error('Failed to remove sender');
230
- }
231
-
232
- async registerContract(contract: {
233
- instance: ContractInstanceWithAddress;
234
- artifact?: ContractArtifact;
235
- }): Promise<void> {
236
- const result = (await this._provider
237
- .chain(this._providerChainId)
238
- .call('aztec_registerContract', { instance: contract.instance, artifact: contract.artifact })
239
- .execute()) as AztecWalletMethodMap['aztec_registerContract']['result'];
240
- if (!result) throw new Error('Failed to register contract');
241
- }
242
-
243
- async registerContractClass(artifact: ContractArtifact): Promise<void> {
244
- const result = (await this._provider
245
- .chain(this._providerChainId)
246
- .call('aztec_registerContractClass', { artifact })
247
- .execute()) as AztecWalletMethodMap['aztec_registerContractClass']['result'];
248
- if (!result) throw new Error('Failed to register contract class');
249
- }
250
-
251
- async getContracts(): Promise<AztecAddress[]> {
252
- return this._provider.chain(this._providerChainId).call('aztec_getContracts').execute() as Promise<
253
- AztecWalletMethodMap['aztec_getContracts']['result']
254
- >;
255
- }
256
-
257
- async proveTx(
258
- txRequest: TxExecutionRequest,
259
- privateExecutionResult: PrivateExecutionResult,
260
- ): Promise<TxProvingResult> {
261
- return this._provider
262
- .chain(this._providerChainId)
263
- .call('aztec_proveTx', { txRequest, privateExecutionResult })
264
- .execute() as Promise<AztecWalletMethodMap['aztec_proveTx']['result']>;
265
- }
266
-
267
- async simulateTx(
268
- txRequest: TxExecutionRequest,
269
- simulatePublic: boolean,
270
- msgSender?: AztecAddress,
271
- skipTxValidation?: boolean,
272
- enforceFeePayment?: boolean,
273
- profile?: boolean,
274
- ): Promise<TxSimulationResult> {
275
- return this._provider
276
- .chain(this._providerChainId)
277
- .call('aztec_simulateTx', {
278
- txRequest,
279
- simulatePublic,
280
- msgSender,
281
- skipTxValidation,
282
- enforceFeePayment,
283
- profile,
284
- })
285
- .execute() as Promise<AztecWalletMethodMap['aztec_simulateTx']['result']>;
286
- }
287
-
288
- async sendTx(tx: Tx): Promise<TxHash> {
289
- return this._provider.chain(this._providerChainId).call('aztec_sendTx', { tx }).execute() as Promise<
290
- AztecWalletMethodMap['aztec_sendTx']['result']
291
- >;
292
- }
293
-
294
- async getTxEffect(txHash: TxHash): Promise<InBlock<TxEffect>> {
295
- return this._provider
296
- .chain(this._providerChainId)
297
- .call('aztec_getTxEffect', { txHash })
298
- .execute() as Promise<AztecWalletMethodMap['aztec_getTxEffect']['result']>;
299
- }
300
-
301
- async getTxReceipt(txHash: TxHash): Promise<TxReceipt> {
302
- return this._provider
303
- .chain(this._providerChainId)
304
- .call('aztec_getTxReceipt', { txHash })
305
- .execute() as Promise<AztecWalletMethodMap['aztec_getTxReceipt']['result']>;
306
- }
307
-
308
- async getNotes(filter: NotesFilter): Promise<UniqueNote[]> {
309
- return this._provider
310
- .chain(this._providerChainId)
311
- .call('aztec_getNotes', { filter })
312
- .execute() as Promise<AztecWalletMethodMap['aztec_getNotes']['result']>;
313
- }
314
-
315
- async getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<Fr> {
316
- return this._provider
317
- .chain(this._providerChainId)
318
- .call('aztec_getPublicStorageAt', { contract, storageSlot })
319
- .execute() as Promise<AztecWalletMethodMap['aztec_getPublicStorageAt']['result']>;
320
- }
321
-
322
- async addNote(note: ExtendedNote): Promise<void> {
323
- const result = (await this._provider
324
- .chain(this._providerChainId)
325
- .call('aztec_addNote', { note })
326
- .execute()) as AztecWalletMethodMap['aztec_addNote']['result'];
327
- if (!result) throw new Error('Failed to add note');
328
- }
329
-
330
- async addNullifiedNote(note: ExtendedNote): Promise<void> {
331
- const result = (await this._provider
332
- .chain(this._providerChainId)
333
- .call('aztec_addNullifiedNote', { note })
334
- .execute()) as AztecWalletMethodMap['aztec_addNullifiedNote']['result'];
335
- if (!result) throw new Error('Failed to add nullified note');
336
- }
337
-
338
- async getBlock(number: number): Promise<L2Block | undefined> {
339
- return this._provider
340
- .chain(this._providerChainId)
341
- .call('aztec_getBlock', { number })
342
- .execute() as Promise<AztecWalletMethodMap['aztec_getBlock']['result']>;
343
- }
344
-
345
- async getCurrentBaseFees(): Promise<GasFees> {
346
- return this._provider.chain(this._providerChainId).call('aztec_getCurrentBaseFees').execute() as Promise<
347
- AztecWalletMethodMap['aztec_getCurrentBaseFees']['result']
348
- >;
349
- }
350
-
351
- async simulateUnconstrained(
352
- functionName: string,
353
- args: unknown[],
354
- to: AztecAddress,
355
- from?: AztecAddress,
356
- ): Promise<AbiDecoded> {
357
- return this._provider
358
- .chain(this._providerChainId)
359
- .call('aztec_simulateUnconstrained', { functionName, args, to, from })
360
- .execute() as Promise<AztecWalletMethodMap['aztec_simulateUnconstrained']['result']>;
361
- }
362
-
363
- async getPublicLogs(filter: LogFilter): Promise<GetPublicLogsResponse> {
364
- return this._provider
365
- .chain(this._providerChainId)
366
- .call('aztec_getPublicLogs', { filter })
367
- .execute() as Promise<AztecWalletMethodMap['aztec_getPublicLogs']['result']>;
368
- }
369
-
370
- async getContractClassLogs(filter: LogFilter): Promise<GetContractClassLogsResponse> {
371
- return this._provider
372
- .chain(this._providerChainId)
373
- .call('aztec_getContractClassLogs', { filter })
374
- .execute() as Promise<GetContractClassLogsResponse>;
375
- }
376
-
377
- async getBlockNumber(): Promise<number> {
378
- return this._provider.chain(this._providerChainId).call('aztec_getBlockNumber').execute() as Promise<
379
- AztecWalletMethodMap['aztec_getBlockNumber']['result']
380
- >;
381
- }
382
-
383
- async getProvenBlockNumber(): Promise<number> {
384
- return this._provider
385
- .chain(this._providerChainId)
386
- .call('aztec_getProvenBlockNumber')
387
- .execute() as Promise<AztecWalletMethodMap['aztec_getProvenBlockNumber']['result']>;
388
- }
389
-
390
- async getNodeInfo(): Promise<NodeInfo> {
391
- return this._provider.chain(this._providerChainId).call('aztec_getNodeInfo').execute() as Promise<
392
- AztecWalletMethodMap['aztec_getNodeInfo']['result']
393
- >;
394
- }
395
-
396
- async addAuthWitness(authWitness: AuthWitness): Promise<void> {
397
- const result = (await this._provider
398
- .chain(this._providerChainId)
399
- .call('aztec_addAuthWitness', { authWitness })
400
- .execute()) as AztecWalletMethodMap['aztec_addAuthWitness']['result'];
401
- if (!result) throw new Error('Failed to add auth witness');
402
- }
403
-
404
- async getAuthWitness(messageHash: Fr): Promise<Fr[]> {
405
- return (await this._provider
406
- .chain(this._providerChainId)
407
- .call('aztec_getAuthWitness', { messageHash })
408
- .execute()) as Promise<AztecWalletMethodMap['aztec_getAuthWitness']['result']>;
409
- }
410
-
411
- async getPXEInfo(): Promise<PXEInfo> {
412
- return this._provider.chain(this._providerChainId).call('aztec_getPXEInfo').execute() as Promise<
413
- AztecWalletMethodMap['aztec_getPXEInfo']['result']
414
- >;
415
- }
416
-
417
- getPrivateEvents<T>(
418
- event: EventMetadataDefinition,
419
- from: number,
420
- limit: number,
421
- vpks: Point[] = [],
422
- ): Promise<T[]> {
423
- const completeAddress = this.getCompleteAddress();
424
- return this._provider
425
- .chain(this._providerChainId)
426
- .call('aztec_getPrivateEvents', {
427
- event,
428
- from,
429
- limit,
430
- vpks: vpks.length ? vpks : [completeAddress.publicKeys.masterIncomingViewingPublicKey],
431
- })
432
- .execute() as Promise<T[]>;
433
- }
434
-
435
- getPublicEvents<T>(event: EventMetadataDefinition, from: number, limit: number): Promise<T[]> {
436
- return this._provider
437
- .chain(this._providerChainId)
438
- .call('aztec_getPublicEvents', { event, from, limit })
439
- .execute() as Promise<T[]>;
440
- }
441
-
442
- async getL1ToL2MembershipWitness(
443
- contractAddress: AztecAddress,
444
- messageHash: Fr,
445
- secret: Fr,
446
- ): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>]> {
447
- return this._provider
448
- .chain(this._providerChainId)
449
- .call('aztec_getL1ToL2MembershipWitness', { contractAddress, messageHash, secret })
450
- .execute() as Promise<AztecWalletMethodMap['aztec_getL1ToL2MembershipWitness']['result']>;
451
- }
452
-
453
- async getL2ToL1MembershipWitness(
454
- blockNumber: number,
455
- l2Tol1Message: Fr,
456
- ): Promise<[bigint, SiblingPath<number>]> {
457
- return this._provider
458
- .chain(this._providerChainId)
459
- .call('aztec_getL2ToL1MembershipWitness', { blockNumber, l2Tol1Message })
460
- .execute() as Promise<[bigint, SiblingPath<number>]>;
461
- }
462
- }
463
-
464
- export function createAztecRPCWallet(transport: JSONRPCTransport, chainId: AztecChainId): AztecRemoteWallet {
465
- const provider = new AztecProvider(transport);
466
- return new AztecRemoteWallet(provider, chainId);
467
- }