@walletmesh/aztec-rpc-wallet 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +4 -4
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/aztecRemoteWallet.d.ts +7 -6
  5. package/dist/aztecRemoteWallet.d.ts.map +1 -1
  6. package/dist/aztecRemoteWallet.js +15 -10
  7. package/dist/chainProvider.d.ts.map +1 -1
  8. package/dist/chainProvider.js +1 -1
  9. package/dist/errors.d.ts.map +1 -1
  10. package/dist/errors.js +1 -1
  11. package/dist/handlers/aztecAccountWallet.d.ts.map +1 -1
  12. package/dist/handlers/aztecAccountWallet.js +23 -23
  13. package/dist/handlers/transactions.d.ts.map +1 -1
  14. package/dist/handlers/transactions.js +11 -3
  15. package/dist/serializers/account.d.ts +19 -22
  16. package/dist/serializers/account.d.ts.map +1 -1
  17. package/dist/serializers/account.js +44 -45
  18. package/dist/serializers/contract.d.ts +11 -63
  19. package/dist/serializers/contract.d.ts.map +1 -1
  20. package/dist/serializers/contract.js +67 -153
  21. package/dist/serializers/index.d.ts +1 -4
  22. package/dist/serializers/index.d.ts.map +1 -1
  23. package/dist/serializers/index.js +12 -12
  24. package/dist/serializers/log.d.ts +38 -85
  25. package/dist/serializers/log.d.ts.map +1 -1
  26. package/dist/serializers/log.js +106 -115
  27. package/dist/serializers/note.d.ts +24 -27
  28. package/dist/serializers/note.d.ts.map +1 -1
  29. package/dist/serializers/note.js +67 -41
  30. package/dist/serializers/transaction-utils.d.ts +44 -100
  31. package/dist/serializers/transaction-utils.d.ts.map +1 -1
  32. package/dist/serializers/transaction-utils.js +89 -116
  33. package/dist/serializers/transaction.d.ts +15 -18
  34. package/dist/serializers/transaction.d.ts.map +1 -1
  35. package/dist/serializers/transaction.js +51 -62
  36. package/dist/types.d.ts +9 -9
  37. package/dist/types.d.ts.map +1 -1
  38. package/dist/types.js +1 -1
  39. package/package.json +9 -9
  40. package/src/aztecRemoteWallet.test.ts +34 -33
  41. package/src/aztecRemoteWallet.ts +25 -15
  42. package/src/chainProvider.ts +1 -7
  43. package/src/errors.ts +0 -1
  44. package/src/handlers/aztecAccountWallet.test.ts +78 -75
  45. package/src/handlers/aztecAccountWallet.ts +33 -36
  46. package/src/handlers/transactions.ts +16 -2
  47. package/src/serializers/account.test.ts +18 -17
  48. package/src/serializers/account.ts +46 -64
  49. package/src/serializers/contract.test.ts +14 -16
  50. package/src/serializers/contract.ts +77 -171
  51. package/src/serializers/index.test.ts +20 -8
  52. package/src/serializers/index.ts +16 -32
  53. package/src/serializers/log.test.ts +201 -28
  54. package/src/serializers/log.ts +162 -153
  55. package/src/serializers/note.test.ts +26 -28
  56. package/src/serializers/note.ts +71 -48
  57. package/src/serializers/transaction-utils.ts +147 -210
  58. package/src/serializers/transaction.test.ts +190 -30
  59. package/src/serializers/transaction.ts +62 -83
  60. package/src/types.ts +10 -9
  61. package/tsconfig.json +1 -1
  62. package/vitest.config.ts +1 -1
  63. package/dist/serializers/contract-utils.d.ts +0 -40
  64. package/dist/serializers/contract-utils.d.ts.map +0 -1
  65. package/dist/serializers/contract-utils.js +0 -102
  66. package/dist/serializers/core.d.ts +0 -110
  67. package/dist/serializers/core.d.ts.map +0 -1
  68. package/dist/serializers/core.js +0 -130
  69. package/dist/serializers/types.d.ts +0 -49
  70. package/dist/serializers/types.d.ts.map +0 -1
  71. package/dist/serializers/types.js +0 -22
  72. package/src/serializers/contract-utils.ts +0 -104
  73. package/src/serializers/core.test.ts +0 -56
  74. package/src/serializers/core.ts +0 -141
  75. package/src/serializers/types.ts +0 -58
