@walletmesh/aztec-rpc-wallet 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +7 -0
- package/LICENSE +201 -0
- package/README.md +260 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/aztecRemoteWallet.d.ts +73 -0
- package/dist/aztecRemoteWallet.d.ts.map +1 -0
- package/dist/aztecRemoteWallet.js +354 -0
- package/dist/chainProvider.d.ts +56 -0
- package/dist/chainProvider.d.ts.map +1 -0
- package/dist/chainProvider.js +98 -0
- package/dist/contractArtifactCache.d.ts +50 -0
- package/dist/contractArtifactCache.d.ts.map +1 -0
- package/dist/contractArtifactCache.js +66 -0
- package/dist/errors.d.ts +50 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +62 -0
- package/dist/handlers/aztecAccountWallet.d.ts +4 -0
- package/dist/handlers/aztecAccountWallet.d.ts.map +1 -0
- package/dist/handlers/aztecAccountWallet.js +329 -0
- package/dist/handlers/transactions.d.ts +21 -0
- package/dist/handlers/transactions.d.ts.map +1 -0
- package/dist/handlers/transactions.js +90 -0
- package/dist/handlers.d.ts +27 -0
- package/dist/handlers.d.ts.map +1 -0
- package/dist/handlers.js +55 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/provider.d.ts +105 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +160 -0
- package/dist/serializers/account.d.ts +167 -0
- package/dist/serializers/account.d.ts.map +1 -0
- package/dist/serializers/account.js +245 -0
- package/dist/serializers/contract-utils.d.ts +40 -0
- package/dist/serializers/contract-utils.d.ts.map +1 -0
- package/dist/serializers/contract-utils.js +102 -0
- package/dist/serializers/contract.d.ts +168 -0
- package/dist/serializers/contract.d.ts.map +1 -0
- package/dist/serializers/contract.js +268 -0
- package/dist/serializers/core.d.ts +110 -0
- package/dist/serializers/core.d.ts.map +1 -0
- package/dist/serializers/core.js +130 -0
- package/dist/serializers/index.d.ts +28 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/serializers/index.js +159 -0
- package/dist/serializers/log.d.ts +113 -0
- package/dist/serializers/log.d.ts.map +1 -0
- package/dist/serializers/log.js +231 -0
- package/dist/serializers/note.d.ts +127 -0
- package/dist/serializers/note.d.ts.map +1 -0
- package/dist/serializers/note.js +182 -0
- package/dist/serializers/transaction-utils.d.ts +107 -0
- package/dist/serializers/transaction-utils.d.ts.map +1 -0
- package/dist/serializers/transaction-utils.js +130 -0
- package/dist/serializers/transaction.d.ts +103 -0
- package/dist/serializers/transaction.d.ts.map +1 -0
- package/dist/serializers/transaction.js +238 -0
- package/dist/serializers/types.d.ts +49 -0
- package/dist/serializers/types.d.ts.map +1 -0
- package/dist/serializers/types.js +22 -0
- package/dist/types.d.ts +391 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/wallet.d.ts +62 -0
- package/dist/wallet.d.ts.map +1 -0
- package/dist/wallet.js +77 -0
- package/package.json +44 -0
- package/src/aztecRemoteWallet.test.ts +542 -0
- package/src/aztecRemoteWallet.ts +484 -0
- package/src/chainProvider.test.ts +322 -0
- package/src/chainProvider.ts +122 -0
- package/src/contractArtifactCache.test.ts +126 -0
- package/src/contractArtifactCache.ts +75 -0
- package/src/errors.ts +71 -0
- package/src/handlers/aztecAccountWallet.test.ts +720 -0
- package/src/handlers/aztecAccountWallet.ts +593 -0
- package/src/handlers/transactions.ts +110 -0
- package/src/handlers.test.ts +270 -0
- package/src/handlers.ts +70 -0
- package/src/index.test.ts +23 -0
- package/src/index.ts +64 -0
- package/src/provider.test.ts +276 -0
- package/src/provider.ts +189 -0
- package/src/serializers/account.test.ts +125 -0
- package/src/serializers/account.ts +319 -0
- package/src/serializers/contract-utils.ts +104 -0
- package/src/serializers/contract.test.ts +162 -0
- package/src/serializers/contract.ts +350 -0
- package/src/serializers/core.test.ts +56 -0
- package/src/serializers/core.ts +141 -0
- package/src/serializers/index.test.ts +122 -0
- package/src/serializers/index.ts +213 -0
- package/src/serializers/log.test.ts +119 -0
- package/src/serializers/log.ts +283 -0
- package/src/serializers/note.test.ts +100 -0
- package/src/serializers/note.ts +227 -0
- package/src/serializers/transaction-utils.ts +237 -0
- package/src/serializers/transaction.test.ts +153 -0
- package/src/serializers/transaction.ts +342 -0
- package/src/serializers/types.ts +58 -0
- package/src/types.ts +295 -0
- package/src/wallet.test.ts +275 -0
- package/src/wallet.ts +94 -0
- package/tsconfig.build.json +6 -0
- package/tsconfig.json +11 -0
- package/typedoc.json +15 -0
- package/vitest.config.ts +10 -0
@@ -0,0 +1,231 @@
|
|
1
|
+
import { encodeBase64, decodeBase64 } from './types.js';
|
2
|
+
import { ExtendedUnencryptedL2Log, TxHash, LogId } from '@aztec/circuit-types';
|
3
|
+
import { Point, AztecAddress } from '@aztec/aztec.js';
|
4
|
+
import { EventSelector } from '@aztec/foundation/abi';
|
5
|
+
/**
|
6
|
+
* Serializer for the aztec_getUnencryptedLogs RPC method.
|
7
|
+
* Handles serialization of unencrypted log queries and results between JSON-RPC format and native Aztec types.
|
8
|
+
* Supports filtering logs by transaction hash, block range, and contract address.
|
9
|
+
*/
|
10
|
+
export class AztecGetUnencryptedLogsSerializer {
|
11
|
+
constructor() {
|
12
|
+
this.params = {
|
13
|
+
/**
|
14
|
+
* Serializes log filter parameters for RPC transport.
|
15
|
+
* @param method - The RPC method name
|
16
|
+
* @param value - The filter parameters including txHash, block range, and contract address
|
17
|
+
* @returns Serialized filter data
|
18
|
+
*/
|
19
|
+
serialize: (method, value) => {
|
20
|
+
const { filter } = value;
|
21
|
+
return {
|
22
|
+
method,
|
23
|
+
serialized: encodeBase64(JSON.stringify({
|
24
|
+
txHash: filter.txHash?.toString(),
|
25
|
+
fromBlock: filter.fromBlock,
|
26
|
+
toBlock: filter.toBlock,
|
27
|
+
afterLog: filter.afterLog?.toString(),
|
28
|
+
contractAddress: filter.contractAddress?.toString(),
|
29
|
+
})),
|
30
|
+
};
|
31
|
+
},
|
32
|
+
/**
|
33
|
+
* Deserializes log filter parameters from RPC transport.
|
34
|
+
* @param method - The RPC method name
|
35
|
+
* @param data - The serialized filter data
|
36
|
+
* @returns Deserialized filter parameters
|
37
|
+
*/
|
38
|
+
deserialize: (method, data) => {
|
39
|
+
const parsed = JSON.parse(decodeBase64(data.serialized));
|
40
|
+
const filter = {
|
41
|
+
txHash: parsed.txHash ? TxHash.fromString(parsed.txHash) : undefined,
|
42
|
+
fromBlock: parsed.fromBlock,
|
43
|
+
toBlock: parsed.toBlock,
|
44
|
+
afterLog: parsed.afterLog ? LogId.fromString(parsed.afterLog) : undefined,
|
45
|
+
contractAddress: parsed.contractAddress ? AztecAddress.fromString(parsed.contractAddress) : undefined,
|
46
|
+
};
|
47
|
+
return { filter };
|
48
|
+
},
|
49
|
+
};
|
50
|
+
this.result = {
|
51
|
+
/**
|
52
|
+
* Serializes unencrypted log results for RPC transport.
|
53
|
+
* @param method - The RPC method name
|
54
|
+
* @param value - The log results including logs array and maxLogsHit flag
|
55
|
+
* @returns Serialized log data
|
56
|
+
*/
|
57
|
+
serialize: (method, value) => {
|
58
|
+
const serializedLogs = value.logs.map((log) => log.toString());
|
59
|
+
return {
|
60
|
+
method,
|
61
|
+
serialized: encodeBase64(JSON.stringify({ serializedLogs, maxLogsHit: value.maxLogsHit })),
|
62
|
+
};
|
63
|
+
},
|
64
|
+
/**
|
65
|
+
* Deserializes unencrypted log results from RPC transport.
|
66
|
+
* @param method - The RPC method name
|
67
|
+
* @param data - The serialized log data
|
68
|
+
* @returns Deserialized log results
|
69
|
+
*/
|
70
|
+
deserialize: (method, data) => {
|
71
|
+
const { serializedLogs, maxLogsHit } = JSON.parse(decodeBase64(data.serialized));
|
72
|
+
return {
|
73
|
+
logs: serializedLogs.map((log) => ExtendedUnencryptedL2Log.fromString(log)),
|
74
|
+
maxLogsHit,
|
75
|
+
};
|
76
|
+
},
|
77
|
+
};
|
78
|
+
}
|
79
|
+
}
|
80
|
+
/**
|
81
|
+
* Serializer for the aztec_getEncryptedEvents RPC method.
|
82
|
+
* Handles serialization of encrypted event queries and results between JSON-RPC format and native Aztec types.
|
83
|
+
* Supports querying events with viewing keys for decryption.
|
84
|
+
*/
|
85
|
+
export class AztecGetEncryptedEventsSerializer {
|
86
|
+
constructor() {
|
87
|
+
this.params = {
|
88
|
+
/**
|
89
|
+
* Serializes encrypted event query parameters for RPC transport.
|
90
|
+
* @param method - The RPC method name
|
91
|
+
* @param value - The query parameters including event metadata, range, and viewing keys
|
92
|
+
* @returns Serialized query data
|
93
|
+
*/
|
94
|
+
serialize: (method, value) => {
|
95
|
+
const { event, from, limit, vpks } = value;
|
96
|
+
return {
|
97
|
+
method,
|
98
|
+
serialized: encodeBase64(JSON.stringify({
|
99
|
+
event: {
|
100
|
+
eventSelector: event.eventSelector.toString(),
|
101
|
+
abiType: {
|
102
|
+
kind: event.abiType.kind,
|
103
|
+
},
|
104
|
+
fieldNames: event.fieldNames,
|
105
|
+
},
|
106
|
+
from,
|
107
|
+
limit,
|
108
|
+
vpks: vpks?.map((p) => p.toString()),
|
109
|
+
})),
|
110
|
+
};
|
111
|
+
},
|
112
|
+
/**
|
113
|
+
* Deserializes encrypted event query parameters from RPC transport.
|
114
|
+
* @param method - The RPC method name
|
115
|
+
* @param data - The serialized query data
|
116
|
+
* @returns Deserialized query parameters
|
117
|
+
*/
|
118
|
+
deserialize: (method, data) => {
|
119
|
+
const { event: serializedEvent, from, limit, vpks } = JSON.parse(decodeBase64(data.serialized));
|
120
|
+
const event = {
|
121
|
+
eventSelector: EventSelector.fromString(serializedEvent.eventSelector),
|
122
|
+
abiType: {
|
123
|
+
kind: serializedEvent.abiType.kind,
|
124
|
+
},
|
125
|
+
fieldNames: serializedEvent.fieldNames,
|
126
|
+
};
|
127
|
+
return {
|
128
|
+
event,
|
129
|
+
from,
|
130
|
+
limit,
|
131
|
+
vpks: vpks?.map((p) => Point.fromString(p)),
|
132
|
+
};
|
133
|
+
},
|
134
|
+
};
|
135
|
+
/**
|
136
|
+
* Handles serialization of encrypted event results.
|
137
|
+
* Note: The result type is generic (T[]) based on the event's ABI type definition.
|
138
|
+
* Currently handles results as unknown[] until proper ABI-based deserialization is implemented.
|
139
|
+
*/
|
140
|
+
this.result = {
|
141
|
+
serialize: (method, value) => {
|
142
|
+
return {
|
143
|
+
method,
|
144
|
+
serialized: encodeBase64(JSON.stringify(value)),
|
145
|
+
};
|
146
|
+
},
|
147
|
+
deserialize: (method, data) => {
|
148
|
+
return JSON.parse(decodeBase64(data.serialized));
|
149
|
+
},
|
150
|
+
};
|
151
|
+
}
|
152
|
+
}
|
153
|
+
/**
|
154
|
+
* Serializer for the aztec_getUnencryptedEvents RPC method.
|
155
|
+
* Handles serialization of unencrypted event queries and results between JSON-RPC format and native Aztec types.
|
156
|
+
* Supports querying events by event selector and pagination parameters.
|
157
|
+
*/
|
158
|
+
export class AztecGetUnencryptedEventsSerializer {
|
159
|
+
constructor() {
|
160
|
+
this.params = {
|
161
|
+
/**
|
162
|
+
* Serializes unencrypted event query parameters for RPC transport.
|
163
|
+
* @param method - The RPC method name
|
164
|
+
* @param value - The query parameters including event metadata and range
|
165
|
+
* @returns Serialized query data
|
166
|
+
*/
|
167
|
+
serialize: (method, value) => {
|
168
|
+
const { event, from, limit } = value;
|
169
|
+
return {
|
170
|
+
method,
|
171
|
+
serialized: encodeBase64(JSON.stringify({
|
172
|
+
event: {
|
173
|
+
eventSelector: event.eventSelector.toString(),
|
174
|
+
abiType: {
|
175
|
+
kind: event.abiType.kind,
|
176
|
+
},
|
177
|
+
fieldNames: event.fieldNames,
|
178
|
+
},
|
179
|
+
from,
|
180
|
+
limit,
|
181
|
+
})),
|
182
|
+
};
|
183
|
+
},
|
184
|
+
/**
|
185
|
+
* Deserializes unencrypted event query parameters from RPC transport.
|
186
|
+
* @param method - The RPC method name
|
187
|
+
* @param data - The serialized query data
|
188
|
+
* @returns Deserialized query parameters
|
189
|
+
*/
|
190
|
+
deserialize: (method, data) => {
|
191
|
+
const { event: serializedEvent, from, limit } = JSON.parse(decodeBase64(data.serialized));
|
192
|
+
const event = {
|
193
|
+
eventSelector: EventSelector.fromString(serializedEvent.eventSelector),
|
194
|
+
abiType: {
|
195
|
+
kind: serializedEvent.abiType.kind,
|
196
|
+
},
|
197
|
+
fieldNames: serializedEvent.fieldNames,
|
198
|
+
};
|
199
|
+
return {
|
200
|
+
event,
|
201
|
+
from,
|
202
|
+
limit,
|
203
|
+
};
|
204
|
+
},
|
205
|
+
};
|
206
|
+
/**
|
207
|
+
* Handles serialization of unencrypted event results.
|
208
|
+
* Note: The result type is generic (T[]) based on the event's ABI type definition.
|
209
|
+
* Currently handles results as unknown[] until proper ABI-based deserialization is implemented.
|
210
|
+
*/
|
211
|
+
this.result = {
|
212
|
+
serialize: (method, value) => {
|
213
|
+
return {
|
214
|
+
method,
|
215
|
+
serialized: encodeBase64(JSON.stringify(value)),
|
216
|
+
};
|
217
|
+
},
|
218
|
+
deserialize: (method, data) => {
|
219
|
+
return JSON.parse(decodeBase64(data.serialized));
|
220
|
+
},
|
221
|
+
};
|
222
|
+
}
|
223
|
+
}
|
224
|
+
/**
|
225
|
+
* Pre-instantiated serializer instances for each Aztec log/event-related RPC method.
|
226
|
+
* These instances can be used directly by the RPC handler implementation.
|
227
|
+
*/
|
228
|
+
export const aztecGetUnencryptedLogsSerializer = new AztecGetUnencryptedLogsSerializer();
|
229
|
+
export const aztecGetEncryptedEventsSerializer = new AztecGetEncryptedEventsSerializer();
|
230
|
+
export const aztecGetUnencryptedEventsSerializer = new AztecGetUnencryptedEventsSerializer();
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcmlhbGl6ZXJzL2xvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGlDQUFpQztJQUE5QztRQU9FLFdBQU0sR0FBRztZQUNQOzs7OztlQUtHO1lBQ0gsU0FBUyxFQUFFLENBQ1QsTUFBYyxFQUNkLEtBQWlFLEVBQzFDLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsWUFBWSxDQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUNiLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTt3QkFDakMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO3dCQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87d0JBQ3ZCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRTt3QkFDckMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLEVBQUUsUUFBUSxFQUFFO3FCQUNwRCxDQUFDLENBQ0g7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFDRDs7Ozs7ZUFLRztZQUNILFdBQVcsRUFBRSxDQUNYLE1BQWMsRUFDZCxJQUEyQixFQUNpQyxFQUFFO2dCQUM5RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlB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
|
@@ -0,0 +1,127 @@
|
|
1
|
+
import type { AztecWalletMethodMap } from '../types.js';
|
2
|
+
import type { JSONRPCSerializedData, JSONRPCSerializer } from './types.js';
|
3
|
+
/**
|
4
|
+
* Serializer for the aztec_getIncomingNotes RPC method.
|
5
|
+
* Handles serialization of incoming note queries and results between JSON-RPC format and native Aztec types.
|
6
|
+
* Used to retrieve notes that have been sent to an account but not yet processed.
|
7
|
+
*/
|
8
|
+
export declare class AztecGetIncomingNotesSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getIncomingNotes']['params'], AztecWalletMethodMap['aztec_getIncomingNotes']['result']> {
|
9
|
+
params: {
|
10
|
+
/**
|
11
|
+
* Serializes incoming notes filter parameters for RPC transport.
|
12
|
+
* @param method - The RPC method name
|
13
|
+
* @param value - The parameters containing filter criteria for incoming notes
|
14
|
+
* @returns Serialized filter data
|
15
|
+
*/
|
16
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_getIncomingNotes"]["params"]) => JSONRPCSerializedData;
|
17
|
+
/**
|
18
|
+
* Deserializes incoming notes filter parameters from RPC transport.
|
19
|
+
* @param method - The RPC method name
|
20
|
+
* @param data - The serialized filter data
|
21
|
+
* @returns Deserialized filter parameters
|
22
|
+
*/
|
23
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getIncomingNotes"]["params"];
|
24
|
+
};
|
25
|
+
result: {
|
26
|
+
/**
|
27
|
+
* Serializes the incoming notes query result.
|
28
|
+
* @param method - The RPC method name
|
29
|
+
* @param value - Array of unique notes matching the filter criteria
|
30
|
+
* @returns Serialized note array
|
31
|
+
*/
|
32
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_getIncomingNotes"]["result"]) => JSONRPCSerializedData;
|
33
|
+
/**
|
34
|
+
* Deserializes the incoming notes query result.
|
35
|
+
* @param method - The RPC method name
|
36
|
+
* @param data - The serialized note array data
|
37
|
+
* @returns Array of deserialized unique notes
|
38
|
+
*/
|
39
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getIncomingNotes"]["result"];
|
40
|
+
};
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* Serializer for the aztec_addNote RPC method.
|
44
|
+
* Handles serialization of note addition requests between JSON-RPC format and native Aztec types.
|
45
|
+
* Used to add new notes to an account's note tree.
|
46
|
+
*/
|
47
|
+
export declare class AztecAddNoteSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_addNote']['params'], AztecWalletMethodMap['aztec_addNote']['result']> {
|
48
|
+
params: {
|
49
|
+
/**
|
50
|
+
* Serializes note addition parameters for RPC transport.
|
51
|
+
* @param method - The RPC method name
|
52
|
+
* @param value - The parameters containing the note to add
|
53
|
+
* @returns Serialized note data
|
54
|
+
*/
|
55
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_addNote"]["params"]) => JSONRPCSerializedData;
|
56
|
+
/**
|
57
|
+
* Deserializes note addition parameters from RPC transport.
|
58
|
+
* @param method - The RPC method name
|
59
|
+
* @param data - The serialized note data
|
60
|
+
* @returns Deserialized note parameters
|
61
|
+
*/
|
62
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_addNote"]["params"];
|
63
|
+
};
|
64
|
+
result: {
|
65
|
+
/**
|
66
|
+
* Serializes the note addition result.
|
67
|
+
* @param method - The RPC method name
|
68
|
+
* @param value - Boolean indicating success of the note addition
|
69
|
+
* @returns Serialized result
|
70
|
+
*/
|
71
|
+
serialize: (method: string, value: boolean) => JSONRPCSerializedData;
|
72
|
+
/**
|
73
|
+
* Deserializes the note addition result.
|
74
|
+
* @param method - The RPC method name
|
75
|
+
* @param data - The serialized result data
|
76
|
+
* @returns Boolean indicating success
|
77
|
+
*/
|
78
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => boolean;
|
79
|
+
};
|
80
|
+
}
|
81
|
+
/**
|
82
|
+
* Serializer for the aztec_addNullifiedNote RPC method.
|
83
|
+
* Handles serialization of nullified note addition requests between JSON-RPC format and native Aztec types.
|
84
|
+
* Used to mark notes as spent/nullified in the note tree.
|
85
|
+
*/
|
86
|
+
export declare class AztecAddNullifiedNoteSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_addNullifiedNote']['params'], AztecWalletMethodMap['aztec_addNullifiedNote']['result']> {
|
87
|
+
params: {
|
88
|
+
/**
|
89
|
+
* Serializes nullified note addition parameters for RPC transport.
|
90
|
+
* @param method - The RPC method name
|
91
|
+
* @param value - The parameters containing the nullified note to add
|
92
|
+
* @returns Serialized note data
|
93
|
+
*/
|
94
|
+
serialize: (method: string, value: AztecWalletMethodMap["aztec_addNullifiedNote"]["params"]) => JSONRPCSerializedData;
|
95
|
+
/**
|
96
|
+
* Deserializes nullified note addition parameters from RPC transport.
|
97
|
+
* @param method - The RPC method name
|
98
|
+
* @param data - The serialized note data
|
99
|
+
* @returns Deserialized note parameters
|
100
|
+
*/
|
101
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_addNullifiedNote"]["params"];
|
102
|
+
};
|
103
|
+
result: {
|
104
|
+
/**
|
105
|
+
* Serializes the nullified note addition result.
|
106
|
+
* @param method - The RPC method name
|
107
|
+
* @param value - Boolean indicating success of the nullified note addition
|
108
|
+
* @returns Serialized result
|
109
|
+
*/
|
110
|
+
serialize: (method: string, value: boolean) => JSONRPCSerializedData;
|
111
|
+
/**
|
112
|
+
* Deserializes the nullified note addition result.
|
113
|
+
* @param method - The RPC method name
|
114
|
+
* @param data - The serialized result data
|
115
|
+
* @returns Boolean indicating success
|
116
|
+
*/
|
117
|
+
deserialize: (method: string, data: JSONRPCSerializedData) => boolean;
|
118
|
+
};
|
119
|
+
}
|
120
|
+
/**
|
121
|
+
* Pre-instantiated serializer instances for Aztec note-related RPC methods.
|
122
|
+
* These instances can be used directly by the RPC handler implementation.
|
123
|
+
*/
|
124
|
+
export declare const aztecGetIncomingNotesSerializer: AztecGetIncomingNotesSerializer;
|
125
|
+
export declare const aztecAddNoteSerializer: AztecAddNoteSerializer;
|
126
|
+
export declare const aztecAddNullifiedNoteSerializer: AztecAddNullifiedNoteSerializer;
|
127
|
+
//# sourceMappingURL=note.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"note.d.ts","sourceRoot":"","sources":["../../src/serializers/note.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM3E;;;;GAIG;AACH,qBAAa,+BACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EACxD,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,CACzD;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,KAC9D,qBAAqB;QAOxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC;MAI3D;IAEF,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,KAC9D,qBAAqB;QAMxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC;MAG3D;CACH;AAED;;;;GAIG;AACH,qBAAa,sBACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,EAC/C,oBAAoB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAChD;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,KACrD,qBAAqB;QAOxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC;MAIlD;IAEF,MAAM;QACJ;;;;;WAKG;4BACiB,MAAM,SAAS,OAAO,KAAG,qBAAqB;QAMlE;;;;;WAKG;8BACmB,MAAM,QAAQ,qBAAqB,KAAG,OAAO;MAGnE;CACH;AAED;;;;GAIG;AACH,qBAAa,+BACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EACxD,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,CACzD;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,KAC9D,qBAAqB;QAOxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC;MAI3D;IAEF,MAAM;QACJ;;;;;WAKG;4BACiB,MAAM,SAAS,OAAO,KAAG,qBAAqB;QAMlE;;;;;WAKG;8BACmB,MAAM,QAAQ,qBAAqB,KAAG,OAAO;MAGnE;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,iCAAwC,CAAC;AACrF,eAAO,MAAM,sBAAsB,wBAA+B,CAAC;AACnE,eAAO,MAAM,+BAA+B,iCAAwC,CAAC"}
|
@@ -0,0 +1,182 @@
|
|
1
|
+
import { encodeBase64, decodeBase64 } from './types.js';
|
2
|
+
import { UniqueNote } from '@aztec/circuit-types';
|
3
|
+
import { ExtendedNote } from '@aztec/aztec.js';
|
4
|
+
/**
|
5
|
+
* Serializer for the aztec_getIncomingNotes RPC method.
|
6
|
+
* Handles serialization of incoming note queries and results between JSON-RPC format and native Aztec types.
|
7
|
+
* Used to retrieve notes that have been sent to an account but not yet processed.
|
8
|
+
*/
|
9
|
+
export class AztecGetIncomingNotesSerializer {
|
10
|
+
constructor() {
|
11
|
+
this.params = {
|
12
|
+
/**
|
13
|
+
* Serializes incoming notes filter parameters for RPC transport.
|
14
|
+
* @param method - The RPC method name
|
15
|
+
* @param value - The parameters containing filter criteria for incoming notes
|
16
|
+
* @returns Serialized filter data
|
17
|
+
*/
|
18
|
+
serialize: (method, value) => {
|
19
|
+
const { filter } = value;
|
20
|
+
return {
|
21
|
+
method,
|
22
|
+
serialized: encodeBase64(JSON.stringify(filter)),
|
23
|
+
};
|
24
|
+
},
|
25
|
+
/**
|
26
|
+
* Deserializes incoming notes filter parameters from RPC transport.
|
27
|
+
* @param method - The RPC method name
|
28
|
+
* @param data - The serialized filter data
|
29
|
+
* @returns Deserialized filter parameters
|
30
|
+
*/
|
31
|
+
deserialize: (method, data) => {
|
32
|
+
const filter = JSON.parse(decodeBase64(data.serialized));
|
33
|
+
return { filter };
|
34
|
+
},
|
35
|
+
};
|
36
|
+
this.result = {
|
37
|
+
/**
|
38
|
+
* Serializes the incoming notes query result.
|
39
|
+
* @param method - The RPC method name
|
40
|
+
* @param value - Array of unique notes matching the filter criteria
|
41
|
+
* @returns Serialized note array
|
42
|
+
*/
|
43
|
+
serialize: (method, value) => {
|
44
|
+
return {
|
45
|
+
method,
|
46
|
+
serialized: encodeBase64(JSON.stringify(value.map((n) => n.toString()))),
|
47
|
+
};
|
48
|
+
},
|
49
|
+
/**
|
50
|
+
* Deserializes the incoming notes query result.
|
51
|
+
* @param method - The RPC method name
|
52
|
+
* @param data - The serialized note array data
|
53
|
+
* @returns Array of deserialized unique notes
|
54
|
+
*/
|
55
|
+
deserialize: (method, data) => {
|
56
|
+
return JSON.parse(decodeBase64(data.serialized)).map((n) => UniqueNote.fromString(n));
|
57
|
+
},
|
58
|
+
};
|
59
|
+
}
|
60
|
+
}
|
61
|
+
/**
|
62
|
+
* Serializer for the aztec_addNote RPC method.
|
63
|
+
* Handles serialization of note addition requests between JSON-RPC format and native Aztec types.
|
64
|
+
* Used to add new notes to an account's note tree.
|
65
|
+
*/
|
66
|
+
export class AztecAddNoteSerializer {
|
67
|
+
constructor() {
|
68
|
+
this.params = {
|
69
|
+
/**
|
70
|
+
* Serializes note addition parameters for RPC transport.
|
71
|
+
* @param method - The RPC method name
|
72
|
+
* @param value - The parameters containing the note to add
|
73
|
+
* @returns Serialized note data
|
74
|
+
*/
|
75
|
+
serialize: (method, value) => {
|
76
|
+
const { note } = value;
|
77
|
+
return {
|
78
|
+
method,
|
79
|
+
serialized: encodeBase64(note.toBuffer().toString('hex')),
|
80
|
+
};
|
81
|
+
},
|
82
|
+
/**
|
83
|
+
* Deserializes note addition parameters from RPC transport.
|
84
|
+
* @param method - The RPC method name
|
85
|
+
* @param data - The serialized note data
|
86
|
+
* @returns Deserialized note parameters
|
87
|
+
*/
|
88
|
+
deserialize: (method, data) => {
|
89
|
+
const note = ExtendedNote.fromBuffer(Buffer.from(decodeBase64(data.serialized), 'hex'));
|
90
|
+
return { note };
|
91
|
+
},
|
92
|
+
};
|
93
|
+
this.result = {
|
94
|
+
/**
|
95
|
+
* Serializes the note addition result.
|
96
|
+
* @param method - The RPC method name
|
97
|
+
* @param value - Boolean indicating success of the note addition
|
98
|
+
* @returns Serialized result
|
99
|
+
*/
|
100
|
+
serialize: (method, value) => {
|
101
|
+
return {
|
102
|
+
method,
|
103
|
+
serialized: encodeBase64(JSON.stringify(value)),
|
104
|
+
};
|
105
|
+
},
|
106
|
+
/**
|
107
|
+
* Deserializes the note addition result.
|
108
|
+
* @param method - The RPC method name
|
109
|
+
* @param data - The serialized result data
|
110
|
+
* @returns Boolean indicating success
|
111
|
+
*/
|
112
|
+
deserialize: (method, data) => {
|
113
|
+
return JSON.parse(decodeBase64(data.serialized));
|
114
|
+
},
|
115
|
+
};
|
116
|
+
}
|
117
|
+
}
|
118
|
+
/**
|
119
|
+
* Serializer for the aztec_addNullifiedNote RPC method.
|
120
|
+
* Handles serialization of nullified note addition requests between JSON-RPC format and native Aztec types.
|
121
|
+
* Used to mark notes as spent/nullified in the note tree.
|
122
|
+
*/
|
123
|
+
export class AztecAddNullifiedNoteSerializer {
|
124
|
+
constructor() {
|
125
|
+
this.params = {
|
126
|
+
/**
|
127
|
+
* Serializes nullified note addition parameters for RPC transport.
|
128
|
+
* @param method - The RPC method name
|
129
|
+
* @param value - The parameters containing the nullified note to add
|
130
|
+
* @returns Serialized note data
|
131
|
+
*/
|
132
|
+
serialize: (method, value) => {
|
133
|
+
const { note } = value;
|
134
|
+
return {
|
135
|
+
method,
|
136
|
+
serialized: encodeBase64(note.toBuffer().toString('hex')),
|
137
|
+
};
|
138
|
+
},
|
139
|
+
/**
|
140
|
+
* Deserializes nullified note addition parameters from RPC transport.
|
141
|
+
* @param method - The RPC method name
|
142
|
+
* @param data - The serialized note data
|
143
|
+
* @returns Deserialized note parameters
|
144
|
+
*/
|
145
|
+
deserialize: (method, data) => {
|
146
|
+
const note = ExtendedNote.fromBuffer(Buffer.from(decodeBase64(data.serialized), 'hex'));
|
147
|
+
return { note };
|
148
|
+
},
|
149
|
+
};
|
150
|
+
this.result = {
|
151
|
+
/**
|
152
|
+
* Serializes the nullified note addition result.
|
153
|
+
* @param method - The RPC method name
|
154
|
+
* @param value - Boolean indicating success of the nullified note addition
|
155
|
+
* @returns Serialized result
|
156
|
+
*/
|
157
|
+
serialize: (method, value) => {
|
158
|
+
return {
|
159
|
+
method,
|
160
|
+
serialized: encodeBase64(JSON.stringify(value)),
|
161
|
+
};
|
162
|
+
},
|
163
|
+
/**
|
164
|
+
* Deserializes the nullified note addition result.
|
165
|
+
* @param method - The RPC method name
|
166
|
+
* @param data - The serialized result data
|
167
|
+
* @returns Boolean indicating success
|
168
|
+
*/
|
169
|
+
deserialize: (method, data) => {
|
170
|
+
return JSON.parse(decodeBase64(data.serialized));
|
171
|
+
},
|
172
|
+
};
|
173
|
+
}
|
174
|
+
}
|
175
|
+
/**
|
176
|
+
* Pre-instantiated serializer instances for Aztec note-related RPC methods.
|
177
|
+
* These instances can be used directly by the RPC handler implementation.
|
178
|
+
*/
|
179
|
+
export const aztecGetIncomingNotesSerializer = new AztecGetIncomingNotesSerializer();
|
180
|
+
export const aztecAddNoteSerializer = new AztecAddNoteSerializer();
|
181
|
+
export const aztecAddNullifiedNoteSerializer = new AztecAddNullifiedNoteSerializer();
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemVycy9ub3RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0M7Ozs7R0FJRztBQUNILE1BQU0sT0FBTywrQkFBK0I7SUFBNUM7UUFPRSxXQUFNLEdBQUc7WUFDUDs7Ozs7ZUFLRztZQUNILFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUErRCxFQUN4QyxFQUFFO2dCQUN6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNqRCxDQUFDO1lBQ0osQ0FBQztZQUNEOzs7OztlQUtHO1lBQ0gsV0FBVyxFQUFFLENBQ1gsTUFBYyxFQUNkLElBQTJCLEVBQytCLEVBQUU7Z0JBQzVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBd0IsQ0FBQztnQkFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLENBQUM7U0FDRixDQUFDO1FBRUYsV0FBTSxHQUFHO1lBQ1A7Ozs7O2VBS0c7WUFDSCxTQUFTLEVBQUUsQ0FDVCxNQUFjLEVBQ2QsS0FBK0QsRUFDeEMsRUFBRTtnQkFDekIsT0FBTztvQkFDTCxNQUFNO29CQUNOLFVBQVUsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FB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
|
@@ -0,0 +1,107 @@
|
|
1
|
+
import { PrivateExecutionResult, TxProvingResult } from '@aztec/circuit-types';
|
2
|
+
import type { CountedContractClassLog, CountedPublicExecutionRequest, NoteAndSlot, PublicExecutionRequest } from '@aztec/circuit-types';
|
3
|
+
import type { ClientIvcProof, PrivateCircuitPublicInputs, PrivateKernelTailCircuitPublicInputs } from '@aztec/circuits.js';
|
4
|
+
/**
|
5
|
+
* Interface representing the serialized form of a private execution result.
|
6
|
+
* Contains all data needed to reconstruct a PrivateExecutionResult instance.
|
7
|
+
*/
|
8
|
+
interface SerializedPrivateExecutionResultData {
|
9
|
+
acir: string;
|
10
|
+
vk: string;
|
11
|
+
partialWitness: [number, string][];
|
12
|
+
publicInputs: PrivateCircuitPublicInputs;
|
13
|
+
noteHashLeafIndexMap: [string, string][];
|
14
|
+
newNotes: NoteAndSlot[];
|
15
|
+
noteHashNullifierCounterMap: [number, number][];
|
16
|
+
returnValues: string[];
|
17
|
+
nestedExecutions: SerializedPrivateExecutionResultData[];
|
18
|
+
enqueuedPublicFunctionCalls: CountedPublicExecutionRequest[];
|
19
|
+
publicTeardownFunctionCall: PublicExecutionRequest;
|
20
|
+
contractClassLogs: CountedContractClassLog[];
|
21
|
+
}
|
22
|
+
/**
|
23
|
+
* Extends PrivateExecutionResult to add serialization capabilities.
|
24
|
+
* Provides methods to convert private execution results to/from JSON format for RPC transport.
|
25
|
+
*/
|
26
|
+
export declare class SerializablePrivateExecutionResult extends PrivateExecutionResult {
|
27
|
+
/**
|
28
|
+
* Creates a SerializablePrivateExecutionResult from a PrivateExecutionResult instance.
|
29
|
+
* @param result - The PrivateExecutionResult to convert
|
30
|
+
* @returns A new SerializablePrivateExecutionResult instance
|
31
|
+
*/
|
32
|
+
static from(result: PrivateExecutionResult): SerializablePrivateExecutionResult;
|
33
|
+
/**
|
34
|
+
* Converts the execution result to a JSON-serializable format.
|
35
|
+
* Handles conversion of complex types like Buffers, Maps, and nested execution results.
|
36
|
+
* @returns The serialized execution result data
|
37
|
+
*/
|
38
|
+
toJSON(): SerializedPrivateExecutionResultData;
|
39
|
+
/**
|
40
|
+
* Creates a SerializablePrivateExecutionResult from JSON data.
|
41
|
+
* @param json - JSON string or pre-parsed data object
|
42
|
+
* @returns A new SerializablePrivateExecutionResult instance
|
43
|
+
*/
|
44
|
+
static fromJSON(json: string | SerializedPrivateExecutionResultData): SerializablePrivateExecutionResult;
|
45
|
+
/**
|
46
|
+
* Compares this execution result with another for equality.
|
47
|
+
* @param other - The execution result to compare against
|
48
|
+
* @returns True if the execution results are equivalent
|
49
|
+
*/
|
50
|
+
equals(other: PrivateExecutionResult): boolean;
|
51
|
+
toComparable(): SerializedPrivateExecutionResultData;
|
52
|
+
}
|
53
|
+
/**
|
54
|
+
* Interface representing the serialized form of a transaction proving result.
|
55
|
+
* Contains the private execution result, public inputs, and client IVC proof.
|
56
|
+
*/
|
57
|
+
interface SerializedTxProvingResultData {
|
58
|
+
privateExecutionResult: ReturnType<SerializablePrivateExecutionResult['toJSON']>;
|
59
|
+
publicInputs: PrivateKernelTailCircuitPublicInputs;
|
60
|
+
clientIvcProof: ClientIvcProof;
|
61
|
+
}
|
62
|
+
/**
|
63
|
+
* Extends TxProvingResult to add serialization capabilities.
|
64
|
+
* Provides methods to convert transaction proving results to/from JSON format for RPC transport.
|
65
|
+
*/
|
66
|
+
export declare class SerializableTxProvingResult extends TxProvingResult {
|
67
|
+
/**
|
68
|
+
* Creates a SerializableTxProvingResult from a TxProvingResult instance.
|
69
|
+
* @param result - The TxProvingResult to convert
|
70
|
+
* @returns A new SerializableTxProvingResult instance
|
71
|
+
*/
|
72
|
+
static from(result: TxProvingResult): SerializableTxProvingResult;
|
73
|
+
/**
|
74
|
+
* Converts the proving result to a JSON-serializable format.
|
75
|
+
* @returns The serialized proving result data
|
76
|
+
*/
|
77
|
+
toJSON(): SerializedTxProvingResultData;
|
78
|
+
/**
|
79
|
+
* Creates a SerializableTxProvingResult from JSON data.
|
80
|
+
* @param json - JSON string or pre-parsed data object
|
81
|
+
* @returns A new SerializableTxProvingResult instance
|
82
|
+
*/
|
83
|
+
static fromJSON(json: string | SerializedTxProvingResultData): SerializableTxProvingResult;
|
84
|
+
/**
|
85
|
+
* Compares this proving result with another for equality.
|
86
|
+
* @param other - The proving result to compare against
|
87
|
+
* @returns True if the proving results are equivalent
|
88
|
+
*/
|
89
|
+
equals(other: TxProvingResult): boolean;
|
90
|
+
toComparable(): SerializedTxProvingResultData;
|
91
|
+
}
|
92
|
+
/**
|
93
|
+
* Utility function to compare two PrivateExecutionResult instances for equality.
|
94
|
+
* @param a - First execution result
|
95
|
+
* @param b - Second execution result
|
96
|
+
* @returns True if the execution results are equivalent
|
97
|
+
*/
|
98
|
+
export declare function comparePrivateExecutionResults(a: PrivateExecutionResult, b: PrivateExecutionResult): boolean;
|
99
|
+
/**
|
100
|
+
* Utility function to compare two TxProvingResult instances for equality.
|
101
|
+
* @param a - First proving result
|
102
|
+
* @param b - Second proving result
|
103
|
+
* @returns True if the proving results are equivalent
|
104
|
+
*/
|
105
|
+
export declare function compareTxProvingResults(a: TxProvingResult, b: TxProvingResult): boolean;
|
106
|
+
export {};
|
107
|
+
//# sourceMappingURL=transaction-utils.d.ts.map
|