@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,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"}