@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,649 +0,0 @@
1
- import { describe, expect, it, vi, beforeEach } from 'vitest';
2
- import type { AccountWallet } from '@aztec/aztec.js';
3
- import { Fr, AztecAddress, TxHash, ExtendedNote, EventSelector } from '@aztec/aztec.js';
4
- import type {
5
- TxExecutionRequest,
6
- ContractInstanceWithAddress,
7
- ContractArtifact,
8
- PublicKeys,
9
- AuthWitness,
10
- Tx,
11
- } from '@aztec/aztec.js';
12
- import type { PrivateExecutionResult, EventMetadataDefinition } from '@aztec/circuit-types';
13
- import type { IntentAction, IntentInnerHash } from '@aztec/aztec.js/utils';
14
- import { Point } from '@aztec/circuits.js';
15
- import type { AztecWalletMethodMap } from '../types.js';
16
- import { aztecWalletHandler } from './aztecAccountWallet.js';
17
- import { AztecWalletError } from '../errors.js';
18
- import type { AztecWalletContext } from '../types.js';
19
-
20
- describe('Aztec Account Wallet Handler', () => {
21
- let context: AztecWalletContext;
22
- let wallet: AccountWallet;
23
-
24
- beforeEach(() => {
25
- // Mock wallet with common methods
26
- wallet = {
27
- getBlock: vi.fn(),
28
- getBlockNumber: vi.fn(),
29
- getChainId: vi.fn(),
30
- getVersion: vi.fn(),
31
- getNodeInfo: vi.fn(),
32
- getCurrentBaseFees: vi.fn(),
33
- setScopes: vi.fn(),
34
- getScopes: vi.fn(),
35
- addCapsule: vi.fn(),
36
- getAddress: vi.fn(),
37
- getCompleteAddress: vi.fn(),
38
- registerAccount: vi.fn(),
39
- getRegisteredAccounts: vi.fn(),
40
- registerSender: vi.fn(),
41
- getSenders: vi.fn(),
42
- removeSender: vi.fn(),
43
- addAuthWitness: vi.fn(),
44
- getAuthWitness: vi.fn(),
45
- createAuthWit: vi.fn(),
46
- isL1ToL2MessageSynced: vi.fn(),
47
- getContracts: vi.fn(),
48
- getContractMetadata: vi.fn(),
49
- getContractClassMetadata: vi.fn(),
50
- registerContract: vi.fn(),
51
- registerContractClass: vi.fn(),
52
- getPublicStorageAt: vi.fn(),
53
- createTxExecutionRequest: vi.fn(),
54
- proveTx: vi.fn(),
55
- sendTx: vi.fn(),
56
- getTxEffect: vi.fn(),
57
- getTxReceipt: vi.fn(),
58
- simulateTx: vi.fn(),
59
- simulateUnconstrained: vi.fn(),
60
- getNotes: vi.fn(),
61
- addNote: vi.fn(),
62
- addNullifiedNote: vi.fn(),
63
- getPublicLogs: vi.fn(),
64
- getContractClassLogs: vi.fn(),
65
- getPrivateEvents: vi.fn(),
66
- getPublicEvents: vi.fn(),
67
- getL1ToL2MembershipWitness: vi.fn(),
68
- } as unknown as AccountWallet;
69
-
70
- context = { wallet } as AztecWalletContext;
71
- });
72
-
73
- describe('Chain Methods', () => {
74
- it('handles aztec_getBlock', async () => {
75
- const mockBlock = { number: 1, hash: '0x123' };
76
- wallet.getBlock = vi.fn().mockResolvedValue(mockBlock);
77
-
78
- const result = await aztecWalletHandler(context, 'aztec_getBlock', { number: 1 });
79
- expect(result).toEqual(mockBlock);
80
- expect(wallet.getBlock).toHaveBeenCalledWith(1);
81
- });
82
-
83
- it('throws error when block not found', async () => {
84
- wallet.getBlock = vi.fn().mockResolvedValue(null);
85
-
86
- await expect(aztecWalletHandler(context, 'aztec_getBlock', { number: 1 })).rejects.toThrow(
87
- AztecWalletError,
88
- );
89
- });
90
-
91
- it('handles aztec_getBlockNumber', async () => {
92
- const mockBlockNumber = 100;
93
- wallet.getBlockNumber = vi.fn().mockResolvedValue(mockBlockNumber);
94
-
95
- const result = await aztecWalletHandler(context, 'aztec_getBlockNumber', {});
96
- expect(result).toBe(mockBlockNumber);
97
- });
98
-
99
- it('handles aztec_getChainId', async () => {
100
- wallet.getChainId = vi.fn().mockReturnValue(BigInt(1));
101
-
102
- const result = await aztecWalletHandler(context, 'aztec_getChainId', {});
103
- expect(result).toBe(1);
104
- });
105
-
106
- it('handles aztec_getVersion', async () => {
107
- wallet.getVersion = vi.fn().mockReturnValue(BigInt(1));
108
-
109
- const result = await aztecWalletHandler(context, 'aztec_getVersion', {});
110
- expect(result).toBe(1);
111
- });
112
- });
113
-
114
- describe('Scope Methods', () => {
115
- it('handles aztec_setScopes', async () => {
116
- const mockAddress = await AztecAddress.random();
117
- const scopes = [mockAddress];
118
- wallet.setScopes = vi.fn().mockResolvedValue(undefined);
119
-
120
- const result = await aztecWalletHandler(context, 'aztec_setScopes', { scopes });
121
- expect(result).toBe(true);
122
- expect(wallet.setScopes).toHaveBeenCalledWith(scopes);
123
- });
124
-
125
- it('handles aztec_getScopes', async () => {
126
- const scopes = [await AztecAddress.random(), await AztecAddress.random()];
127
- wallet.getScopes = vi.fn().mockResolvedValue(scopes);
128
-
129
- const result = await aztecWalletHandler(context, 'aztec_getScopes', {});
130
- expect(result).toEqual(scopes);
131
- });
132
-
133
- it('handles aztec_getScopes with null response', async () => {
134
- wallet.getScopes = vi.fn().mockResolvedValue(null);
135
-
136
- const result = await aztecWalletHandler(context, 'aztec_getScopes', {});
137
- expect(result).toEqual([]);
138
- });
139
- });
140
-
141
- describe('Account Methods', () => {
142
- it('handles aztec_getAddress', async () => {
143
- const mockAddress = await AztecAddress.random();
144
- wallet.getAddress = vi.fn().mockReturnValue(mockAddress);
145
-
146
- const result = await aztecWalletHandler(context, 'aztec_getAddress', {});
147
- expect(result).toBe(mockAddress);
148
- });
149
-
150
- it('handles aztec_getCompleteAddress', async () => {
151
- const mockAddress = {
152
- address: await AztecAddress.random(),
153
- publicKey: await AztecAddress.random(),
154
- };
155
- wallet.getCompleteAddress = vi.fn().mockReturnValue(mockAddress);
156
-
157
- const result = await aztecWalletHandler(context, 'aztec_getCompleteAddress', {});
158
- expect(result).toBe(mockAddress);
159
- });
160
-
161
- it('handles aztec_registerAccount', async () => {
162
- const mockParams = { secretKey: new Fr(1), partialAddress: new Fr(2) };
163
- const mockResult = { address: AztecAddress.random() };
164
- wallet.registerAccount = vi.fn().mockResolvedValue(mockResult);
165
-
166
- const result = await aztecWalletHandler(context, 'aztec_registerAccount', mockParams);
167
- expect(result).toBe(mockResult);
168
- expect(wallet.registerAccount).toHaveBeenCalledWith(mockParams.secretKey, mockParams.partialAddress);
169
- });
170
- });
171
-
172
- describe('Node Info Methods', () => {
173
- it('handles aztec_getNodeInfo', async () => {
174
- const mockNodeInfo = { version: '1.0.0', status: 'running' };
175
- wallet.getNodeInfo = vi.fn().mockResolvedValue(mockNodeInfo);
176
-
177
- const result = await aztecWalletHandler(context, 'aztec_getNodeInfo', {});
178
- expect(result).toBe(mockNodeInfo);
179
- });
180
-
181
- it('handles aztec_getCurrentBaseFees', async () => {
182
- const mockFees = { baseFee: BigInt(1000) };
183
- wallet.getCurrentBaseFees = vi.fn().mockResolvedValue(mockFees);
184
-
185
- const result = await aztecWalletHandler(context, 'aztec_getCurrentBaseFees', {});
186
- expect(result).toBe(mockFees);
187
- });
188
- });
189
-
190
- describe('L1->L2 Message Methods', () => {
191
- it('handles aztec_isL1ToL2MessageSynced', async () => {
192
- const mockMessage = await Fr.random();
193
- wallet.isL1ToL2MessageSynced = vi.fn().mockResolvedValue(true);
194
-
195
- const result = await aztecWalletHandler(context, 'aztec_isL1ToL2MessageSynced', {
196
- l1ToL2Message: mockMessage,
197
- });
198
- expect(result).toBe(true);
199
- });
200
-
201
- it('handles aztec_getL1ToL2MembershipWitness', async () => {
202
- const mockParams = {
203
- contractAddress: await AztecAddress.random(),
204
- messageHash: await Fr.random(),
205
- secret: await Fr.random(),
206
- };
207
- const mockWitness = { witness: new Uint8Array([1, 2, 3]) };
208
- wallet.getL1ToL2MembershipWitness = vi.fn().mockResolvedValue(mockWitness);
209
-
210
- const result = await aztecWalletHandler(context, 'aztec_getL1ToL2MembershipWitness', mockParams);
211
- expect(result).toBe(mockWitness);
212
- expect(wallet.getL1ToL2MembershipWitness).toHaveBeenCalledWith(
213
- mockParams.contractAddress,
214
- mockParams.messageHash,
215
- mockParams.secret,
216
- );
217
- });
218
- });
219
-
220
- describe('Note Methods', () => {
221
- it('handles aztec_getNotes', async () => {
222
- const mockFilter = { contractAddress: await AztecAddress.random() };
223
- const mockNote = await ExtendedNote.random();
224
- const mockNotes = [mockNote];
225
- wallet.getNotes = vi.fn().mockResolvedValue(mockNotes);
226
-
227
- const result = await aztecWalletHandler(context, 'aztec_getNotes', { filter: mockFilter });
228
- expect(result).toBe(mockNotes);
229
- expect(wallet.getNotes).toHaveBeenCalledWith(mockFilter);
230
- });
231
-
232
- it('handles aztec_addNote', async () => {
233
- const mockNote = await ExtendedNote.random();
234
- wallet.addNote = vi.fn().mockResolvedValue(undefined);
235
-
236
- const result = await aztecWalletHandler(context, 'aztec_addNote', { note: mockNote });
237
- expect(result).toBe(true);
238
- expect(wallet.addNote).toHaveBeenCalledWith(mockNote);
239
- });
240
-
241
- it('handles aztec_addNullifiedNote', async () => {
242
- const mockNote = await ExtendedNote.random();
243
- Object.assign(mockNote, { nullified: true });
244
- wallet.addNullifiedNote = vi.fn().mockResolvedValue(undefined);
245
-
246
- const result = await aztecWalletHandler(context, 'aztec_addNullifiedNote', { note: mockNote });
247
- expect(result).toBe(true);
248
- expect(wallet.addNullifiedNote).toHaveBeenCalledWith(mockNote);
249
- });
250
- });
251
-
252
- describe('Contract Methods', () => {
253
- it('handles aztec_getContractMetadata', async () => {
254
- const mockAddress = await AztecAddress.random();
255
- const mockMetadata = { address: mockAddress };
256
- wallet.getContractMetadata = vi.fn().mockResolvedValue(mockMetadata);
257
-
258
- const result = await aztecWalletHandler(context, 'aztec_getContractMetadata', { address: mockAddress });
259
- expect(result).toBe(mockMetadata);
260
- });
261
-
262
- it('handles aztec_getContractClassMetadata', async () => {
263
- const mockId = await Fr.random();
264
- const mockMetadata = { id: mockId };
265
- wallet.getContractClassMetadata = vi.fn().mockResolvedValue(mockMetadata);
266
-
267
- const result = await aztecWalletHandler(context, 'aztec_getContractClassMetadata', { id: mockId });
268
- expect(result).toBe(mockMetadata);
269
- });
270
-
271
- it('handles aztec_registerContract', async () => {
272
- const mockAddress = await AztecAddress.random();
273
- const mockPublicKeys = {
274
- masterNullifierPublicKey: new Fr(1),
275
- masterIncomingViewingPublicKey: new Fr(2),
276
- masterOutgoingViewingPublicKey: new Fr(3),
277
- masterTaggingPublicKey: new Fr(4),
278
- masterClaimingPublicKey: new Fr(5),
279
- masterNoteHashingPublicKey: new Fr(6),
280
- masterNoteCommitmentPublicKey: new Fr(7),
281
- masterNullifierGeneratorPublicKey: new Fr(8),
282
- masterTaggingGeneratorPublicKey: new Fr(9),
283
- masterClaimingGeneratorPublicKey: new Fr(10),
284
- hash: () => new Fr(11),
285
- isEmpty: () => false,
286
- equals: () => false,
287
- toBuffer: () => new Uint8Array(),
288
- toString: () => 'mockPublicKeys',
289
- toJSON: () => ({}),
290
- } as unknown as PublicKeys;
291
-
292
- const mockInstance = {
293
- address: mockAddress,
294
- version: 1,
295
- salt: new Fr(2),
296
- deployer: mockAddress,
297
- contractClassId: new Fr(3),
298
- initializationHash: new Fr(4),
299
- publicKeys: mockPublicKeys,
300
- } as unknown as ContractInstanceWithAddress;
301
-
302
- const mockArtifact = {
303
- name: 'TestContract',
304
- functions: {
305
- test: {
306
- name: 'test',
307
- parameters: [],
308
- },
309
- },
310
- outputs: {
311
- structs: {},
312
- globals: {},
313
- },
314
- storageLayout: {
315
- structs: {},
316
- globals: {},
317
- },
318
- notes: {},
319
- fileMap: {},
320
- } as unknown as ContractArtifact;
321
- const mockParams = {
322
- instance: mockInstance,
323
- artifact: mockArtifact,
324
- };
325
- wallet.registerContract = vi.fn().mockResolvedValue(undefined);
326
-
327
- const result = await aztecWalletHandler(context, 'aztec_registerContract', mockParams);
328
- expect(result).toBe(true);
329
- expect(wallet.registerContract).toHaveBeenCalledWith(mockParams);
330
- });
331
- });
332
-
333
- describe('Log Methods', () => {
334
- it('handles aztec_getPublicLogs', async () => {
335
- const mockFilter = { contractAddress: await AztecAddress.random() };
336
- const mockLogs = [{ data: new Uint8Array([1, 2, 3]) }];
337
- wallet.getPublicLogs = vi.fn().mockResolvedValue(mockLogs);
338
-
339
- const result = await aztecWalletHandler(context, 'aztec_getPublicLogs', { filter: mockFilter });
340
- expect(result).toBe(mockLogs);
341
- expect(wallet.getPublicLogs).toHaveBeenCalledWith(mockFilter);
342
- });
343
-
344
- it('handles aztec_getContractClassLogs', async () => {
345
- const mockFilter = { contractAddress: await AztecAddress.random() };
346
- const mockLogs = [{ data: new Uint8Array([1, 2, 3]) }];
347
- wallet.getContractClassLogs = vi.fn().mockResolvedValue(mockLogs);
348
-
349
- const result = await aztecWalletHandler(context, 'aztec_getContractClassLogs', { filter: mockFilter });
350
- expect(result).toBe(mockLogs);
351
- });
352
-
353
- it('handles aztec_getPrivateEvents', async () => {
354
- const mockEvent = {
355
- name: 'TestEvent',
356
- parameters: [{ name: 'value', type: 'field' }],
357
- returnType: { type: 'struct', items: [{ name: 'value', type: 'field' }] },
358
- eventSelector: await EventSelector.random(),
359
- abiType: 'event',
360
- fieldNames: ['value'],
361
- } as unknown as EventMetadataDefinition;
362
- const mockParams = {
363
- event: mockEvent,
364
- from: 0,
365
- limit: 10,
366
- vpks: [await Point.random()],
367
- };
368
- const mockEvents = [{ data: new Uint8Array([1, 2, 3]) }];
369
- wallet.getPrivateEvents = vi.fn().mockResolvedValue(mockEvents);
370
-
371
- const result = await aztecWalletHandler(context, 'aztec_getPrivateEvents', mockParams);
372
- expect(result).toBe(mockEvents);
373
- expect(wallet.getPrivateEvents).toHaveBeenCalledWith(
374
- mockParams.event,
375
- mockParams.from,
376
- mockParams.limit,
377
- mockParams.vpks,
378
- );
379
- });
380
-
381
- it('handles aztec_getPublicEvents', async () => {
382
- const mockEvent = {
383
- name: 'TestEvent',
384
- parameters: [{ name: 'value', type: 'field' }],
385
- returnType: { type: 'struct', items: [{ name: 'value', type: 'field' }] },
386
- eventSelector: await EventSelector.random(),
387
- abiType: 'event',
388
- fieldNames: ['value'],
389
- } as unknown as EventMetadataDefinition;
390
- const mockParams = {
391
- event: mockEvent,
392
- from: 0,
393
- limit: 10,
394
- };
395
- const mockEvents = [{ data: new Uint8Array([1, 2, 3]) }];
396
- wallet.getPublicEvents = vi.fn().mockResolvedValue(mockEvents);
397
-
398
- const result = await aztecWalletHandler(context, 'aztec_getPublicEvents', mockParams);
399
- expect(result).toBe(mockEvents);
400
- expect(wallet.getPublicEvents).toHaveBeenCalledWith(
401
- mockParams.event,
402
- mockParams.from,
403
- mockParams.limit,
404
- );
405
- });
406
- });
407
-
408
- describe('Transaction Methods', () => {
409
- it('handles aztec_getTxReceipt', async () => {
410
- const mockTxHash = await TxHash.random();
411
- const mockReceipt = { status: 1 };
412
- wallet.getTxReceipt = vi.fn().mockResolvedValue(mockReceipt);
413
-
414
- const result = await aztecWalletHandler(context, 'aztec_getTxReceipt', { txHash: mockTxHash });
415
- expect(result).toBe(mockReceipt);
416
- });
417
-
418
- it('throws error when transaction receipt not found', async () => {
419
- wallet.getTxReceipt = vi.fn().mockResolvedValue(null);
420
-
421
- const mockTxHash = await TxHash.random();
422
- await expect(aztecWalletHandler(context, 'aztec_getTxReceipt', { txHash: mockTxHash })).rejects.toThrow(
423
- AztecWalletError,
424
- );
425
- });
426
-
427
- it('handles aztec_simulateTx', async () => {
428
- const mockParams = {
429
- txRequest: {
430
- origin: await AztecAddress.random(),
431
- functionSelector: new Fr(1),
432
- firstCallArgsHash: new Fr(2),
433
- txContext: {
434
- chainId: 1,
435
- version: 1,
436
- protocolVersion: 1,
437
- excessFeeReceiver: await AztecAddress.random(),
438
- },
439
- callData: new Uint8Array(),
440
- gasLimit: 1000000n,
441
- gasPrice: 1000000n,
442
- storageContractAddress: await AztecAddress.random(),
443
- portalContract: await AztecAddress.random(),
444
- argsOfCalls: [],
445
- authWitnesses: [],
446
- toTxRequest: () => ({ id: '0x123' }),
447
- toBuffer: () => new Uint8Array(),
448
- } as unknown as TxExecutionRequest,
449
- simulatePublic: true,
450
- msgSender: await AztecAddress.random(),
451
- skipTxValidation: false,
452
- enforceFeePayment: true,
453
- profile: true,
454
- };
455
- const mockResult = { success: true };
456
- wallet.simulateTx = vi.fn().mockResolvedValue(mockResult);
457
-
458
- const result = await aztecWalletHandler(context, 'aztec_simulateTx', mockParams);
459
- expect(result).toBe(mockResult);
460
- expect(wallet.simulateTx).toHaveBeenCalledWith(
461
- mockParams.txRequest,
462
- mockParams.simulatePublic,
463
- mockParams.msgSender,
464
- mockParams.skipTxValidation,
465
- mockParams.enforceFeePayment,
466
- mockParams.profile,
467
- );
468
- });
469
- });
470
-
471
- describe('Capsule Methods', () => {
472
- it('handles aztec_addCapsule', async () => {
473
- const mockCapsule = [await Fr.random(), await Fr.random(), await Fr.random()];
474
- wallet.addCapsule = vi.fn().mockResolvedValue(undefined);
475
-
476
- const result = await aztecWalletHandler(context, 'aztec_addCapsule', { capsule: mockCapsule });
477
- expect(result).toBe(true);
478
- expect(wallet.addCapsule).toHaveBeenCalledWith(mockCapsule);
479
- });
480
- });
481
-
482
- describe('Auth Witness Methods', () => {
483
- it('handles aztec_addAuthWitness', async () => {
484
- const mockAuthWitness = {
485
- requestHash: await Fr.random(),
486
- witness: new Uint8Array([1, 2, 3]),
487
- toJSON: () => ({}),
488
- toBuffer: () => new Uint8Array([1, 2, 3]),
489
- } as unknown as AuthWitness;
490
- wallet.addAuthWitness = vi.fn().mockResolvedValue(undefined);
491
-
492
- const result = await aztecWalletHandler(context, 'aztec_addAuthWitness', {
493
- authWitness: mockAuthWitness,
494
- });
495
- expect(result).toBe(true);
496
- expect(wallet.addAuthWitness).toHaveBeenCalledWith(mockAuthWitness);
497
- });
498
-
499
- it('handles aztec_createAuthWit', async () => {
500
- const mockIntent = (await Fr.random()) as unknown as IntentAction | IntentInnerHash;
501
- const mockAuthWit = { witness: new Uint8Array([4, 5, 6]) };
502
- wallet.createAuthWit = vi.fn().mockResolvedValue(mockAuthWit);
503
-
504
- const result = await aztecWalletHandler(context, 'aztec_createAuthWit', { intent: mockIntent });
505
- expect(result).toBe(mockAuthWit);
506
- expect(wallet.createAuthWit).toHaveBeenCalledWith(mockIntent);
507
- });
508
- });
509
-
510
- describe('Sender Methods', () => {
511
- it('handles aztec_registerSender', async () => {
512
- const mockSender = await AztecAddress.random();
513
- const mockResult = { success: true };
514
- wallet.registerSender = vi.fn().mockResolvedValue(mockResult);
515
-
516
- const result = await aztecWalletHandler(context, 'aztec_registerSender', { sender: mockSender });
517
- expect(result).toBe(mockResult);
518
- expect(wallet.registerSender).toHaveBeenCalledWith(mockSender);
519
- });
520
-
521
- it('handles aztec_removeSender', async () => {
522
- const mockSender = await AztecAddress.random();
523
- wallet.removeSender = vi.fn().mockResolvedValue(undefined);
524
-
525
- const result = await aztecWalletHandler(context, 'aztec_removeSender', { sender: mockSender });
526
- expect(result).toBe(true);
527
- expect(wallet.removeSender).toHaveBeenCalledWith(mockSender);
528
- });
529
- });
530
-
531
- describe('Transaction Methods', () => {
532
- it('handles aztec_proveTx', async () => {
533
- const mockTxRequest = {
534
- origin: await AztecAddress.random(),
535
- functionSelector: new Fr(1),
536
- firstCallArgsHash: new Fr(2),
537
- txContext: {
538
- chainId: 1,
539
- version: 1,
540
- protocolVersion: 1,
541
- excessFeeReceiver: await AztecAddress.random(),
542
- },
543
- callData: new Uint8Array(),
544
- gasLimit: 1000000n,
545
- gasPrice: 1000000n,
546
- storageContractAddress: await AztecAddress.random(),
547
- portalContract: await AztecAddress.random(),
548
- argsOfCalls: [],
549
- authWitnesses: [],
550
- toTxRequest: () => ({ id: '0x123' }),
551
- toBuffer: () => new Uint8Array(),
552
- } as unknown as TxExecutionRequest;
553
- const mockPrivateExecutionResult = {
554
- acir: new Uint8Array([1, 2, 3]),
555
- vk: new Uint8Array([4, 5, 6]),
556
- partialWitness: new Uint8Array([7, 8, 9]),
557
- publicInputs: [await Fr.random()],
558
- success: true,
559
- gasUsed: 1000n,
560
- returnValue: new Uint8Array(),
561
- unencryptedLogs: [],
562
- contractClassLogs: [],
563
- encryptedLogs: [],
564
- encryptedLogPreimages: [],
565
- encryptedLogKeys: [],
566
- } as unknown as PrivateExecutionResult;
567
- const mockProvenTx = { hash: await TxHash.random() };
568
- wallet.proveTx = vi.fn().mockResolvedValue(mockProvenTx);
569
-
570
- const result = await aztecWalletHandler(context, 'aztec_proveTx', {
571
- txRequest: mockTxRequest,
572
- privateExecutionResult: mockPrivateExecutionResult,
573
- });
574
- expect(result).toBe(mockProvenTx);
575
- expect(wallet.proveTx).toHaveBeenCalledWith(mockTxRequest, mockPrivateExecutionResult);
576
- });
577
-
578
- it('handles aztec_sendTx', async () => {
579
- const mockTx = {
580
- hash: await TxHash.random(),
581
- data: new Uint8Array([1, 2, 3]),
582
- clientIvcProof: new Uint8Array([4, 5, 6]),
583
- unencryptedLogs: [],
584
- contractClassLogs: [],
585
- encryptedLogs: [],
586
- encryptedLogPreimages: [],
587
- encryptedLogKeys: [],
588
- encryptedLogsSalt: await Fr.random(),
589
- encryptedLogsCommitment: await Fr.random(),
590
- encryptedLogsTreeIndex: 0,
591
- encryptedLogProofs: [],
592
- encryptedLogProofsTreeIndex: 0,
593
- encryptedLogProofsCommitment: await Fr.random(),
594
- encryptedLogProofsSalt: await Fr.random(),
595
- toBuffer: () => new Uint8Array(),
596
- toString: () => 'mockTx',
597
- } as unknown as Tx;
598
- const mockTxHash = await TxHash.random();
599
- wallet.sendTx = vi.fn().mockResolvedValue(mockTxHash);
600
-
601
- const result = await aztecWalletHandler(context, 'aztec_sendTx', { tx: mockTx });
602
- expect(result).toBe(mockTxHash);
603
- expect(wallet.sendTx).toHaveBeenCalledWith(mockTx);
604
- });
605
-
606
- it('handles aztec_getTxEffect', async () => {
607
- const mockTxHash = await TxHash.random();
608
- const mockEffect = { success: true };
609
- wallet.getTxEffect = vi.fn().mockResolvedValue(mockEffect);
610
-
611
- const result = await aztecWalletHandler(context, 'aztec_getTxEffect', { txHash: mockTxHash });
612
- expect(result).toBe(mockEffect);
613
- expect(wallet.getTxEffect).toHaveBeenCalledWith(mockTxHash);
614
- });
615
-
616
- it('throws error when transaction effect not found', async () => {
617
- wallet.getTxEffect = vi.fn().mockResolvedValue(null);
618
-
619
- const mockTxHash = await TxHash.random();
620
- await expect(aztecWalletHandler(context, 'aztec_getTxEffect', { txHash: mockTxHash })).rejects.toThrow(
621
- AztecWalletError,
622
- );
623
- });
624
- });
625
-
626
- describe('Public Storage Methods', () => {
627
- it('handles aztec_getPublicStorageAt', async () => {
628
- const mockContract = await AztecAddress.random();
629
- const mockStorageSlot = await Fr.random();
630
- const mockValue = await Fr.random();
631
- wallet.getPublicStorageAt = vi.fn().mockResolvedValue(mockValue);
632
-
633
- const result = await aztecWalletHandler(context, 'aztec_getPublicStorageAt', {
634
- contract: mockContract,
635
- storageSlot: mockStorageSlot,
636
- });
637
- expect(result).toBe(mockValue);
638
- expect(wallet.getPublicStorageAt).toHaveBeenCalledWith(mockContract, mockStorageSlot);
639
- });
640
- });
641
-
642
- describe('Error Handling', () => {
643
- it('throws error for unsupported method', async () => {
644
- await expect(
645
- aztecWalletHandler(context, 'not_a_real_method' as keyof AztecWalletMethodMap, {}),
646
- ).rejects.toThrow(AztecWalletError);
647
- });
648
- });
649
- });