@walletmesh/aztec-rpc-wallet 0.1.0 → 0.2.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 (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);