@walletmesh/aztec-rpc-wallet 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +201 -0
  3. package/README.md +260 -0
  4. package/dist/.tsbuildinfo +1 -0
  5. package/dist/aztecRemoteWallet.d.ts +73 -0
  6. package/dist/aztecRemoteWallet.d.ts.map +1 -0
  7. package/dist/aztecRemoteWallet.js +354 -0
  8. package/dist/chainProvider.d.ts +56 -0
  9. package/dist/chainProvider.d.ts.map +1 -0
  10. package/dist/chainProvider.js +98 -0
  11. package/dist/contractArtifactCache.d.ts +50 -0
  12. package/dist/contractArtifactCache.d.ts.map +1 -0
  13. package/dist/contractArtifactCache.js +66 -0
  14. package/dist/errors.d.ts +50 -0
  15. package/dist/errors.d.ts.map +1 -0
  16. package/dist/errors.js +62 -0
  17. package/dist/handlers/aztecAccountWallet.d.ts +4 -0
  18. package/dist/handlers/aztecAccountWallet.d.ts.map +1 -0
  19. package/dist/handlers/aztecAccountWallet.js +329 -0
  20. package/dist/handlers/transactions.d.ts +21 -0
  21. package/dist/handlers/transactions.d.ts.map +1 -0
  22. package/dist/handlers/transactions.js +90 -0
  23. package/dist/handlers.d.ts +27 -0
  24. package/dist/handlers.d.ts.map +1 -0
  25. package/dist/handlers.js +55 -0
  26. package/dist/index.d.ts +58 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +33 -0
  29. package/dist/provider.d.ts +105 -0
  30. package/dist/provider.d.ts.map +1 -0
  31. package/dist/provider.js +160 -0
  32. package/dist/serializers/account.d.ts +167 -0
  33. package/dist/serializers/account.d.ts.map +1 -0
  34. package/dist/serializers/account.js +245 -0
  35. package/dist/serializers/contract-utils.d.ts +40 -0
  36. package/dist/serializers/contract-utils.d.ts.map +1 -0
  37. package/dist/serializers/contract-utils.js +102 -0
  38. package/dist/serializers/contract.d.ts +168 -0
  39. package/dist/serializers/contract.d.ts.map +1 -0
  40. package/dist/serializers/contract.js +268 -0
  41. package/dist/serializers/core.d.ts +110 -0
  42. package/dist/serializers/core.d.ts.map +1 -0
  43. package/dist/serializers/core.js +130 -0
  44. package/dist/serializers/index.d.ts +28 -0
  45. package/dist/serializers/index.d.ts.map +1 -0
  46. package/dist/serializers/index.js +159 -0
  47. package/dist/serializers/log.d.ts +113 -0
  48. package/dist/serializers/log.d.ts.map +1 -0
  49. package/dist/serializers/log.js +231 -0
  50. package/dist/serializers/note.d.ts +127 -0
  51. package/dist/serializers/note.d.ts.map +1 -0
  52. package/dist/serializers/note.js +182 -0
  53. package/dist/serializers/transaction-utils.d.ts +107 -0
  54. package/dist/serializers/transaction-utils.d.ts.map +1 -0
  55. package/dist/serializers/transaction-utils.js +130 -0
  56. package/dist/serializers/transaction.d.ts +103 -0
  57. package/dist/serializers/transaction.d.ts.map +1 -0
  58. package/dist/serializers/transaction.js +238 -0
  59. package/dist/serializers/types.d.ts +49 -0
  60. package/dist/serializers/types.d.ts.map +1 -0
  61. package/dist/serializers/types.js +22 -0
  62. package/dist/types.d.ts +391 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +8 -0
  65. package/dist/wallet.d.ts +62 -0
  66. package/dist/wallet.d.ts.map +1 -0
  67. package/dist/wallet.js +77 -0
  68. package/package.json +44 -0
  69. package/src/aztecRemoteWallet.test.ts +542 -0
  70. package/src/aztecRemoteWallet.ts +484 -0
  71. package/src/chainProvider.test.ts +322 -0
  72. package/src/chainProvider.ts +122 -0
  73. package/src/contractArtifactCache.test.ts +126 -0
  74. package/src/contractArtifactCache.ts +75 -0
  75. package/src/errors.ts +71 -0
  76. package/src/handlers/aztecAccountWallet.test.ts +720 -0
  77. package/src/handlers/aztecAccountWallet.ts +593 -0
  78. package/src/handlers/transactions.ts +110 -0
  79. package/src/handlers.test.ts +270 -0
  80. package/src/handlers.ts +70 -0
  81. package/src/index.test.ts +23 -0
  82. package/src/index.ts +64 -0
  83. package/src/provider.test.ts +276 -0
  84. package/src/provider.ts +189 -0
  85. package/src/serializers/account.test.ts +125 -0
  86. package/src/serializers/account.ts +319 -0
  87. package/src/serializers/contract-utils.ts +104 -0
  88. package/src/serializers/contract.test.ts +162 -0
  89. package/src/serializers/contract.ts +350 -0
  90. package/src/serializers/core.test.ts +56 -0
  91. package/src/serializers/core.ts +141 -0
  92. package/src/serializers/index.test.ts +122 -0
  93. package/src/serializers/index.ts +213 -0
  94. package/src/serializers/log.test.ts +119 -0
  95. package/src/serializers/log.ts +283 -0
  96. package/src/serializers/note.test.ts +100 -0
  97. package/src/serializers/note.ts +227 -0
  98. package/src/serializers/transaction-utils.ts +237 -0
  99. package/src/serializers/transaction.test.ts +153 -0
  100. package/src/serializers/transaction.ts +342 -0
  101. package/src/serializers/types.ts +58 -0
  102. package/src/types.ts +295 -0
  103. package/src/wallet.test.ts +275 -0
  104. package/src/wallet.ts +94 -0
  105. package/tsconfig.build.json +6 -0
  106. package/tsconfig.json +11 -0
  107. package/typedoc.json +15 -0
  108. package/vitest.config.ts +10 -0
