@walletmesh/aztec-rpc-wallet 0.2.0 → 0.3.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 (76) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/aztecRemoteWallet.d.ts +4 -8
  4. package/dist/aztecRemoteWallet.d.ts.map +1 -1
  5. package/dist/aztecRemoteWallet.js +5 -29
  6. package/dist/contractArtifactCache.d.ts.map +1 -1
  7. package/dist/contractArtifactCache.js +20 -9
  8. package/dist/handlers/aztecAccountWallet.d.ts.map +1 -1
  9. package/dist/handlers/aztecAccountWallet.js +11 -44
  10. package/dist/serializers/account.d.ts +16 -16
  11. package/dist/serializers/account.d.ts.map +1 -1
  12. package/dist/serializers/account.js +43 -43
  13. package/dist/serializers/contract.d.ts +22 -76
  14. package/dist/serializers/contract.d.ts.map +1 -1
  15. package/dist/serializers/contract.js +68 -120
  16. package/dist/serializers/index.d.ts +0 -4
  17. package/dist/serializers/index.d.ts.map +1 -1
  18. package/dist/serializers/index.js +15 -20
  19. package/dist/serializers/log.d.ts +16 -16
  20. package/dist/serializers/log.d.ts.map +1 -1
  21. package/dist/serializers/log.js +43 -43
  22. package/dist/serializers/note.d.ts +12 -12
  23. package/dist/serializers/note.d.ts.map +1 -1
  24. package/dist/serializers/note.js +32 -32
  25. package/dist/serializers/transaction.d.ts +25 -26
  26. package/dist/serializers/transaction.d.ts.map +1 -1
  27. package/dist/serializers/transaction.js +92 -44
  28. package/dist/types.d.ts +7 -30
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/types.js +1 -1
  31. package/docs/README.md +264 -0
  32. package/docs/classes/AztecChainProvider.md +553 -0
  33. package/docs/classes/AztecChainWallet.md +409 -0
  34. package/docs/classes/AztecProvider.md +1112 -0
  35. package/docs/classes/AztecWalletError.md +213 -0
  36. package/docs/classes/ContractArtifactCache.md +81 -0
  37. package/docs/globals.md +34 -0
  38. package/docs/interfaces/AztecWalletBaseMethodMap.md +135 -0
  39. package/docs/interfaces/AztecWalletEventMap.md +17 -0
  40. package/docs/interfaces/AztecWalletMethodMap.md +1012 -0
  41. package/docs/type-aliases/AztecChainId.md +11 -0
  42. package/docs/type-aliases/AztecChainWalletMiddleware.md +13 -0
  43. package/docs/type-aliases/AztecWalletContext.md +29 -0
  44. package/docs/type-aliases/AztecWalletMethodHandler.md +37 -0
  45. package/docs/type-aliases/AztecWalletMiddleware.md +13 -0
  46. package/docs/type-aliases/AztecWalletRouterClient.md +13 -0
  47. package/docs/type-aliases/TransactionFunctionCall.md +33 -0
  48. package/docs/type-aliases/TransactionParams.md +27 -0
  49. package/docs/variables/AztecWalletErrorMap.md +13 -0
  50. package/package.json +9 -9
  51. package/src/aztecRemoteWallet.test.ts +22 -61
  52. package/src/aztecRemoteWallet.ts +8 -35
  53. package/src/chainProvider.test.ts +117 -38
  54. package/src/contractArtifactCache.test.ts +28 -45
  55. package/src/contractArtifactCache.ts +20 -10
  56. package/src/handlers/aztecAccountWallet.test.ts +12 -86
  57. package/src/handlers/aztecAccountWallet.ts +19 -77
  58. package/src/provider.test.ts +0 -2
  59. package/src/serializers/account.test.ts +19 -20
  60. package/src/serializers/account.ts +52 -52
  61. package/src/serializers/contract.test.ts +4 -140
  62. package/src/serializers/contract.ts +93 -166
  63. package/src/serializers/index.test.ts +30 -28
  64. package/src/serializers/index.ts +15 -21
  65. package/src/serializers/log.test.ts +42 -48
  66. package/src/serializers/log.ts +54 -54
  67. package/src/serializers/note.test.ts +43 -16
  68. package/src/serializers/note.ts +39 -39
  69. package/src/serializers/transaction.test.ts +48 -41
  70. package/src/serializers/transaction.ts +146 -58
  71. package/src/types.ts +7 -7
  72. package/src/wallet.test.ts +3 -3
  73. package/dist/serializers/transaction-utils.d.ts +0 -51
  74. package/dist/serializers/transaction-utils.d.ts.map +0 -1
  75. package/dist/serializers/transaction-utils.js +0 -103
  76. package/src/serializers/transaction-utils.ts +0 -174