@@ -1,160 +1,194 @@
1
1
  import type { AztecWalletMethodMap } from '../types.js';
2
- import type { JSONRPCSerializedData, JSONRPCSerializer } from './types.js';
3
- import { encodeBase64, decodeBase64 } from './types.js';
2
+ import type { JSONRPCSerializedData, JSONRPCSerializer } from '@walletmesh/jsonrpc';
4
3
  import type { EventMetadataDefinition } from '@aztec/circuit-types';
5
- import { ExtendedUnencryptedL2Log, TxHash, LogId } from '@aztec/circuit-types';
6
- import { Point, AztecAddress } from '@aztec/aztec.js';
7
- import { EventSelector, AbiTypeSchema } from '@aztec/foundation/abi';
8
- import type { LogFilter } from '@aztec/aztec.js';
4
+ import {
5
+ GetPublicLogsResponseSchema,
6
+ GetContractClassLogsResponseSchema,
7
+ TxHash,
8
+ LogId,
9
+ } from '@aztec/circuit-types';
10
+ import { AztecAddress, type LogFilter, Point } from '@aztec/aztec.js';
11
+ import { EventSelector } from '@aztec/foundation/abi';
9
12
 
10
13
  /**
11
- * Serializer for the aztec_getUnencryptedLogs RPC method.
12
- * Handles serialization of unencrypted log queries and results between JSON-RPC format and native Aztec types.
13
- * Supports filtering logs by transaction hash, block range, and contract address.
14
+ * Serializer for the aztec_getPublicLogs RPC method.
15
+ * Handles serialization of public log queries and results between JSON-RPC format and native Aztec types.
14
16
  */
15
- export class AztecGetUnencryptedLogsSerializer
17
+ export class AztecGetPublicLogsSerializer
16
18
  implements
17
19
  JSONRPCSerializer<
18
- AztecWalletMethodMap['aztec_getUnencryptedLogs']['params'],
19
- AztecWalletMethodMap['aztec_getUnencryptedLogs']['result']
20
+ AztecWalletMethodMap['aztec_getPublicLogs']['params'],
21
+ AztecWalletMethodMap['aztec_getPublicLogs']['result']
20
22
  >
