@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,168 @@
1
+ import type { AztecWalletMethodMap } from '../types.js';
2
+ import type { JSONRPCSerializedData, JSONRPCSerializer } from './types.js';
3
+ /**
4
+ * Serializer for the aztec_getContractInstance RPC method.
5
+ * Handles serialization of contract instance queries and results between JSON-RPC format and native Aztec types.
6
+ * Used to retrieve deployed contract instances by their address.
7
+ */
8
+ export declare class AztecGetContractInstanceSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getContractInstance']['params'], AztecWalletMethodMap['aztec_getContractInstance']['result']> {
9
+ params: {
10
+ /**
11
+ * Serializes contract instance query parameters for RPC transport.
12
+ * @param method - The RPC method name
13
+ * @param value - The parameters containing the contract address to look up
14
+ * @returns Serialized address data
15
+ */
16
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getContractInstance"]["params"]) => JSONRPCSerializedData;
17
+ /**
18
+ * Deserializes contract instance query parameters from RPC transport.
19
+ * @param method - The RPC method name
20
+ * @param data - The serialized address data
21
+ * @returns Deserialized query parameters
22
+ */
23
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getContractInstance"]["params"];
24
+ };
25
+ result: {
26
+ /**
27
+ * Serializes the contract instance query result.
28
+ * @param method - The RPC method name
29
+ * @param value - The contract instance data including address and state
30
+ * @returns Serialized contract instance data
31
+ */
32
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getContractInstance"]["result"]) => JSONRPCSerializedData;
33
+ /**
34
+ * Deserializes the contract instance query result.
35
+ * @param method - The RPC method name
36
+ * @param data - The serialized contract instance data
37
+ * @returns Deserialized contract instance
38
+ */
39
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getContractInstance"]["result"];
40
+ };
41
+ }
42
+ /**
43
+ * Serializer for the aztec_getContractClass RPC method.
44
+ * Handles serialization of contract class queries and results between JSON-RPC format and native Aztec types.
45
+ * Used to retrieve contract class definitions by their ID.
46
+ */
47
+ export declare class AztecGetContractClassSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getContractClass']['params'], AztecWalletMethodMap['aztec_getContractClass']['result']> {
48
+ params: {
49
+ /**
50
+ * Serializes contract class query parameters for RPC transport.
51
+ * @param method - The RPC method name
52
+ * @param value - The parameters containing the class ID to look up
53
+ * @returns Serialized class ID data
54
+ */
55
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getContractClass"]["params"]) => JSONRPCSerializedData;
56
+ /**
57
+ * Deserializes contract class query parameters from RPC transport.
58
+ * @param method - The RPC method name
59
+ * @param data - The serialized class ID data
60
+ * @returns Deserialized query parameters
61
+ */
62
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getContractClass"]["params"];
63
+ };
64
+ result: {
65
+ /**
66
+ * Serializes the contract class query result.
67
+ * @param method - The RPC method name
68
+ * @param value - The contract class definition with its ID
69
+ * @returns Serialized contract class data
70
+ */
71
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getContractClass"]["result"]) => JSONRPCSerializedData;
72
+ /**
73
+ * Deserializes the contract class query result.
74
+ * @param method - The RPC method name
75
+ * @param data - The serialized contract class data
76
+ * @returns Deserialized contract class with ID
77
+ */
78
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getContractClass"]["result"];
79
+ };
80
+ }
81
+ /**
82
+ * Serializer for the aztec_getContractArtifact RPC method.
83
+ * Handles serialization of contract artifact queries and results between JSON-RPC format and native Aztec types.
84
+ * Used to retrieve contract artifacts (ABI, bytecode, etc.) by their ID.
85
+ */
86
+ export declare class AztecGetContractArtifactSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getContractArtifact']['params'], AztecWalletMethodMap['aztec_getContractArtifact']['result']> {
87
+ params: {
88
+ /**
89
+ * Serializes contract artifact query parameters for RPC transport.
90
+ * @param method - The RPC method name
91
+ * @param value - The parameters containing the artifact ID to look up
92
+ * @returns Serialized artifact ID data
93
+ */
94
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getContractArtifact"]["params"]) => JSONRPCSerializedData;
95
+ /**
96
+ * Deserializes contract artifact query parameters from RPC transport.
97
+ * @param method - The RPC method name
98
+ * @param data - The serialized artifact ID data
99
+ * @returns Deserialized query parameters
100
+ */
101
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getContractArtifact"]["params"];
102
+ };
103
+ result: {
104
+ /**
105
+ * Serializes the contract artifact query result.
106
+ * @param method - The RPC method name
107
+ * @param value - The contract artifact data
108
+ * @returns Serialized contract artifact
109
+ */
110
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getContractArtifact"]["result"]) => JSONRPCSerializedData;
111
+ /**
112
+ * Deserializes the contract artifact query result.
113
+ * @param method - The RPC method name
114
+ * @param data - The serialized artifact data
115
+ * @returns Deserialized contract artifact
116
+ * @throws If the data doesn't match the contract artifact schema
117
+ */
118
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getContractArtifact"]["result"];
119
+ };
120
+ }
121
+ /**
122
+ * Serializer for the aztec_registerContract RPC method.
123
+ * Handles serialization of contract registration requests between JSON-RPC format and native Aztec types.
124
+ * Used to register new contract instances with optional artifacts.
125
+ */
126
+ export declare class AztecRegisterContractSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_registerContract']['params'], AztecWalletMethodMap['aztec_registerContract']['result']> {
127
+ params: {
128
+ /**
129
+ * Serializes contract registration parameters for RPC transport.
130
+ * @param method - The RPC method name
131
+ * @param value - The parameters containing contract instance and optional artifact
132
+ * @returns Serialized registration data
133
+ */
134
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_registerContract"]["params"]) => JSONRPCSerializedData;
135
+ /**
136
+ * Deserializes contract registration parameters from RPC transport.
137
+ * @param method - The RPC method name
138
+ * @param data - The serialized registration data
139
+ * @returns Deserialized registration parameters
140
+ */
141
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_registerContract"]["params"];
142
+ };
143
+ result: {
144
+ /**
145
+ * Serializes the contract registration result.
146
+ * @param method - The RPC method name
147
+ * @param value - Boolean indicating success of registration
148
+ * @returns Serialized result
149
+ */
150
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_registerContract"]["result"]) => JSONRPCSerializedData;
151
+ /**
152
+ * Deserializes the contract registration result.
153
+ * @param method - The RPC method name
154
+ * @param data - The serialized result data
155
+ * @returns Boolean indicating success
156
+ */
157
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_registerContract"]["result"];
158
+ };
159
+ }
160
+ /**
161
+ * Pre-instantiated serializer instances for Aztec contract-related RPC methods.
162
+ * These instances can be used directly by the RPC handler implementation.
163
+ */
164
+ export declare const aztecGetContractInstanceSerializer: AztecGetContractInstanceSerializer;
165
+ export declare const aztecGetContractClassSerializer: AztecGetContractClassSerializer;
166
+ export declare const aztecGetContractArtifactSerializer: AztecGetContractArtifactSerializer;
167
+ export declare const aztecRegisterContractSerializer: AztecRegisterContractSerializer;
168
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/serializers/contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,268 @@
1
+ import { encodeBase64, decodeBase64 } from './types.js';
2
+ import { aztecAddressSerializer, frSerializer } from './core.js';
3
+ import { SerializableContractInstance } from '@aztec/circuits.js';
4
+ import { ContractArtifactSchema } from '@aztec/foundation/abi';
5
+ import { serializeContractClassWithId, deserializeContractClassWithId } from './contract-utils.js';
6
+ /**
7
+ * Serializer for the aztec_getContractInstance RPC method.
8
+ * Handles serialization of contract instance queries and results between JSON-RPC format and native Aztec types.
9
+ * Used to retrieve deployed contract instances by their address.
10
+ */
11
+ export class AztecGetContractInstanceSerializer {
12
+ constructor() {
13
+ this.params = {
14
+ /**
15
+ * Serializes contract instance query parameters for RPC transport.
16
+ * @param method - The RPC method name
17
+ * @param value - The parameters containing the contract address to look up
18
+ * @returns Serialized address data
19
+ */
20
+ serialize: (method, value) => {
21
+ const { address } = value;
22
+ return {
23
+ method,
24
+ serialized: encodeBase64(aztecAddressSerializer.serialize(address)),
25
+ };
26
+ },
27
+ /**
28
+ * Deserializes contract instance query parameters from RPC transport.
29
+ * @param method - The RPC method name
30
+ * @param data - The serialized address data
31
+ * @returns Deserialized query parameters
32
+ */
33
+ deserialize: (method, data) => {
34
+ const address = aztecAddressSerializer.deserialize(decodeBase64(data.serialized));
35
+ return { address };
36
+ },
37
+ };
38
+ this.result = {
39
+ /**
40
+ * Serializes the contract instance query result.
41
+ * @param method - The RPC method name
42
+ * @param value - The contract instance data including address and state
43
+ * @returns Serialized contract instance data
44
+ */
45
+ serialize: (method, value) => {
46
+ const serializable = new SerializableContractInstance(value);
47
+ const { address } = value;
48
+ return {
49
+ method,
50
+ serialized: encodeBase64(JSON.stringify({
51
+ instance: serializable.toBuffer().toString('hex'),
52
+ address: aztecAddressSerializer.serialize(address),
53
+ })),
54
+ };
55
+ },
56
+ /**
57
+ * Deserializes the contract instance query result.
58
+ * @param method - The RPC method name
59
+ * @param data - The serialized contract instance data
60
+ * @returns Deserialized contract instance
61
+ */
62
+ deserialize: (method, data) => {
63
+ const { instance, address } = JSON.parse(decodeBase64(data.serialized));
64
+ const baseInstance = SerializableContractInstance.fromBuffer(Buffer.from(instance, 'hex'));
65
+ const deserializedAddress = aztecAddressSerializer.deserialize(address);
66
+ return baseInstance.withAddress(deserializedAddress);
67
+ },
68
+ };
69
+ }
70
+ }
71
+ /**
72
+ * Serializer for the aztec_getContractClass RPC method.
73
+ * Handles serialization of contract class queries and results between JSON-RPC format and native Aztec types.
74
+ * Used to retrieve contract class definitions by their ID.
75
+ */
76
+ export class AztecGetContractClassSerializer {
77
+ constructor() {
78
+ this.params = {
79
+ /**
80
+ * Serializes contract class query parameters for RPC transport.
81
+ * @param method - The RPC method name
82
+ * @param value - The parameters containing the class ID to look up
83
+ * @returns Serialized class ID data
84
+ */
85
+ serialize: (method, value) => {
86
+ const { id } = value;
87
+ return {
88
+ method,
89
+ serialized: encodeBase64(frSerializer.serialize(id)),
90
+ };
91
+ },
92
+ /**
93
+ * Deserializes contract class query parameters from RPC transport.
94
+ * @param method - The RPC method name
95
+ * @param data - The serialized class ID data
96
+ * @returns Deserialized query parameters
97
+ */
98
+ deserialize: (method, data) => {
99
+ const id = frSerializer.deserialize(decodeBase64(data.serialized));
100
+ return { id };
101
+ },
102
+ };
103
+ this.result = {
104
+ /**
105
+ * Serializes the contract class query result.
106
+ * @param method - The RPC method name
107
+ * @param value - The contract class definition with its ID
108
+ * @returns Serialized contract class data
109
+ */
110
+ serialize: (method, value) => {
111
+ const serialized = serializeContractClassWithId(value);
112
+ return {
113
+ method,
114
+ serialized: encodeBase64(JSON.stringify(serialized)),
115
+ };
116
+ },
117
+ /**
118
+ * Deserializes the contract class query result.
119
+ * @param method - The RPC method name
120
+ * @param data - The serialized contract class data
121
+ * @returns Deserialized contract class with ID
122
+ */
123
+ deserialize: (method, data) => {
124
+ const parsed = JSON.parse(decodeBase64(data.serialized));
125
+ return deserializeContractClassWithId(parsed);
126
+ },
127
+ };
128
+ }
129
+ }
130
+ /**
131
+ * Serializer for the aztec_getContractArtifact RPC method.
132
+ * Handles serialization of contract artifact queries and results between JSON-RPC format and native Aztec types.
133
+ * Used to retrieve contract artifacts (ABI, bytecode, etc.) by their ID.
134
+ */
135
+ export class AztecGetContractArtifactSerializer {
136
+ constructor() {
137
+ this.params = {
138
+ /**
139
+ * Serializes contract artifact query parameters for RPC transport.
140
+ * @param method - The RPC method name
141
+ * @param value - The parameters containing the artifact ID to look up
142
+ * @returns Serialized artifact ID data
143
+ */
144
+ serialize: (method, value) => {
145
+ const { id } = value;
146
+ return {
147
+ method,
148
+ serialized: encodeBase64(frSerializer.serialize(id)),
149
+ };
150
+ },
151
+ /**
152
+ * Deserializes contract artifact query parameters from RPC transport.
153
+ * @param method - The RPC method name
154
+ * @param data - The serialized artifact ID data
155
+ * @returns Deserialized query parameters
156
+ */
157
+ deserialize: (method, data) => {
158
+ const id = frSerializer.deserialize(decodeBase64(data.serialized));
159
+ return { id };
160
+ },
161
+ };
162
+ this.result = {
163
+ /**
164
+ * Serializes the contract artifact query result.
165
+ * @param method - The RPC method name
166
+ * @param value - The contract artifact data
167
+ * @returns Serialized contract artifact
168
+ */
169
+ serialize: (method, value) => {
170
+ return {
171
+ method,
172
+ serialized: encodeBase64(JSON.stringify(value)),
173
+ };
174
+ },
175
+ /**
176
+ * Deserializes the contract artifact query result.
177
+ * @param method - The RPC method name
178
+ * @param data - The serialized artifact data
179
+ * @returns Deserialized contract artifact
180
+ * @throws If the data doesn't match the contract artifact schema
181
+ */
182
+ deserialize: (method, data) => {
183
+ return ContractArtifactSchema.parse(JSON.parse(decodeBase64(data.serialized)));
184
+ },
185
+ };
186
+ }
187
+ }
188
+ /**
189
+ * Serializer for the aztec_registerContract RPC method.
190
+ * Handles serialization of contract registration requests between JSON-RPC format and native Aztec types.
191
+ * Used to register new contract instances with optional artifacts.
192
+ */
193
+ export class AztecRegisterContractSerializer {
194
+ constructor() {
195
+ this.params = {
196
+ /**
197
+ * Serializes contract registration parameters for RPC transport.
198
+ * @param method - The RPC method name
199
+ * @param value - The parameters containing contract instance and optional artifact
200
+ * @returns Serialized registration data
201
+ */
202
+ serialize: (method, value) => {
203
+ const { instance, artifact } = value;
204
+ const serializable = new SerializableContractInstance(instance);
205
+ const serializedInstance = {
206
+ instance: Buffer.from(serializable.toBuffer()).toString('base64'),
207
+ address: aztecAddressSerializer.serialize(instance.address),
208
+ };
209
+ const serializedArtifact = artifact ? JSON.stringify(artifact) : undefined;
210
+ return {
211
+ method,
212
+ serialized: encodeBase64(JSON.stringify({
213
+ instance: serializedInstance,
214
+ artifact: serializedArtifact,
215
+ })),
216
+ };
217
+ },
218
+ /**
219
+ * Deserializes contract registration parameters from RPC transport.
220
+ * @param method - The RPC method name
221
+ * @param data - The serialized registration data
222
+ * @returns Deserialized registration parameters
223
+ */
224
+ deserialize: (method, data) => {
225
+ const { instance, artifact } = JSON.parse(decodeBase64(data.serialized));
226
+ const { instance: instanceBuffer, address } = instance;
227
+ const baseInstance = SerializableContractInstance.fromBuffer(Buffer.from(instanceBuffer, 'base64'));
228
+ const deserializedAddress = aztecAddressSerializer.deserialize(address);
229
+ return {
230
+ instance: baseInstance.withAddress(deserializedAddress),
231
+ artifact: artifact ? JSON.parse(artifact) : undefined,
232
+ };
233
+ },
234
+ };
235
+ this.result = {
236
+ /**
237
+ * Serializes the contract registration result.
238
+ * @param method - The RPC method name
239
+ * @param value - Boolean indicating success of registration
240
+ * @returns Serialized result
241
+ */
242
+ serialize: (method, value) => {
243
+ return {
244
+ method,
245
+ serialized: encodeBase64(JSON.stringify(value)),
246
+ };
247
+ },
248
+ /**
249
+ * Deserializes the contract registration result.
250
+ * @param method - The RPC method name
251
+ * @param data - The serialized result data
252
+ * @returns Boolean indicating success
253
+ */
254
+ deserialize: (method, data) => {
255
+ return JSON.parse(decodeBase64(data.serialized));
256
+ },
257
+ };
258
+ }
259
+ }
260
+ /**
261
+ * Pre-instantiated serializer instances for Aztec contract-related RPC methods.
262
+ * These instances can be used directly by the RPC handler implementation.
263
+ */
264
+ export const aztecGetContractInstanceSerializer = new AztecGetContractInstanceSerializer();
265
+ export const aztecGetContractClassSerializer = new AztecGetContractClassSerializer();
266
+ export const aztecGetContractArtifactSerializer = new AztecGetContractArtifactSerializer();
267
+ export const aztecRegisterContractSerializer = new AztecRegisterContractSerializer();
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGtDQUFrQztJQUEvQztRQU9FLFdBQU0sR0FBRztZQUNQOzs7OztlQUtHO1lBQ0gsU0FBUyxFQUFFLENBQ1QsTUFBYyxFQUNkLEtBQWtFLEVBQzNDLEVBQUU7Z0JBQ3pCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUM7Z0JBQzFCLE9BQU87b0JBQ0wsTUFBTTtvQkFDTixVQUFVLEVBQUUsWUFBWSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDcEUsQ0FBQztZQUNKLENBQUM7WUFDRDs7Ozs7ZUFLRztZQUNILFdBQVcsRUFBRSxDQUNYLE1BQWMsRUFDZCxJQUEyQixFQUNrQyxFQUFFO2dCQUMvRCxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNsRixPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDckIsQ0FBQztTQUNGLENBQUM7UUFFRixXQUFNLEdBQUc7WUFDUDs7Ozs7ZUFLRztZQUNILFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUFr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
@@ -0,0 +1,110 @@
1
+ import { Fr, AztecAddress, CompleteAddress, AuthWitness, TxHash } from '@aztec/aztec.js';
2
+ import type { TypeSerializer } from './types.js';
3
+ /**
4
+ * Serializer for Fr (field element) values in the Aztec protocol.
5
+ * Handles conversion of field elements to/from base64-encoded strings for RPC transport.
6
+ * Field elements are fundamental to Aztec's cryptographic operations.
7
+ */
8
+ export declare class FrSerializer implements TypeSerializer<Fr> {
9
+ /**
10
+ * Converts an Fr value to a base64-encoded string.
11
+ * @param value - The field element to serialize
12
+ * @returns Base64-encoded string representation
13
+ */
14
+ serialize(value: Fr): string;
15
+ /**
16
+ * Reconstructs an Fr value from a base64-encoded string.
17
+ * @param data - The base64-encoded string to deserialize
18
+ * @returns Reconstructed field element
19
+ * @throws If the input string is not a valid field element representation
20
+ */
21
+ deserialize(data: string): Fr;
22
+ }
23
+ /**
24
+ * Serializer for Aztec protocol addresses.
25
+ * Handles conversion of AztecAddress instances to/from base64-encoded strings.
26
+ * Aztec addresses represent accounts and contracts in the protocol.
27
+ */
28
+ export declare class AztecAddressSerializer implements TypeSerializer<AztecAddress> {
29
+ /**
30
+ * Converts an AztecAddress to a base64-encoded string.
31
+ * @param value - The Aztec address to serialize
32
+ * @returns Base64-encoded string representation
33
+ */
34
+ serialize(value: AztecAddress): string;
35
+ /**
36
+ * Reconstructs an AztecAddress from a base64-encoded string.
37
+ * @param data - The base64-encoded string to deserialize
38
+ * @returns Reconstructed Aztec address
39
+ * @throws If the input string is not a valid address representation
40
+ */
41
+ deserialize(data: string): AztecAddress;
42
+ }
43
+ /**
44
+ * Serializer for complete Aztec addresses that include additional metadata.
45
+ * CompleteAddress extends AztecAddress with extra information needed for certain operations.
46
+ */
47
+ export declare class CompleteAddressSerializer implements TypeSerializer<CompleteAddress> {
48
+ /**
49
+ * Converts a CompleteAddress to a base64-encoded string.
50
+ * @param value - The complete address to serialize
51
+ * @returns Base64-encoded string representation
52
+ */
53
+ serialize(value: CompleteAddress): string;
54
+ /**
55
+ * Reconstructs a CompleteAddress from a base64-encoded string.
56
+ * @param data - The base64-encoded string to deserialize
57
+ * @returns Reconstructed complete address
58
+ * @throws If the input string is not a valid complete address representation
59
+ */
60
+ deserialize(data: string): CompleteAddress;
61
+ }
62
+ /**
63
+ * Serializer for authentication witnesses in the Aztec protocol.
64
+ * AuthWitness values are used to prove transaction authorization.
65
+ */
66
+ export declare class AuthWitnessSerializer implements TypeSerializer<AuthWitness> {
67
+ /**
68
+ * Converts an AuthWitness to a base64-encoded string.
69
+ * @param value - The authentication witness to serialize
70
+ * @returns Base64-encoded string representation
71
+ */
72
+ serialize(value: AuthWitness): string;
73
+ /**
74
+ * Reconstructs an AuthWitness from a base64-encoded string.
75
+ * @param data - The base64-encoded string to deserialize
76
+ * @returns Reconstructed authentication witness
77
+ * @throws If the input string is not a valid auth witness representation
78
+ */
79
+ deserialize(data: string): AuthWitness;
80
+ }
81
+ /**
82
+ * Serializer for transaction hashes in the Aztec protocol.
83
+ * TxHash values uniquely identify transactions and are used for lookups and references.
84
+ */
85
+ export declare class TxHashSerializer implements TypeSerializer<TxHash> {
86
+ /**
87
+ * Converts a TxHash to a base64-encoded string.
88
+ * @param value - The transaction hash to serialize
89
+ * @returns Base64-encoded string representation
90
+ */
91
+ serialize(value: TxHash): string;
92
+ /**
93
+ * Reconstructs a TxHash from a base64-encoded string.
94
+ * @param data - The base64-encoded string to deserialize
95
+ * @returns Reconstructed transaction hash
96
+ * @throws If the input string is not a valid transaction hash representation
97
+ */
98
+ deserialize(data: string): TxHash;
99
+ }
100
+ /**
101
+ * Pre-instantiated serializer instances for common Aztec types.
102
+ * These singletons should be used instead of creating new instances
103
+ * to ensure consistent serialization across the application.
104
+ */
105
+ export declare const frSerializer: FrSerializer;
106
+ export declare const aztecAddressSerializer: AztecAddressSerializer;
107
+ export declare const completeAddressSerializer: CompleteAddressSerializer;
108
+ export declare const authWitnessSerializer: AuthWitnessSerializer;
109
+ export declare const txHashSerializer: TxHashSerializer;
110
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/serializers/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,YAAa,YAAW,cAAc,CAAC,EAAE,CAAC;IACrD;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM;IAI5B;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE;CAG9B;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,cAAc,CAAC,YAAY,CAAC;IACzE;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;IAItC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;CAGxC;AAED;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,cAAc,CAAC,eAAe,CAAC;IAC/E;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAIzC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;CAG3C;AAED;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,cAAc,CAAC,WAAW,CAAC;IACvE;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAIrC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;CAGvC;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,cAAc,CAAC,MAAM,CAAC;IAC7D;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAGlC;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC;AAC/C,eAAO,MAAM,sBAAsB,wBAA+B,CAAC;AACnE,eAAO,MAAM,yBAAyB,2BAAkC,CAAC;AACzE,eAAO,MAAM,qBAAqB,uBAA8B,CAAC;AACjE,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}