@walletmesh/aztec-rpc-wallet 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/LICENSE +201 -0
- package/README.md +260 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/aztecRemoteWallet.d.ts +73 -0
- package/dist/aztecRemoteWallet.d.ts.map +1 -0
- package/dist/aztecRemoteWallet.js +354 -0
- package/dist/chainProvider.d.ts +56 -0
- package/dist/chainProvider.d.ts.map +1 -0
- package/dist/chainProvider.js +98 -0
- package/dist/contractArtifactCache.d.ts +50 -0
- package/dist/contractArtifactCache.d.ts.map +1 -0
- package/dist/contractArtifactCache.js +66 -0
- package/dist/errors.d.ts +50 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +62 -0
- package/dist/handlers/aztecAccountWallet.d.ts +4 -0
- package/dist/handlers/aztecAccountWallet.d.ts.map +1 -0
- package/dist/handlers/aztecAccountWallet.js +329 -0
- package/dist/handlers/transactions.d.ts +21 -0
- package/dist/handlers/transactions.d.ts.map +1 -0
- package/dist/handlers/transactions.js +90 -0
- package/dist/handlers.d.ts +27 -0
- package/dist/handlers.d.ts.map +1 -0
- package/dist/handlers.js +55 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/provider.d.ts +105 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +160 -0
- package/dist/serializers/account.d.ts +167 -0
- package/dist/serializers/account.d.ts.map +1 -0
- package/dist/serializers/account.js +245 -0
- package/dist/serializers/contract-utils.d.ts +40 -0
- package/dist/serializers/contract-utils.d.ts.map +1 -0
- package/dist/serializers/contract-utils.js +102 -0
- package/dist/serializers/contract.d.ts +168 -0
- package/dist/serializers/contract.d.ts.map +1 -0
- package/dist/serializers/contract.js +268 -0
- package/dist/serializers/core.d.ts +110 -0
- package/dist/serializers/core.d.ts.map +1 -0
- package/dist/serializers/core.js +130 -0
- package/dist/serializers/index.d.ts +28 -0
- package/dist/serializers/index.d.ts.map +1 -0
- package/dist/serializers/index.js +159 -0
- package/dist/serializers/log.d.ts +113 -0
- package/dist/serializers/log.d.ts.map +1 -0
- package/dist/serializers/log.js +231 -0
- package/dist/serializers/note.d.ts +127 -0
- package/dist/serializers/note.d.ts.map +1 -0
- package/dist/serializers/note.js +182 -0
- package/dist/serializers/transaction-utils.d.ts +107 -0
- package/dist/serializers/transaction-utils.d.ts.map +1 -0
- package/dist/serializers/transaction-utils.js +130 -0
- package/dist/serializers/transaction.d.ts +103 -0
- package/dist/serializers/transaction.d.ts.map +1 -0
- package/dist/serializers/transaction.js +238 -0
- package/dist/serializers/types.d.ts +49 -0
- package/dist/serializers/types.d.ts.map +1 -0
- package/dist/serializers/types.js +22 -0
- package/dist/types.d.ts +391 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/wallet.d.ts +62 -0
- package/dist/wallet.d.ts.map +1 -0
- package/dist/wallet.js +77 -0
- package/package.json +44 -0
- package/src/aztecRemoteWallet.test.ts +542 -0
- package/src/aztecRemoteWallet.ts +484 -0
- package/src/chainProvider.test.ts +322 -0
- package/src/chainProvider.ts +122 -0
- package/src/contractArtifactCache.test.ts +126 -0
- package/src/contractArtifactCache.ts +75 -0
- package/src/errors.ts +71 -0
- package/src/handlers/aztecAccountWallet.test.ts +720 -0
- package/src/handlers/aztecAccountWallet.ts +593 -0
- package/src/handlers/transactions.ts +110 -0
- package/src/handlers.test.ts +270 -0
- package/src/handlers.ts +70 -0
- package/src/index.test.ts +23 -0
- package/src/index.ts +64 -0
- package/src/provider.test.ts +276 -0
- package/src/provider.ts +189 -0
- package/src/serializers/account.test.ts +125 -0
- package/src/serializers/account.ts +319 -0
- package/src/serializers/contract-utils.ts +104 -0
- package/src/serializers/contract.test.ts +162 -0
- package/src/serializers/contract.ts +350 -0
- package/src/serializers/core.test.ts +56 -0
- package/src/serializers/core.ts +141 -0
- package/src/serializers/index.test.ts +122 -0
- package/src/serializers/index.ts +213 -0
- package/src/serializers/log.test.ts +119 -0
- package/src/serializers/log.ts +283 -0
- package/src/serializers/note.test.ts +100 -0
- package/src/serializers/note.ts +227 -0
- package/src/serializers/transaction-utils.ts +237 -0
- package/src/serializers/transaction.test.ts +153 -0
- package/src/serializers/transaction.ts +342 -0
- package/src/serializers/types.ts +58 -0
- package/src/types.ts +295 -0
- package/src/wallet.test.ts +275 -0
- package/src/wallet.ts +94 -0
- package/tsconfig.build.json +6 -0
- package/tsconfig.json +11 -0
- package/typedoc.json +15 -0
- package/vitest.config.ts +10 -0
@@ -0,0 +1,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"}
|