@walletmesh/aztec-rpc-wallet 0.1.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 +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
|