@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
@@ -1,4 +1,4 @@
1
- import type { AccountWallet } from '@aztec/aztec.js';
1
+ import type { AccountWallet, PXE } from '@aztec/aztec.js';
2
2
  import { AztecWalletError } from '../errors.js';
3
3
  import type { AztecWalletContext, AztecWalletMethodMap } from '../types.js';
4
4
 
@@ -25,14 +25,10 @@ export const AZTEC_WALLET_METHODS: (keyof AztecWalletMethodMap)[] = [
25
25
  'aztec_getSenders',
26
26
  'aztec_removeSender',
27
27
  'aztec_getContracts',
28
- 'aztec_getContractInstance',
29
- 'aztec_getContractClass',
30
- 'aztec_getContractArtifact',
31
- 'aztec_isContractClassPubliclyRegistered',
32
- 'aztec_isContractPubliclyDeployed',
33
- 'aztec_isContractInitialized',
34
28
  'aztec_registerContract',
35
29
  'aztec_registerContractClass',
30
+ 'aztec_getContractMetadata',
31
+ 'aztec_getContractClassMetadata',
36
32
  'aztec_getPublicStorageAt',
37
33
  'aztec_createTxExecutionRequest',
38
34
  'aztec_proveTx',
@@ -196,52 +192,18 @@ async function handleGetContracts(
196
192
  return await wallet.getContracts();
197
193
  }
198
194
 
199
- async function handleGetContractInstance(
200
- wallet: AccountWallet,
201
- params: AztecWalletMethodMap['aztec_getContractInstance']['params'],
202
- ): Promise<AztecWalletMethodMap['aztec_getContractInstance']['result']> {
203
- const instance = await wallet.getContractInstance(params.address);
204
- if (!instance) throw new AztecWalletError('contractInstanceNotRegistered', 'aztec_getContractInstance');
205
- return instance;
206
- }
207
-
208
- async function handleGetContractClass(
209
- wallet: AccountWallet,
210
- params: AztecWalletMethodMap['aztec_getContractClass']['params'],
211
- ): Promise<AztecWalletMethodMap['aztec_getContractClass']['result']> {
212
- const contractClass = await wallet.getContractClass(params.id);
213
- if (!contractClass) throw new AztecWalletError('contractClassNotRegistered', 'aztec_getContractClass');
214
- return contractClass;
215
- }
216
-
217
- async function handleGetContractArtifact(
218
- wallet: AccountWallet,
219
- params: AztecWalletMethodMap['aztec_getContractArtifact']['params'],
220
- ): Promise<AztecWalletMethodMap['aztec_getContractArtifact']['result']> {
221
- const artifact = await wallet.getContractArtifact(params.id);
222
- if (!artifact) throw new AztecWalletError('contractClassNotRegistered', 'aztec_getContractArtifact');
223
- return artifact;
224
- }
225
-
226
- async function handleIsContractClassPubliclyRegistered(
227
- wallet: AccountWallet,
228
- params: AztecWalletMethodMap['aztec_isContractClassPubliclyRegistered']['params'],
229
- ): Promise<AztecWalletMethodMap['aztec_isContractClassPubliclyRegistered']['result']> {
230
- return await wallet.isContractClassPubliclyRegistered(params.id);
231
- }
232
-
233
- async function handleIsContractPubliclyDeployed(
234
- wallet: AccountWallet,
235
- params: AztecWalletMethodMap['aztec_isContractPubliclyDeployed']['params'],
236
- ): Promise<AztecWalletMethodMap['aztec_isContractPubliclyDeployed']['result']> {
237
- return await wallet.isContractPubliclyDeployed(params.address);
195
+ async function handleGetContractMetadata(
196
+ pxe: PXE,
197
+ params: AztecWalletMethodMap['aztec_getContractMetadata']['params'],
198
+ ): Promise<AztecWalletMethodMap['aztec_getContractMetadata']['result']> {
199
+ return await pxe.getContractMetadata(params.address);
238
200
  }
239
201
 
240
- async function handleIsContractInitialized(
241
- wallet: AccountWallet,
242
- params: AztecWalletMethodMap['aztec_isContractInitialized']['params'],
243
- ): Promise<AztecWalletMethodMap['aztec_isContractInitialized']['result']> {
244
- return await wallet.isContractInitialized(params.address);
202
+ async function handleGetContractClassMetadata(
203
+ pxe: PXE,
204
+ params: AztecWalletMethodMap['aztec_getContractClassMetadata']['params'],
205
+ ): Promise<AztecWalletMethodMap['aztec_getContractClassMetadata']['result']> {
206
+ return await pxe.getContractClassMetadata(params.id, params.includeArtifact);
245
207
  }
246
208
 
247
209
  async function handleRegisterContract(
@@ -481,35 +443,15 @@ export async function aztecWalletHandler<M extends keyof AztecWalletMethodMap>(
481
443
  // Contracts methods
482
444
  case 'aztec_getContracts':
483
445
  return handleGetContracts(context.wallet);
484
- case 'aztec_getContractInstance':
485
- return handleGetContractInstance(
486
- context.wallet,
487
- params as AztecWalletMethodMap['aztec_getContractInstance']['params'],
488
- );
489
- case 'aztec_getContractClass':
490
- return handleGetContractClass(
491
- context.wallet,
492
- params as AztecWalletMethodMap['aztec_getContractClass']['params'],
493
- );
494
- case 'aztec_getContractArtifact':
495
- return handleGetContractArtifact(
496
- context.wallet,
497
- params as AztecWalletMethodMap['aztec_getContractArtifact']['params'],
498
- );
499
- case 'aztec_isContractClassPubliclyRegistered':
500
- return handleIsContractClassPubliclyRegistered(
501
- context.wallet,
502
- params as AztecWalletMethodMap['aztec_isContractClassPubliclyRegistered']['params'],
503
- );
504
- case 'aztec_isContractPubliclyDeployed':
505
- return handleIsContractPubliclyDeployed(
446
+ case 'aztec_getContractMetadata':
447
+ return handleGetContractMetadata(
506
448
  context.wallet,
507
- params as AztecWalletMethodMap['aztec_isContractPubliclyDeployed']['params'],
449
+ params as AztecWalletMethodMap['aztec_getContractMetadata']['params'],
508
450
  );
509
- case 'aztec_isContractInitialized':
510
- return handleIsContractInitialized(
451
+ case 'aztec_getContractClassMetadata':
452
+ return handleGetContractClassMetadata(
511
453
  context.wallet,
512
- params as AztecWalletMethodMap['aztec_isContractInitialized']['params'],
454
+ params as AztecWalletMethodMap['aztec_getContractClassMetadata']['params'],
513
455
  );
514
456
  case 'aztec_registerContract':
515
457
  return handleRegisterContract(
@@ -1,7 +1,6 @@
1
1
  import { describe, test, expect, vi, beforeEach } from 'vitest';
2
2
  import { AztecProvider } from './provider.js';
3
3
  import { AztecWalletError, AztecWalletErrorType } from './errors.js';
4
- import type { JSONRPCTransport } from '@walletmesh/jsonrpc';
5
4
  import type { ContractInstanceWithAddress, AztecAddress, ContractArtifact } from '@aztec/aztec.js';
6
5
  import { WalletRouterProvider } from '@walletmesh/router';
7
6
  import type { OperationBuilder } from '@walletmesh/router';
@@ -65,7 +64,6 @@ describe('AztecProvider', () => {
65
64
  test('registers event handlers', () => {
66
65
  // Create a spy on the on method before creating provider
67
66
  const onSpy = vi.spyOn(WalletRouterProvider.prototype, 'on');
68
- const provider = new AztecProvider(mockTransport);
69
67
 
70
68
  expect(onSpy).toHaveBeenCalledWith('wm_walletStateChanged', expect.any(Function));
71
69
  expect(onSpy).toHaveBeenCalledWith('wm_sessionTerminated', expect.any(Function));
@@ -6,7 +6,6 @@ import {
6
6
  aztecAddAuthWitnessSerializer,
7
7
  aztecGetAuthWitnessSerializer,
8
8
  } from './account.js';
9
- import { decodeBase64 } from './types.js';
10
9
  import { schemas } from '@aztec/foundation/schemas';
11
10
 
12
11
  describe('Account Serializers', () => {
@@ -17,20 +16,20 @@ describe('Account Serializers', () => {
17
16
  const scopes = [await AztecAddress.random(), await AztecAddress.random()];
18
17
  const params = { scopes };
19
18
 
20
- const serialized = aztecSetScopesSerializer.params.serialize(METHOD, params);
19
+ const serialized = await aztecSetScopesSerializer.params.serialize(METHOD, params);
21
20
  expect(serialized.method).toBe(METHOD);
22
21
 
23
- const deserialized = aztecSetScopesSerializer.params.deserialize(METHOD, serialized);
22
+ const deserialized = await aztecSetScopesSerializer.params.deserialize(METHOD, serialized);
24
23
  expect(deserialized.scopes.map((s) => s.toString())).toEqual(scopes.map((s) => s.toString()));
25
24
  });
26
25
 
27
- it('should serialize and deserialize result', () => {
26
+ it('should serialize and deserialize result', async () => {
28
27
  const result = true;
29
28
 
30
- const serialized = aztecSetScopesSerializer.result.serialize(METHOD, result);
29
+ const serialized = await aztecSetScopesSerializer.result.serialize(METHOD, result);
31
30
  expect(serialized.method).toBe(METHOD);
32
31
 
33
- const deserialized = aztecSetScopesSerializer.result.deserialize(METHOD, serialized);
32
+ const deserialized = await aztecSetScopesSerializer.result.deserialize(METHOD, serialized);
34
33
  expect(deserialized).toBe(result);
35
34
  });
36
35
  });
@@ -43,10 +42,10 @@ describe('Account Serializers', () => {
43
42
  const partialAddress = await Fr.random();
44
43
  const params = { secretKey, partialAddress };
45
44
 
46
- const serialized = aztecRegisterAccountSerializer.params.serialize(METHOD, params);
45
+ const serialized = await aztecRegisterAccountSerializer.params.serialize(METHOD, params);
47
46
  expect(serialized.method).toBe(METHOD);
48
47
 
49
- const deserialized = aztecRegisterAccountSerializer.params.deserialize(METHOD, serialized);
48
+ const deserialized = await aztecRegisterAccountSerializer.params.deserialize(METHOD, serialized);
50
49
  expect(deserialized.secretKey.toString()).toBe(secretKey.toString());
51
50
  expect(deserialized.partialAddress.toString()).toBe(partialAddress.toString());
52
51
  });
@@ -54,10 +53,10 @@ describe('Account Serializers', () => {
54
53
  it('should serialize and deserialize result', async () => {
55
54
  const result = await CompleteAddress.random();
56
55
 
57
- const serialized = aztecRegisterAccountSerializer.result.serialize(METHOD, result);
56
+ const serialized = await aztecRegisterAccountSerializer.result.serialize(METHOD, result);
58
57
  expect(serialized.method).toBe(METHOD);
59
58
 
60
- const deserialized = aztecRegisterAccountSerializer.result.deserialize(METHOD, serialized);
59
+ const deserialized = await aztecRegisterAccountSerializer.result.deserialize(METHOD, serialized);
61
60
  expect(deserialized.toString()).toBe(result.toString());
62
61
  });
63
62
  });
@@ -69,20 +68,20 @@ describe('Account Serializers', () => {
69
68
  const authWitness = await AuthWitness.random();
70
69
  const params = { authWitness };
71
70
 
72
- const serialized = aztecAddAuthWitnessSerializer.params.serialize(METHOD, params);
71
+ const serialized = await aztecAddAuthWitnessSerializer.params.serialize(METHOD, params);
73
72
  expect(serialized.method).toBe(METHOD);
74
73
 
75
- const deserialized = aztecAddAuthWitnessSerializer.params.deserialize(METHOD, serialized);
74
+ const deserialized = await aztecAddAuthWitnessSerializer.params.deserialize(METHOD, serialized);
76
75
  expect(deserialized.authWitness.toString()).toBe(authWitness.toString());
77
76
  });
78
77
 
79
- it('should serialize and deserialize result', () => {
78
+ it('should serialize and deserialize result', async () => {
80
79
  const result = true;
81
80
 
82
- const serialized = aztecAddAuthWitnessSerializer.result.serialize(METHOD, result);
81
+ const serialized = await aztecAddAuthWitnessSerializer.result.serialize(METHOD, result);
83
82
  expect(serialized.method).toBe(METHOD);
84
83
 
85
- const deserialized = aztecAddAuthWitnessSerializer.result.deserialize(METHOD, serialized);
84
+ const deserialized = await aztecAddAuthWitnessSerializer.result.deserialize(METHOD, serialized);
86
85
  expect(deserialized).toBe(result);
87
86
  });
88
87
  });
@@ -94,20 +93,20 @@ describe('Account Serializers', () => {
94
93
  const messageHash = await Fr.random();
95
94
  const params = { messageHash };
96
95
 
97
- const serialized = aztecGetAuthWitnessSerializer.params.serialize(METHOD, params);
96
+ const serialized = await aztecGetAuthWitnessSerializer.params.serialize(METHOD, params);
98
97
  expect(serialized.method).toBe(METHOD);
99
98
 
100
- const deserialized = aztecGetAuthWitnessSerializer.params.deserialize(METHOD, serialized);
99
+ const deserialized = await aztecGetAuthWitnessSerializer.params.deserialize(METHOD, serialized);
101
100
  expect(deserialized.messageHash.toString()).toBe(messageHash.toString());
102
101
  });
103
102
 
104
103
  it('should serialize and deserialize result', async () => {
105
104
  const result = [await Fr.random(), await Fr.random()];
106
105
 
107
- const serialized = aztecGetAuthWitnessSerializer.result.serialize(METHOD, result);
106
+ const serialized = await aztecGetAuthWitnessSerializer.result.serialize(METHOD, result);
108
107
  expect(serialized.method).toBe(METHOD);
109
108
 
110
- const deserialized = aztecGetAuthWitnessSerializer.result.deserialize(METHOD, serialized);
109
+ const deserialized = await aztecGetAuthWitnessSerializer.result.deserialize(METHOD, serialized);
111
110
  expect(deserialized.map((w) => w.toString())).toEqual(result.map((w) => w.toString()));
112
111
  });
113
112
  });
@@ -116,7 +115,7 @@ describe('Account Serializers', () => {
116
115
  it('should properly encode and decode data', async () => {
117
116
  const messageHash = await Fr.random();
118
117
 
119
- const serialized = aztecGetAuthWitnessSerializer.params.serialize('aztec_getAuthWitness', {
118
+ const serialized = await aztecGetAuthWitnessSerializer.params.serialize('aztec_getAuthWitness', {
120
119
  messageHash,
121
120
  });
122
121
  const decoded = schemas.Fr.parse(JSON.parse(serialized.serialized));
@@ -21,17 +21,17 @@ export class AztecSetScopesSerializer
21
21
  * @param value - The parameters containing an array of Aztec addresses representing scopes
22
22
  * @returns Serialized scope data
23
23
  */
24
- serialize: (
24
+ serialize: async (
25
25
  method: string,
26
26
  value: AztecWalletMethodMap['aztec_setScopes']['params'],
27
- ): JSONRPCSerializedData => {
27
+ ): Promise<JSONRPCSerializedData> => {
28
28
  const { scopes } = value;
29
- return {
29
+ return Promise.resolve({
30
30
  method,
31
31
  serialized: JSON.stringify({
32
32
  scopes: scopes.map((s) => s.toString()),
33
33
  }),
34
- };
34
+ });
35
35
  },
36
36
  /**
37
37
  * Deserializes scope setting parameters from RPC transport.
@@ -39,14 +39,14 @@ export class AztecSetScopesSerializer
39
39
  * @param data - The serialized scope data
40
40
  * @returns Deserialized scope parameters
41
41
  */
42
- deserialize: (
42
+ deserialize: async (
43
43
  _method: string,
44
44
  data: JSONRPCSerializedData,
45
- ): AztecWalletMethodMap['aztec_setScopes']['params'] => {
45
+ ): Promise<AztecWalletMethodMap['aztec_setScopes']['params']> => {
46
46
  const { scopes } = JSON.parse(data.serialized);
47
- return {
47
+ return Promise.resolve({
48
48
  scopes: scopes.map((s: string) => AztecAddress.fromString(s)),
49
- };
49
+ });
50
50
  },
51
51
  };
52
52
 
@@ -57,11 +57,11 @@ export class AztecSetScopesSerializer
57
57
  * @param value - Boolean indicating success of the scope setting operation
58
58
  * @returns Serialized result
59
59
  */
60
- serialize: (method: string, value: boolean): JSONRPCSerializedData => {
61
- return {
60
+ serialize: async (method: string, value: boolean): Promise<JSONRPCSerializedData> => {
61
+ return Promise.resolve({
62
62
  method,
63
63
  serialized: JSON.stringify(value),
64
- };
64
+ });
65
65
  },
66
66
  /**
67
67
  * Deserializes the scope setting result.
@@ -69,8 +69,8 @@ export class AztecSetScopesSerializer
69
69
  * @param data - The serialized result data
70
70
  * @returns Boolean indicating success
71
71
  */
72
- deserialize: (_method: string, data: JSONRPCSerializedData): boolean => {
73
- return JSON.parse(data.serialized);
72
+ deserialize: async (_method: string, data: JSONRPCSerializedData): Promise<boolean> => {
73
+ return Promise.resolve(JSON.parse(data.serialized));
74
74
  },
75
75
  };
76
76
  }
@@ -93,18 +93,18 @@ export class AztecRegisterAccountSerializer
93
93
  * @param value - The parameters containing secret key and partial address
94
94
  * @returns Serialized registration data
95
95
  */
96
- serialize: (
96
+ serialize: async (
97
97
  method: string,
98
98
  value: AztecWalletMethodMap['aztec_registerAccount']['params'],
99
- ): JSONRPCSerializedData => {
99
+ ): Promise<JSONRPCSerializedData> => {
100
100
  const { secretKey, partialAddress } = value;
101
- return {
101
+ return Promise.resolve({
102
102
  method,
103
103
  serialized: JSON.stringify({
104
104
  secretKey: secretKey.toString(),
105
105
  partialAddress: partialAddress.toString(),
106
106
  }),
107
- };
107
+ });
108
108
  },
109
109
  /**
110
110
  * Deserializes account registration parameters from RPC transport.
@@ -112,15 +112,15 @@ export class AztecRegisterAccountSerializer
112
112
  * @param data - The serialized registration data
113
113
  * @returns Deserialized registration parameters
114
114
  */
115
- deserialize: (
115
+ deserialize: async (
116
116
  _method: string,
117
117
  data: JSONRPCSerializedData,
118
- ): AztecWalletMethodMap['aztec_registerAccount']['params'] => {
118
+ ): Promise<AztecWalletMethodMap['aztec_registerAccount']['params']> => {
119
119
  const { secretKey, partialAddress } = JSON.parse(data.serialized);
120
- return {
120
+ return Promise.resolve({
121
121
  secretKey: Fr.fromString(secretKey),
122
122
  partialAddress: Fr.fromString(partialAddress) as PartialAddress,
123
- };
123
+ });
124
124
  },
125
125
  };
126
126
 
@@ -131,11 +131,11 @@ export class AztecRegisterAccountSerializer
131
131
  * @param value - The complete address of the registered account
132
132
  * @returns Serialized complete address
133
133
  */
134
- serialize: (method: string, value: CompleteAddress): JSONRPCSerializedData => {
135
- return {
134
+ serialize: async (method: string, value: CompleteAddress): Promise<JSONRPCSerializedData> => {
135
+ return Promise.resolve({
136
136
  method,
137
137
  serialized: JSON.stringify(value.toString()),
138
- };
138
+ });
139
139
  },
140
140
  /**
141
141
  * Deserializes the account registration result.
@@ -143,8 +143,8 @@ export class AztecRegisterAccountSerializer
143
143
  * @param data - The serialized complete address
144
144
  * @returns Deserialized complete address
145
145
  */
146
- deserialize: (_method: string, data: JSONRPCSerializedData): CompleteAddress => {
147
- return CompleteAddress.fromString(JSON.parse(data.serialized));
146
+ deserialize: async (_method: string, data: JSONRPCSerializedData): Promise<CompleteAddress> => {
147
+ return Promise.resolve(CompleteAddress.fromString(JSON.parse(data.serialized)));
148
148
  },
149
149
  };
150
150
  }
@@ -167,15 +167,15 @@ export class AztecAddAuthWitnessSerializer
167
167
  * @param value - The parameters containing the auth witness to add
168
168
  * @returns Serialized auth witness data
169
169
  */
170
- serialize: (
170
+ serialize: async (
171
171
  method: string,
172
172
  value: AztecWalletMethodMap['aztec_addAuthWitness']['params'],
173
- ): JSONRPCSerializedData => {
173
+ ): Promise<JSONRPCSerializedData> => {
174
174
  const { authWitness } = value;
175
- return {
175
+ return Promise.resolve({
176
176
  method,
177
177
  serialized: JSON.stringify(authWitness.toString()),
178
- };
178
+ });
179
179
  },
180
180
  /**
181
181
  * Deserializes auth witness addition parameters from RPC transport.
@@ -183,12 +183,12 @@ export class AztecAddAuthWitnessSerializer
183
183
  * @param data - The serialized auth witness data
184
184
  * @returns Deserialized auth witness parameters
185
185
  */
186
- deserialize: (
186
+ deserialize: async (
187
187
  _method: string,
188
188
  data: JSONRPCSerializedData,
189
- ): AztecWalletMethodMap['aztec_addAuthWitness']['params'] => {
189
+ ): Promise<AztecWalletMethodMap['aztec_addAuthWitness']['params']> => {
190
190
  const authWitness = AuthWitness.fromString(JSON.parse(data.serialized));
191
- return { authWitness };
191
+ return Promise.resolve({ authWitness });
192
192
  },
193
193
  };
194
194
 
@@ -199,11 +199,11 @@ export class AztecAddAuthWitnessSerializer
199
199
  * @param value - Boolean indicating success of the witness addition
200
200
  * @returns Serialized result
201
201
  */
202
- serialize: (method: string, value: boolean): JSONRPCSerializedData => {
203
- return {
202
+ serialize: async (method: string, value: boolean): Promise<JSONRPCSerializedData> => {
203
+ return Promise.resolve({
204
204
  method,
205
205
  serialized: JSON.stringify(value),
206
- };
206
+ });
207
207
  },
208
208
  /**
209
209
  * Deserializes the auth witness addition result.
@@ -211,8 +211,8 @@ export class AztecAddAuthWitnessSerializer
211
211
  * @param data - The serialized result data
212
212
  * @returns Boolean indicating success
213
213
  */
214
- deserialize: (_method: string, data: JSONRPCSerializedData): boolean => {
215
- return JSON.parse(data.serialized);
214
+ deserialize: async (_method: string, data: JSONRPCSerializedData): Promise<boolean> => {
215
+ return Promise.resolve(JSON.parse(data.serialized));
216
216
  },
217
217
  };
218
218
  }
@@ -235,15 +235,15 @@ export class AztecGetAuthWitnessSerializer
235
235
  * @param value - The parameters containing the message hash to look up
236
236
  * @returns Serialized message hash data
237
237
  */
238
- serialize: (
238
+ serialize: async (
239
239
  method: string,
240
240
  value: AztecWalletMethodMap['aztec_getAuthWitness']['params'],
241
- ): JSONRPCSerializedData => {
241
+ ): Promise<JSONRPCSerializedData> => {
242
242
  const { messageHash } = value;
243
- return {
243
+ return Promise.resolve({
244
244
  method,
245
245
  serialized: JSON.stringify(messageHash.toString()),
246
- };
246
+ });
247
247
  },
248
248
  /**
249
249
  * Deserializes auth witness retrieval parameters from RPC transport.
@@ -251,12 +251,12 @@ export class AztecGetAuthWitnessSerializer
251
251
  * @param data - The serialized message hash data
252
252
  * @returns Deserialized message hash parameters
253
253
  */
254
- deserialize: (
254
+ deserialize: async (
255
255
  _method: string,
256
256
  data: JSONRPCSerializedData,
257
- ): AztecWalletMethodMap['aztec_getAuthWitness']['params'] => {
257
+ ): Promise<AztecWalletMethodMap['aztec_getAuthWitness']['params']> => {
258
258
  const messageHash = Fr.fromString(JSON.parse(data.serialized));
259
- return { messageHash };
259
+ return Promise.resolve({ messageHash });
260
260
  },
261
261
  };
262
262
 
@@ -267,14 +267,14 @@ export class AztecGetAuthWitnessSerializer
267
267
  * @param value - Array of field elements representing auth witnesses
268
268
  * @returns Serialized witness array
269
269
  */
270
- serialize: (
270
+ serialize: async (
271
271
  method: string,
272
272
  value: AztecWalletMethodMap['aztec_getAuthWitness']['result'],
273
- ): JSONRPCSerializedData => {
274
- return {
273
+ ): Promise<JSONRPCSerializedData> => {
274
+ return Promise.resolve({
275
275
  method,
276
276
  serialized: JSON.stringify(value.map((w) => w.toString())),
277
- };
277
+ });
278
278
  },
279
279
  /**
280
280
  * Deserializes the auth witness retrieval result.
@@ -282,11 +282,11 @@ export class AztecGetAuthWitnessSerializer
282
282
  * @param data - The serialized witness array data
283
283
  * @returns Array of deserialized field elements
284
284
  */
285
- deserialize: (
285
+ deserialize: async (
286
286
  _method: string,
287
287
  data: JSONRPCSerializedData,
288
- ): AztecWalletMethodMap['aztec_getAuthWitness']['result'] => {
289
- return JSON.parse(data.serialized).map((w: string) => Fr.fromString(w));
288
+ ): Promise<AztecWalletMethodMap['aztec_getAuthWitness']['result']> => {
289
+ return Promise.resolve(JSON.parse(data.serialized).map((w: string) => Fr.fromString(w)));
290
290
  },
291
291
  };
292
292
  }