@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
@@ -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
  }