@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,141 +0,0 @@
1
- import { Fr, AztecAddress, CompleteAddress, AuthWitness, TxHash } from '@aztec/aztec.js';
2
- import { encodeBase64, decodeBase64 } from './types.js';
3
- import type { TypeSerializer } from './types.js';
4
-
5
- /**
6
- * Serializer for Fr (field element) values in the Aztec protocol.
7
- * Handles conversion of field elements to/from base64-encoded strings for RPC transport.
8
- * Field elements are fundamental to Aztec's cryptographic operations.
9
- */
10
- export class FrSerializer implements TypeSerializer<Fr> {
11
- /**
12
- * Converts an Fr value to a base64-encoded string.
13
- * @param value - The field element to serialize
14
- * @returns Base64-encoded string representation
15
- */
16
- serialize(value: Fr): string {
17
- return encodeBase64(value.toString());
18
- }
19
-
20
- /**
21
- * Reconstructs an Fr value from a base64-encoded string.
22
- * @param data - The base64-encoded string to deserialize
23
- * @returns Reconstructed field element
24
- * @throws If the input string is not a valid field element representation
25
- */
26
- deserialize(data: string): Fr {
27
- return Fr.fromHexString(decodeBase64(data));
28
- }
29
- }
30
-
31
- /**
32
- * Serializer for Aztec protocol addresses.
33
- * Handles conversion of AztecAddress instances to/from base64-encoded strings.
34
- * Aztec addresses represent accounts and contracts in the protocol.
35
- */
36
- export class AztecAddressSerializer implements TypeSerializer<AztecAddress> {
37
- /**
38
- * Converts an AztecAddress to a base64-encoded string.
39
- * @param value - The Aztec address to serialize
40
- * @returns Base64-encoded string representation
41
- */
42
- serialize(value: AztecAddress): string {
43
- return encodeBase64(value.toString());
44
- }
45
-
46
- /**
47
- * Reconstructs an AztecAddress from a base64-encoded string.
48
- * @param data - The base64-encoded string to deserialize
49
- * @returns Reconstructed Aztec address
50
- * @throws If the input string is not a valid address representation
51
- */
52
- deserialize(data: string): AztecAddress {
53
- return AztecAddress.fromString(decodeBase64(data));
54
- }
55
- }
56
-
57
- /**
58
- * Serializer for complete Aztec addresses that include additional metadata.
59
- * CompleteAddress extends AztecAddress with extra information needed for certain operations.
60
- */
61
- export class CompleteAddressSerializer implements TypeSerializer<CompleteAddress> {
62
- /**
63
- * Converts a CompleteAddress to a base64-encoded string.
64
- * @param value - The complete address to serialize
65
- * @returns Base64-encoded string representation
66
- */
67
- serialize(value: CompleteAddress): string {
68
- return encodeBase64(value.toString());
69
- }
70
-
71
- /**
72
- * Reconstructs a CompleteAddress from a base64-encoded string.
73
- * @param data - The base64-encoded string to deserialize
74
- * @returns Reconstructed complete address
75
- * @throws If the input string is not a valid complete address representation
76
- */
77
- deserialize(data: string): CompleteAddress {
78
- return CompleteAddress.fromString(decodeBase64(data));
79
- }
80
- }
81
-
82
- /**
83
- * Serializer for authentication witnesses in the Aztec protocol.
84
- * AuthWitness values are used to prove transaction authorization.
85
- */
86
- export class AuthWitnessSerializer implements TypeSerializer<AuthWitness> {
87
- /**
88
- * Converts an AuthWitness to a base64-encoded string.
89
- * @param value - The authentication witness to serialize
90
- * @returns Base64-encoded string representation
91
- */
92
- serialize(value: AuthWitness): string {
93
- return encodeBase64(value.toString());
94
- }
95
-
96
- /**
97
- * Reconstructs an AuthWitness from a base64-encoded string.
98
- * @param data - The base64-encoded string to deserialize
99
- * @returns Reconstructed authentication witness
100
- * @throws If the input string is not a valid auth witness representation
101
- */
102
- deserialize(data: string): AuthWitness {
103
- return AuthWitness.fromString(decodeBase64(data));
104
- }
105
- }
106
-
107
- /**
108
- * Serializer for transaction hashes in the Aztec protocol.
109
- * TxHash values uniquely identify transactions and are used for lookups and references.
110
- */
111
- export class TxHashSerializer implements TypeSerializer<TxHash> {
112
- /**
113
- * Converts a TxHash to a base64-encoded string.
114
- * @param value - The transaction hash to serialize
115
- * @returns Base64-encoded string representation
116
- */
117
- serialize(value: TxHash): string {
118
- return encodeBase64(value.toString());
119
- }
120
-
121
- /**
122
- * Reconstructs a TxHash from a base64-encoded string.
123
- * @param data - The base64-encoded string to deserialize
124
- * @returns Reconstructed transaction hash
125
- * @throws If the input string is not a valid transaction hash representation
126
- */
127
- deserialize(data: string): TxHash {
128
- return TxHash.fromString(decodeBase64(data));
129
- }
130
- }
131
-
132
- /**
133
- * Pre-instantiated serializer instances for common Aztec types.
134
- * These singletons should be used instead of creating new instances
135
- * to ensure consistent serialization across the application.
136
- */
137
- export const frSerializer = new FrSerializer();
138
- export const aztecAddressSerializer = new AztecAddressSerializer();
139
- export const completeAddressSerializer = new CompleteAddressSerializer();
140
- export const authWitnessSerializer = new AuthWitnessSerializer();
141
- export const txHashSerializer = new TxHashSerializer();
@@ -1,58 +0,0 @@
1
- import type { JSONRPCSerializedData, JSONRPCSerializer } from '@walletmesh/jsonrpc';
2
-
3
- /**
4
- * Base interface for type-specific serializers in the Aztec RPC wallet.
5
- * Provides a standardized way to convert Aztec-specific types to and from string representations
6
- * for network transmission. Each Aztec type (Fr, AztecAddress, etc.) implements this interface
7
- * to ensure consistent serialization across the RPC layer.
8
- *
9
- * @typeParam T - The Aztec type being serialized (e.g., Fr, AztecAddress, TxHash)
10
- */
11
- export interface TypeSerializer<T> {
12
- /**
13
- * Converts a value to its string representation for network transmission.
14
- * Implementations should ensure the serialized form can be correctly deserialized
15
- * back to the original type.
16
- *
17
- * @param value - The Aztec type value to serialize
18
- * @returns A string representation suitable for network transmission
19
- */
20
- serialize(value: T): string;
21
-
22
- /**
23
- * Reconstructs a value from its string representation.
24
- * Implementations should validate the input string and throw appropriate errors
25
- * if the data cannot be correctly deserialized.
26
- *
27
- * @param data - The string data to deserialize, previously created by serialize()
28
- * @returns The reconstructed Aztec type value
29
- * @throws If the data is invalid or cannot be deserialized
30
- */
31
- deserialize(data: string): T;
32
- }
33
-
34
- // Re-export core JSON-RPC types from @walletmesh/jsonrpc
35
- export type { JSONRPCSerializedData, JSONRPCSerializer };
36
-
37
- /**
38
- * Helper function to encode data as base64 for safe network transmission.
39
- * Used throughout the serializers to ensure consistent encoding of binary data.
40
- *
41
- * @param data - The string data to encode
42
- * @returns Base64 encoded string
43
- */
44
- export function encodeBase64(data: string): string {
45
- return btoa(data);
46
- }
47
-
48
- /**
49
- * Helper function to decode base64 data back to its original form.
50
- * Used throughout the serializers to decode data received over the network.
51
- *
52
- * @param data - The base64 encoded string to decode
53
- * @returns Original decoded string
54
- * @throws If the input is not valid base64
55
- */
56
- export function decodeBase64(data: string): string {
57
- return atob(data);
58
- }