@walletmesh/aztec-rpc-wallet 0.1.0 → 0.1.1

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 (64) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/aztecRemoteWallet.d.ts +7 -6
  4. package/dist/aztecRemoteWallet.d.ts.map +1 -1
  5. package/dist/aztecRemoteWallet.js +15 -9
  6. package/dist/handlers/aztecAccountWallet.d.ts.map +1 -1
  7. package/dist/handlers/aztecAccountWallet.js +22 -22
  8. package/dist/serializers/account.d.ts +4 -7
  9. package/dist/serializers/account.d.ts.map +1 -1
  10. package/dist/serializers/account.js +28 -29
  11. package/dist/serializers/contract.d.ts +4 -56
  12. package/dist/serializers/contract.d.ts.map +1 -1
  13. package/dist/serializers/contract.js +62 -148
  14. package/dist/serializers/index.d.ts +1 -4
  15. package/dist/serializers/index.d.ts.map +1 -1
  16. package/dist/serializers/index.js +12 -12
  17. package/dist/serializers/log.d.ts +36 -83
  18. package/dist/serializers/log.d.ts.map +1 -1
  19. package/dist/serializers/log.js +96 -107
  20. package/dist/serializers/note.d.ts +14 -17
  21. package/dist/serializers/note.d.ts.map +1 -1
  22. package/dist/serializers/note.js +52 -29
  23. package/dist/serializers/transaction-utils.d.ts +44 -100
  24. package/dist/serializers/transaction-utils.d.ts.map +1 -1
  25. package/dist/serializers/transaction-utils.js +82 -118
  26. package/dist/serializers/transaction.d.ts +3 -6
  27. package/dist/serializers/transaction.d.ts.map +1 -1
  28. package/dist/serializers/transaction.js +39 -50
  29. package/dist/types.d.ts +8 -8
  30. package/dist/types.d.ts.map +1 -1
  31. package/dist/types.js +1 -1
  32. package/package.json +5 -5
  33. package/src/aztecRemoteWallet.test.ts +33 -29
  34. package/src/aztecRemoteWallet.ts +25 -14
  35. package/src/handlers/aztecAccountWallet.test.ts +78 -75
  36. package/src/handlers/aztecAccountWallet.ts +32 -35
  37. package/src/serializers/account.test.ts +18 -17
  38. package/src/serializers/account.ts +31 -49
  39. package/src/serializers/contract.test.ts +14 -16
  40. package/src/serializers/contract.ts +75 -164
  41. package/src/serializers/index.test.ts +20 -8
  42. package/src/serializers/index.ts +16 -20
  43. package/src/serializers/log.test.ts +201 -28
  44. package/src/serializers/log.ts +153 -146
  45. package/src/serializers/note.test.ts +26 -28
  46. package/src/serializers/note.ts +60 -36
  47. package/src/serializers/transaction-utils.ts +135 -211
  48. package/src/serializers/transaction.test.ts +190 -30
  49. package/src/serializers/transaction.ts +51 -72
  50. package/src/types.ts +9 -8
  51. package/vitest.config.ts +1 -1
  52. package/dist/serializers/contract-utils.d.ts +0 -40
  53. package/dist/serializers/contract-utils.d.ts.map +0 -1
  54. package/dist/serializers/contract-utils.js +0 -102
  55. package/dist/serializers/core.d.ts +0 -110
  56. package/dist/serializers/core.d.ts.map +0 -1
  57. package/dist/serializers/core.js +0 -130
  58. package/dist/serializers/types.d.ts +0 -49
  59. package/dist/serializers/types.d.ts.map +0 -1
  60. package/dist/serializers/types.js +0 -22
  61. package/src/serializers/contract-utils.ts +0 -104
  62. package/src/serializers/core.test.ts +0 -56
  63. package/src/serializers/core.ts +0 -141
  64. 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"}
@@ -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
- });