@@ -18,28 +18,29 @@ describe('Note Serializers', () => {
18
18
  scopes: [await AztecAddress.random()],
19
19
  };
20
20
  const params = { filter };
21
- const serialized = aztecGetNotesSerializer.params.serialize(METHOD, params);
21
+
22
+ const serialized = await aztecGetNotesSerializer.params.serialize(METHOD, params);
22
23
  expect(serialized.method).toBe(METHOD);
23
24
 
24
- const deserialized = aztecGetNotesSerializer.params.deserialize(METHOD, serialized);
25
+ const deserialized = await aztecGetNotesSerializer.params.deserialize(METHOD, serialized);
25
26
  expect(deserialized.filter.txHash?.toString()).toBe(filter.txHash?.toString());
26
27
  expect(deserialized.filter.contractAddress?.toString()).toBe(filter.contractAddress?.toString());
27
28
  expect(deserialized.filter.storageSlot?.toString()).toBe(filter.storageSlot?.toString());
28
29
  expect(deserialized.filter.owner?.toString()).toBe(filter.owner?.toString());
29
30
  expect(deserialized.filter.status).toBe(filter.status);
30
31
  expect(deserialized.filter.siloedNullifier?.toString()).toBe(filter.siloedNullifier?.toString());
31
- expect(deserialized.filter.scopes?.map((a) => a.toString())).toEqual(
32
- filter.scopes?.map((a) => a.toString()),
32
+ expect(deserialized.filter.scopes?.map((s) => s.toString())).toEqual(
33
+ filter.scopes?.map((s) => s.toString()),
33
34
  );
34
35
  });
35
36
 
