@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,167 @@
1
+ import type { AztecWalletMethodMap } from '../types.js';
2
+ import type { JSONRPCSerializedData, JSONRPCSerializer } from './types.js';
3
+ /**
4
+ * Serializer for the aztec_setScopes RPC method.
5
+ * Handles serialization of account scope settings between JSON-RPC format and native Aztec types.
6
+ * Scopes define which contracts can interact with an account.
7
+ */
8
+ export declare class AztecSetScopesSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_setScopes']['params'], AztecWalletMethodMap['aztec_setScopes']['result']> {
9
+ params: {
10
+ /**
11
+ * Serializes scope setting parameters for RPC transport.
12
+ * @param method - The RPC method name
13
+ * @param value - The parameters containing an array of Aztec addresses representing scopes
14
+ * @returns Serialized scope data
15
+ */
16
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_setScopes"]["params"]) => JSONRPCSerializedData;
17
+ /**
18
+ * Deserializes scope setting parameters from RPC transport.
19
+ * @param method - The RPC method name
20
+ * @param data - The serialized scope data
21
+ * @returns Deserialized scope parameters
22
+ */
23
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_setScopes"]["params"];
24
+ };
25
+ result: {
26
+ /**
27
+ * Serializes the scope setting result.
28
+ * @param method - The RPC method name
29
+ * @param value - Boolean indicating success of the scope setting operation
30
+ * @returns Serialized result
31
+ */
32
+ serialize: (method: string, value: boolean) => JSONRPCSerializedData;
33
+ /**
34
+ * Deserializes the scope setting result.
35
+ * @param method - The RPC method name
36
+ * @param data - The serialized result data
37
+ * @returns Boolean indicating success
38
+ */
39
+ deserialize: (method: string, data: JSONRPCSerializedData) => boolean;
40
+ };
41
+ }
42
+ /**
43
+ * Serializer for the aztec_registerAccount RPC method.
44
+ * Handles serialization of account registration data between JSON-RPC format and native Aztec types.
45
+ * Account registration involves creating a new account with a secret key and partial address.
46
+ */
47
+ export declare class AztecRegisterAccountSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_registerAccount']['params'], AztecWalletMethodMap['aztec_registerAccount']['result']> {
48
+ params: {
49
+ /**
50
+ * Serializes account registration parameters for RPC transport.
51
+ * @param method - The RPC method name
52
+ * @param value - The parameters containing secret key and partial address
53
+ * @returns Serialized registration data
54
+ */
55
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_registerAccount"]["params"]) => JSONRPCSerializedData;
56
+ /**
57
+ * Deserializes account registration parameters from RPC transport.
58
+ * @param method - The RPC method name
59
+ * @param data - The serialized registration data
60
+ * @returns Deserialized registration parameters
61
+ */
62
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_registerAccount"]["params"];
63
+ };
64
+ result: {
65
+ /**
66
+ * Serializes the account registration result.
67
+ * @param method - The RPC method name
68
+ * @param value - The complete address of the registered account
69
+ * @returns Serialized complete address
70
+ */
71
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_registerAccount"]["result"]) => JSONRPCSerializedData;
72
+ /**
73
+ * Deserializes the account registration result.
74
+ * @param method - The RPC method name
75
+ * @param data - The serialized complete address
76
+ * @returns Deserialized complete address
77
+ */
78
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_registerAccount"]["result"];
79
+ };
80
+ }
81
+ /**
82
+ * Serializer for the aztec_addAuthWitness RPC method.
83
+ * Handles serialization of authentication witness data between JSON-RPC format and native Aztec types.
84
+ * Auth witnesses are used to prove transaction authorization.
85
+ */
86
+ export declare class AztecAddAuthWitnessSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_addAuthWitness']['params'], AztecWalletMethodMap['aztec_addAuthWitness']['result']> {
87
+ params: {
88
+ /**
89
+ * Serializes auth witness addition parameters for RPC transport.
90
+ * @param method - The RPC method name
91
+ * @param value - The parameters containing the auth witness to add
92
+ * @returns Serialized auth witness data
93
+ */
94
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_addAuthWitness"]["params"]) => JSONRPCSerializedData;
95
+ /**
96
+ * Deserializes auth witness addition parameters from RPC transport.
97
+ * @param method - The RPC method name
98
+ * @param data - The serialized auth witness data
99
+ * @returns Deserialized auth witness parameters
100
+ */
101
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_addAuthWitness"]["params"];
102
+ };
103
+ result: {
104
+ /**
105
+ * Serializes the auth witness addition result.
106
+ * @param method - The RPC method name
107
+ * @param value - Boolean indicating success of the witness addition
108
+ * @returns Serialized result
109
+ */
110
+ serialize: (method: string, value: boolean) => JSONRPCSerializedData;
111
+ /**
112
+ * Deserializes the auth witness addition result.
113
+ * @param method - The RPC method name
114
+ * @param data - The serialized result data
115
+ * @returns Boolean indicating success
116
+ */
117
+ deserialize: (method: string, data: JSONRPCSerializedData) => boolean;
118
+ };
119
+ }
120
+ /**
121
+ * Serializer for the aztec_getAuthWitness RPC method.
122
+ * Handles serialization of authentication witness retrieval between JSON-RPC format and native Aztec types.
123
+ * Retrieves auth witnesses associated with a specific message hash.
124
+ */
125
+ export declare class AztecGetAuthWitnessSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getAuthWitness']['params'], AztecWalletMethodMap['aztec_getAuthWitness']['result']> {
126
+ params: {
127
+ /**
128
+ * Serializes auth witness retrieval parameters for RPC transport.
129
+ * @param method - The RPC method name
130
+ * @param value - The parameters containing the message hash to look up
131
+ * @returns Serialized message hash data
132
+ */
133
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getAuthWitness"]["params"]) => JSONRPCSerializedData;
134
+ /**
135
+ * Deserializes auth witness retrieval parameters from RPC transport.
136
+ * @param method - The RPC method name
137
+ * @param data - The serialized message hash data
138
+ * @returns Deserialized message hash parameters
139
+ */
140
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getAuthWitness"]["params"];
141
+ };
142
+ result: {
143
+ /**
144
+ * Serializes the auth witness retrieval result.
145
+ * @param method - The RPC method name
146
+ * @param value - Array of field elements representing auth witnesses
147
+ * @returns Serialized witness array
148
+ */
149
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getAuthWitness"]["result"]) => JSONRPCSerializedData;
150
+ /**
151
+ * Deserializes the auth witness retrieval result.
152
+ * @param method - The RPC method name
153
+ * @param data - The serialized witness array data
154
+ * @returns Array of deserialized field elements
155
+ */
156
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getAuthWitness"]["result"];
157
+ };
158
+ }
159
+ /**
160
+ * Pre-instantiated serializer instances for Aztec account-related RPC methods.
161
+ * These instances can be used directly by the RPC handler implementation.
162
+ */
163
+ export declare const aztecSetScopesSerializer: AztecSetScopesSerializer;
164
+ export declare const aztecRegisterAccountSerializer: AztecRegisterAccountSerializer;
165
+ export declare const aztecAddAuthWitnessSerializer: AztecAddAuthWitnessSerializer;
166
+ export declare const aztecGetAuthWitnessSerializer: AztecGetAuthWitnessSerializer;
167
+ //# sourceMappingURL=account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/serializers/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAU3E;;;;GAIG;AACH,qBAAa,wBACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,EACjD,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,CAClD;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,KACvD,qBAAqB;QASxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC;MAMpD;IAEF,MAAM;QACJ;;;;;WAKG;4BACiB,MAAM,SAAS,OAAO,KAAG,qBAAqB;QAMlE;;;;;WAKG;8BACmB,MAAM,QAAQ,qBAAqB,KAAG,OAAO;MAGnE;CACH;AAED;;;;GAIG;AACH,qBAAa,8BACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,EACvD,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,CACxD;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,KAC7D,qBAAqB;QAYxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC;MAO1D;IAEF,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,KAC7D,qBAAqB;QAMxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC;MAG1D;CACH;AAED;;;;GAIG;AACH,qBAAa,6BACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,EACtD,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,CACvD;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,KAC5D,qBAAqB;QAOxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC;MAIzD;IAEF,MAAM;QACJ;;;;;WAKG;4BACiB,MAAM,SAAS,OAAO,KAAG,qBAAqB;QAMlE;;;;;WAKG;8BACmB,MAAM,QAAQ,qBAAqB,KAAG,OAAO;MAGnE;CACH;AAED;;;;GAIG;AACH,qBAAa,6BACX,YACE,iBAAiB,CACf,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,EACtD,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,CACvD;IAEH,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,KAC5D,qBAAqB;QAOxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC;MAIzD;IAEF,MAAM;QACJ;;;;;WAKG;4BAEO,MAAM,SACP,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,KAC5D,qBAAqB;QAMxB;;;;;WAKG;8BAEO,MAAM,QACR,qBAAqB,KAC1B,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC;MAGzD;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,0BAAiC,CAAC;AACvE,eAAO,MAAM,8BAA8B,gCAAuC,CAAC;AACnF,eAAO,MAAM,6BAA6B,+BAAsC,CAAC;AACjF,eAAO,MAAM,6BAA6B,+BAAsC,CAAC"}
@@ -0,0 +1,245 @@
1
+ import { encodeBase64, decodeBase64 } from './types.js';
2
+ import { aztecAddressSerializer, completeAddressSerializer, frSerializer, authWitnessSerializer, } from './core.js';
3
+ /**
4
+ * Serializer for the aztec_setScopes RPC method.
5
+ * Handles serialization of account scope settings between JSON-RPC format and native Aztec types.
6
+ * Scopes define which contracts can interact with an account.
7
+ */
8
+ export class AztecSetScopesSerializer {
9
+ constructor() {
10
+ this.params = {
11
+ /**
12
+ * Serializes scope setting parameters for RPC transport.
13
+ * @param method - The RPC method name
14
+ * @param value - The parameters containing an array of Aztec addresses representing scopes
15
+ * @returns Serialized scope data
16
+ */
17
+ serialize: (method, value) => {
18
+ const { scopes } = value;
19
+ return {
20
+ method,
21
+ serialized: encodeBase64(JSON.stringify(scopes.map((s) => aztecAddressSerializer.serialize(s)))),
22
+ };
23
+ },
24
+ /**
25
+ * Deserializes scope setting parameters from RPC transport.
26
+ * @param method - The RPC method name
27
+ * @param data - The serialized scope data
28
+ * @returns Deserialized scope parameters
29
+ */
30
+ deserialize: (method, data) => {
31
+ const scopes = JSON.parse(decodeBase64(data.serialized)).map((s) => aztecAddressSerializer.deserialize(s));
32
+ return { scopes };
33
+ },
34
+ };
35
+ this.result = {
36
+ /**
37
+ * Serializes the scope setting result.
38
+ * @param method - The RPC method name
39
+ * @param value - Boolean indicating success of the scope setting operation
40
+ * @returns Serialized result
41
+ */
42
+ serialize: (method, value) => {
43
+ return {
44
+ method,
45
+ serialized: encodeBase64(JSON.stringify(value)),
46
+ };
47
+ },
48
+ /**
49
+ * Deserializes the scope setting result.
50
+ * @param method - The RPC method name
51
+ * @param data - The serialized result data
52
+ * @returns Boolean indicating success
53
+ */
54
+ deserialize: (method, data) => {
55
+ return JSON.parse(decodeBase64(data.serialized));
56
+ },
57
+ };
58
+ }
59
+ }
60
+ /**
61
+ * Serializer for the aztec_registerAccount RPC method.
62
+ * Handles serialization of account registration data between JSON-RPC format and native Aztec types.
63
+ * Account registration involves creating a new account with a secret key and partial address.
64
+ */
65
+ export class AztecRegisterAccountSerializer {
66
+ constructor() {
67
+ this.params = {
68
+ /**
69
+ * Serializes account registration parameters for RPC transport.
70
+ * @param method - The RPC method name
71
+ * @param value - The parameters containing secret key and partial address
72
+ * @returns Serialized registration data
73
+ */
74
+ serialize: (method, value) => {
75
+ const { secretKey, partialAddress } = value;
76
+ return {
77
+ method,
78
+ serialized: encodeBase64(JSON.stringify([
79
+ frSerializer.serialize(secretKey),
80
+ frSerializer.serialize(partialAddress),
81
+ ])),
82
+ };
83
+ },
84
+ /**
85
+ * Deserializes account registration parameters from RPC transport.
86
+ * @param method - The RPC method name
87
+ * @param data - The serialized registration data
88
+ * @returns Deserialized registration parameters
89
+ */
90
+ deserialize: (method, data) => {
91
+ const [secretKey, partialAddress] = JSON.parse(decodeBase64(data.serialized));
92
+ return {
93
+ secretKey: frSerializer.deserialize(secretKey),
94
+ partialAddress: frSerializer.deserialize(partialAddress),
95
+ };
96
+ },
97
+ };
98
+ this.result = {
99
+ /**
100
+ * Serializes the account registration result.
101
+ * @param method - The RPC method name
102
+ * @param value - The complete address of the registered account
103
+ * @returns Serialized complete address
104
+ */
105
+ serialize: (method, value) => {
106
+ return {
107
+ method,
108
+ serialized: encodeBase64(completeAddressSerializer.serialize(value)),
109
+ };
110
+ },
111
+ /**
112
+ * Deserializes the account registration result.
113
+ * @param method - The RPC method name
114
+ * @param data - The serialized complete address
115
+ * @returns Deserialized complete address
116
+ */
117
+ deserialize: (method, data) => {
118
+ return completeAddressSerializer.deserialize(decodeBase64(data.serialized));
119
+ },
120
+ };
121
+ }
122
+ }
123
+ /**
124
+ * Serializer for the aztec_addAuthWitness RPC method.
125
+ * Handles serialization of authentication witness data between JSON-RPC format and native Aztec types.
126
+ * Auth witnesses are used to prove transaction authorization.
127
+ */
128
+ export class AztecAddAuthWitnessSerializer {
129
+ constructor() {
130
+ this.params = {
131
+ /**
132
+ * Serializes auth witness addition parameters for RPC transport.
133
+ * @param method - The RPC method name
134
+ * @param value - The parameters containing the auth witness to add
135
+ * @returns Serialized auth witness data
136
+ */
137
+ serialize: (method, value) => {
138
+ const { authWitness } = value;
139
+ return {
140
+ method,
141
+ serialized: encodeBase64(authWitnessSerializer.serialize(authWitness)),
142
+ };
143
+ },
144
+ /**
145
+ * Deserializes auth witness addition parameters from RPC transport.
146
+ * @param method - The RPC method name
147
+ * @param data - The serialized auth witness data
148
+ * @returns Deserialized auth witness parameters
149
+ */
150
+ deserialize: (method, data) => {
151
+ const authWitness = authWitnessSerializer.deserialize(decodeBase64(data.serialized));
152
+ return { authWitness };
153
+ },
154
+ };
155
+ this.result = {
156
+ /**
157
+ * Serializes the auth witness addition result.
158
+ * @param method - The RPC method name
159
+ * @param value - Boolean indicating success of the witness addition
160
+ * @returns Serialized result
161
+ */
162
+ serialize: (method, value) => {
163
+ return {
164
+ method,
165
+ serialized: encodeBase64(JSON.stringify(value)),
166
+ };
167
+ },
168
+ /**
169
+ * Deserializes the auth witness addition result.
170
+ * @param method - The RPC method name
171
+ * @param data - The serialized result data
172
+ * @returns Boolean indicating success
173
+ */
174
+ deserialize: (method, data) => {
175
+ return JSON.parse(decodeBase64(data.serialized));
176
+ },
177
+ };
178
+ }
179
+ }
180
+ /**
181
+ * Serializer for the aztec_getAuthWitness RPC method.
182
+ * Handles serialization of authentication witness retrieval between JSON-RPC format and native Aztec types.
183
+ * Retrieves auth witnesses associated with a specific message hash.
184
+ */
185
+ export class AztecGetAuthWitnessSerializer {
186
+ constructor() {
187
+ this.params = {
188
+ /**
189
+ * Serializes auth witness retrieval parameters for RPC transport.
190
+ * @param method - The RPC method name
191
+ * @param value - The parameters containing the message hash to look up
192
+ * @returns Serialized message hash data
193
+ */
194
+ serialize: (method, value) => {
195
+ const { messageHash } = value;
196
+ return {
197
+ method,
198
+ serialized: encodeBase64(frSerializer.serialize(messageHash)),
199
+ };
200
+ },
201
+ /**
202
+ * Deserializes auth witness retrieval parameters from RPC transport.
203
+ * @param method - The RPC method name
204
+ * @param data - The serialized message hash data
205
+ * @returns Deserialized message hash parameters
206
+ */
207
+ deserialize: (method, data) => {
208
+ const messageHash = frSerializer.deserialize(decodeBase64(data.serialized));
209
+ return { messageHash };
210
+ },
211
+ };
212
+ this.result = {
213
+ /**
214
+ * Serializes the auth witness retrieval result.
215
+ * @param method - The RPC method name
216
+ * @param value - Array of field elements representing auth witnesses
217
+ * @returns Serialized witness array
218
+ */
219
+ serialize: (method, value) => {
220
+ return {
221
+ method,
222
+ serialized: encodeBase64(JSON.stringify(value.map((w) => frSerializer.serialize(w)))),
223
+ };
224
+ },
225
+ /**
226
+ * Deserializes the auth witness retrieval result.
227
+ * @param method - The RPC method name
228
+ * @param data - The serialized witness array data
229
+ * @returns Array of deserialized field elements
230
+ */
231
+ deserialize: (method, data) => {
232
+ return JSON.parse(decodeBase64(data.serialized)).map((w) => frSerializer.deserialize(w));
233
+ },
234
+ };
235
+ }
236
+ }
237
+ /**
238
+ * Pre-instantiated serializer instances for Aztec account-related RPC methods.
239
+ * These instances can be used directly by the RPC handler implementation.
240
+ */
241
+ export const aztecSetScopesSerializer = new AztecSetScopesSerializer();
242
+ export const aztecRegisterAccountSerializer = new AztecRegisterAccountSerializer();
243
+ export const aztecAddAuthWitnessSerializer = new AztecAddAuthWitnessSerializer();
244
+ export const aztecGetAuthWitnessSerializer = new AztecGetAuthWitnessSerializer();
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJpYWxpemVycy9hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIseUJBQXlCLEVBQ3pCLFlBQVksRUFDWixxQkFBcUIsR0FDdEIsTUFBTSxXQUFXLENBQUM7QUFHbkI7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyx3QkFBd0I7SUFBckM7UUFPRSxXQUFNLEdBQUc7WUFDUDs7Ozs7ZUFLRztZQUNILFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUF3RCxFQUNqQyxFQUFFO2dCQUN6QixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBZSxFQUFFLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNyRjtpQkFDRixDQUFDO1lBQ0osQ0FBQztZQUNEOzs7OztlQUtHO1lBQ0gsV0FBVyxFQUFFLENBQ1gsTUFBYyxFQUNkLElBQTJCLEVBQ3dCLEVBQUU7Z0JBQ3JELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQ3pFLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDdEMsQ0FBQztnQkFDRixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDcEIsQ0FBQztTQUNGLENBQUM7UUFFRixXQUFNLEdBQUc7WUFDUDs7Ozs7ZUFLRztZQUNI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
@@ -0,0 +1,40 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,102 @@
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=