@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.
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