@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 @@
1
+ {"version":3,"file":"transaction-utils.d.ts","sourceRoot":"","sources":["../../src/serializers/transaction-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EACV,uBAAuB,EACvB,6BAA6B,EAC7B,WAAW,EACX,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,cAAc,EACd,0BAA0B,EAC1B,oCAAoC,EACrC,MAAM,oBAAoB,CAAC;AAG5B;;;GAGG;AACH,UAAU,oCAAoC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACnC,YAAY,EAAE,0BAA0B,CAAC;IACzC,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACzC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,2BAA2B,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAChD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,oCAAoC,EAAE,CAAC;IACzD,2BAA2B,EAAE,6BAA6B,EAAE,CAAC;IAC7D,0BAA0B,EAAE,sBAAsB,CAAC;IACnD,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,qBAAa,kCAAmC,SAAQ,sBAAsB;IAC5E;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,GAAG,kCAAkC;IAiB/E;;;;OAIG;IACH,MAAM,IAAI,oCAAoC;IAqC9C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,oCAAoC,GAAG,kCAAkC;IAqBxG;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO;IAM9C,YAAY,IAAI,oCAAoC;CAGrD;AAED;;;GAGG;AACH,UAAU,6BAA6B;IACrC,sBAAsB,EAAE,UAAU,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjF,YAAY,EAAE,oCAAoC,CAAC;IACnD,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;GAGG;AACH,qBAAa,2BAA4B,SAAQ,eAAe;IAC9D;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,GAAG,2BAA2B;IAQjE;;;OAGG;IACH,MAAM,IAAI,6BAA6B;IAQvC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,6BAA6B,GAAG,2BAA2B;IAU1F;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAMvC,YAAY,IAAI,6BAA6B;CAG9C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,CAAC,EAAE,sBAAsB,EACzB,CAAC,EAAE,sBAAsB,GACxB,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,eAAe,GAAG,OAAO,CAEvF"}
@@ -0,0 +1,130 @@
1
+ import { PrivateExecutionResult, TxProvingResult } from '@aztec/circuit-types';
2
+ import { Fr } from '@aztec/aztec.js';
3
+ /**
4
+ * Extends PrivateExecutionResult to add serialization capabilities.
5
+ * Provides methods to convert private execution results to/from JSON format for RPC transport.
6
+ */
7
+ export class SerializablePrivateExecutionResult extends PrivateExecutionResult {
8
+ /**
9
+ * Creates a SerializablePrivateExecutionResult from a PrivateExecutionResult instance.
10
+ * @param result - The PrivateExecutionResult to convert
11
+ * @returns A new SerializablePrivateExecutionResult instance
12
+ */
13
+ static from(result) {
14
+ return new SerializablePrivateExecutionResult(result.acir, result.vk, result.partialWitness, result.publicInputs, result.noteHashLeafIndexMap, result.newNotes, result.noteHashNullifierCounterMap, result.returnValues, result.nestedExecutions, result.enqueuedPublicFunctionCalls, result.publicTeardownFunctionCall, result.contractClassLogs);
15
+ }
16
+ /**
17
+ * Converts the execution result to a JSON-serializable format.
18
+ * Handles conversion of complex types like Buffers, Maps, and nested execution results.
19
+ * @returns The serialized execution result data
20
+ */
21
+ toJSON() {
22
+ return {
23
+ acir: this.acir.toString('base64'),
24
+ vk: this.vk.toString('base64'),
25
+ partialWitness: Array.from(this.partialWitness.entries()),
26
+ publicInputs: this.publicInputs,
27
+ noteHashLeafIndexMap: Array.from(this.noteHashLeafIndexMap.entries()).map(([k, v]) => [
28
+ k.toString(),
29
+ v.toString(),
30
+ ]),
31
+ newNotes: this.newNotes,
32
+ noteHashNullifierCounterMap: Array.from(this.noteHashNullifierCounterMap.entries()),
33
+ returnValues: this.returnValues.map((fr) => fr.toString()),
34
+ nestedExecutions: this.nestedExecutions.map((exec) => exec instanceof SerializablePrivateExecutionResult
35
+ ? exec.toJSON()
36
+ : new SerializablePrivateExecutionResult(exec.acir, exec.vk, exec.partialWitness, exec.publicInputs, exec.noteHashLeafIndexMap, exec.newNotes, exec.noteHashNullifierCounterMap, exec.returnValues, exec.nestedExecutions, exec.enqueuedPublicFunctionCalls, exec.publicTeardownFunctionCall, exec.contractClassLogs).toJSON()),
37
+ enqueuedPublicFunctionCalls: this.enqueuedPublicFunctionCalls,
38
+ publicTeardownFunctionCall: this.publicTeardownFunctionCall,
39
+ contractClassLogs: this.contractClassLogs,
40
+ };
41
+ }
42
+ /**
43
+ * Creates a SerializablePrivateExecutionResult from JSON data.
44
+ * @param json - JSON string or pre-parsed data object
45
+ * @returns A new SerializablePrivateExecutionResult instance
46
+ */
47
+ static fromJSON(json) {
48
+ const data = typeof json === 'string' ? JSON.parse(json) : json;
49
+ return new SerializablePrivateExecutionResult(Buffer.from(data.acir, 'base64'), Buffer.from(data.vk, 'base64'), new Map(data.partialWitness), data.publicInputs, new Map(data.noteHashLeafIndexMap.map(([k, v]) => [BigInt(k), BigInt(v)])), data.newNotes, new Map(data.noteHashNullifierCounterMap), data.returnValues.map((str) => Fr.fromString(str)), data.nestedExecutions.map((exec) => SerializablePrivateExecutionResult.fromJSON(exec)), data.enqueuedPublicFunctionCalls, data.publicTeardownFunctionCall, data.contractClassLogs);
50
+ }
51
+ /**
52
+ * Compares this execution result with another for equality.
53
+ * @param other - The execution result to compare against
54
+ * @returns True if the execution results are equivalent
55
+ */
56
+ equals(other) {
57
+ const thisJson = JSON.stringify(SerializablePrivateExecutionResult.from(this).toJSON());
58
+ const otherJson = JSON.stringify(SerializablePrivateExecutionResult.from(other).toJSON());
59
+ return thisJson === otherJson;
60
+ }
61
+ toComparable() {
62
+ return JSON.parse(JSON.stringify(this.toJSON()));
63
+ }
64
+ }
65
+ /**
66
+ * Extends TxProvingResult to add serialization capabilities.
67
+ * Provides methods to convert transaction proving results to/from JSON format for RPC transport.
68
+ */
69
+ export class SerializableTxProvingResult extends TxProvingResult {
70
+ /**
71
+ * Creates a SerializableTxProvingResult from a TxProvingResult instance.
72
+ * @param result - The TxProvingResult to convert
73
+ * @returns A new SerializableTxProvingResult instance
74
+ */
75
+ static from(result) {
76
+ return new SerializableTxProvingResult(result.privateExecutionResult, result.publicInputs, result.clientIvcProof);
77
+ }
78
+ /**
79
+ * Converts the proving result to a JSON-serializable format.
80
+ * @returns The serialized proving result data
81
+ */
82
+ toJSON() {
83
+ return {
84
+ privateExecutionResult: SerializablePrivateExecutionResult.from(this.privateExecutionResult).toJSON(),
85
+ publicInputs: this.publicInputs,
86
+ clientIvcProof: this.clientIvcProof,
87
+ };
88
+ }
89
+ /**
90
+ * Creates a SerializableTxProvingResult from JSON data.
91
+ * @param json - JSON string or pre-parsed data object
92
+ * @returns A new SerializableTxProvingResult instance
93
+ */
94
+ static fromJSON(json) {
95
+ const data = typeof json === 'string' ? JSON.parse(json) : json;
96
+ return new SerializableTxProvingResult(SerializablePrivateExecutionResult.fromJSON(data.privateExecutionResult), data.publicInputs, data.clientIvcProof);
97
+ }
98
+ /**
99
+ * Compares this proving result with another for equality.
100
+ * @param other - The proving result to compare against
101
+ * @returns True if the proving results are equivalent
102
+ */
103
+ equals(other) {
104
+ const thisJson = JSON.stringify(SerializableTxProvingResult.from(this).toJSON());
105
+ const otherJson = JSON.stringify(SerializableTxProvingResult.from(other).toJSON());
106
+ return thisJson === otherJson;
107
+ }
108
+ toComparable() {
109
+ return JSON.parse(JSON.stringify(this.toJSON()));
110
+ }
111
+ }
112
+ /**
113
+ * Utility function to compare two PrivateExecutionResult instances for equality.
114
+ * @param a - First execution result
115
+ * @param b - Second execution result
116
+ * @returns True if the execution results are equivalent
117
+ */
118
+ export function comparePrivateExecutionResults(a, b) {
119
+ return SerializablePrivateExecutionResult.from(a).equals(b);
120
+ }
121
+ /**
122
+ * Utility function to compare two TxProvingResult instances for equality.
123
+ * @param a - First proving result
124
+ * @param b - Second proving result
125
+ * @returns True if the proving results are equivalent
126
+ */
127
+ export function compareTxProvingResults(a, b) {
128
+ return SerializableTxProvingResult.from(a).equals(b);
129
+ }
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvdHJhbnNhY3Rpb24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBWS9FLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQXFCckM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLHNCQUFzQjtJQUM1RTs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUE4QjtRQUN4QyxPQUFPLElBQUksa0NBQWtDLENBQzNDLE1BQU0sQ0FBQyxJQUFJLEVBQ1gsTUFBTSxDQUFDLEVBQUUsRUFDVCxNQUFNLENBQUMsY0FBYyxFQUNyQixNQUFNLENBQUMsWUFBWSxFQUNuQixNQUFNLENBQUMsb0JBQW9CLEVBQzNCLE1BQU0sQ0FBQyxRQUFRLEVBQ2YsTUFBTSxDQUFDLDJCQUEyQixFQUNsQyxNQUFNLENBQUMsWUFBWSxFQUNuQixNQUFNLENBQUMsZ0JBQWdCLEVBQ3ZCLE1BQU0sQ0FBQywyQkFBMkIsRUFDbEMsTUFBTSxDQUFDLDBCQUEwQixFQUNqQyxNQUFNLENBQUMsaUJBQWlCLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUNsQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQzlCLGNBQWMsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekQsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLG9CQUFvQixFQUFFLEtB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
@@ -0,0 +1,103 @@
1
+ import type { AztecWalletMethodMap } from '../types.js';
2
+ import type { JSONRPCSerializedData, JSONRPCSerializer } from './types.js';
3
+ import { TxSimulationResult, type TxProvingResult } from '@aztec/circuit-types';
4
+ import { TxExecutionRequest, TxReceipt } from '@aztec/aztec.js';
5
+ /**
6
+ * Serializer for the aztec_createTxExecutionRequest RPC method.
7
+ * Handles serialization of transaction execution requests between JSON-RPC format and native Aztec types.
8
+ */
9
+ export declare class AztecCreateTxExecutionRequestSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_createTxExecutionRequest']['params'], AztecWalletMethodMap['aztec_createTxExecutionRequest']['result']> {
10
+ params: {
11
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_createTxExecutionRequest"]["params"]) => JSONRPCSerializedData;
12
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_createTxExecutionRequest"]["params"];
13
+ };
14
+ result: {
15
+ serialize: (method: string, value: TxExecutionRequest) => JSONRPCSerializedData;
16
+ deserialize: (method: string, data: JSONRPCSerializedData) => TxExecutionRequest;
17
+ };
18
+ }
19
+ /**
20
+ * Serializer for the aztec_proveTx RPC method.
21
+ * Handles serialization of transaction proving requests and results between JSON-RPC format and native Aztec types.
22
+ * Includes handling of private execution results and proving outcomes.
23
+ */
24
+ export declare class AztecProveTxSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_proveTx']['params'], AztecWalletMethodMap['aztec_proveTx']['result']> {
25
+ params: {
26
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_proveTx"]["params"]) => JSONRPCSerializedData;
27
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_proveTx"]["params"];
28
+ };
29
+ result: {
30
+ serialize: (method: string, value: TxProvingResult) => JSONRPCSerializedData;
31
+ deserialize: (method: string, data: JSONRPCSerializedData) => TxProvingResult;
32
+ };
33
+ }
34
+ /**
35
+ * Serializer for the aztec_sendTx RPC method.
36
+ * Handles serialization of transaction sending requests and transaction hash results between JSON-RPC format and native Aztec types.
37
+ */
38
+ export declare class AztecSendTxSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_sendTx']['params'], AztecWalletMethodMap['aztec_sendTx']['result']> {
39
+ params: {
40
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_sendTx"]["params"]) => JSONRPCSerializedData;
41
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_sendTx"]["params"];
42
+ };
43
+ result: {
44
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_sendTx"]["result"]) => JSONRPCSerializedData;
45
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_sendTx"]["result"];
46
+ };
47
+ }
48
+ /**
49
+ * Serializer for the aztec_getTxEffect RPC method.
50
+ * Handles serialization of transaction effect queries and results between JSON-RPC format and native Aztec types.
51
+ * Transaction effects represent the outcome and state changes caused by a transaction.
52
+ */
53
+ export declare class AztecGetTxEffectSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getTxEffect']['params'], AztecWalletMethodMap['aztec_getTxEffect']['result']> {
54
+ params: {
55
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getTxEffect"]["params"]) => JSONRPCSerializedData;
56
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getTxEffect"]["params"];
57
+ };
58
+ result: {
59
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getTxEffect"]["result"]) => JSONRPCSerializedData;
60
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getTxEffect"]["result"];
61
+ };
62
+ }
63
+ /**
64
+ * Serializer for the aztec_getTxReceipt RPC method.
65
+ * Handles serialization of transaction receipt queries and results between JSON-RPC format and native Aztec types.
66
+ * Transaction receipts contain detailed information about executed transactions.
67
+ */
68
+ export declare class AztecGetTxReceiptSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_getTxReceipt']['params'], AztecWalletMethodMap['aztec_getTxReceipt']['result']> {
69
+ params: {
70
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_getTxReceipt"]["params"]) => JSONRPCSerializedData;
71
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_getTxReceipt"]["params"];
72
+ };
73
+ result: {
74
+ serialize: (method: string, value: TxReceipt) => JSONRPCSerializedData;
75
+ deserialize: (method: string, data: JSONRPCSerializedData) => TxReceipt;
76
+ };
77
+ }
78
+ /**
79
+ * Serializer for the aztec_simulateTx RPC method.
80
+ * Handles serialization of transaction simulation requests and results between JSON-RPC format and native Aztec types.
81
+ * Supports simulation configuration including public simulation, custom sender, validation options, and profiling.
82
+ */
83
+ export declare class AztecSimulateTxSerializer implements JSONRPCSerializer<AztecWalletMethodMap['aztec_simulateTx']['params'], AztecWalletMethodMap['aztec_simulateTx']['result']> {
84
+ params: {
85
+ serialize: (method: string, value: AztecWalletMethodMap["aztec_simulateTx"]["params"]) => JSONRPCSerializedData;
86
+ deserialize: (method: string, data: JSONRPCSerializedData) => AztecWalletMethodMap["aztec_simulateTx"]["params"];
87
+ };
88
+ result: {
89
+ serialize: (method: string, value: TxSimulationResult) => JSONRPCSerializedData;
90
+ deserialize: (method: string, data: JSONRPCSerializedData) => TxSimulationResult;
91
+ };
92
+ }
93
+ /**
94
+ * Pre-instantiated serializer instances for each Aztec transaction-related RPC method.
95
+ * These instances can be used directly by the RPC handler implementation.
96
+ */
97
+ export declare const aztecCreateTxExecutionRequestSerializer: AztecCreateTxExecutionRequestSerializer;
98
+ export declare const aztecProveTxSerializer: AztecProveTxSerializer;
99
+ export declare const aztecSendTxSerializer: AztecSendTxSerializer;
100
+ export declare const aztecGetTxEffectSerializer: AztecGetTxEffectSerializer;
101
+ export declare const aztecGetTxReceiptSerializer: AztecGetTxReceiptSerializer;
102
+ export declare const aztecSimulateTxSerializer: AztecSimulateTxSerializer;
103
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/serializers/transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,238 @@
1
+ import { encodeBase64, decodeBase64 } from './types.js';
2
+ import { txHashSerializer } from './core.js';
3
+ import { TxEffect, TxSimulationResult, inBlockSchemaFor } from '@aztec/circuit-types';
4
+ import { TxExecutionRequest, TxReceipt, Tx, AztecAddress } from '@aztec/aztec.js';
5
+ import { SerializablePrivateExecutionResult, SerializableTxProvingResult } from './transaction-utils.js';
6
+ /**
7
+ * Serializer for the aztec_createTxExecutionRequest RPC method.
8
+ * Handles serialization of transaction execution requests between JSON-RPC format and native Aztec types.
9
+ */
10
+ export class AztecCreateTxExecutionRequestSerializer {
11
+ constructor() {
12
+ this.params = {
13
+ serialize: (method, value) => {
14
+ const { exec } = value;
15
+ return {
16
+ method,
17
+ serialized: encodeBase64(JSON.stringify(exec)),
18
+ };
19
+ },
20
+ deserialize: (method, data) => {
21
+ const exec = JSON.parse(decodeBase64(data.serialized));
22
+ return { exec };
23
+ },
24
+ };
25
+ this.result = {
26
+ serialize: (method, value) => {
27
+ return {
28
+ method,
29
+ serialized: encodeBase64(value.toString()),
30
+ };
31
+ },
32
+ deserialize: (method, data) => {
33
+ return TxExecutionRequest.fromString(decodeBase64(data.serialized));
34
+ },
35
+ };
36
+ }
37
+ }
38
+ /**
39
+ * Serializer for the aztec_proveTx RPC method.
40
+ * Handles serialization of transaction proving requests and results between JSON-RPC format and native Aztec types.
41
+ * Includes handling of private execution results and proving outcomes.
42
+ */
43
+ export class AztecProveTxSerializer {
44
+ constructor() {
45
+ this.params = {
46
+ serialize: (method, value) => {
47
+ const { txRequest, privateExecutionResult } = value;
48
+ const serializablePrivateExecutionResult = SerializablePrivateExecutionResult.from(privateExecutionResult);
49
+ return {
50
+ method,
51
+ serialized: encodeBase64(JSON.stringify([txRequest.toString(), serializablePrivateExecutionResult])),
52
+ };
53
+ },
54
+ deserialize: (method, data) => {
55
+ const [txRequest, privateExecutionResult] = JSON.parse(decodeBase64(data.serialized));
56
+ return {
57
+ txRequest: TxExecutionRequest.fromString(txRequest),
58
+ privateExecutionResult: SerializablePrivateExecutionResult.fromJSON(privateExecutionResult),
59
+ };
60
+ },
61
+ };
62
+ this.result = {
63
+ serialize: (method, value) => {
64
+ const serializableTxProvingResult = SerializableTxProvingResult.from(value);
65
+ return {
66
+ method,
67
+ serialized: encodeBase64(JSON.stringify(serializableTxProvingResult)),
68
+ };
69
+ },
70
+ deserialize: (method, data) => {
71
+ return SerializableTxProvingResult.fromJSON(JSON.parse(decodeBase64(data.serialized)));
72
+ },
73
+ };
74
+ }
75
+ }
76
+ /**
77
+ * Serializer for the aztec_sendTx RPC method.
78
+ * Handles serialization of transaction sending requests and transaction hash results between JSON-RPC format and native Aztec types.
79
+ */
80
+ export class AztecSendTxSerializer {
81
+ constructor() {
82
+ this.params = {
83
+ serialize: (method, value) => {
84
+ const { tx } = value;
85
+ return {
86
+ method,
87
+ serialized: encodeBase64(tx.toBuffer().toString('hex')),
88
+ };
89
+ },
90
+ deserialize: (method, data) => {
91
+ const tx = Tx.fromBuffer(Buffer.from(decodeBase64(data.serialized), 'hex'));
92
+ return { tx };
93
+ },
94
+ };
95
+ this.result = {
96
+ serialize: (method, value) => {
97
+ return {
98
+ method,
99
+ serialized: encodeBase64(txHashSerializer.serialize(value)),
100
+ };
101
+ },
102
+ deserialize: (method, data) => {
103
+ return txHashSerializer.deserialize(decodeBase64(data.serialized));
104
+ },
105
+ };
106
+ }
107
+ }
108
+ /**
109
+ * Serializer for the aztec_getTxEffect RPC method.
110
+ * Handles serialization of transaction effect queries and results between JSON-RPC format and native Aztec types.
111
+ * Transaction effects represent the outcome and state changes caused by a transaction.
112
+ */
113
+ export class AztecGetTxEffectSerializer {
114
+ constructor() {
115
+ this.params = {
116
+ serialize: (method, value) => {
117
+ const { txHash } = value;
118
+ return {
119
+ method,
120
+ serialized: encodeBase64(txHashSerializer.serialize(txHash)),
121
+ };
122
+ },
123
+ deserialize: (method, data) => {
124
+ const txHash = txHashSerializer.deserialize(decodeBase64(data.serialized));
125
+ return { txHash };
126
+ },
127
+ };
128
+ this.result = {
129
+ serialize: (method, value) => {
130
+ return {
131
+ method,
132
+ serialized: encodeBase64(JSON.stringify(TxEffect.schema.parse(value))),
133
+ };
134
+ },
135
+ deserialize: (method, data) => {
136
+ return inBlockSchemaFor(TxEffect.schema).parse(JSON.parse(decodeBase64(data.serialized)));
137
+ },
138
+ };
139
+ }
140
+ }
141
+ /**
142
+ * Serializer for the aztec_getTxReceipt RPC method.
143
+ * Handles serialization of transaction receipt queries and results between JSON-RPC format and native Aztec types.
144
+ * Transaction receipts contain detailed information about executed transactions.
145
+ */
146
+ export class AztecGetTxReceiptSerializer {
147
+ constructor() {
148
+ this.params = {
149
+ serialize: (method, value) => {
150
+ const { txHash } = value;
151
+ return {
152
+ method,
153
+ serialized: encodeBase64(txHashSerializer.serialize(txHash)),
154
+ };
155
+ },
156
+ deserialize: (method, data) => {
157
+ const txHash = txHashSerializer.deserialize(decodeBase64(data.serialized));
158
+ return { txHash };
159
+ },
160
+ };
161
+ this.result = {
162
+ serialize: (method, value) => {
163
+ return {
164
+ method,
165
+ serialized: encodeBase64(JSON.stringify(TxReceipt.schema.parse(value))),
166
+ };
167
+ },
168
+ deserialize: (method, data) => {
169
+ return TxReceipt.schema.parse(JSON.parse(decodeBase64(data.serialized)));
170
+ },
171
+ };
172
+ }
173
+ }
174
+ /**
175
+ * Serializer for the aztec_simulateTx RPC method.
176
+ * Handles serialization of transaction simulation requests and results between JSON-RPC format and native Aztec types.
177
+ * Supports simulation configuration including public simulation, custom sender, validation options, and profiling.
178
+ */
179
+ export class AztecSimulateTxSerializer {
180
+ constructor() {
181
+ this.params = {
182
+ serialize: (method, value) => {
183
+ const { txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile } = value;
184
+ return {
185
+ method,
186
+ serialized: encodeBase64(JSON.stringify([
187
+ txRequest.toString(),
188
+ simulatePublic,
189
+ msgSender,
190
+ skipTxValidation,
191
+ enforceFeePayment,
192
+ profile,
193
+ ])),
194
+ };
195
+ },
196
+ deserialize: (method, data) => {
197
+ const [txRequest, simulatePublic, msgSender, skipTxValidation, enforceFeePayment, profile] = JSON.parse(decodeBase64(data.serialized));
198
+ return {
199
+ txRequest: TxExecutionRequest.fromString(txRequest),
200
+ simulatePublic,
201
+ msgSender: msgSender ? AztecAddress.fromString(msgSender) : undefined,
202
+ skipTxValidation,
203
+ enforceFeePayment,
204
+ profile,
205
+ };
206
+ },
207
+ };
208
+ this.result = {
209
+ serialize: (method, value) => {
210
+ const serializablePrivateExecutionResult = SerializablePrivateExecutionResult.from(value.privateExecutionResult);
211
+ return {
212
+ method,
213
+ serialized: encodeBase64(JSON.stringify({
214
+ privateExecutionResult: serializablePrivateExecutionResult,
215
+ publicInputs: value.publicInputs,
216
+ publicOutput: value.publicOutput,
217
+ profileResult: value.profileResult,
218
+ })),
219
+ };
220
+ },
221
+ deserialize: (method, data) => {
222
+ const { privateExecutionResult, publicInputs, publicOutput, profileResult } = JSON.parse(decodeBase64(data.serialized));
223
+ return new TxSimulationResult(SerializablePrivateExecutionResult.fromJSON(privateExecutionResult), publicInputs, publicOutput, profileResult);
224
+ },
225
+ };
226
+ }
227
+ }
228
+ /**
229
+ * Pre-instantiated serializer instances for each Aztec transaction-related RPC method.
230
+ * These instances can be used directly by the RPC handler implementation.
231
+ */
232
+ export const aztecCreateTxExecutionRequestSerializer = new AztecCreateTxExecutionRequestSerializer();
233
+ export const aztecProveTxSerializer = new AztecProveTxSerializer();
234
+ export const aztecSendTxSerializer = new AztecSendTxSerializer();
235
+ export const aztecGetTxEffectSerializer = new AztecGetTxEffectSerializer();
236
+ export const aztecGetTxReceiptSerializer = new AztecGetTxReceiptSerializer();
237
+ export const aztecSimulateTxSerializer = new AztecSimulateTxSerializer();
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VyaWFsaXplcnMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQXdCLE1BQU0sc0JBQXNCLENBQUM7QUFDNUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekc7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHVDQUF1QztJQUFwRDtRQU9FLFdBQU0sR0FBRztZQUNQLFNBQVMsRUFBRSxDQUNULE1BQWMsRUFDZCxLQUF1RSxFQUNoRCxFQUFFO2dCQUN6QixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN2QixPQUFPO29CQUNMLE1BQU07b0JBQ04sVUFBVSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMvQyxDQUFDO1lBQ0osQ0FBQztZQUNELFdBQVcsRUFBRSxDQUNYLE1BQWMsRUFDZCxJQUEyQixFQUN1QyxFQUFFO2dCQUNwRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ2xCLENBQUM7U0FDRixDQUFDO1FBRUYsV0FBTSxHQUFHO1lBQ1AsU0FBUyxFQUFFLENBQUMsTUFBYyxFQUFFLEtB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
@@ -0,0 +1,49 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,22 @@
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=