21
23
  {
22
24
  params = {
23
- /**
24
- * Serializes log filter parameters for RPC transport.
25
- * @param method - The RPC method name
26
- * @param value - The filter parameters including txHash, block range, and contract address
27
- * @returns Serialized filter data
28
- */
29
25
  serialize: (
30
26
  method: string,
31
- value: AztecWalletMethodMap['aztec_getUnencryptedLogs']['params'],
27
+ value: AztecWalletMethodMap['aztec_getPublicLogs']['params'],
32
28
  ): JSONRPCSerializedData => {
33
29
  const { filter } = value;
30
+ // Convert all fields that need string conversion
31
+ const serializedFilter = {
32
+ ...filter,
33
+ txHash: filter.txHash?.toString(),
34
+ contractAddress: filter.contractAddress?.toString(),
35
+ afterLog: filter.afterLog?.toString(),
36
+ fromBlock: filter.fromBlock,
37
+ toBlock: filter.toBlock,
38
+ };
34
39
  return {
35
40
  method,
36
- serialized: encodeBase64(
37
- JSON.stringify({
38
- txHash: filter.txHash?.toString(),
39
- fromBlock: filter.fromBlock,
40
- toBlock: filter.toBlock,
41
- afterLog: filter.afterLog?.toString(),
42
- contractAddress: filter.contractAddress?.toString(),
43
- }),
44
- ),
41
+ serialized: JSON.stringify({ filter: serializedFilter }),
45
42
  };
46
43
  },
47
- /**
48
- * Deserializes log filter parameters from RPC transport.
49
- * @param method - The RPC method name
50
- * @param data - The serialized filter data
51
- * @returns Deserialized filter parameters
52
- */
53
44
  deserialize: (
54
- method: string,
45
+ _method: string,
55
46
  data: JSONRPCSerializedData,
56
- ): AztecWalletMethodMap['aztec_getUnencryptedLogs']['params'] => {
57
- const parsed = JSON.parse(decodeBase64(data.serialized));
58
- const filter: LogFilter = {
59
- txHash: parsed.txHash ? TxHash.fromString(parsed.txHash) : undefined,
60
- fromBlock: parsed.fromBlock,
61
- toBlock: parsed.toBlock,
62
- afterLog: parsed.afterLog ? LogId.fromString(parsed.afterLog) : undefined,
63
- contractAddress: parsed.contractAddress ? AztecAddress.fromString(parsed.contractAddress) : undefined,
64
- };
65
- return { filter };
47
+ ): AztecWalletMethodMap['aztec_getPublicLogs']['params'] => {
48
+ const { filter } = JSON.parse(data.serialized);
49
+ const deserializedFilter: Partial<{
50
+ txHash: TxHash;
51
+ contractAddress: AztecAddress;
52
+ afterLog: LogId;
53
+ fromBlock: number;
54
+ toBlock: number;
55
+ }> = {};
56
+
57
+ if (filter.txHash) deserializedFilter.txHash = TxHash.fromString(filter.txHash);
58
+ if (filter.contractAddress)
59
+ deserializedFilter.contractAddress = AztecAddress.fromString(filter.contractAddress);
60
+ if (filter.afterLog) deserializedFilter.afterLog = LogId.fromString(filter.afterLog);
61
+ if (filter.fromBlock !== undefined) deserializedFilter.fromBlock = filter.fromBlock;
62
+ if (filter.toBlock !== undefined) deserializedFilter.toBlock = filter.toBlock;
63
+
64
+ return { filter: deserializedFilter };
66
65
  },
67
66
  };
68
67
 
69
68
  result = {
70
- /**
71
- * Serializes unencrypted log results for RPC transport.
72
- * @param method - The RPC method name
73
- * @param value - The log results including logs array and maxLogsHit flag
74
- * @returns Serialized log data
75
- */
76
69
  serialize: (
77
70
  method: string,
78
- value: AztecWalletMethodMap['aztec_getUnencryptedLogs']['result'],
71
+ value: AztecWalletMethodMap['aztec_getPublicLogs']['result'],
79
72
  ): JSONRPCSerializedData => {
80
- const serializedLogs = value.logs.map((log) => log.toString());
81
73
  return {
82
74
  method,
83
- serialized: encodeBase64(JSON.stringify({ serializedLogs, maxLogsHit: value.maxLogsHit })),
75
+ serialized: JSON.stringify(value),
84
76
  };
85
77
  },
86
- /**
87
- * Deserializes unencrypted log results from RPC transport.
88
- * @param method - The RPC method name
89
- * @param data - The serialized log data
90
- * @returns Deserialized log results
91
- */
92
78
  deserialize: (
79
+ _method: string,
80
+ data: JSONRPCSerializedData,
81
+ ): AztecWalletMethodMap['aztec_getPublicLogs']['result'] => {
82
+ return GetPublicLogsResponseSchema.parse(JSON.parse(data.serialized));
83
+ },
84
+ };
85
+ }
86
+
87
+ /**
88
+ * Serializer for the aztec_getContractClassLogs RPC method.
89
+ * Handles serialization of contract class log queries and results between JSON-RPC format and native Aztec types.
90
+ */
91
+ export class AztecGetContractClassLogsSerializer
92
+ implements
93
+ JSONRPCSerializer<
94
+ AztecWalletMethodMap['aztec_getContractClassLogs']['params'],
95
+ AztecWalletMethodMap['aztec_getContractClassLogs']['result']
96
+ >
97
+ {
98
+ params = {
99
+ serialize: (
93
100
  method: string,
101
+ value: AztecWalletMethodMap['aztec_getContractClassLogs']['params'],
102
+ ): JSONRPCSerializedData => {
103
+ const { filter } = value;
104
+ // Convert fields to strings for schema validation
105
+ const serializedFilter = {
106
+ txHash: filter.txHash?.toString() ?? undefined,
107
+ contractAddress: filter.contractAddress?.toString() ?? undefined,
108
+ afterLog: filter.afterLog?.toString() ?? undefined,
109
+ fromBlock: filter.fromBlock,
110
+ toBlock: filter.toBlock,
111
+ };
112
+ return {
113
+ method,
114
+ serialized: JSON.stringify({ filter: serializedFilter }),
115
+ };
116
+ },
117
+ deserialize: (
118
+ _method: string,
94
119
  data: JSONRPCSerializedData,
95
- ): AztecWalletMethodMap['aztec_getUnencryptedLogs']['result'] => {
96
- const { serializedLogs, maxLogsHit } = JSON.parse(decodeBase64(data.serialized));
120
+ ): AztecWalletMethodMap['aztec_getContractClassLogs']['params'] => {
121
+ const { filter } = JSON.parse(data.serialized);
122
+ const deserializedFilter: LogFilter = {};
123
+
124
+ if (filter.txHash) deserializedFilter.txHash = TxHash.fromString(filter.txHash);
125
+ if (filter.contractAddress)
126
+ deserializedFilter.contractAddress = AztecAddress.fromString(filter.contractAddress);
127
+ if (filter.afterLog) deserializedFilter.afterLog = LogId.fromString(filter.afterLog);
128
+ if (filter.fromBlock !== undefined) deserializedFilter.fromBlock = filter.fromBlock;
129
+ if (filter.toBlock !== undefined) deserializedFilter.toBlock = filter.toBlock;
130
+
131
+ return { filter: deserializedFilter };
132
+ },
133
+ };
134
+
135
+ result = {
136
+ serialize: (
137
+ method: string,
138
+ value: AztecWalletMethodMap['aztec_getContractClassLogs']['result'],
139
+ ): JSONRPCSerializedData => {
97
140
  return {
98
- logs: serializedLogs.map((log: string) => ExtendedUnencryptedL2Log.fromString(log)),
99
- maxLogsHit,
141
+ method,
142
+ serialized: JSON.stringify(GetContractClassLogsResponseSchema.parse(value)),
100
143
  };
101
144
  },
145
+ deserialize: (
146
+ _method: string,
147
+ data: JSONRPCSerializedData,
148
+ ): AztecWalletMethodMap['aztec_getContractClassLogs']['result'] => {
149
+ return GetContractClassLogsResponseSchema.parse(JSON.parse(data.serialized));
150
+ },
102
151
  };
103
152
  }
