@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.
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
- });