@walletmesh/aztec-rpc-wallet 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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=