@walletmesh/aztec-rpc-wallet 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +201 -0
  3. package/README.md +260 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/aztecRemoteWallet.d.ts +73 -0
  6. package/dist/aztecRemoteWallet.d.ts.map +1 -0
  7. package/dist/aztecRemoteWallet.js +354 -0
  8. package/dist/chainProvider.d.ts +56 -0
  9. package/dist/chainProvider.d.ts.map +1 -0
  10. package/dist/chainProvider.js +98 -0
  11. package/dist/contractArtifactCache.d.ts +50 -0
  12. package/dist/contractArtifactCache.d.ts.map +1 -0
  13. package/dist/contractArtifactCache.js +66 -0
  14. package/dist/errors.d.ts +50 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +62 -0
  17. package/dist/handlers/aztecAccountWallet.d.ts +4 -0
  18. package/dist/handlers/aztecAccountWallet.d.ts.map +1 -0
  19. package/dist/handlers/aztecAccountWallet.js +329 -0
  20. package/dist/handlers/transactions.d.ts +21 -0
  21. package/dist/handlers/transactions.d.ts.map +1 -0
  22. package/dist/handlers/transactions.js +90 -0
  23. package/dist/handlers.d.ts +27 -0
  24. package/dist/handlers.d.ts.map +1 -0
  25. package/dist/handlers.js +55 -0
  26. package/dist/index.d.ts +58 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +33 -0
  29. package/dist/provider.d.ts +105 -0
  30. package/dist/provider.d.ts.map +1 -0
  31. package/dist/provider.js +160 -0
  32. package/dist/serializers/account.d.ts +167 -0
  33. package/dist/serializers/account.d.ts.map +1 -0
  34. package/dist/serializers/account.js +245 -0
  35. package/dist/serializers/contract-utils.d.ts +40 -0
  36. package/dist/serializers/contract-utils.d.ts.map +1 -0
  37. package/dist/serializers/contract-utils.js +102 -0
  38. package/dist/serializers/contract.d.ts +168 -0
  39. package/dist/serializers/contract.d.ts.map +1 -0
  40. package/dist/serializers/contract.js +268 -0
  41. package/dist/serializers/core.d.ts +110 -0
  42. package/dist/serializers/core.d.ts.map +1 -0
  43. package/dist/serializers/core.js +130 -0
  44. package/dist/serializers/index.d.ts +28 -0
  45. package/dist/serializers/index.d.ts.map +1 -0
  46. package/dist/serializers/index.js +159 -0
  47. package/dist/serializers/log.d.ts +113 -0
  48. package/dist/serializers/log.d.ts.map +1 -0
  49. package/dist/serializers/log.js +231 -0
  50. package/dist/serializers/note.d.ts +127 -0
  51. package/dist/serializers/note.d.ts.map +1 -0
  52. package/dist/serializers/note.js +182 -0
  53. package/dist/serializers/transaction-utils.d.ts +107 -0
  54. package/dist/serializers/transaction-utils.d.ts.map +1 -0
  55. package/dist/serializers/transaction-utils.js +130 -0
  56. package/dist/serializers/transaction.d.ts +103 -0
  57. package/dist/serializers/transaction.d.ts.map +1 -0
  58. package/dist/serializers/transaction.js +238 -0
  59. package/dist/serializers/types.d.ts +49 -0
  60. package/dist/serializers/types.d.ts.map +1 -0
  61. package/dist/serializers/types.js +22 -0
  62. package/dist/types.d.ts +391 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +8 -0
  65. package/dist/wallet.d.ts +62 -0
  66. package/dist/wallet.d.ts.map +1 -0
  67. package/dist/wallet.js +77 -0
  68. package/package.json +44 -0
  69. package/src/aztecRemoteWallet.test.ts +542 -0
  70. package/src/aztecRemoteWallet.ts +484 -0
  71. package/src/chainProvider.test.ts +322 -0
  72. package/src/chainProvider.ts +122 -0
  73. package/src/contractArtifactCache.test.ts +126 -0
  74. package/src/contractArtifactCache.ts +75 -0
  75. package/src/errors.ts +71 -0
  76. package/src/handlers/aztecAccountWallet.test.ts +720 -0
  77. package/src/handlers/aztecAccountWallet.ts +593 -0
  78. package/src/handlers/transactions.ts +110 -0
  79. package/src/handlers.test.ts +270 -0
  80. package/src/handlers.ts +70 -0
  81. package/src/index.test.ts +23 -0
  82. package/src/index.ts +64 -0
  83. package/src/provider.test.ts +276 -0
  84. package/src/provider.ts +189 -0
  85. package/src/serializers/account.test.ts +125 -0
  86. package/src/serializers/account.ts +319 -0
  87. package/src/serializers/contract-utils.ts +104 -0
  88. package/src/serializers/contract.test.ts +162 -0
  89. package/src/serializers/contract.ts +350 -0
  90. package/src/serializers/core.test.ts +56 -0
  91. package/src/serializers/core.ts +141 -0
  92. package/src/serializers/index.test.ts +122 -0
  93. package/src/serializers/index.ts +213 -0
  94. package/src/serializers/log.test.ts +119 -0
  95. package/src/serializers/log.ts +283 -0
  96. package/src/serializers/note.test.ts +100 -0
  97. package/src/serializers/note.ts +227 -0
  98. package/src/serializers/transaction-utils.ts +237 -0
  99. package/src/serializers/transaction.test.ts +153 -0
  100. package/src/serializers/transaction.ts +342 -0
  101. package/src/serializers/types.ts +58 -0
  102. package/src/types.ts +295 -0
  103. package/src/wallet.test.ts +275 -0
  104. package/src/wallet.ts +94 -0
  105. package/tsconfig.build.json +6 -0
  106. package/tsconfig.json +11 -0
  107. package/typedoc.json +15 -0
  108. 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