104
153
 
105
154
  /**
106
- * Serializer for the aztec_getEncryptedEvents RPC method.
107
- * Handles serialization of encrypted event queries and results between JSON-RPC format and native Aztec types.
108
- * Supports querying events with viewing keys for decryption.
155
+ * Serializer for the aztec_getPrivateEvents RPC method.
156
+ * Handles serialization of private event queries and results between JSON-RPC format and native Aztec types.
109
157
  */
110
- export class AztecGetEncryptedEventsSerializer
158
+ export class AztecGetPrivateEventsSerializer
111
159
  implements
112
160
  JSONRPCSerializer<
113
- AztecWalletMethodMap['aztec_getEncryptedEvents']['params'],
114
- AztecWalletMethodMap['aztec_getEncryptedEvents']['result']
161
+ AztecWalletMethodMap['aztec_getPrivateEvents']['params'],
162
+ AztecWalletMethodMap['aztec_getPrivateEvents']['result']
115
163
  >
116
164
  {
117
165
  params = {
118
- /**
119
- * Serializes encrypted event query parameters for RPC transport.
120
- * @param method - The RPC method name
121
- * @param value - The query parameters including event metadata, range, and viewing keys
122
- * @returns Serialized query data
123
- */
124
166
  serialize: (
125
167
  method: string,
126
- value: AztecWalletMethodMap['aztec_getEncryptedEvents']['params'],
168
+ value: AztecWalletMethodMap['aztec_getPrivateEvents']['params'],
127
169
  ): JSONRPCSerializedData => {
128
170
  const { event, from, limit, vpks } = value;
129
171
  return {
130
172
  method,
131
- serialized: encodeBase64(
132
- JSON.stringify({
133
- event: {
134
- eventSelector: event.eventSelector.toString(),
135
- abiType: {
136
- kind: event.abiType.kind,
137
- },
138
- fieldNames: event.fieldNames,
173
+ serialized: JSON.stringify({
174
+ event: {
175
+ eventSelector: event.eventSelector.toString(),
176
+ abiType: {
177
+ kind: event.abiType.kind,
139
178
  },
140
- from,
141
- limit,
142
- vpks: vpks?.map((p) => p.toString()),
143
- }),
144
- ),
179
+ fieldNames: event.fieldNames,
180
+ },
181
+ from,
182
+ limit,
183
+ vpks: vpks?.map((p) => p.toString()),
184
+ }),
145
185
  };
146
186
  },
147
- /**
148
- * Deserializes encrypted event query parameters from RPC transport.
149
- * @param method - The RPC method name
150
- * @param data - The serialized query data
151
- * @returns Deserialized query parameters
152
- */
153
187
  deserialize: (
154
- method: string,
188
+ _method: string,
155
189
  data: JSONRPCSerializedData,
156
- ): AztecWalletMethodMap['aztec_getEncryptedEvents']['params'] => {
157
- const { event: serializedEvent, from, limit, vpks } = JSON.parse(decodeBase64(data.serialized));
190
+ ): AztecWalletMethodMap['aztec_getPrivateEvents']['params'] => {
191
+ const { event: serializedEvent, from, limit, vpks } = JSON.parse(data.serialized);
158
192
  const event: EventMetadataDefinition = {
159
193
  eventSelector: EventSelector.fromString(serializedEvent.eventSelector),
160
194
  abiType: {
@@ -171,76 +205,56 @@ export class AztecGetEncryptedEventsSerializer
171
205
  },
172
206
  };
173
207
 
174
- /**
175
- * Handles serialization of encrypted event results.
176
- * Note: The result type is generic (T[]) based on the event's ABI type definition.
177
- * Currently handles results as unknown[] until proper ABI-based deserialization is implemented.
178
- */
179
208
  result = {
180
209
  serialize: (method: string, value: unknown[]): JSONRPCSerializedData => {
181
210
  return {
182
211
  method,
183
- serialized: encodeBase64(JSON.stringify(value)),
212
+ serialized: JSON.stringify(value),
184
213
  };
185
214
  },
186
- deserialize: (method: string, data: JSONRPCSerializedData): unknown[] => {
187
- return JSON.parse(decodeBase64(data.serialized));
215
+ deserialize: (_method: string, data: JSONRPCSerializedData): unknown[] => {
216
+ return JSON.parse(data.serialized);
188
217
  },
189
218
  };
190
219
  }
191
220
 
192
221
  /**
193
- * Serializer for the aztec_getUnencryptedEvents RPC method.
194
- * Handles serialization of unencrypted event queries and results between JSON-RPC format and native Aztec types.
195
- * Supports querying events by event selector and pagination parameters.
222
+ * Serializer for the aztec_getPublicEvents RPC method.
223
+ * Handles serialization of public event queries and results between JSON-RPC format and native Aztec types.
196
224
  */
197
- export class AztecGetUnencryptedEventsSerializer
225
+ export class AztecGetPublicEventsSerializer
198
226
  implements
199
227
  JSONRPCSerializer<
200
- AztecWalletMethodMap['aztec_getUnencryptedEvents']['params'],
201
- AztecWalletMethodMap['aztec_getUnencryptedEvents']['result']
228
+ AztecWalletMethodMap['aztec_getPublicEvents']['params'],
229
+ AztecWalletMethodMap['aztec_getPublicEvents']['result']
202
230
  >
203
231
  {
204
232
  params = {
205
- /**
206
- * Serializes unencrypted event query parameters for RPC transport.
207
- * @param method - The RPC method name
208
- * @param value - The query parameters including event metadata and range
209
- * @returns Serialized query data
210
- */
211
233
  serialize: (
212
234
  method: string,
213
- value: AztecWalletMethodMap['aztec_getUnencryptedEvents']['params'],
235
+ value: AztecWalletMethodMap['aztec_getPublicEvents']['params'],
214
236
  ): JSONRPCSerializedData => {
215
237
  const { event, from, limit } = value;
216
238
  return {
217
239
  method,
218
- serialized: encodeBase64(
219
- JSON.stringify({
220
- event: {
221
- eventSelector: event.eventSelector.toString(),
222
- abiType: {
223
- kind: event.abiType.kind,
224
- },
225
- fieldNames: event.fieldNames,
240
+ serialized: JSON.stringify({
241
+ event: {
242
+ eventSelector: event.eventSelector.toString(),
243
+ abiType: {
244
+ kind: event.abiType.kind,
226
245
  },
227
- from,
228
- limit,
229
- }),
230
- ),
246
+ fieldNames: event.fieldNames,
247
+ },
248
+ from,
249
+ limit,
250
+ }),
231
251
  };
232
252
  },
233
- /**
234
- * Deserializes unencrypted event query parameters from RPC transport.
235
- * @param method - The RPC method name
236
- * @param data - The serialized query data
237
- * @returns Deserialized query parameters
238
- */
239
253
  deserialize: (
240
- method: string,
254
+ _method: string,
241
255
  data: JSONRPCSerializedData,
242
- ): AztecWalletMethodMap['aztec_getUnencryptedEvents']['params'] => {
243
- const { event: serializedEvent, from, limit } = JSON.parse(decodeBase64(data.serialized));
256
+ ): AztecWalletMethodMap['aztec_getPublicEvents']['params'] => {
257
+ const { event: serializedEvent, from, limit } = JSON.parse(data.serialized);
244
258
  const event: EventMetadataDefinition = {
245
259
  eventSelector: EventSelector.fromString(serializedEvent.eventSelector),
246
260
  abiType: {
@@ -256,28 +270,23 @@ export class AztecGetUnencryptedEventsSerializer
256
270
  },
257
271
  };
258
272
 
259
- /**
260
- * Handles serialization of unencrypted event results.
261
- * Note: The result type is generic (T[]) based on the event's ABI type definition.
262
- * Currently handles results as unknown[] until proper ABI-based deserialization is implemented.
263
- */
264
273
  result = {
265
274
  serialize: (method: string, value: unknown[]): JSONRPCSerializedData => {
266
275
  return {
267
276
  method,
268
- serialized: encodeBase64(JSON.stringify(value)),
277
+ serialized: JSON.stringify(value),
269
278
  };
270
279
  },
271
- deserialize: (method: string, data: JSONRPCSerializedData): unknown[] => {
272
- return JSON.parse(decodeBase64(data.serialized));
280
+ deserialize: (_method: string, data: JSONRPCSerializedData): unknown[] => {
281
+ return JSON.parse(data.serialized);
273
282
  },
274
283
  };
275
284
  }
276
285
 
277
286
  /**
278
287
  * Pre-instantiated serializer instances for each Aztec log/event-related RPC method.
279
- * These instances can be used directly by the RPC handler implementation.
280
288
  */
281
- export const aztecGetUnencryptedLogsSerializer = new AztecGetUnencryptedLogsSerializer();
282
- export const aztecGetEncryptedEventsSerializer = new AztecGetEncryptedEventsSerializer();
283
- export const aztecGetUnencryptedEventsSerializer = new AztecGetUnencryptedEventsSerializer();
289
+ export const aztecGetPublicLogsSerializer = new AztecGetPublicLogsSerializer();
290
+ export const aztecGetContractClassLogsSerializer = new AztecGetContractClassLogsSerializer();
291
+ export const aztecGetPrivateEventsSerializer = new AztecGetPrivateEventsSerializer();
292
+ export const aztecGetPublicEventsSerializer = new AztecGetPublicEventsSerializer();
@@ -1,31 +1,27 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
  import { Fr, AztecAddress, ExtendedNote } from '@aztec/aztec.js';
3
- import { type IncomingNotesFilter, NoteStatus, TxHash, UniqueNote } from '@aztec/circuit-types';
4
- import {
5
- aztecGetIncomingNotesSerializer,
6
- aztecAddNoteSerializer,
7
- aztecAddNullifiedNoteSerializer,
8
- } from './note.js';
3
+ import { type NotesFilter, NoteStatus, TxHash, UniqueNote } from '@aztec/circuit-types';
4
+ import { aztecGetNotesSerializer, aztecAddNoteSerializer, aztecAddNullifiedNoteSerializer } from './note.js';
9
5
 
10
6
  describe('Note Serializers', () => {
11
- describe('aztec_getIncomingNotes', () => {
12
- const METHOD = 'aztec_getIncomingNotes';
13
-
14
- it('should serialize and deserialize params', () => {
15
- const filter: IncomingNotesFilter = {
16
- txHash: TxHash.random(),
17
- contractAddress: AztecAddress.random(),
18
- storageSlot: Fr.random(),
19
- owner: AztecAddress.random(),
7
+ describe('aztec_getNotes', () => {
8
+ const METHOD = 'aztec_getNotes';
9
+
10
+ it('should serialize and deserialize params', async () => {
11
+ const filter: NotesFilter = {
12
+ txHash: await TxHash.random(),
13
+ contractAddress: await AztecAddress.random(),
14
+ storageSlot: await Fr.random(),
15
+ owner: await AztecAddress.random(),
20
16
  status: NoteStatus.ACTIVE,
21
- siloedNullifier: Fr.random(),
22
- scopes: [AztecAddress.random()],
17
+ siloedNullifier: await Fr.random(),
18
+ scopes: [await AztecAddress.random()],
23
19
  };
24
20
  const params = { filter };
25
- const serialized = aztecGetIncomingNotesSerializer.params.serialize(METHOD, params);
21
+ const serialized = aztecGetNotesSerializer.params.serialize(METHOD, params);
26
22
  expect(serialized.method).toBe(METHOD);
27
23
 
28
- const deserialized = aztecGetIncomingNotesSerializer.params.deserialize(METHOD, serialized);
24
+ const deserialized = aztecGetNotesSerializer.params.deserialize(METHOD, serialized);
29
25
  expect(deserialized.filter.txHash?.toString()).toBe(filter.txHash?.toString());
30
26
  expect(deserialized.filter.contractAddress?.toString()).toBe(filter.contractAddress?.toString());
31
27
  expect(deserialized.filter.storageSlot?.toString()).toBe(filter.storageSlot?.toString());
@@ -37,22 +33,24 @@ describe('Note Serializers', () => {
37
33
  );
38
34
  });
39
35
 
40
- it('should serialize and deserialize result', () => {
41
- const result = [UniqueNote.random(), UniqueNote.random()];
36
+ it('should serialize and deserialize result', async () => {
37
+ const result = [await UniqueNote.random(), await UniqueNote.random()];
42
38
 
43
- const serialized = aztecGetIncomingNotesSerializer.result.serialize(METHOD, result);
39
+ const serialized = aztecGetNotesSerializer.result.serialize(METHOD, result);
44
40
  expect(serialized.method).toBe(METHOD);
45
41
 
46
- const deserialized = aztecGetIncomingNotesSerializer.result.deserialize(METHOD, serialized);
47
- expect(deserialized.map((n) => n.toString())).toEqual(result.map((n) => n.toString()));
42
+ const deserialized = aztecGetNotesSerializer.result.deserialize(METHOD, serialized);
43
+ expect(deserialized.map((note: UniqueNote) => note.toString())).toEqual(
44
+ result.map((note: UniqueNote) => note.toString()),
45
+ );
48
46
  });
49
47
  });
50
48
 
51
49
  describe('aztec_addNote', () => {
52
50
  const METHOD = 'aztec_addNote';
53
51
 
54
- it('should serialize and deserialize params', () => {
55
- const note = ExtendedNote.random();
52
+ it('should serialize and deserialize params', async () => {
53
+ const note = await ExtendedNote.random();
56
54
  const params = { note };
57
55
 
58
56
  const serialized = aztecAddNoteSerializer.params.serialize(METHOD, params);
@@ -76,8 +74,8 @@ describe('Note Serializers', () => {
76
74
  describe('aztec_addNullifiedNote', () => {
77
75
  const METHOD = 'aztec_addNullifiedNote';
78
76
 
79
- it('should serialize and deserialize params', () => {
80
- const note = ExtendedNote.random();
77
+ it('should serialize and deserialize params', async () => {
78
+ const note = await ExtendedNote.random();
81
79
  const params = { note };
82
80
 
83
81
  const serialized = aztecAddNullifiedNoteSerializer.params.serialize(METHOD, params);