@walletmesh/aztec-rpc-wallet 0.1.0 → 0.1.1
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.
- package/CHANGELOG.md +6 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/aztecRemoteWallet.d.ts +7 -6
- package/dist/aztecRemoteWallet.d.ts.map +1 -1
- package/dist/aztecRemoteWallet.js +15 -9
- package/dist/handlers/aztecAccountWallet.d.ts.map +1 -1
- package/dist/handlers/aztecAccountWallet.js +22 -22
- package/dist/serializers/account.d.ts +4 -7
- package/dist/serializers/account.d.ts.map +1 -1
- package/dist/serializers/account.js +28 -29
- package/dist/serializers/contract.d.ts +4 -56
- package/dist/serializers/contract.d.ts.map +1 -1
- package/dist/serializers/contract.js +62 -148
- package/dist/serializers/index.d.ts +1 -4
- package/dist/serializers/index.d.ts.map +1 -1
- package/dist/serializers/index.js +12 -12
- package/dist/serializers/log.d.ts +36 -83
- package/dist/serializers/log.d.ts.map +1 -1
- package/dist/serializers/log.js +96 -107
- package/dist/serializers/note.d.ts +14 -17
- package/dist/serializers/note.d.ts.map +1 -1
- package/dist/serializers/note.js +52 -29
- package/dist/serializers/transaction-utils.d.ts +44 -100
- package/dist/serializers/transaction-utils.d.ts.map +1 -1
- package/dist/serializers/transaction-utils.js +82 -118
- package/dist/serializers/transaction.d.ts +3 -6
- package/dist/serializers/transaction.d.ts.map +1 -1
- package/dist/serializers/transaction.js +39 -50
- package/dist/types.d.ts +8 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +5 -5
- package/src/aztecRemoteWallet.test.ts +33 -29
- package/src/aztecRemoteWallet.ts +25 -14
- package/src/handlers/aztecAccountWallet.test.ts +78 -75
- package/src/handlers/aztecAccountWallet.ts +32 -35
- package/src/serializers/account.test.ts +18 -17
- package/src/serializers/account.ts +31 -49
- package/src/serializers/contract.test.ts +14 -16
- package/src/serializers/contract.ts +75 -164
- package/src/serializers/index.test.ts +20 -8
- package/src/serializers/index.ts +16 -20
- package/src/serializers/log.test.ts +201 -28
- package/src/serializers/log.ts +153 -146
- package/src/serializers/note.test.ts +26 -28
- package/src/serializers/note.ts +60 -36
- package/src/serializers/transaction-utils.ts +135 -211
- package/src/serializers/transaction.test.ts +190 -30
- package/src/serializers/transaction.ts +51 -72
- package/src/types.ts +9 -8
- package/vitest.config.ts +1 -1
- package/dist/serializers/contract-utils.d.ts +0 -40
- package/dist/serializers/contract-utils.d.ts.map +0 -1
- package/dist/serializers/contract-utils.js +0 -102
- package/dist/serializers/core.d.ts +0 -110
- package/dist/serializers/core.d.ts.map +0 -1
- package/dist/serializers/core.js +0 -130
- package/dist/serializers/types.d.ts +0 -49
- package/dist/serializers/types.d.ts.map +0 -1
- package/dist/serializers/types.js +0 -22
- package/src/serializers/contract-utils.ts +0 -104
- package/src/serializers/core.test.ts +0 -56
- package/src/serializers/core.ts +0 -141
- package/src/serializers/types.ts +0 -58
package/src/serializers/log.ts
CHANGED
@@ -1,160 +1,192 @@
|
|
1
1
|
import type { AztecWalletMethodMap } from '../types.js';
|
2
|
-
import type { JSONRPCSerializedData, JSONRPCSerializer } from '
|
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 {
|
4
|
+
import {
|
5
|
+
ExtendedPublicLog,
|
6
|
+
LogFilterSchema,
|
7
|
+
GetPublicLogsResponseSchema,
|
8
|
+
GetContractClassLogsResponseSchema,
|
9
|
+
TxHash,
|
10
|
+
LogId,
|
11
|
+
} from '@aztec/circuit-types';
|
6
12
|
import { Point, AztecAddress } from '@aztec/aztec.js';
|
7
|
-
import { EventSelector
|
8
|
-
import type { LogFilter } from '@aztec/aztec.js';
|
13
|
+
import { EventSelector } from '@aztec/foundation/abi';
|
9
14
|
|
10
15
|
/**
|
11
|
-
* Serializer for the
|
12
|
-
* Handles serialization of
|
13
|
-
* Supports filtering logs by transaction hash, block range, and contract address.
|
16
|
+
* Serializer for the aztec_getPublicLogs RPC method.
|
17
|
+
* Handles serialization of public log queries and results between JSON-RPC format and native Aztec types.
|
14
18
|
*/
|
15
|
-
export class
|
19
|
+
export class AztecGetPublicLogsSerializer
|
16
20
|
implements
|
17
21
|
JSONRPCSerializer<
|
18
|
-
AztecWalletMethodMap['
|
19
|
-
AztecWalletMethodMap['
|
22
|
+
AztecWalletMethodMap['aztec_getPublicLogs']['params'],
|
23
|
+
AztecWalletMethodMap['aztec_getPublicLogs']['result']
|
20
24
|
>
|
21
25
|
{
|
22
26
|
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
27
|
serialize: (
|
30
28
|
method: string,
|
31
|
-
value: AztecWalletMethodMap['
|
29
|
+
value: AztecWalletMethodMap['aztec_getPublicLogs']['params'],
|
32
30
|
): JSONRPCSerializedData => {
|
33
31
|
const { filter } = value;
|
32
|
+
// Convert all fields that need string conversion
|
33
|
+
const serializedFilter = {
|
34
|
+
...filter,
|
35
|
+
txHash: filter.txHash?.toString(),
|
36
|
+
contractAddress: filter.contractAddress?.toString(),
|
37
|
+
afterLog: filter.afterLog?.toString(),
|
38
|
+
fromBlock: filter.fromBlock,
|
39
|
+
toBlock: filter.toBlock,
|
40
|
+
};
|
34
41
|
return {
|
35
42
|
method,
|
36
|
-
serialized:
|
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
|
-
),
|
43
|
+
serialized: JSON.stringify({ filter: serializedFilter }),
|
45
44
|
};
|
46
45
|
},
|
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
46
|
deserialize: (
|
54
47
|
method: string,
|
55
48
|
data: JSONRPCSerializedData,
|
56
|
-
): AztecWalletMethodMap['
|
57
|
-
const
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
49
|
+
): AztecWalletMethodMap['aztec_getPublicLogs']['params'] => {
|
50
|
+
const { filter } = JSON.parse(data.serialized);
|
51
|
+
return {
|
52
|
+
filter: {
|
53
|
+
txHash: filter.txHash ? TxHash.fromString(filter.txHash) : undefined,
|
54
|
+
contractAddress: filter.contractAddress
|
55
|
+
? AztecAddress.fromString(filter.contractAddress)
|
56
|
+
: undefined,
|
57
|
+
afterLog: filter.afterLog ? LogId.fromString(filter.afterLog) : undefined,
|
58
|
+
fromBlock: filter.fromBlock,
|
59
|
+
toBlock: filter.toBlock,
|
60
|
+
},
|
64
61
|
};
|
65
|
-
return { filter };
|
66
62
|
},
|
67
63
|
};
|
68
64
|
|
69
65
|
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
66
|
serialize: (
|
77
67
|
method: string,
|
78
|
-
value: AztecWalletMethodMap['
|
68
|
+
value: AztecWalletMethodMap['aztec_getPublicLogs']['result'],
|
79
69
|
): JSONRPCSerializedData => {
|
80
|
-
const serializedLogs = value.logs.map((log) => log.toString());
|
81
70
|
return {
|
82
71
|
method,
|
83
|
-
serialized:
|
72
|
+
serialized: JSON.stringify(value),
|
84
73
|
};
|
85
74
|
},
|
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
75
|
deserialize: (
|
93
76
|
method: string,
|
94
77
|
data: JSONRPCSerializedData,
|
95
|
-
): AztecWalletMethodMap['
|
96
|
-
|
78
|
+
): AztecWalletMethodMap['aztec_getPublicLogs']['result'] => {
|
79
|
+
return GetPublicLogsResponseSchema.parse(JSON.parse(data.serialized));
|
80
|
+
},
|
81
|
+
};
|
82
|
+
}
|
83
|
+
|
84
|
+
/**
|
85
|
+
* Serializer for the aztec_getContractClassLogs RPC method.
|
86
|
+
* Handles serialization of contract class log queries and results between JSON-RPC format and native Aztec types.
|
87
|
+
*/
|
88
|
+
export class AztecGetContractClassLogsSerializer
|
89
|
+
implements
|
90
|
+
JSONRPCSerializer<
|
91
|
+
AztecWalletMethodMap['aztec_getContractClassLogs']['params'],
|
92
|
+
AztecWalletMethodMap['aztec_getContractClassLogs']['result']
|
93
|
+
>
|
94
|
+
{
|
95
|
+
params = {
|
96
|
+
serialize: (
|
97
|
+
method: string,
|
98
|
+
value: AztecWalletMethodMap['aztec_getContractClassLogs']['params'],
|
99
|
+
): JSONRPCSerializedData => {
|
100
|
+
const { filter } = value;
|
101
|
+
// Convert fields to strings for schema validation
|
102
|
+
const serializedFilter = {
|
103
|
+
txHash: filter.txHash?.toString() ?? undefined,
|
104
|
+
contractAddress: filter.contractAddress?.toString() ?? undefined,
|
105
|
+
afterLog: filter.afterLog?.toString() ?? undefined,
|
106
|
+
fromBlock: filter.fromBlock,
|
107
|
+
toBlock: filter.toBlock,
|
108
|
+
};
|
97
109
|
return {
|
98
|
-
|
99
|
-
|
110
|
+
method,
|
111
|
+
serialized: JSON.stringify({ filter: serializedFilter }),
|
100
112
|
};
|
101
113
|
},
|
114
|
+
deserialize: (
|
115
|
+
method: string,
|
116
|
+
data: JSONRPCSerializedData,
|
117
|
+
): AztecWalletMethodMap['aztec_getContractClassLogs']['params'] => {
|
118
|
+
const { filter } = JSON.parse(data.serialized);
|
119
|
+
return {
|
120
|
+
filter: {
|
121
|
+
txHash: filter.txHash ? TxHash.fromString(filter.txHash) : undefined,
|
122
|
+
contractAddress: filter.contractAddress
|
123
|
+
? AztecAddress.fromString(filter.contractAddress)
|
124
|
+
: undefined,
|
125
|
+
afterLog: filter.afterLog ? LogId.fromString(filter.afterLog) : undefined,
|
126
|
+
fromBlock: filter.fromBlock,
|
127
|
+
toBlock: filter.toBlock,
|
128
|
+
},
|
129
|
+
};
|
130
|
+
},
|
131
|
+
};
|
132
|
+
|
133
|
+
result = {
|
134
|
+
serialize: (
|
135
|
+
method: string,
|
136
|
+
value: AztecWalletMethodMap['aztec_getContractClassLogs']['result'],
|
137
|
+
): JSONRPCSerializedData => {
|
138
|
+
return {
|
139
|
+
method,
|
140
|
+
serialized: JSON.stringify(GetContractClassLogsResponseSchema.parse(value)),
|
141
|
+
};
|
142
|
+
},
|
143
|
+
deserialize: (
|
144
|
+
method: string,
|
145
|
+
data: JSONRPCSerializedData,
|
146
|
+
): AztecWalletMethodMap['aztec_getContractClassLogs']['result'] => {
|
147
|
+
return GetContractClassLogsResponseSchema.parse(JSON.parse(data.serialized));
|
148
|
+
},
|
102
149
|
};
|
103
150
|
}
|
104
151
|
|
105
152
|
/**
|
106
|
-
* Serializer for the
|
107
|
-
* Handles serialization of
|
108
|
-
* Supports querying events with viewing keys for decryption.
|
153
|
+
* Serializer for the aztec_getPrivateEvents RPC method.
|
154
|
+
* Handles serialization of private event queries and results between JSON-RPC format and native Aztec types.
|
109
155
|
*/
|
110
|
-
export class
|
156
|
+
export class AztecGetPrivateEventsSerializer
|
111
157
|
implements
|
112
158
|
JSONRPCSerializer<
|
113
|
-
AztecWalletMethodMap['
|
114
|
-
AztecWalletMethodMap['
|
159
|
+
AztecWalletMethodMap['aztec_getPrivateEvents']['params'],
|
160
|
+
AztecWalletMethodMap['aztec_getPrivateEvents']['result']
|
115
161
|
>
|
116
162
|
{
|
117
163
|
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
164
|
serialize: (
|
125
165
|
method: string,
|
126
|
-
value: AztecWalletMethodMap['
|
166
|
+
value: AztecWalletMethodMap['aztec_getPrivateEvents']['params'],
|
127
167
|
): JSONRPCSerializedData => {
|
128
168
|
const { event, from, limit, vpks } = value;
|
129
169
|
return {
|
130
170
|
method,
|
131
|
-
serialized:
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
kind: event.abiType.kind,
|
137
|
-
},
|
138
|
-
fieldNames: event.fieldNames,
|
171
|
+
serialized: JSON.stringify({
|
172
|
+
event: {
|
173
|
+
eventSelector: event.eventSelector.toString(),
|
174
|
+
abiType: {
|
175
|
+
kind: event.abiType.kind,
|
139
176
|
},
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
177
|
+
fieldNames: event.fieldNames,
|
178
|
+
},
|
179
|
+
from,
|
180
|
+
limit,
|
181
|
+
vpks: vpks?.map((p) => p.toString()),
|
182
|
+
}),
|
145
183
|
};
|
146
184
|
},
|
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
185
|
deserialize: (
|
154
186
|
method: string,
|
155
187
|
data: JSONRPCSerializedData,
|
156
|
-
): AztecWalletMethodMap['
|
157
|
-
const { event: serializedEvent, from, limit, vpks } = JSON.parse(
|
188
|
+
): AztecWalletMethodMap['aztec_getPrivateEvents']['params'] => {
|
189
|
+
const { event: serializedEvent, from, limit, vpks } = JSON.parse(data.serialized);
|
158
190
|
const event: EventMetadataDefinition = {
|
159
191
|
eventSelector: EventSelector.fromString(serializedEvent.eventSelector),
|
160
192
|
abiType: {
|
@@ -171,76 +203,56 @@ export class AztecGetEncryptedEventsSerializer
|
|
171
203
|
},
|
172
204
|
};
|
173
205
|
|
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
206
|
result = {
|
180
207
|
serialize: (method: string, value: unknown[]): JSONRPCSerializedData => {
|
181
208
|
return {
|
182
209
|
method,
|
183
|
-
serialized:
|
210
|
+
serialized: JSON.stringify(value),
|
184
211
|
};
|
185
212
|
},
|
186
213
|
deserialize: (method: string, data: JSONRPCSerializedData): unknown[] => {
|
187
|
-
return JSON.parse(
|
214
|
+
return JSON.parse(data.serialized);
|
188
215
|
},
|
189
216
|
};
|
190
217
|
}
|
191
218
|
|
192
219
|
/**
|
193
|
-
* Serializer for the
|
194
|
-
* Handles serialization of
|
195
|
-
* Supports querying events by event selector and pagination parameters.
|
220
|
+
* Serializer for the aztec_getPublicEvents RPC method.
|
221
|
+
* Handles serialization of public event queries and results between JSON-RPC format and native Aztec types.
|
196
222
|
*/
|
197
|
-
export class
|
223
|
+
export class AztecGetPublicEventsSerializer
|
198
224
|
implements
|
199
225
|
JSONRPCSerializer<
|
200
|
-
AztecWalletMethodMap['
|
201
|
-
AztecWalletMethodMap['
|
226
|
+
AztecWalletMethodMap['aztec_getPublicEvents']['params'],
|
227
|
+
AztecWalletMethodMap['aztec_getPublicEvents']['result']
|
202
228
|
>
|
203
229
|
{
|
204
230
|
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
231
|
serialize: (
|
212
232
|
method: string,
|
213
|
-
value: AztecWalletMethodMap['
|
233
|
+
value: AztecWalletMethodMap['aztec_getPublicEvents']['params'],
|
214
234
|
): JSONRPCSerializedData => {
|
215
235
|
const { event, from, limit } = value;
|
216
236
|
return {
|
217
237
|
method,
|
218
|
-
serialized:
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
kind: event.abiType.kind,
|
224
|
-
},
|
225
|
-
fieldNames: event.fieldNames,
|
238
|
+
serialized: JSON.stringify({
|
239
|
+
event: {
|
240
|
+
eventSelector: event.eventSelector.toString(),
|
241
|
+
abiType: {
|
242
|
+
kind: event.abiType.kind,
|
226
243
|
},
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
244
|
+
fieldNames: event.fieldNames,
|
245
|
+
},
|
246
|
+
from,
|
247
|
+
limit,
|
248
|
+
}),
|
231
249
|
};
|
232
250
|
},
|
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
251
|
deserialize: (
|
240
252
|
method: string,
|
241
253
|
data: JSONRPCSerializedData,
|
242
|
-
): AztecWalletMethodMap['
|
243
|
-
const { event: serializedEvent, from, limit } = JSON.parse(
|
254
|
+
): AztecWalletMethodMap['aztec_getPublicEvents']['params'] => {
|
255
|
+
const { event: serializedEvent, from, limit } = JSON.parse(data.serialized);
|
244
256
|
const event: EventMetadataDefinition = {
|
245
257
|
eventSelector: EventSelector.fromString(serializedEvent.eventSelector),
|
246
258
|
abiType: {
|
@@ -256,28 +268,23 @@ export class AztecGetUnencryptedEventsSerializer
|
|
256
268
|
},
|
257
269
|
};
|
258
270
|
|
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
271
|
result = {
|
265
272
|
serialize: (method: string, value: unknown[]): JSONRPCSerializedData => {
|
266
273
|
return {
|
267
274
|
method,
|
268
|
-
serialized:
|
275
|
+
serialized: JSON.stringify(value),
|
269
276
|
};
|
270
277
|
},
|
271
278
|
deserialize: (method: string, data: JSONRPCSerializedData): unknown[] => {
|
272
|
-
return JSON.parse(
|
279
|
+
return JSON.parse(data.serialized);
|
273
280
|
},
|
274
281
|
};
|
275
282
|
}
|
276
283
|
|
277
284
|
/**
|
278
285
|
* 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
286
|
*/
|
281
|
-
export const
|
282
|
-
export const
|
283
|
-
export const
|
287
|
+
export const aztecGetPublicLogsSerializer = new AztecGetPublicLogsSerializer();
|
288
|
+
export const aztecGetContractClassLogsSerializer = new AztecGetContractClassLogsSerializer();
|
289
|
+
export const aztecGetPrivateEventsSerializer = new AztecGetPrivateEventsSerializer();
|
290
|
+
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
|
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('
|
12
|
-
const METHOD = '
|
13
|
-
|
14
|
-
it('should serialize and deserialize params', () => {
|
15
|
-
const filter:
|
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 =
|
21
|
+
const serialized = aztecGetNotesSerializer.params.serialize(METHOD, params);
|
26
22
|
expect(serialized.method).toBe(METHOD);
|
27
23
|
|
28
|
-
const deserialized =
|
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 =
|
39
|
+
const serialized = aztecGetNotesSerializer.result.serialize(METHOD, result);
|
44
40
|
expect(serialized.method).toBe(METHOD);
|
45
41
|
|
46
|
-
const deserialized =
|
47
|
-
expect(deserialized.map((
|
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);
|