@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.
- package/CHANGELOG.md +18 -0
- package/README.md +4 -4
- 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 -10
- package/dist/chainProvider.d.ts.map +1 -1
- package/dist/chainProvider.js +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +1 -1
- package/dist/handlers/aztecAccountWallet.d.ts.map +1 -1
- package/dist/handlers/aztecAccountWallet.js +23 -23
- package/dist/handlers/transactions.d.ts.map +1 -1
- package/dist/handlers/transactions.js +11 -3
- package/dist/serializers/account.d.ts +19 -22
- package/dist/serializers/account.d.ts.map +1 -1
- package/dist/serializers/account.js +44 -45
- package/dist/serializers/contract.d.ts +11 -63
- package/dist/serializers/contract.d.ts.map +1 -1
- package/dist/serializers/contract.js +67 -153
- 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 +38 -85
- package/dist/serializers/log.d.ts.map +1 -1
- package/dist/serializers/log.js +106 -115
- package/dist/serializers/note.d.ts +24 -27
- package/dist/serializers/note.d.ts.map +1 -1
- package/dist/serializers/note.js +67 -41
- 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 +89 -116
- package/dist/serializers/transaction.d.ts +15 -18
- package/dist/serializers/transaction.d.ts.map +1 -1
- package/dist/serializers/transaction.js +51 -62
- package/dist/types.d.ts +9 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +9 -9
- package/src/aztecRemoteWallet.test.ts +34 -33
- package/src/aztecRemoteWallet.ts +25 -15
- package/src/chainProvider.ts +1 -7
- package/src/errors.ts +0 -1
- package/src/handlers/aztecAccountWallet.test.ts +78 -75
- package/src/handlers/aztecAccountWallet.ts +33 -36
- package/src/handlers/transactions.ts +16 -2
- package/src/serializers/account.test.ts +18 -17
- package/src/serializers/account.ts +46 -64
- package/src/serializers/contract.test.ts +14 -16
- package/src/serializers/contract.ts +77 -171
- package/src/serializers/index.test.ts +20 -8
- package/src/serializers/index.ts +16 -32
- package/src/serializers/log.test.ts +201 -28
- package/src/serializers/log.ts +162 -153
- package/src/serializers/note.test.ts +26 -28
- package/src/serializers/note.ts +71 -48
- package/src/serializers/transaction-utils.ts +147 -210
- package/src/serializers/transaction.test.ts +190 -30
- package/src/serializers/transaction.ts +62 -83
- package/src/types.ts +10 -9
- package/tsconfig.json +1 -1
- 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,194 @@
|
|
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 {
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
12
|
-
* Handles serialization of
|
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
|
17
|
+
export class AztecGetPublicLogsSerializer
|
16
18
|
implements
|
17
19
|
JSONRPCSerializer<
|
18
|
-
AztecWalletMethodMap['
|
19
|
-
AztecWalletMethodMap['
|
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['
|
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:
|
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
|
-
|
45
|
+
_method: string,
|
55
46
|
data: JSONRPCSerializedData,
|
56
|
-
): AztecWalletMethodMap['
|
57
|
-
const
|
58
|
-
const
|
59
|
-
txHash:
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
};
|
65
|
-
|
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['
|
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:
|
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['
|
96
|
-
const {
|
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
|
-
|
99
|
-
|
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
|
107
|
-
* Handles serialization of
|
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
|
158
|
+
export class AztecGetPrivateEventsSerializer
|
111
159
|
implements
|
112
160
|
JSONRPCSerializer<
|
113
|
-
AztecWalletMethodMap['
|
114
|
-
AztecWalletMethodMap['
|
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['
|
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:
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
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
|
-
|
141
|
-
|
142
|
-
|
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
|
-
|
188
|
+
_method: string,
|
155
189
|
data: JSONRPCSerializedData,
|
156
|
-
): AztecWalletMethodMap['
|
157
|
-
const { event: serializedEvent, from, limit, vpks } = JSON.parse(
|
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:
|
212
|
+
serialized: JSON.stringify(value),
|
184
213
|
};
|
185
214
|
},
|
186
|
-
deserialize: (
|
187
|
-
return JSON.parse(
|
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
|
194
|
-
* Handles serialization of
|
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
|
225
|
+
export class AztecGetPublicEventsSerializer
|
198
226
|
implements
|
199
227
|
JSONRPCSerializer<
|
200
|
-
AztecWalletMethodMap['
|
201
|
-
AztecWalletMethodMap['
|
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['
|
235
|
+
value: AztecWalletMethodMap['aztec_getPublicEvents']['params'],
|
214
236
|
): JSONRPCSerializedData => {
|
215
237
|
const { event, from, limit } = value;
|
216
238
|
return {
|
217
239
|
method,
|
218
|
-
serialized:
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
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
|
-
|
228
|
-
|
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
|
-
|
254
|
+
_method: string,
|
241
255
|
data: JSONRPCSerializedData,
|
242
|
-
): AztecWalletMethodMap['
|
243
|
-
const { event: serializedEvent, from, limit } = JSON.parse(
|
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:
|
277
|
+
serialized: JSON.stringify(value),
|
269
278
|
};
|
270
279
|
},
|
271
|
-
deserialize: (
|
272
|
-
return JSON.parse(
|
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
|
282
|
-
export const
|
283
|
-
export const
|
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
|
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);
|