36
37
  it('should serialize and deserialize result', async () => {
37
38
  const result = [await UniqueNote.random(), await UniqueNote.random()];
38
39
 
39
- const serialized = aztecGetNotesSerializer.result.serialize(METHOD, result);
40
+ const serialized = await aztecGetNotesSerializer.result.serialize(METHOD, result);
40
41
  expect(serialized.method).toBe(METHOD);
41
42
 
42
- const deserialized = aztecGetNotesSerializer.result.deserialize(METHOD, serialized);
43
+ const deserialized = await aztecGetNotesSerializer.result.deserialize(METHOD, serialized);
43
44
  expect(deserialized.map((note: UniqueNote) => note.toString())).toEqual(
44
45
  result.map((note: UniqueNote) => note.toString()),
45
46
  );
@@ -53,20 +54,20 @@ describe('Note Serializers', () => {
53
54
  const note = await ExtendedNote.random();
54
55
  const params = { note };
55
56
 
56
- const serialized = aztecAddNoteSerializer.params.serialize(METHOD, params);
57
+ const serialized = await aztecAddNoteSerializer.params.serialize(METHOD, params);
57
58
  expect(serialized.method).toBe(METHOD);
58
59
 
59
- const deserialized = aztecAddNoteSerializer.params.deserialize(METHOD, serialized);
60
+ const deserialized = await aztecAddNoteSerializer.params.deserialize(METHOD, serialized);
60
61
  expect(deserialized.note.toBuffer().toString('hex')).toBe(note.toBuffer().toString('hex'));
61
62
  });
62
63
 
63
- it('should serialize and deserialize result', () => {
64
+ it('should serialize and deserialize result', async () => {
64
65
  const result = true;
65
66
 
66
- const serialized = aztecAddNoteSerializer.result.serialize(METHOD, result);
67
+ const serialized = await aztecAddNoteSerializer.result.serialize(METHOD, result);
67
68
  expect(serialized.method).toBe(METHOD);
68
69
 
69
- const deserialized = aztecAddNoteSerializer.result.deserialize(METHOD, serialized);
70
+ const deserialized = await aztecAddNoteSerializer.result.deserialize(METHOD, serialized);
70
71
  expect(deserialized).toBe(result);
71
72
  });
72
73
  });
@@ -78,21 +79,47 @@ describe('Note Serializers', () => {
78
79
  const note = await ExtendedNote.random();
79
80
  const params = { note };
80
81
 
81
- const serialized = aztecAddNullifiedNoteSerializer.params.serialize(METHOD, params);
82
+ const serialized = await aztecAddNullifiedNoteSerializer.params.serialize(METHOD, params);
82
83
  expect(serialized.method).toBe(METHOD);
83
84
 
84
- const deserialized = aztecAddNullifiedNoteSerializer.params.deserialize(METHOD, serialized);
85
+ const deserialized = await aztecAddNullifiedNoteSerializer.params.deserialize(METHOD, serialized);
85
86
  expect(deserialized.note.toBuffer().toString('hex')).toBe(note.toBuffer().toString('hex'));
86
87
  });
87
88
 
88
- it('should serialize and deserialize result', () => {
89
+ it('should serialize and deserialize result', async () => {
89
90
  const result = true;
90
91
 
91
- const serialized = aztecAddNullifiedNoteSerializer.result.serialize(METHOD, result);
92
+ const serialized = await aztecAddNullifiedNoteSerializer.result.serialize(METHOD, result);
92
93
  expect(serialized.method).toBe(METHOD);
93
94
 
94
- const deserialized = aztecAddNullifiedNoteSerializer.result.deserialize(METHOD, serialized);
95
+ const deserialized = await aztecAddNullifiedNoteSerializer.result.deserialize(METHOD, serialized);
95
96
  expect(deserialized).toBe(result);
96
97
  });
97
98
  });
99
+
100
+ describe('Edge Cases', () => {
101
+ it('should handle invalid JSON in deserialization', async () => {
102
+ const METHOD = 'aztec_getNotes';
103
+ const invalidData = { method: METHOD, serialized: 'invalid json' };
104
+
105
+ await expect(aztecGetNotesSerializer.params.deserialize(METHOD, invalidData)).rejects.toThrow();
106
+ });
107
+
108
+ it('should handle empty filter fields', async () => {
109
+ const METHOD = 'aztec_getNotes';
110
+ const filter: NotesFilter = {};
111
+ const params = { filter };
112
+
113
+ const serialized = await aztecGetNotesSerializer.params.serialize(METHOD, params);
114
+ const deserialized = await aztecGetNotesSerializer.params.deserialize(METHOD, serialized);
115
+
116
+ expect(deserialized.filter.txHash).toBeUndefined();
117
+ expect(deserialized.filter.contractAddress).toBeUndefined();
118
+ expect(deserialized.filter.storageSlot).toBeUndefined();
119
+ expect(deserialized.filter.owner).toBeUndefined();
120
+ expect(deserialized.filter.status).toBeUndefined();
121
+ expect(deserialized.filter.siloedNullifier).toBeUndefined();
122
+ expect(deserialized.filter.scopes).toBeUndefined();
123
+ });
124
+ });
98
125
  });
@@ -21,10 +21,10 @@ export class AztecGetNotesSerializer
21
21
  * @param value - The parameters containing filter criteria for notes
22
22
  * @returns Serialized filter data
23
23
  */
