@walletmesh/aztec-rpc-wallet 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +6 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/aztecRemoteWallet.d.ts +7 -6
- package/dist/aztecRemoteWallet.d.ts.map +1 -1
- package/dist/aztecRemoteWallet.js +15 -9
- package/dist/handlers/aztecAccountWallet.d.ts.map +1 -1
- package/dist/handlers/aztecAccountWallet.js +22 -22
- package/dist/serializers/account.d.ts +4 -7
- package/dist/serializers/account.d.ts.map +1 -1
- package/dist/serializers/account.js +28 -29
- package/dist/serializers/contract.d.ts +4 -56
- package/dist/serializers/contract.d.ts.map +1 -1
- package/dist/serializers/contract.js +62 -148
- package/dist/serializers/index.d.ts +1 -4
- package/dist/serializers/index.d.ts.map +1 -1
- package/dist/serializers/index.js +12 -12
- package/dist/serializers/log.d.ts +36 -83
- package/dist/serializers/log.d.ts.map +1 -1
- package/dist/serializers/log.js +96 -107
- package/dist/serializers/note.d.ts +14 -17
- package/dist/serializers/note.d.ts.map +1 -1
- package/dist/serializers/note.js +52 -29
- package/dist/serializers/transaction-utils.d.ts +44 -100
- package/dist/serializers/transaction-utils.d.ts.map +1 -1
- package/dist/serializers/transaction-utils.js +82 -118
- package/dist/serializers/transaction.d.ts +3 -6
- package/dist/serializers/transaction.d.ts.map +1 -1
- package/dist/serializers/transaction.js +39 -50
- package/dist/types.d.ts +8 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/package.json +5 -5
- package/src/aztecRemoteWallet.test.ts +33 -29
- package/src/aztecRemoteWallet.ts +25 -14
- package/src/handlers/aztecAccountWallet.test.ts +78 -75
- package/src/handlers/aztecAccountWallet.ts +32 -35
- package/src/serializers/account.test.ts +18 -17
- package/src/serializers/account.ts +31 -49
- package/src/serializers/contract.test.ts +14 -16
- package/src/serializers/contract.ts +75 -164
- package/src/serializers/index.test.ts +20 -8
- package/src/serializers/index.ts +16 -20
- package/src/serializers/log.test.ts +201 -28
- package/src/serializers/log.ts +153 -146
- package/src/serializers/note.test.ts +26 -28
- package/src/serializers/note.ts +60 -36
- package/src/serializers/transaction-utils.ts +135 -211
- package/src/serializers/transaction.test.ts +190 -30
- package/src/serializers/transaction.ts +51 -72
- package/src/types.ts +9 -8
- package/vitest.config.ts +1 -1
- package/dist/serializers/contract-utils.d.ts +0 -40
- package/dist/serializers/contract-utils.d.ts.map +0 -1
- package/dist/serializers/contract-utils.js +0 -102
- package/dist/serializers/core.d.ts +0 -110
- package/dist/serializers/core.d.ts.map +0 -1
- package/dist/serializers/core.js +0 -130
- package/dist/serializers/types.d.ts +0 -49
- package/dist/serializers/types.d.ts.map +0 -1
- package/dist/serializers/types.js +0 -22
- package/src/serializers/contract-utils.ts +0 -104
- package/src/serializers/core.test.ts +0 -56
- package/src/serializers/core.ts +0 -141
- package/src/serializers/types.ts +0 -58
@@ -1,40 +0,0 @@
|
|
1
|
-
import type { ContractClassWithId } from '@aztec/circuits.js';
|
2
|
-
/**
|
3
|
-
* Serializes a ContractClassWithId instance to a JSON string.
|
4
|
-
* Handles the conversion of complex Aztec types (Fr, Buffer, FunctionSelector) to their string representations.
|
5
|
-
*
|
6
|
-
* The serialization process handles the following contract components:
|
7
|
-
* - version: Contract class version number
|
8
|
-
* - artifactHash: Fr value representing the hash of the contract artifact
|
9
|
-
* - privateFunctions: Array of private function definitions with selectors and VK hashes
|
10
|
-
* - publicFunctions: Array of public function definitions with selectors and bytecode
|
11
|
-
* - packedBytecode: Buffer containing the contract's packed bytecode
|
12
|
-
* - id: Fr value representing the contract class ID
|
13
|
-
*
|
14
|
-
* @param contract - The contract class with ID to serialize
|
15
|
-
* @returns JSON string representation of the contract class
|
16
|
-
* @throws If any contract components cannot be properly serialized
|
17
|
-
*/
|
18
|
-
export declare function serializeContractClassWithId(contract: ContractClassWithId): string;
|
19
|
-
/**
|
20
|
-
* Deserializes a JSON string into a ContractClassWithId instance.
|
21
|
-
* Reconstructs complex Aztec types from their string representations.
|
22
|
-
*
|
23
|
-
* The deserialization process handles:
|
24
|
-
* - version: Preserved as-is
|
25
|
-
* - artifactHash: Reconstructed as Fr from hex string
|
26
|
-
* - privateFunctions: Array of functions with:
|
27
|
-
* * selector: Reconstructed as FunctionSelector
|
28
|
-
* * vkHash: Reconstructed as Fr
|
29
|
-
* - publicFunctions: Array of functions with:
|
30
|
-
* * selector: Reconstructed as FunctionSelector
|
31
|
-
* * bytecode: Reconstructed as Buffer
|
32
|
-
* - packedBytecode: Reconstructed as Buffer from hex string
|
33
|
-
* - id: Reconstructed as Fr from hex string
|
34
|
-
*
|
35
|
-
* @param json - The JSON string to deserialize, previously created by serializeContractClassWithId
|
36
|
-
* @returns Reconstructed ContractClassWithId instance
|
37
|
-
* @throws If the JSON string is malformed or contains invalid data
|
38
|
-
*/
|
39
|
-
export declare function deserializeContractClassWithId(json: string): ContractClassWithId;
|
40
|
-
//# sourceMappingURL=contract-utils.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"contract-utils.d.ts","sourceRoot":"","sources":["../../src/serializers/contract-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAmC,MAAM,oBAAoB,CAAC;AAI/F;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,CAkClF;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CA2BhF"}
|
@@ -1,102 +0,0 @@
|
|
1
|
-
import { FunctionSelector } from '@aztec/foundation/abi';
|
2
|
-
import { Fr } from '@aztec/aztec.js';
|
3
|
-
/**
|
4
|
-
* Serializes a ContractClassWithId instance to a JSON string.
|
5
|
-
* Handles the conversion of complex Aztec types (Fr, Buffer, FunctionSelector) to their string representations.
|
6
|
-
*
|
7
|
-
* The serialization process handles the following contract components:
|
8
|
-
* - version: Contract class version number
|
9
|
-
* - artifactHash: Fr value representing the hash of the contract artifact
|
10
|
-
* - privateFunctions: Array of private function definitions with selectors and VK hashes
|
11
|
-
* - publicFunctions: Array of public function definitions with selectors and bytecode
|
12
|
-
* - packedBytecode: Buffer containing the contract's packed bytecode
|
13
|
-
* - id: Fr value representing the contract class ID
|
14
|
-
*
|
15
|
-
* @param contract - The contract class with ID to serialize
|
16
|
-
* @returns JSON string representation of the contract class
|
17
|
-
* @throws If any contract components cannot be properly serialized
|
18
|
-
*/
|
19
|
-
export function serializeContractClassWithId(contract) {
|
20
|
-
return JSON.stringify(contract, (key, value) => {
|
21
|
-
let result = value;
|
22
|
-
switch (key) {
|
23
|
-
case 'version':
|
24
|
-
result = value;
|
25
|
-
break;
|
26
|
-
case 'artifactHash':
|
27
|
-
result = value.toString();
|
28
|
-
break;
|
29
|
-
case 'privateFunctions':
|
30
|
-
result = value.map((fn) => ({
|
31
|
-
selector: fn.selector.toString(),
|
32
|
-
vkHash: fn.vkHash.toString(),
|
33
|
-
}));
|
34
|
-
break;
|
35
|
-
case 'publicFunctions':
|
36
|
-
result = value.map((fn) => ({
|
37
|
-
selector: fn.selector.toString(),
|
38
|
-
bytecode: fn.bytecode.toString('hex'),
|
39
|
-
}));
|
40
|
-
break;
|
41
|
-
case 'packedBytecode':
|
42
|
-
result = value.toString('hex');
|
43
|
-
break;
|
44
|
-
case 'id':
|
45
|
-
result = value.toString();
|
46
|
-
break;
|
47
|
-
default:
|
48
|
-
console.warn(`serializeContractClassWithId: Unknown key: ${key}`);
|
49
|
-
break;
|
50
|
-
}
|
51
|
-
return result;
|
52
|
-
});
|
53
|
-
}
|
54
|
-
/**
|
55
|
-
* Deserializes a JSON string into a ContractClassWithId instance.
|
56
|
-
* Reconstructs complex Aztec types from their string representations.
|
57
|
-
*
|
58
|
-
* The deserialization process handles:
|
59
|
-
* - version: Preserved as-is
|
60
|
-
* - artifactHash: Reconstructed as Fr from hex string
|
61
|
-
* - privateFunctions: Array of functions with:
|
62
|
-
* * selector: Reconstructed as FunctionSelector
|
63
|
-
* * vkHash: Reconstructed as Fr
|
64
|
-
* - publicFunctions: Array of functions with:
|
65
|
-
* * selector: Reconstructed as FunctionSelector
|
66
|
-
* * bytecode: Reconstructed as Buffer
|
67
|
-
* - packedBytecode: Reconstructed as Buffer from hex string
|
68
|
-
* - id: Reconstructed as Fr from hex string
|
69
|
-
*
|
70
|
-
* @param json - The JSON string to deserialize, previously created by serializeContractClassWithId
|
71
|
-
* @returns Reconstructed ContractClassWithId instance
|
72
|
-
* @throws If the JSON string is malformed or contains invalid data
|
73
|
-
*/
|
74
|
-
export function deserializeContractClassWithId(json) {
|
75
|
-
return JSON.parse(json, (key, value) => {
|
76
|
-
switch (key) {
|
77
|
-
case 'version':
|
78
|
-
return value;
|
79
|
-
case 'artifactHash':
|
80
|
-
return Fr.fromHexString(value);
|
81
|
-
case 'privateFunctions':
|
82
|
-
return value.map((fn) => ({
|
83
|
-
selector: FunctionSelector.fromString(fn.selector),
|
84
|
-
vkHash: Fr.fromHexString(fn.vkHash),
|
85
|
-
}));
|
86
|
-
case 'publicFunctions':
|
87
|
-
return value.map((fn) => ({
|
88
|
-
selector: FunctionSelector.fromString(fn.selector),
|
89
|
-
bytecode: Buffer.from(fn.bytecode, 'hex'),
|
90
|
-
}));
|
91
|
-
case 'packedBytecode':
|
92
|
-
return Buffer.from(value, 'hex');
|
93
|
-
case 'id':
|
94
|
-
return Fr.fromHexString(value);
|
95
|
-
default:
|
96
|
-
console.warn(`deserializeContractClassWithId: Unknown key: ${key}`);
|
97
|
-
break;
|
98
|
-
}
|
99
|
-
return value;
|
100
|
-
});
|
101
|
-
}
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3QtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvY29udHJhY3QtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFnRCxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyQzs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsUUFBNkI7SUFDeEUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUM3QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNaLEtBQUssU0FBUztnQkFDWixNQUFNLEdBQUcsS0FBSyxDQUFDO2dCQUNmLE1BQU07WUFDUixLQUFLLGNBQWM7Z0JBQ2pCLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzFCLE1BQU07WUFDUixLQUFLLGtCQUFrQjtnQkFDckIsTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMzQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7b0JBQ2hDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtpQkFDN0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osTUFBTTtZQUNSLEtBQUssaUJBQWlCO2dCQUNwQixNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtvQkFDaEMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztpQkFDdEMsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osTUFBTTtZQUNSLEtBQUssZ0JBQWdCO2dCQUNuQixNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0IsTUFBTTtZQUNSLEtBQUssSUFBSTtnQkFDUCxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMxQixNQUFNO1lBQ1I7Z0JBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDbEUsTUFBTTtRQUNWLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sVUFBVSw4QkFBOEIsQ0FBQyxJQUFZO0lBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDckMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNaLEtBQUssU0FBUztnQkFDWixPQUFPLEtBQUssQ0FBQztZQUNmLEtBQUssY0FBYztnQkFDakIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLEtBQUssa0JBQWtCO2dCQUNyQixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUF3QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM5RCxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7b0JBQ2xELE1BQU0sRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUM7aUJBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ04sS0FBSyxpQkFBaUI7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQTBDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2hFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztvQkFDbEQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7aUJBQzFDLENBQUMsQ0FBQyxDQUFDO1lBQ04sS0FBSyxnQkFBZ0I7Z0JBQ25CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsS0FBSyxJQUFJO2dCQUNQLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQztnQkFDRSxPQUFPLENBQUMsSUFBSSxDQUFDLGdEQUFnRCxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRSxNQUFNO1FBQ1YsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
|
@@ -1,110 +0,0 @@
|
|
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
|
@@ -1 +0,0 @@
|
|
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"}
|
package/dist/serializers/core.js
DELETED
@@ -1,130 +0,0 @@
|
|
1
|
-
import { Fr, AztecAddress, CompleteAddress, AuthWitness, TxHash } from '@aztec/aztec.js';
|
2
|
-
import { encodeBase64, decodeBase64 } 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 class FrSerializer {
|
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) {
|
15
|
-
return encodeBase64(value.toString());
|
16
|
-
}
|
17
|
-
/**
|
18
|
-
* Reconstructs an Fr value from a base64-encoded string.
|
19
|
-
* @param data - The base64-encoded string to deserialize
|
20
|
-
* @returns Reconstructed field element
|
21
|
-
* @throws If the input string is not a valid field element representation
|
22
|
-
*/
|
23
|
-
deserialize(data) {
|
24
|
-
return Fr.fromHexString(decodeBase64(data));
|
25
|
-
}
|
26
|
-
}
|
27
|
-
/**
|
28
|
-
* Serializer for Aztec protocol addresses.
|
29
|
-
* Handles conversion of AztecAddress instances to/from base64-encoded strings.
|
30
|
-
* Aztec addresses represent accounts and contracts in the protocol.
|
31
|
-
*/
|
32
|
-
export class AztecAddressSerializer {
|
33
|
-
/**
|
34
|
-
* Converts an AztecAddress to a base64-encoded string.
|
35
|
-
* @param value - The Aztec address to serialize
|
36
|
-
* @returns Base64-encoded string representation
|
37
|
-
*/
|
38
|
-
serialize(value) {
|
39
|
-
return encodeBase64(value.toString());
|
40
|
-
}
|
41
|
-
/**
|
42
|
-
* Reconstructs an AztecAddress from a base64-encoded string.
|
43
|
-
* @param data - The base64-encoded string to deserialize
|
44
|
-
* @returns Reconstructed Aztec address
|
45
|
-
* @throws If the input string is not a valid address representation
|
46
|
-
*/
|
47
|
-
deserialize(data) {
|
48
|
-
return AztecAddress.fromString(decodeBase64(data));
|
49
|
-
}
|
50
|
-
}
|
51
|
-
/**
|
52
|
-
* Serializer for complete Aztec addresses that include additional metadata.
|
53
|
-
* CompleteAddress extends AztecAddress with extra information needed for certain operations.
|
54
|
-
*/
|
55
|
-
export class CompleteAddressSerializer {
|
56
|
-
/**
|
57
|
-
* Converts a CompleteAddress to a base64-encoded string.
|
58
|
-
* @param value - The complete address to serialize
|
59
|
-
* @returns Base64-encoded string representation
|
60
|
-
*/
|
61
|
-
serialize(value) {
|
62
|
-
return encodeBase64(value.toString());
|
63
|
-
}
|
64
|
-
/**
|
65
|
-
* Reconstructs a CompleteAddress from a base64-encoded string.
|
66
|
-
* @param data - The base64-encoded string to deserialize
|
67
|
-
* @returns Reconstructed complete address
|
68
|
-
* @throws If the input string is not a valid complete address representation
|
69
|
-
*/
|
70
|
-
deserialize(data) {
|
71
|
-
return CompleteAddress.fromString(decodeBase64(data));
|
72
|
-
}
|
73
|
-
}
|
74
|
-
/**
|
75
|
-
* Serializer for authentication witnesses in the Aztec protocol.
|
76
|
-
* AuthWitness values are used to prove transaction authorization.
|
77
|
-
*/
|
78
|
-
export class AuthWitnessSerializer {
|
79
|
-
/**
|
80
|
-
* Converts an AuthWitness to a base64-encoded string.
|
81
|
-
* @param value - The authentication witness to serialize
|
82
|
-
* @returns Base64-encoded string representation
|
83
|
-
*/
|
84
|
-
serialize(value) {
|
85
|
-
return encodeBase64(value.toString());
|
86
|
-
}
|
87
|
-
/**
|
88
|
-
* Reconstructs an AuthWitness from a base64-encoded string.
|
89
|
-
* @param data - The base64-encoded string to deserialize
|
90
|
-
* @returns Reconstructed authentication witness
|
91
|
-
* @throws If the input string is not a valid auth witness representation
|
92
|
-
*/
|
93
|
-
deserialize(data) {
|
94
|
-
return AuthWitness.fromString(decodeBase64(data));
|
95
|
-
}
|
96
|
-
}
|
97
|
-
/**
|
98
|
-
* Serializer for transaction hashes in the Aztec protocol.
|
99
|
-
* TxHash values uniquely identify transactions and are used for lookups and references.
|
100
|
-
*/
|
101
|
-
export class TxHashSerializer {
|
102
|
-
/**
|
103
|
-
* Converts a TxHash to a base64-encoded string.
|
104
|
-
* @param value - The transaction hash to serialize
|
105
|
-
* @returns Base64-encoded string representation
|
106
|
-
*/
|
107
|
-
serialize(value) {
|
108
|
-
return encodeBase64(value.toString());
|
109
|
-
}
|
110
|
-
/**
|
111
|
-
* Reconstructs a TxHash from a base64-encoded string.
|
112
|
-
* @param data - The base64-encoded string to deserialize
|
113
|
-
* @returns Reconstructed transaction hash
|
114
|
-
* @throws If the input string is not a valid transaction hash representation
|
115
|
-
*/
|
116
|
-
deserialize(data) {
|
117
|
-
return TxHash.fromString(decodeBase64(data));
|
118
|
-
}
|
119
|
-
}
|
120
|
-
/**
|
121
|
-
* Pre-instantiated serializer instances for common Aztec types.
|
122
|
-
* These singletons should be used instead of creating new instances
|
123
|
-
* to ensure consistent serialization across the application.
|
124
|
-
*/
|
125
|
-
export const frSerializer = new FrSerializer();
|
126
|
-
export const aztecAddressSerializer = new AztecAddressSerializer();
|
127
|
-
export const completeAddressSerializer = new CompleteAddressSerializer();
|
128
|
-
export const authWitnessSerializer = new AuthWitnessSerializer();
|
129
|
-
export const txHashSerializer = new TxHashSerializer();
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemVycy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHeEQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBQ3ZCOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBUztRQUNqQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsSUFBWTtRQUN0QixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxzQkFBc0I7SUFDakM7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxLQUFtQjtRQUMzQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsSUFBWTtRQUN0QixPQUFPLFlBQVksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNGO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQzs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLEtBQXNCO1FBQzlCLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sZUFBZSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0NBQ0Y7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBa0I7UUFDMUIsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLElBQVk7UUFDdEIsT0FBTyxXQUFXLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQUVEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0I7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0Y7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUkseUJBQXlCLEVBQUUsQ0FBQztBQUN6RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDIn0=
|
@@ -1,49 +0,0 @@
|
|
1
|
-
import type { JSONRPCSerializedData, JSONRPCSerializer } from '@walletmesh/jsonrpc';
|
2
|
-
/**
|
3
|
-
* Base interface for type-specific serializers in the Aztec RPC wallet.
|
4
|
-
* Provides a standardized way to convert Aztec-specific types to and from string representations
|
5
|
-
* for network transmission. Each Aztec type (Fr, AztecAddress, etc.) implements this interface
|
6
|
-
* to ensure consistent serialization across the RPC layer.
|
7
|
-
*
|
8
|
-
* @typeParam T - The Aztec type being serialized (e.g., Fr, AztecAddress, TxHash)
|
9
|
-
*/
|
10
|
-
export interface TypeSerializer<T> {
|
11
|
-
/**
|
12
|
-
* Converts a value to its string representation for network transmission.
|
13
|
-
* Implementations should ensure the serialized form can be correctly deserialized
|
14
|
-
* back to the original type.
|
15
|
-
*
|
16
|
-
* @param value - The Aztec type value to serialize
|
17
|
-
* @returns A string representation suitable for network transmission
|
18
|
-
*/
|
19
|
-
serialize(value: T): string;
|
20
|
-
/**
|
21
|
-
* Reconstructs a value from its string representation.
|
22
|
-
* Implementations should validate the input string and throw appropriate errors
|
23
|
-
* if the data cannot be correctly deserialized.
|
24
|
-
*
|
25
|
-
* @param data - The string data to deserialize, previously created by serialize()
|
26
|
-
* @returns The reconstructed Aztec type value
|
27
|
-
* @throws If the data is invalid or cannot be deserialized
|
28
|
-
*/
|
29
|
-
deserialize(data: string): T;
|
30
|
-
}
|
31
|
-
export type { JSONRPCSerializedData, JSONRPCSerializer };
|
32
|
-
/**
|
33
|
-
* Helper function to encode data as base64 for safe network transmission.
|
34
|
-
* Used throughout the serializers to ensure consistent encoding of binary data.
|
35
|
-
*
|
36
|
-
* @param data - The string data to encode
|
37
|
-
* @returns Base64 encoded string
|
38
|
-
*/
|
39
|
-
export declare function encodeBase64(data: string): string;
|
40
|
-
/**
|
41
|
-
* Helper function to decode base64 data back to its original form.
|
42
|
-
* Used throughout the serializers to decode data received over the network.
|
43
|
-
*
|
44
|
-
* @param data - The base64 encoded string to decode
|
45
|
-
* @returns Original decoded string
|
46
|
-
* @throws If the input is not valid base64
|
47
|
-
*/
|
48
|
-
export declare function decodeBase64(data: string): string;
|
49
|
-
//# sourceMappingURL=types.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/serializers/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEpF;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAE5B;;;;;;;;OAQG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;CAC9B;AAGD,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD"}
|
@@ -1,22 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Helper function to encode data as base64 for safe network transmission.
|
3
|
-
* Used throughout the serializers to ensure consistent encoding of binary data.
|
4
|
-
*
|
5
|
-
* @param data - The string data to encode
|
6
|
-
* @returns Base64 encoded string
|
7
|
-
*/
|
8
|
-
export function encodeBase64(data) {
|
9
|
-
return btoa(data);
|
10
|
-
}
|
11
|
-
/**
|
12
|
-
* Helper function to decode base64 data back to its original form.
|
13
|
-
* Used throughout the serializers to decode data received over the network.
|
14
|
-
*
|
15
|
-
* @param data - The base64 encoded string to decode
|
16
|
-
* @returns Original decoded string
|
17
|
-
* @throws If the input is not valid base64
|
18
|
-
*/
|
19
|
-
export function decodeBase64(data) {
|
20
|
-
return atob(data);
|
21
|
-
}
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0NBOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBWTtJQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBWTtJQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNwQixDQUFDIn0=
|
@@ -1,104 +0,0 @@
|
|
1
|
-
import type { ContractClassWithId, PrivateFunction, PublicFunction } from '@aztec/circuits.js';
|
2
|
-
import { type ContractArtifact, type FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
|
3
|
-
import { Fr } from '@aztec/aztec.js';
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Serializes a ContractClassWithId instance to a JSON string.
|
7
|
-
* Handles the conversion of complex Aztec types (Fr, Buffer, FunctionSelector) to their string representations.
|
8
|
-
*
|
9
|
-
* The serialization process handles the following contract components:
|
10
|
-
* - version: Contract class version number
|
11
|
-
* - artifactHash: Fr value representing the hash of the contract artifact
|
12
|
-
* - privateFunctions: Array of private function definitions with selectors and VK hashes
|
13
|
-
* - publicFunctions: Array of public function definitions with selectors and bytecode
|
14
|
-
* - packedBytecode: Buffer containing the contract's packed bytecode
|
15
|
-
* - id: Fr value representing the contract class ID
|
16
|
-
*
|
17
|
-
* @param contract - The contract class with ID to serialize
|
18
|
-
* @returns JSON string representation of the contract class
|
19
|
-
* @throws If any contract components cannot be properly serialized
|
20
|
-
*/
|
21
|
-
export function serializeContractClassWithId(contract: ContractClassWithId): string {
|
22
|
-
return JSON.stringify(contract, (key, value) => {
|
23
|
-
let result = value;
|
24
|
-
switch (key) {
|
25
|
-
case 'version':
|
26
|
-
result = value;
|
27
|
-
break;
|
28
|
-
case 'artifactHash':
|
29
|
-
result = value.toString();
|
30
|
-
break;
|
31
|
-
case 'privateFunctions':
|
32
|
-
result = value.map((fn: PrivateFunction) => ({
|
33
|
-
selector: fn.selector.toString(),
|
34
|
-
vkHash: fn.vkHash.toString(),
|
35
|
-
}));
|
36
|
-
break;
|
37
|
-
case 'publicFunctions':
|
38
|
-
result = value.map((fn: PublicFunction) => ({
|
39
|
-
selector: fn.selector.toString(),
|
40
|
-
bytecode: fn.bytecode.toString('hex'),
|
41
|
-
}));
|
42
|
-
break;
|
43
|
-
case 'packedBytecode':
|
44
|
-
result = value.toString('hex');
|
45
|
-
break;
|
46
|
-
case 'id':
|
47
|
-
result = value.toString();
|
48
|
-
break;
|
49
|
-
default:
|
50
|
-
console.warn(`serializeContractClassWithId: Unknown key: ${key}`);
|
51
|
-
break;
|
52
|
-
}
|
53
|
-
return result;
|
54
|
-
});
|
55
|
-
}
|
56
|
-
|
57
|
-
/**
|
58
|
-
* Deserializes a JSON string into a ContractClassWithId instance.
|
59
|
-
* Reconstructs complex Aztec types from their string representations.
|
60
|
-
*
|
61
|
-
* The deserialization process handles:
|
62
|
-
* - version: Preserved as-is
|
63
|
-
* - artifactHash: Reconstructed as Fr from hex string
|
64
|
-
* - privateFunctions: Array of functions with:
|
65
|
-
* * selector: Reconstructed as FunctionSelector
|
66
|
-
* * vkHash: Reconstructed as Fr
|
67
|
-
* - publicFunctions: Array of functions with:
|
68
|
-
* * selector: Reconstructed as FunctionSelector
|
69
|
-
* * bytecode: Reconstructed as Buffer
|
70
|
-
* - packedBytecode: Reconstructed as Buffer from hex string
|
71
|
-
* - id: Reconstructed as Fr from hex string
|
72
|
-
*
|
73
|
-
* @param json - The JSON string to deserialize, previously created by serializeContractClassWithId
|
74
|
-
* @returns Reconstructed ContractClassWithId instance
|
75
|
-
* @throws If the JSON string is malformed or contains invalid data
|
76
|
-
*/
|
77
|
-
export function deserializeContractClassWithId(json: string): ContractClassWithId {
|
78
|
-
return JSON.parse(json, (key, value) => {
|
79
|
-
switch (key) {
|
80
|
-
case 'version':
|
81
|
-
return value;
|
82
|
-
case 'artifactHash':
|
83
|
-
return Fr.fromHexString(value);
|
84
|
-
case 'privateFunctions':
|
85
|
-
return value.map((fn: { selector: string; vkHash: string }) => ({
|
86
|
-
selector: FunctionSelector.fromString(fn.selector),
|
87
|
-
vkHash: Fr.fromHexString(fn.vkHash),
|
88
|
-
}));
|
89
|
-
case 'publicFunctions':
|
90
|
-
return value.map((fn: { selector: string; bytecode: string }) => ({
|
91
|
-
selector: FunctionSelector.fromString(fn.selector),
|
92
|
-
bytecode: Buffer.from(fn.bytecode, 'hex'),
|
93
|
-
}));
|
94
|
-
case 'packedBytecode':
|
95
|
-
return Buffer.from(value, 'hex');
|
96
|
-
case 'id':
|
97
|
-
return Fr.fromHexString(value);
|
98
|
-
default:
|
99
|
-
console.warn(`deserializeContractClassWithId: Unknown key: ${key}`);
|
100
|
-
break;
|
101
|
-
}
|
102
|
-
return value;
|
103
|
-
});
|
104
|
-
}
|
@@ -1,56 +0,0 @@
|
|
1
|
-
import { describe, expect, it } from 'vitest';
|
2
|
-
import { Fr, AztecAddress, CompleteAddress, AuthWitness, TxHash } from '@aztec/aztec.js';
|
3
|
-
import {
|
4
|
-
frSerializer,
|
5
|
-
aztecAddressSerializer,
|
6
|
-
completeAddressSerializer,
|
7
|
-
authWitnessSerializer,
|
8
|
-
txHashSerializer,
|
9
|
-
} from './core.js';
|
10
|
-
|
11
|
-
describe('Core Serializers', () => {
|
12
|
-
describe('FrSerializer', () => {
|
13
|
-
it('should serialize and deserialize Fr values', () => {
|
14
|
-
const original = Fr.random();
|
15
|
-
const serialized = frSerializer.serialize(original);
|
16
|
-
const deserialized = frSerializer.deserialize(serialized);
|
17
|
-
expect(deserialized.toString()).toBe(original.toString());
|
18
|
-
});
|
19
|
-
});
|
20
|
-
|
21
|
-
describe('AztecAddressSerializer', () => {
|
22
|
-
it('should serialize and deserialize AztecAddress values', () => {
|
23
|
-
const original = AztecAddress.random();
|
24
|
-
const serialized = aztecAddressSerializer.serialize(original);
|
25
|
-
const deserialized = aztecAddressSerializer.deserialize(serialized);
|
26
|
-
expect(deserialized.toString()).toBe(original.toString());
|
27
|
-
});
|
28
|
-
});
|
29
|
-
|
30
|
-
describe('CompleteAddressSerializer', () => {
|
31
|
-
it('should serialize and deserialize CompleteAddress values', () => {
|
32
|
-
const original = CompleteAddress.random();
|
33
|
-
const serialized = completeAddressSerializer.serialize(original);
|
34
|
-
const deserialized = completeAddressSerializer.deserialize(serialized);
|
35
|
-
expect(deserialized.toString()).toBe(original.toString());
|
36
|
-
});
|
37
|
-
});
|
38
|
-
|
39
|
-
describe('AuthWitnessSerializer', () => {
|
40
|
-
it('should serialize and deserialize AuthWitness values', () => {
|
41
|
-
const original = AuthWitness.random();
|
42
|
-
const serialized = authWitnessSerializer.serialize(original);
|
43
|
-
const deserialized = authWitnessSerializer.deserialize(serialized);
|
44
|
-
expect(deserialized.toString()).toBe(original.toString());
|
45
|
-
});
|
46
|
-
});
|
47
|
-
|
48
|
-
describe('TxHashSerializer', () => {
|
49
|
-
it('should serialize and deserialize TxHash values', () => {
|
50
|
-
const original = TxHash.random();
|
51
|
-
const serialized = txHashSerializer.serialize(original);
|
52
|
-
const deserialized = txHashSerializer.deserialize(serialized);
|
53
|
-
expect(deserialized.toString()).toBe(original.toString());
|
54
|
-
});
|
55
|
-
});
|
56
|
-
});
|