@@ -0,0 +1,130 @@
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=
@@ -0,0 +1,28 @@
1
+ import type { JSONRPCSerializer } from './types.js';
2
+ /**
3
+ * Re-export all serializer types and implementations.
4
+ * This provides a single entry point for importing any serializer functionality.
5
+ */
6
+ export * from './types.js';
7
+ export * from './core.js';
8
+ export * from './account.js';
9
+ export * from './contract.js';
10
+ export * from './transaction.js';
11
+ export * from './note.js';
12
+ export * from './log.js';
13
+ /**
14
+ * Main serializer for the Aztec wallet RPC interface.
15
+ * Provides a unified interface for serializing all supported RPC methods.
16
+ *
17
+ * This serializer:
18
+ * 1. Routes each method call to its specialized serializer from methodSerializers
19
+ * 2. Provides fallback handling for unknown methods
20
+ * 3. Wraps all serialization operations in proper error handling
21
+ *
22
+ * The serializer handles both:
23
+ * - Parameters: Incoming RPC call parameters
24
+ * - Results: Outgoing RPC call results
25
+ */
26
+ export declare const AztecWalletSerializer: JSONRPCSerializer<unknown, unknown>;
27
+ export type { JSONRPCSerializer } from './types.js';
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/serializers/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAyB,MAAM,YAAY,CAAC;AAG3E;;;GAGG;AACH,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AAqGzB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,qBAAqB,EAAE,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAiFrE,CAAC;AAGF,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,159 @@
1
+ import { encodeBase64 } from './types.js';
2
+ /**
3
+ * Re-export all serializer types and implementations.
4
+ * This provides a single entry point for importing any serializer functionality.
5
+ */
6
+ export * from './types.js';
7
+ export * from './core.js';
8
+ export * from './account.js';
9
+ export * from './contract.js';
10
+ export * from './transaction.js';
11
+ export * from './note.js';
12
+ export * from './log.js';
13
+ // Import all serializer instances
14
+ import { aztecSetScopesSerializer, aztecRegisterAccountSerializer, aztecAddAuthWitnessSerializer, aztecGetAuthWitnessSerializer, } from './account.js';
15
+ import { aztecGetContractInstanceSerializer, aztecGetContractClassSerializer, aztecGetContractArtifactSerializer, aztecRegisterContractSerializer, } from './contract.js';
16
+ import { aztecCreateTxExecutionRequestSerializer, aztecProveTxSerializer, aztecSendTxSerializer, aztecGetTxReceiptSerializer, } from './transaction.js';
17
+ import { aztecGetIncomingNotesSerializer, aztecAddNoteSerializer, aztecAddNullifiedNoteSerializer, } from './note.js';
18
+ import { aztecGetUnencryptedLogsSerializer, aztecGetEncryptedEventsSerializer, aztecGetUnencryptedEventsSerializer, } from './log.js';
19
+ /**
20
+ * Registry of all available method serializers.
21
+ * Maps each RPC method name to its corresponding serializer implementation.
22
+ * This mapping is used by the main AztecWalletSerializer to route method calls
23
+ * to the appropriate specialized serializer.
24
+ */
25
+ const methodSerializers = {
26
+ // Account methods
27
+ aztec_setScopes: aztecSetScopesSerializer,
28
+ aztec_registerAccount: aztecRegisterAccountSerializer,
29
+ aztec_addAuthWitness: aztecAddAuthWitnessSerializer,
30
+ aztec_getAuthWitness: aztecGetAuthWitnessSerializer,
31
+ // Contract methods
32
+ aztec_getContractInstance: aztecGetContractInstanceSerializer,
33
+ aztec_getContractClass: aztecGetContractClassSerializer,
34
+ aztec_getContractArtifact: aztecGetContractArtifactSerializer,
35
+ aztec_registerContract: aztecRegisterContractSerializer,
36
+ // Transaction methods
37
+ aztec_createTxExecutionRequest: aztecCreateTxExecutionRequestSerializer,
38
+ aztec_proveTx: aztecProveTxSerializer,
39
+ aztec_sendTx: aztecSendTxSerializer,
40
+ aztec_getTxReceipt: aztecGetTxReceiptSerializer,
41
+ // Note methods
42
+ aztec_getIncomingNotes: aztecGetIncomingNotesSerializer,
43
+ aztec_addNote: aztecAddNoteSerializer,
44
+ aztec_addNullifiedNote: aztecAddNullifiedNoteSerializer,
45
+ // Log methods
46
+ aztec_getUnencryptedLogs: aztecGetUnencryptedLogsSerializer,
47
+ aztec_getEncryptedEvents: aztecGetEncryptedEventsSerializer,
48
+ aztec_getUnencryptedEvents: aztecGetUnencryptedEventsSerializer,
49
+ };
50
+ /**
51
+ * Helper function to wrap unknown values in a standard JSON-RPC format.
52
+ * Used as a fallback when no specific serializer is available for a method.
53
+ *
54
+ * @param method - The RPC method name
55
+ * @param value - The value to wrap
56
+ * @returns Standardized JSON-RPC data structure
57
+ */
58
+ function wrapUnknownValue(method, value) {
59
+ return {
60
+ method,
61
+ serialized: encodeBase64(JSON.stringify(value)),
62
+ };
63
+ }
64
+ /**
65
+ * Main serializer for the Aztec wallet RPC interface.
66
+ * Provides a unified interface for serializing all supported RPC methods.
67
+ *
68
+ * This serializer:
69
+ * 1. Routes each method call to its specialized serializer from methodSerializers
70
+ * 2. Provides fallback handling for unknown methods
71
+ * 3. Wraps all serialization operations in proper error handling
72
+ *
73
+ * The serializer handles both:
74
+ * - Parameters: Incoming RPC call parameters
75
+ * - Results: Outgoing RPC call results
76
+ */
77
+ export const AztecWalletSerializer = {
78
+ params: {
79
+ /**
80
+ * Serializes RPC method parameters using the appropriate method serializer.
81
+ * @param method - The RPC method name
82
+ * @param value - The parameters to serialize
83
+ * @returns Serialized parameter data
84
+ * @throws If serialization fails or encounters an error
85
+ */
86
+ serialize: (method, value) => {
87
+ const serializer = methodSerializers[method];
88
+ if (!serializer?.params) {
89
+ return wrapUnknownValue(method, value);
90
+ }
91
+ try {
92
+ return serializer.params.serialize(method, value);
93
+ }
94
+ catch (error) {
95
+ throw new Error(`Failed to serialize params for method ${method}: ${error}`);
96
+ }
97
+ },
98
+ /**
99
+ * Deserializes RPC method parameters using the appropriate method serializer.
100
+ * @param method - The RPC method name
101
+ * @param data - The serialized parameter data
102
+ * @returns Deserialized parameters
103
+ * @throws If deserialization fails or encounters an error
104
+ */
105
+ deserialize: (method, data) => {
106
+ const serializer = methodSerializers[method];
107
+ if (!serializer?.params) {
108
+ return data;
109
+ }
110
+ try {
111
+ return serializer.params.deserialize(method, data);
112
+ }
113
+ catch (error) {
114
+ throw new Error(`Failed to deserialize params for method ${method}: ${error}`);
115
+ }
116
+ },
117
+ },
118
+ result: {
119
+ /**
120
+ * Serializes RPC method results using the appropriate method serializer.
121
+ * @param method - The RPC method name
122
+ * @param value - The result to serialize
123
+ * @returns Serialized result data
124
+ * @throws If serialization fails or encounters an error
125
+ */
126
+ serialize: (method, value) => {
127
+ const serializer = methodSerializers[method];
128
+ if (!serializer?.result) {
129
+ return wrapUnknownValue(method, value);
130
+ }
131
+ try {
132
+ return serializer.result.serialize(method, value);
133
+ }
134
+ catch (error) {
135
+ throw new Error(`Failed to serialize result for method ${method}: ${error}`);
136
+ }
137
+ },
138
+ /**
139
+ * Deserializes RPC method results using the appropriate method serializer.
140
+ * @param method - The RPC method name
141
+ * @param data - The serialized result data
142
+ * @returns Deserialized result
143
+ * @throws If deserialization fails or encounters an error
144
+ */
145
+ deserialize: (method, data) => {
146
+ const serializer = methodSerializers[method];
147
+ if (!serializer?.result) {
148
+ return data;
149
+ }
150
+ try {
151
+ return serializer.result.deserialize(method, data);
152
+ }
153
+ catch (error) {
154
+ throw new Error(`Failed to deserialize result for method ${method}: ${error}`);
155
+ }
156
+ },
157
+ },
158
+ };
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQzs7O0dBR0c7QUFDSCxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGtDQUFrQztBQUNsQyxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUM5Qiw2QkFBNkIsRUFDN0IsNkJBQTZCLEdBQzlCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQy9CLGtDQUFrQyxFQUNsQywrQkFBK0IsR0FDaEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHVDQUF1QyxFQUN2QyxzQkFBc0IsRUFDdEIscUJBQXFCLEVBQ3JCLDJCQUEyQixHQUM1QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3RCLCtCQUErQixHQUNoQyxNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyxtQ0FBbUMsR0FDcEMsTUFBTSxVQUFVLENBQUM7QUFvQmxCOzs7OztHQUtHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBaUU7SUFDdEYsa0JBQWtCO0lBQ2xCLGVBQWUsRUFBRSx3QkFBd0I7SUFDekMscUJBQXFCLEVBQUUsOEJBQThCO0lBQ3JELG9CQUFvQixFQUFFLDZCQUE2QjtJQUNuRCxvQkFBb0IsRUFBRSw2QkFBNkI7SUFFbkQsbUJBQW1CO0lBQ25CLHlCQUF5QixFQUFFLGtDQUFrQztJQUM3RCxzQkFBc0IsRUFBRSwrQkFBK0I7SUFDdkQseUJBQXlCLEVBQUUsa0NBQWtDO0lBQzdELHNCQUFzQixFQUFFLCtCQUErQjtJQUV2RCxzQkFBc0I7SUFDdEIsOEJBQThCLEVBQUUsdUNBQXVDO0lBQ3ZFLGFBQWEsRUFBRSxzQkFBc0I7SUFDckMsWUFBWSxFQUFFLHFCQUFxQjtJQUNuQyxrQkFBa0IsRUFBRSwyQkFBMkI7SUFFL0MsZUFBZTtJQUNmLHNCQUFzQixFQUFFLCtCQUErQjtJQUN2RCxhQUFhLEVBQUUsc0JBQXNCO0lBQ3JDLHNCQUFzQixFQUFFLCtCQUErQjtJQUV2RCxjQUFjO0lBQ2Qsd0JBQXdCLEVBQUUsaUNBQWlDO0lBQzNELHdCQUF3QixFQUFFLGlDQUFpQztJQUMzRCwwQkFBMEIsRUFBRSxtQ0FBbUM7Q0FDaEUsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxLQUFjO0lBQ3RELE9BQU87UUFDTCxNQUFNO1FBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2hELENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQXdDO0lBQ3hFLE1BQU0sRUFBRTtRQUNOOzs7Ozs7V0FNRztRQUNILFNBQVMsRUFBRSxDQUFDLE1BQWMsRUFBRSxLQUFjLEVBQXlCLEVBQUU7WUFDbkUsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsTUFBeUIsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUM7UUFDRDs7Ozs7O1dBTUc7UUFDSCxXQUFXLEVBQUUsQ0FBQyxNQUFjLEVBQUUsSUFBMkIsRUFBVyxFQUFFO1lBQ3BFLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLE1BQXlCLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDakYsQ0FBQztRQUNILENBQUM7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOOzs7Ozs7V0FNRztRQUNILFNBQVMsRUFBRSxDQUFDLE1BQWMsRUFBRSxLQUFjLEVBQXlCLEVBQUU7WUFDbkUsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsTUFBeUIsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDcEQsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUM7UUFDRDs7Ozs7O1dBTUc7UUFDSCxXQUFXLEVBQUUsQ0FBQyxNQUFjLEVBQUUsSUFBMkIsRUFBVyxFQUFFO1lBQ3BFLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLE1BQXlCLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUN4QixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCxJQUFJLENBQUM7Z0JBQ0gsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDakYsQ0FBQztRQUNILENBQUM7S0FDRjtDQUNGLENBQUMifQ==
@@ -0,0 +1,113 @@
1
+ import type { AztecWalletMethodMap } from '../types.js';
2
+ import type { JSONRPCSerializedData, JSONRPCSerializer } from './types.js';
3
+ /**
4
+ * Serializer for the aztec_getUnencryptedLogs RPC method.
5
+ * Handles serialization of unencrypted log queries and results between JSON-RPC format and native Aztec types.
6
+ * Supports filtering logs by transaction hash, block range, and contract address.
7
+ */
8
+ export declare class AztecGetUnencryptedLogsSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getUnencryptedLogs']['params'], AztecWalletMethodMap['aztec_getUnencryptedLogs']['result']> {
9
+ params: {
10
+ /**
11
+ * Serializes log filter parameters for RPC transport.
12
+ * @param method - The RPC method name
13
+ * @param value - The filter parameters including txHash, block range, and contract address
14
+ * @returns Serialized filter data
15
+ */
16
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getUnencryptedLogs"]["params"]) => JSONRPCSerializedData;
17
+ /**
18
+ * Deserializes log filter parameters from RPC transport.
19
+ * @param method - The RPC method name
20
+ * @param data - The serialized filter data
21
+ * @returns Deserialized filter parameters
22
+ */
23
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getUnencryptedLogs"]["params"];
24
+ };
25
+ result: {
26
+ /**
27
+ * Serializes unencrypted log results for RPC transport.
28
+ * @param method - The RPC method name
29
+ * @param value - The log results including logs array and maxLogsHit flag
30
+ * @returns Serialized log data
31
+ */
32
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getUnencryptedLogs"]["result"]) => JSONRPCSerializedData;
33
+ /**
34
+ * Deserializes unencrypted log results from RPC transport.
35
+ * @param method - The RPC method name
36
+ * @param data - The serialized log data
37
+ * @returns Deserialized log results
38
+ */
39
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getUnencryptedLogs"]["result"];
40
+ };
41
+ }
42
+ /**
43
+ * Serializer for the aztec_getEncryptedEvents RPC method.
44
+ * Handles serialization of encrypted event queries and results between JSON-RPC format and native Aztec types.
45
+ * Supports querying events with viewing keys for decryption.
46
+ */
47
+ export declare class AztecGetEncryptedEventsSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getEncryptedEvents']['params'], AztecWalletMethodMap['aztec_getEncryptedEvents']['result']> {
48
+ params: {
49
+ /**
50
+ * Serializes encrypted event query parameters for RPC transport.
51
+ * @param method - The RPC method name
52
+ * @param value - The query parameters including event metadata, range, and viewing keys
53
+ * @returns Serialized query data
54
+ */
55
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getEncryptedEvents"]["params"]) => JSONRPCSerializedData;
56
+ /**
57
+ * Deserializes encrypted event query parameters from RPC transport.
58
+ * @param method - The RPC method name
59
+ * @param data - The serialized query data
60
+ * @returns Deserialized query parameters
61
+ */
62
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getEncryptedEvents"]["params"];
63
+ };
64
+ /**
65
+ * Handles serialization of encrypted event results.
66
+ * Note: The result type is generic (T[]) based on the event's ABI type definition.
67
+ * Currently handles results as unknown[] until proper ABI-based deserialization is implemented.
68
+ */
69
+ result: {
70
+ serialize: (method: string, value: unknown[]) => JSONRPCSerializedData;
71
+ deserialize: (method: string, data: JSONRPCSerializedData) => unknown[];
72
+ };
73
+ }
74
+ /**
75
+ * Serializer for the aztec_getUnencryptedEvents RPC method.
76
+ * Handles serialization of unencrypted event queries and results between JSON-RPC format and native Aztec types.
77
+ * Supports querying events by event selector and pagination parameters.
78
+ */
79
+ export declare class AztecGetUnencryptedEventsSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getUnencryptedEvents']['params'], AztecWalletMethodMap['aztec_getUnencryptedEvents']['result']> {
80
+ params: {
81
+ /**
82
+ * Serializes unencrypted event query parameters for RPC transport.
83
+ * @param method - The RPC method name
84
+ * @param value - The query parameters including event metadata and range
85
+ * @returns Serialized query data
86
+ */
87
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getUnencryptedEvents"]["params"]) => JSONRPCSerializedData;
88
+ /**
89
+ * Deserializes unencrypted event query parameters from RPC transport.
90
+ * @param method - The RPC method name
91
+ * @param data - The serialized query data
92
+ * @returns Deserialized query parameters
93
+ */
94
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getUnencryptedEvents"]["params"];
95
+ };
96
+ /**
97
+ * Handles serialization of unencrypted event results.
98
+ * Note: The result type is generic (T[]) based on the event's ABI type definition.
99
+ * Currently handles results as unknown[] until proper ABI-based deserialization is implemented.
100
+ */
101
+ result: {
102
+ serialize: (method: string, value: unknown[]) => JSONRPCSerializedData;
103
+ deserialize: (method: string, data: JSONRPCSerializedData) => unknown[];
104
+ };
105
+ }
106
+ /**
107
+ * Pre-instantiated serializer instances for each Aztec log/event-related RPC method.
108
+ * These instances can be used directly by the RPC handler implementation.
109
+ */
110
+ export declare const aztecGetUnencryptedLogsSerializer: AztecGetUnencryptedLogsSerializer;
111
+ export declare const aztecGetEncryptedEventsSerializer: AztecGetEncryptedEventsSerializer;
112
+ export declare const aztecGetUnencryptedEventsSerializer: AztecGetUnencryptedEventsSerializer;
113
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/serializers/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAQ3E;;;;GAIG;AACH,qBAAa,iCACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAC1D,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,CAC3D;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,KAChE,qBAAqB;QAexB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC;MAW7D;IAEF,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,KAChE,qBAAqB;QAOxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC;MAO7D;CACH;AAED;;;;GAIG;AACH,qBAAa,iCACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAC1D,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,CAC3D;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,KAChE,qBAAqB;QAoBxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC;MAgB7D;IAEF;;;;OAIG;IACH,MAAM;4BACgB,MAAM,SAAS,OAAO,EAAE,KAAG,qBAAqB;8BAM9C,MAAM,QAAQ,qBAAqB,KAAG,OAAO,EAAE;MAGrE;CACH;AAED;;;;GAIG;AACH,qBAAa,mCACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EAC5D,oBAAoB,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,CAC7D;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,KAClE,qBAAqB;QAmBxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC;MAe/D;IAEF;;;;OAIG;IACH,MAAM;4BACgB,MAAM,SAAS,OAAO,EAAE,KAAG,qBAAqB;8BAM9C,MAAM,QAAQ,qBAAqB,KAAG,OAAO,EAAE;MAGrE;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,iCAAiC,mCAA0C,CAAC;AACzF,eAAO,MAAM,iCAAiC,mCAA0C,CAAC;AACzF,eAAO,MAAM,mCAAmC,qCAA4C,CAAC"}