24
- serialize: (
24
+ serialize: async (
25
25
  method: string,
26
26
  value: AztecWalletMethodMap['aztec_getNotes']['params'],
27
- ): JSONRPCSerializedData => {
27
+ ): Promise<JSONRPCSerializedData> => {
28
28
  const { filter } = value;
29
29
  // Convert instances to their string representations for transport
30
30
  const serializedFilter = {
@@ -37,10 +37,10 @@ export class AztecGetNotesSerializer
37
37
  scopes: filter.scopes?.map((scope) => scope.toString()),
38
38
  };
39
39
 
40
- return {
40
+ return Promise.resolve({
41
41
  method,
42
42
  serialized: JSON.stringify({ filter: serializedFilter }),
43
- };
43
+ });
44
44
  },
45
45
  /**
46
46
  * Deserializes notes filter parameters from RPC transport.
@@ -48,10 +48,10 @@ export class AztecGetNotesSerializer
48
48
  * @param data - The serialized filter data
49
49
  * @returns Deserialized filter parameters
50
50
  */
51
- deserialize: (
51
+ deserialize: async (
52
52
  _method: string,
53
53
  data: JSONRPCSerializedData,
54
- ): AztecWalletMethodMap['aztec_getNotes']['params'] => {
54
+ ): Promise<AztecWalletMethodMap['aztec_getNotes']['params']> => {
55
55
  const { filter } = JSON.parse(data.serialized);
56
56
 
57
57
  // Convert string representations back to instances
@@ -66,9 +66,9 @@ export class AztecGetNotesSerializer
66
66
  if (filter.scopes)
67
67
  notesFilter.scopes = filter.scopes.map((scope: string) => AztecAddress.fromString(scope));
68
68
 
69
- return {
69
+ return Promise.resolve({
70
70
  filter: notesFilter,
71
- };
71
+ });
72
72
  },
73
73
  };
74
74
 
@@ -79,14 +79,14 @@ export class AztecGetNotesSerializer
79
79
  * @param value - Array of unique notes matching the filter criteria
80
80
  * @returns Serialized note array
81
81
  */
82
- serialize: (
82
+ serialize: async (
83
83
  method: string,
84
84
  value: AztecWalletMethodMap['aztec_getNotes']['result'],
85
- ): JSONRPCSerializedData => {
86
- return {
85
+ ): Promise<JSONRPCSerializedData> => {
86
+ return Promise.resolve({
87
87
  method,
88
88
  serialized: JSON.stringify(value.map((n) => n.toString())),
89
- };
89
+ });
90
90
  },
91
91
  /**
92
92
  * Deserializes the notes query result.
@@ -94,11 +94,11 @@ export class AztecGetNotesSerializer
94
94
  * @param data - The serialized note array data
95
95
  * @returns Array of deserialized unique notes
96
96
  */
97
- deserialize: (
97
+ deserialize: async (
98
98
  _method: string,
99
99
  data: JSONRPCSerializedData,
100
- ): AztecWalletMethodMap['aztec_getNotes']['result'] => {
101
- return JSON.parse(data.serialized).map((n: string) => UniqueNote.fromString(n));
100
+ ): Promise<AztecWalletMethodMap['aztec_getNotes']['result']> => {
101
+ return Promise.resolve(JSON.parse(data.serialized).map((n: string) => UniqueNote.fromString(n)));
102
102
  },
103
103
  };
104
104
  }
@@ -121,15 +121,15 @@ export class AztecAddNoteSerializer
121
121
  * @param value - The parameters containing the note to add
122
122
  * @returns Serialized note data
123
123
  */
124
- serialize: (
124
+ serialize: async (
125
125
  method: string,
126
126
  value: AztecWalletMethodMap['aztec_addNote']['params'],
127
- ): JSONRPCSerializedData => {
127
+ ): Promise<JSONRPCSerializedData> => {
128
128
  const { note } = value;
129
- return {
129
+ return Promise.resolve({
130
130
  method,
131
131
  serialized: JSON.stringify({ note: note.toBuffer().toString('base64') }),
132
- };
132
+ });
133
133
  },
134
134
  /**
135
135
  * Deserializes note addition parameters from RPC transport.
@@ -137,13 +137,13 @@ export class AztecAddNoteSerializer
137
137
  * @param data - The serialized note data
138
138
  * @returns Deserialized note parameters
139
139
  */
140
- deserialize: (
140
+ deserialize: async (
141
141
  _method: string,
142
142
  data: JSONRPCSerializedData,
143
- ): AztecWalletMethodMap['aztec_addNote']['params'] => {
143
+ ): Promise<AztecWalletMethodMap['aztec_addNote']['params']> => {
144
144
  const { note: noteBase64 } = JSON.parse(data.serialized);
145
145
  const note = ExtendedNote.fromBuffer(Buffer.from(noteBase64, 'base64'));
146
- return { note };
146
+ return Promise.resolve({ note });
147
147
  },
148
148
  };
149
149
 
@@ -154,11 +154,11 @@ export class AztecAddNoteSerializer
154
154
  * @param value - Boolean indicating success of the note addition
155
155
  * @returns Serialized result
156
156
  */
157
- serialize: (method: string, value: boolean): JSONRPCSerializedData => {
158
- return {
157
+ serialize: async (method: string, value: boolean): Promise<JSONRPCSerializedData> => {
158
+ return Promise.resolve({
159
159
  method,
160
160
  serialized: JSON.stringify(value),
161
- };
161
+ });
162
162
  },
163
163
  /**
164
164
  * Deserializes the note addition result.
@@ -166,8 +166,8 @@ export class AztecAddNoteSerializer
166
166
  * @param data - The serialized result data
167
167
  * @returns Boolean indicating success
168
168
  */
169
- deserialize: (_method: string, data: JSONRPCSerializedData): boolean => {
170
- return JSON.parse(data.serialized);
169
+ deserialize: async (_method: string, data: JSONRPCSerializedData): Promise<boolean> => {
170
+ return Promise.resolve(JSON.parse(data.serialized));
171
171
  },
172
172
  };
173
173
  }
@@ -190,15 +190,15 @@ export class AztecAddNullifiedNoteSerializer
190
190
  * @param value - The parameters containing the nullified note to add
191
191
  * @returns Serialized note data
192
192
  */
193
- serialize: (
193
+ serialize: async (
194
194
  method: string,
195
195
  value: AztecWalletMethodMap['aztec_addNullifiedNote']['params'],
196
- ): JSONRPCSerializedData => {
196
+ ): Promise<JSONRPCSerializedData> => {
197
197
  const { note } = value;
198
- return {
198
+ return Promise.resolve({
199
199
  method,
200
200
  serialized: JSON.stringify({ note: note.toBuffer().toString('base64') }),
201
- };
201
+ });
202
202
  },
203
203
  /**
204
204
  * Deserializes nullified note addition parameters from RPC transport.
@@ -206,13 +206,13 @@ export class AztecAddNullifiedNoteSerializer
206
206
  * @param data - The serialized note data
207
207
  * @returns Deserialized note parameters
208
208
  */
209
- deserialize: (
209
+ deserialize: async (
210
210
  _method: string,
211
211
  data: JSONRPCSerializedData,
212
- ): AztecWalletMethodMap['aztec_addNullifiedNote']['params'] => {
212
+ ): Promise<AztecWalletMethodMap['aztec_addNullifiedNote']['params']> => {
213
213
  const { note: noteBase64 } = JSON.parse(data.serialized);
214
214
  const note = ExtendedNote.fromBuffer(Buffer.from(noteBase64, 'base64'));
215
- return { note };
215
+ return Promise.resolve({ note });
216
216
  },
217
217
  };
218
218
 
@@ -223,11 +223,11 @@ export class AztecAddNullifiedNoteSerializer
223
223
  * @param value - Boolean indicating success of the nullified note addition
224
224
  * @returns Serialized result
225
225
  */
226
- serialize: (method: string, value: boolean): JSONRPCSerializedData => {
227
- return {
226
+ serialize: async (method: string, value: boolean): Promise<JSONRPCSerializedData> => {
227
+ return Promise.resolve({
228
228
  method,
229
229
  serialized: JSON.stringify(value),
230
- };
230
+ });
231
231
  },
232
232
  /**
233
233
  * Deserializes the nullified note addition result.
@@ -235,8 +235,8 @@ export class AztecAddNullifiedNoteSerializer
235
235
  * @param data - The serialized result data
236
236
  * @returns Boolean indicating success
237
237
  */
238
- deserialize: (_method: string, data: JSONRPCSerializedData): boolean => {
239
- return JSON.parse(data.serialized);
238
+ deserialize: async (_method: string, data: JSONRPCSerializedData): Promise<boolean> => {
239
+ return Promise.resolve(JSON.parse(data.serialized));
240
240
  },
241
241
  };
242
242
  }
@@ -40,11 +40,16 @@ describe('Transaction Serializers', () => {
40
40
  };
41
41
  const params = { exec };
42
42
 
43
- const serialized = aztecCreateTxExecutionRequestSerializer.params.serialize(METHOD, params);
43
+ const serialized = await aztecCreateTxExecutionRequestSerializer.params.serialize(METHOD, params);
44
44
  expect(serialized.method).toBe(METHOD);
45
45
 
46
- const deserialized = aztecCreateTxExecutionRequestSerializer.params.deserialize(METHOD, serialized);
47
- expect(JSON.stringify(deserialized.exec)).toBe(JSON.stringify(params.exec));
46
+ const deserialized = await aztecCreateTxExecutionRequestSerializer.params.deserialize(
47
+ METHOD,
48
+ serialized,
49
+ );
50
+ expect(deserialized.exec.calls).toEqual([]);
51
+ expect(deserialized.exec.fee.gasSettings.equals(randomTx.txContext.gasSettings)).toBe(true);
52
+ expect(deserialized.exec.fee.paymentMethod).toBeDefined();
48
53
  });
49
54
 
50
55
  it('should handle complex function calls in params', async () => {
@@ -69,30 +74,32 @@ describe('Transaction Serializers', () => {
69
74
  };
70
75
  const params = { exec };
71
76
 
72
- const serialized = aztecCreateTxExecutionRequestSerializer.params.serialize(METHOD, params);
73
- const deserialized = aztecCreateTxExecutionRequestSerializer.params.deserialize(METHOD, serialized);
77
+ const serialized = await aztecCreateTxExecutionRequestSerializer.params.serialize(METHOD, params);
78
+ const deserialized = await aztecCreateTxExecutionRequestSerializer.params.deserialize(
79
+ METHOD,
80
+ serialized,
81
+ );
74
82
 
75
- expect(deserialized.exec.calls[0].name).toBe(exec.calls[0].name);
76
- expect(deserialized.exec.calls[0].to.toString()).toBe(exec.calls[0].to.toString());
77
- expect(deserialized.exec.calls[0].type).toBe(exec.calls[0].type);
83
+ // biome-ignore lint/style/noNonNullAssertion: test
84
+ expect(deserialized.exec.calls[0]!.name).toBe(exec.calls[0]!.name);
85
+ // biome-ignore lint/style/noNonNullAssertion: test
86
+ expect(deserialized.exec.calls[0]!.to.toString()).toBe(exec.calls[0]!.to.toString());
87
+ // biome-ignore lint/style/noNonNullAssertion: test
88
+ expect(deserialized.exec.calls[0]!.type).toBe(exec.calls[0]!.type);
78
89
  });
79
90
 
80
91
  it('should serialize and deserialize result', async () => {
81
92
  const result = await TxExecutionRequest.random();
82
93
 
83
- const serialized = aztecCreateTxExecutionRequestSerializer.result.serialize(METHOD, result);
94
+ const serialized = await aztecCreateTxExecutionRequestSerializer.result.serialize(METHOD, result);
84
95
  expect(serialized.method).toBe(METHOD);
85
96
 
86
- const deserialized = aztecCreateTxExecutionRequestSerializer.result.deserialize(METHOD, serialized);
97
+ const deserialized = await aztecCreateTxExecutionRequestSerializer.result.deserialize(
98
+ METHOD,
99
+ serialized,
100
+ );
87
101
  expect(deserialized.toString()).toBe(result.toString());
88
102
  });
89
-
90
- it('should handle invalid params', () => {
91
- expect(() => {
92
- // @ts-ignore - Testing invalid input
93
- aztecCreateTxExecutionRequestSerializer.params.serialize(METHOD, { exec: null });
94
- }).toThrow();
95
- });
96
103
  });
97
104
 
98
105
  describe('aztec_getTxEffect', () => {
@@ -102,10 +109,10 @@ describe('Transaction Serializers', () => {
102
109
  const txHash = await TxHash.random();
103
110
  const params = { txHash };
104
111
 
105
- const serialized = aztecGetTxEffectSerializer.params.serialize(METHOD, params);
112
+ const serialized = await aztecGetTxEffectSerializer.params.serialize(METHOD, params);
106
113
  expect(serialized.method).toBe(METHOD);
107
114
 
108
- const deserialized = aztecGetTxEffectSerializer.params.deserialize(METHOD, serialized);
115
+ const deserialized = await aztecGetTxEffectSerializer.params.deserialize(METHOD, serialized);
109
116
  expect(deserialized.txHash.toString()).toBe(txHash.toString());
110
117
  });
111
118
 
@@ -120,8 +127,8 @@ describe('Transaction Serializers', () => {
120
127
  data: effect,
121
128
  };
122
129
 
123
- const serialized = aztecGetTxEffectSerializer.result.serialize(METHOD, result);
124
- const deserialized = aztecGetTxEffectSerializer.result.deserialize(METHOD, serialized);
130
+ const serialized = await aztecGetTxEffectSerializer.result.serialize(METHOD, result);
131
+ const deserialized = await aztecGetTxEffectSerializer.result.deserialize(METHOD, serialized);
125
132
 
126
133
  expect(deserialized.l2BlockNumber).toBe(result.l2BlockNumber);
127
134
  expect(deserialized.data).toBeDefined();
@@ -135,10 +142,10 @@ describe('Transaction Serializers', () => {
135
142
  const txHash = await TxHash.random();
136
143
  const params = { txHash };
137
144
 
138
- const serialized = aztecGetTxReceiptSerializer.params.serialize(METHOD, params);
145
+ const serialized = await aztecGetTxReceiptSerializer.params.serialize(METHOD, params);
139
146
  expect(serialized.method).toBe(METHOD);
140
147
 
141
- const deserialized = aztecGetTxReceiptSerializer.params.deserialize(METHOD, serialized);
148
+ const deserialized = await aztecGetTxReceiptSerializer.params.deserialize(METHOD, serialized);
142
149
  expect(deserialized.txHash.toString()).toBe(txHash.toString());
143
150
  });
144
151
 
@@ -152,8 +159,8 @@ describe('Transaction Serializers', () => {
152
159
  undefined,
153
160
  );
154
161
 
155
- const serialized = aztecGetTxReceiptSerializer.result.serialize(METHOD, receipt);
156
- const deserialized = aztecGetTxReceiptSerializer.result.deserialize(METHOD, serialized);
162
+ const serialized = await aztecGetTxReceiptSerializer.result.serialize(METHOD, receipt);
163
+ const deserialized = await aztecGetTxReceiptSerializer.result.deserialize(METHOD, serialized);
157
164
 
158
165
  expect(deserialized.txHash.toString()).toBe(receipt.txHash.toString());
159
166
  expect(deserialized.error).toBe(receipt.error);
@@ -167,20 +174,20 @@ describe('Transaction Serializers', () => {
167
174
  const tx = await Tx.random();
168
175
  const params = { tx };
169
176
 
170
- const serialized = aztecSendTxSerializer.params.serialize(METHOD, params);
177
+ const serialized = await aztecSendTxSerializer.params.serialize(METHOD, params);
171
178
  expect(serialized.method).toBe(METHOD);
172
179
 
173
- const deserialized = aztecSendTxSerializer.params.deserialize(METHOD, serialized);
180
+ const deserialized = await aztecSendTxSerializer.params.deserialize(METHOD, serialized);
174
181
  expect(deserialized.tx.toBuffer().toString('hex')).toBe(tx.toBuffer().toString('hex'));
175
182
  });
176
183
 
177
184
  it('should serialize and deserialize result', async () => {
178
185
  const result = await TxHash.random();
179
186
 
180
- const serialized = aztecSendTxSerializer.result.serialize(METHOD, result);
187
+ const serialized = await aztecSendTxSerializer.result.serialize(METHOD, result);
181
188
  expect(serialized.method).toBe(METHOD);
182
189
 
183
- const deserialized = aztecSendTxSerializer.result.deserialize(METHOD, serialized);
190
+ const deserialized = await aztecSendTxSerializer.result.deserialize(METHOD, serialized);
184
191
  expect(deserialized.toString()).toBe(result.toString());
185
192
  });
186
193
  });
@@ -198,10 +205,10 @@ describe('Transaction Serializers', () => {
198
205
  profile: false,
199
206
  };
200
207
 
201
- const serialized = aztecSimulateTxSerializer.params.serialize(METHOD, params);
208
+ const serialized = await aztecSimulateTxSerializer.params.serialize(METHOD, params);
202
209
  expect(serialized.method).toBe(METHOD);
203
210
 
204
- const deserialized = aztecSimulateTxSerializer.params.deserialize(METHOD, serialized);
211
+ const deserialized = await aztecSimulateTxSerializer.params.deserialize(METHOD, serialized);
205
212
  expect(deserialized.txRequest.toString()).toBe((params.txRequest as TxExecutionRequest).toString());
206
213
  expect(deserialized.simulatePublic).toBe(params.simulatePublic);
207
214
  expect(deserialized.msgSender?.toString()).toBe(params.msgSender.toString());
@@ -213,8 +220,8 @@ describe('Transaction Serializers', () => {
213
220
  it('should serialize and deserialize result', async () => {
214
221
  const result = await TxSimulationResult.random();
215
222
 
216
- const serialized = aztecSimulateTxSerializer.result.serialize(METHOD, result);
217
- const deserialized = aztecSimulateTxSerializer.result.deserialize(METHOD, serialized);
223
+ const serialized = await aztecSimulateTxSerializer.result.serialize(METHOD, result);
224
+ const deserialized = await aztecSimulateTxSerializer.result.deserialize(METHOD, serialized);
218
225
 
219
226
  expect(deserialized.privateExecutionResult).toBeDefined();
220
227
  expect(deserialized.publicInputs).toBeDefined();
@@ -253,8 +260,8 @@ describe('Transaction Serializers', () => {
253
260
  publicOutput.revertReason = await SimulationError.random();
254
261
  const result = new TxSimulationResult(privateExecutionResult, publicInputs, publicOutput, undefined);
255
262
 
256
- const serialized = aztecSimulateTxSerializer.result.serialize(METHOD, result);
257
- const deserialized = aztecSimulateTxSerializer.result.deserialize(METHOD, serialized);
263
+ const serialized = await aztecSimulateTxSerializer.result.serialize(METHOD, result);
264
+ const deserialized = await aztecSimulateTxSerializer.result.deserialize(METHOD, serialized);
258
265
 
259
266
  const output = deserialized.publicOutput;
260
267
  expect(output).toBeDefined();
@@ -273,10 +280,10 @@ describe('Transaction Serializers', () => {
273
280
  const privateExecutionResult = await PrivateExecutionResult.random();
274
281
  const params = { txRequest, privateExecutionResult };
275
282
 
276
- const serialized = aztecProveTxSerializer.params.serialize(METHOD, params);
283
+ const serialized = await aztecProveTxSerializer.params.serialize(METHOD, params);
277
284
  expect(serialized.method).toBe(METHOD);
278
285
 
279
- const deserialized = aztecProveTxSerializer.params.deserialize(METHOD, serialized);
286
+ const deserialized = await aztecProveTxSerializer.params.deserialize(METHOD, serialized);
280
287
  expect(deserialized.txRequest.toString()).toBe(txRequest.toString());
281
288
  expect(jsonStringify(deserialized.privateExecutionResult)).toEqual(
282
289
  jsonStringify(privateExecutionResult),
@@ -286,10 +293,10 @@ describe('Transaction Serializers', () => {
286
293
  it('should serialize and deserialize result', async () => {
287
294
  const result = await TxProvingResult.random();
288
295
 
289
- const serialized = aztecProveTxSerializer.result.serialize(METHOD, result);
296
+ const serialized = await aztecProveTxSerializer.result.serialize(METHOD, result);
290
297
  expect(serialized.method).toBe(METHOD);
291
298
 
292
- const deserialized = aztecProveTxSerializer.result.deserialize(METHOD, serialized);
299
+ const deserialized = await aztecProveTxSerializer.result.deserialize(METHOD, serialized);
293
300
  expect(jsonStringify(deserialized)).toEqual(jsonStringify(result));
294
301
  });
295
302
 
@@ -302,8 +309,8 @@ describe('Transaction Serializers', () => {
302
309
  privateExecutionResult.entrypoint.nestedExecutions.push(nestedExecution.entrypoint);
303
310
 
304
311
  const params = { txRequest, privateExecutionResult };
305
- const serialized = aztecProveTxSerializer.params.serialize(METHOD, params);
306
- const deserialized = aztecProveTxSerializer.params.deserialize(METHOD, serialized);
312
+ const serialized = await aztecProveTxSerializer.params.serialize(METHOD, params);
313
+ const deserialized = await aztecProveTxSerializer.params.deserialize(METHOD, serialized);
307
314
 
308
315
  expect(jsonStringify(deserialized.privateExecutionResult)).toEqual(
309
316
  jsonStringify(privateExecutionResult),