@walletmesh/aztec-rpc-wallet 0.2.0 → 0.3.0

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