@manahippo/aptos-wallet-adapter 0.4.5 → 0.4.7

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 (84) hide show
  1. package/README.md +4 -2
  2. package/dist/WalletAdapters/AptosSnap.d.ts +15 -9
  3. package/dist/WalletAdapters/AptosSnap.d.ts.map +1 -1
  4. package/dist/WalletAdapters/AptosSnap.js +41 -2
  5. package/dist/WalletAdapters/AptosSnap.js.map +1 -1
  6. package/dist/WalletAdapters/BaseAdapter.d.ts +25 -8
  7. package/dist/WalletAdapters/BaseAdapter.d.ts.map +1 -1
  8. package/dist/WalletAdapters/BaseAdapter.js +7 -1
  9. package/dist/WalletAdapters/BaseAdapter.js.map +1 -1
  10. package/dist/WalletAdapters/FewchaWallet.d.ts +11 -5
  11. package/dist/WalletAdapters/FewchaWallet.d.ts.map +1 -1
  12. package/dist/WalletAdapters/FewchaWallet.js +54 -3
  13. package/dist/WalletAdapters/FewchaWallet.js.map +1 -1
  14. package/dist/WalletAdapters/FletchWallet.d.ts +11 -5
  15. package/dist/WalletAdapters/FletchWallet.d.ts.map +1 -1
  16. package/dist/WalletAdapters/FletchWallet.js +41 -2
  17. package/dist/WalletAdapters/FletchWallet.js.map +1 -1
  18. package/dist/WalletAdapters/HippoExtensionWallet.d.ts +11 -6
  19. package/dist/WalletAdapters/HippoExtensionWallet.d.ts.map +1 -1
  20. package/dist/WalletAdapters/HippoExtensionWallet.js +41 -2
  21. package/dist/WalletAdapters/HippoExtensionWallet.js.map +1 -1
  22. package/dist/WalletAdapters/HippoWallet.d.ts +11 -6
  23. package/dist/WalletAdapters/HippoWallet.d.ts.map +1 -1
  24. package/dist/WalletAdapters/HippoWallet.js +33 -2
  25. package/dist/WalletAdapters/HippoWallet.js.map +1 -1
  26. package/dist/WalletAdapters/HyperPayWallet.d.ts +13 -8
  27. package/dist/WalletAdapters/HyperPayWallet.d.ts.map +1 -1
  28. package/dist/WalletAdapters/HyperPayWallet.js +39 -0
  29. package/dist/WalletAdapters/HyperPayWallet.js.map +1 -1
  30. package/dist/WalletAdapters/MartianWallet.d.ts +19 -8
  31. package/dist/WalletAdapters/MartianWallet.d.ts.map +1 -1
  32. package/dist/WalletAdapters/MartianWallet.js +63 -2
  33. package/dist/WalletAdapters/MartianWallet.js.map +1 -1
  34. package/dist/WalletAdapters/NightlyWallet.d.ts +8 -2
  35. package/dist/WalletAdapters/NightlyWallet.d.ts.map +1 -1
  36. package/dist/WalletAdapters/NightlyWallet.js +44 -7
  37. package/dist/WalletAdapters/NightlyWallet.js.map +1 -1
  38. package/dist/WalletAdapters/PetraWallet.d.ts +25 -11
  39. package/dist/WalletAdapters/PetraWallet.d.ts.map +1 -1
  40. package/dist/WalletAdapters/PetraWallet.js +66 -2
  41. package/dist/WalletAdapters/PetraWallet.js.map +1 -1
  42. package/dist/WalletAdapters/PontemWallet.d.ts +17 -9
  43. package/dist/WalletAdapters/PontemWallet.d.ts.map +1 -1
  44. package/dist/WalletAdapters/PontemWallet.js +65 -2
  45. package/dist/WalletAdapters/PontemWallet.js.map +1 -1
  46. package/dist/WalletAdapters/RiseWallet.d.ts +12 -7
  47. package/dist/WalletAdapters/RiseWallet.d.ts.map +1 -1
  48. package/dist/WalletAdapters/RiseWallet.js +41 -2
  49. package/dist/WalletAdapters/RiseWallet.js.map +1 -1
  50. package/dist/WalletAdapters/SpikaWallet.d.ts +12 -6
  51. package/dist/WalletAdapters/SpikaWallet.d.ts.map +1 -1
  52. package/dist/WalletAdapters/SpikaWallet.js +41 -2
  53. package/dist/WalletAdapters/SpikaWallet.js.map +1 -1
  54. package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
  55. package/dist/WalletProviders/WalletProvider.js +45 -6
  56. package/dist/WalletProviders/WalletProvider.js.map +1 -1
  57. package/dist/WalletProviders/errors.d.ts +9 -0
  58. package/dist/WalletProviders/errors.d.ts.map +1 -1
  59. package/dist/WalletProviders/errors.js +22 -1
  60. package/dist/WalletProviders/errors.js.map +1 -1
  61. package/dist/WalletProviders/useWallet.d.ts +6 -5
  62. package/dist/WalletProviders/useWallet.d.ts.map +1 -1
  63. package/dist/WalletProviders/useWallet.js.map +1 -1
  64. package/dist/utilities/util.d.ts +2 -2
  65. package/dist/utilities/util.d.ts.map +1 -1
  66. package/dist/utilities/util.js.map +1 -1
  67. package/package.json +2 -2
  68. package/src/WalletAdapters/AptosSnap.ts +58 -20
  69. package/src/WalletAdapters/BaseAdapter.ts +29 -8
  70. package/src/WalletAdapters/FewchaWallet.ts +72 -10
  71. package/src/WalletAdapters/FletchWallet.ts +226 -182
  72. package/src/WalletAdapters/HippoExtensionWallet.ts +50 -8
  73. package/src/WalletAdapters/HippoWallet.ts +51 -10
  74. package/src/WalletAdapters/HyperPayWallet.ts +53 -8
  75. package/src/WalletAdapters/MartianWallet.ts +86 -10
  76. package/src/WalletAdapters/NightlyWallet.ts +54 -10
  77. package/src/WalletAdapters/PetraWallet.ts +91 -11
  78. package/src/WalletAdapters/PontemWallet.ts +87 -11
  79. package/src/WalletAdapters/RiseWallet.ts +51 -9
  80. package/src/WalletAdapters/SpikaWallet.ts +54 -8
  81. package/src/WalletProviders/WalletProvider.tsx +57 -8
  82. package/src/WalletProviders/errors.ts +11 -0
  83. package/src/WalletProviders/useWallet.ts +6 -4
  84. package/src/utilities/util.ts +3 -3
@@ -1,6 +1,9 @@
1
- import { HexEncodedBytes, TransactionPayload } from 'aptos/src/generated';
1
+ import { Types } from 'aptos';
2
2
  import {
3
+ WalletAccountChangeError,
3
4
  WalletDisconnectionError,
5
+ WalletGetNetworkError,
6
+ WalletNetworkChangeError,
4
7
  WalletNotConnectedError,
5
8
  WalletNotReadyError,
6
9
  WalletSignAndSubmitMessageError,
@@ -10,9 +13,11 @@ import {
10
13
  import {
11
14
  AccountKeys,
12
15
  BaseWalletAdapter,
16
+ NetworkInfo,
13
17
  scopePollingDetectionStrategy,
14
18
  SignMessagePayload,
15
19
  SignMessageResponse,
20
+ WalletAdapterNetwork,
16
21
  WalletName,
17
22
  WalletReadyState
18
23
  } from './BaseAdapter';
@@ -23,17 +28,23 @@ interface IApotsErrorResult {
23
28
  message: string;
24
29
  }
25
30
 
31
+ type AddressInfo = { address: string; publicKey: string; authKey?: string };
32
+
26
33
  interface IAptosWallet {
27
- connect: () => Promise<{ address: string; publicKey: string }>;
28
- account: () => Promise<string>;
34
+ connect: () => Promise<AddressInfo>;
35
+ account: () => Promise<AddressInfo>;
29
36
  isConnected: () => Promise<boolean>;
30
37
  signAndSubmitTransaction(
31
38
  transaction: any,
32
39
  options?: any
33
- ): Promise<{ hash: HexEncodedBytes } | IApotsErrorResult>;
40
+ ): Promise<{ hash: Types.HexEncodedBytes } | IApotsErrorResult>;
34
41
  signTransaction(transaction: any, options?: any): Promise<Uint8Array | IApotsErrorResult>;
35
42
  signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
36
43
  disconnect(): Promise<void>;
44
+ network(): Promise<WalletAdapterNetwork>;
45
+ requestId: Promise<number>;
46
+ onAccountChange: (listener: (newAddress: AddressInfo) => void) => void;
47
+ onNetworkChange: (listener: (network: { networkName: string }) => void) => void;
37
48
  }
38
49
 
39
50
  interface AptosWindow extends Window {
@@ -60,7 +71,12 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
60
71
 
61
72
  protected _provider: IAptosWallet | undefined;
62
73
 
63
- // protected _network: WalletAdapterNetwork;
74
+ protected _network: WalletAdapterNetwork;
75
+
76
+ protected _chainId: string;
77
+
78
+ protected _api: string;
79
+
64
80
  protected _timeout: number;
65
81
 
66
82
  protected _readyState: WalletReadyState =
@@ -74,13 +90,13 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
74
90
 
75
91
  constructor({
76
92
  // provider,
77
- // network = WalletAdapterNetwork.Mainnet,
93
+ // network = WalletAdapterNetwork.Testnet,
78
94
  timeout = 10000
79
95
  }: AptosWalletAdapterConfig = {}) {
80
96
  super();
81
97
 
82
98
  this._provider = typeof window !== 'undefined' ? window.aptos : undefined;
83
- // this._network = network;
99
+ this._network = undefined;
84
100
  this._timeout = timeout;
85
101
  this._connecting = false;
86
102
  this._wallet = null;
@@ -105,6 +121,14 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
105
121
  };
106
122
  }
107
123
 
124
+ get network(): NetworkInfo {
125
+ return {
126
+ name: this._network,
127
+ api: this._api,
128
+ chainId: this._chainId
129
+ };
130
+ }
131
+
108
132
  get connecting(): boolean {
109
133
  return this._connecting;
110
134
  }
@@ -142,6 +166,20 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
142
166
  isConnected: true
143
167
  };
144
168
 
169
+ try {
170
+ const name = await provider?.network();
171
+ const chainId = null;
172
+ const api = null;
173
+
174
+ this._network = name;
175
+ this._chainId = chainId;
176
+ this._api = api;
177
+ } catch (error: any) {
178
+ const errMsg = error.message;
179
+ this.emit('error', new WalletGetNetworkError(errMsg));
180
+ throw error;
181
+ }
182
+
145
183
  this.emit('connect', this._wallet.publicKey);
146
184
  } catch (error: any) {
147
185
  this.emit('error', error);
@@ -167,7 +205,7 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
167
205
  this.emit('disconnect');
168
206
  }
169
207
 
170
- async signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array> {
208
+ async signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array> {
171
209
  try {
172
210
  const wallet = this._wallet;
173
211
  const provider = this._provider || window.aptos;
@@ -186,9 +224,9 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
186
224
  }
187
225
 
188
226
  async signAndSubmitTransaction(
189
- transaction: TransactionPayload,
227
+ transaction: Types.TransactionPayload,
190
228
  options?: any
191
- ): Promise<{ hash: HexEncodedBytes }> {
229
+ ): Promise<{ hash: Types.HexEncodedBytes }> {
192
230
  try {
193
231
  const wallet = this._wallet;
194
232
  const provider = this._provider || window.aptos;
@@ -198,7 +236,7 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
198
236
  if ((response as IApotsErrorResult).code) {
199
237
  throw new Error((response as IApotsErrorResult).message);
200
238
  }
201
- return response as { hash: HexEncodedBytes };
239
+ return response as { hash: Types.HexEncodedBytes };
202
240
  } catch (error: any) {
203
241
  const errMsg = error.message;
204
242
  this.emit('error', new WalletSignAndSubmitMessageError(errMsg));
@@ -226,4 +264,46 @@ export class AptosWalletAdapter extends BaseWalletAdapter {
226
264
  throw error;
227
265
  }
228
266
  }
267
+
268
+ async onAccountChange(): Promise<void> {
269
+ try {
270
+ const wallet = this._wallet;
271
+ const provider = this._provider || window.aptos;
272
+ if (!wallet || !provider) throw new WalletNotConnectedError();
273
+ const handleAccountChange = async (newAccount: AddressInfo) => {
274
+ console.log('account Changed >>>', newAccount);
275
+ // Petra extension currently didn't return the new Account
276
+ this._wallet = {
277
+ ...this._wallet,
278
+ publicKey: newAccount.publicKey || this._wallet?.publicKey,
279
+ authKey: newAccount.authKey || this._wallet?.authKey,
280
+ address: newAccount.address || this._wallet?.address
281
+ };
282
+ this.emit('accountChange', newAccount.publicKey);
283
+ };
284
+ await provider?.onAccountChange(handleAccountChange);
285
+ } catch (error: any) {
286
+ const errMsg = error.message;
287
+ this.emit('error', new WalletAccountChangeError(errMsg));
288
+ throw error;
289
+ }
290
+ }
291
+
292
+ async onNetworkChange(): Promise<void> {
293
+ try {
294
+ const wallet = this._wallet;
295
+ const provider = this._provider || window.aptos;
296
+ if (!wallet || !provider) throw new WalletNotConnectedError();
297
+ const handleNetworkChange = async (newNetwork: { networkName: WalletAdapterNetwork }) => {
298
+ console.log('network Changed >>>', newNetwork);
299
+ this._network = newNetwork.networkName;
300
+ this.emit('networkChange', this._network);
301
+ };
302
+ await provider?.onNetworkChange(handleNetworkChange);
303
+ } catch (error: any) {
304
+ const errMsg = error.message;
305
+ this.emit('error', new WalletNetworkChangeError(errMsg));
306
+ throw error;
307
+ }
308
+ }
229
309
  }
@@ -1,7 +1,9 @@
1
- import { MaybeHexString } from 'aptos';
2
- import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
1
+ import { MaybeHexString, Types } from 'aptos';
3
2
  import {
3
+ WalletAccountChangeError,
4
4
  WalletDisconnectionError,
5
+ WalletGetNetworkError,
6
+ WalletNetworkChangeError,
5
7
  WalletNotConnectedError,
6
8
  WalletNotReadyError,
7
9
  WalletSignAndSubmitMessageError,
@@ -11,9 +13,11 @@ import {
11
13
  import {
12
14
  AccountKeys,
13
15
  BaseWalletAdapter,
16
+ NetworkInfo,
14
17
  scopePollingDetectionStrategy,
15
18
  SignMessagePayload,
16
19
  SignMessageResponse,
20
+ WalletAdapterNetwork,
17
21
  WalletName,
18
22
  WalletReadyState
19
23
  } from './BaseAdapter';
@@ -37,21 +41,24 @@ interface IPontemWallet {
37
41
  publicKey(): Promise<MaybeHexString>;
38
42
  generateTransaction(sender: MaybeHexString, payload: any): Promise<any>;
39
43
  signAndSubmit(
40
- transaction: TransactionPayload,
44
+ transaction: Types.TransactionPayload,
41
45
  options?: any
42
46
  ): Promise<{
43
47
  success: boolean;
44
48
  result: {
45
- hash: HexEncodedBytes;
49
+ hash: Types.HexEncodedBytes;
46
50
  };
47
51
  }>;
48
52
  isConnected(): Promise<boolean>;
49
- signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array>;
53
+ signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array>;
50
54
  signMessage(message: SignMessagePayload): Promise<{
51
55
  success: boolean;
52
56
  result: SignMessageResponse;
53
57
  }>;
54
58
  disconnect(): Promise<void>;
59
+ network(): Promise<NetworkInfo>;
60
+ onChangeAccount(listener: (address: string) => void): Promise<void>;
61
+ onChangeNetwork(listener: (network: NetworkInfo) => void): Promise<void>;
55
62
  }
56
63
 
57
64
  interface PontemWindow extends Window {
@@ -78,7 +85,12 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
78
85
 
79
86
  protected _provider: IPontemWallet | undefined;
80
87
 
81
- // protected _network: WalletAdapterNetwork;
88
+ protected _network: WalletAdapterNetwork;
89
+
90
+ protected _chainId: string;
91
+
92
+ protected _api: string;
93
+
82
94
  protected _timeout: number;
83
95
 
84
96
  protected _readyState: WalletReadyState =
@@ -92,13 +104,13 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
92
104
 
93
105
  constructor({
94
106
  // provider,
95
- // network = WalletAdapterNetwork.Mainnet,
107
+ // network = WalletAdapterNetwork.Testnet,
96
108
  timeout = 10000
97
109
  }: PontemWalletAdapterConfig = {}) {
98
110
  super();
99
111
 
100
112
  this._provider = typeof window !== 'undefined' ? window.pontem : undefined;
101
- // this._network = network;
113
+ this._network = undefined;
102
114
  this._timeout = timeout;
103
115
  this._connecting = false;
104
116
  this._wallet = null;
@@ -123,6 +135,14 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
123
135
  };
124
136
  }
125
137
 
138
+ get network(): NetworkInfo {
139
+ return {
140
+ name: this._network,
141
+ api: this._api,
142
+ chainId: this._chainId
143
+ };
144
+ }
145
+
126
146
  get connecting(): boolean {
127
147
  return this._connecting;
128
148
  }
@@ -166,7 +186,19 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
166
186
  publicKey,
167
187
  isConnected: true
168
188
  };
189
+
190
+ try {
191
+ const networkInfo = await provider?.network();
192
+ this._network = networkInfo.name;
193
+ this._chainId = networkInfo.chainId;
194
+ this._api = networkInfo.api;
195
+ } catch (error: any) {
196
+ const errMsg = error.message;
197
+ this.emit('error', new WalletGetNetworkError(errMsg));
198
+ throw error;
199
+ }
169
200
  }
201
+
170
202
  this.emit('connect', this._wallet?.address || '');
171
203
  } catch (error: any) {
172
204
  this.emit('error', new Error('User has rejected the connection'));
@@ -192,7 +224,10 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
192
224
  this.emit('disconnect');
193
225
  }
194
226
 
195
- async signTransaction(transactionPyld: TransactionPayload, options?: any): Promise<Uint8Array> {
227
+ async signTransaction(
228
+ transactionPyld: Types.TransactionPayload,
229
+ options?: any
230
+ ): Promise<Uint8Array> {
196
231
  try {
197
232
  const wallet = this._wallet;
198
233
  const provider = this._provider || window.pontem;
@@ -207,9 +242,9 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
207
242
  }
208
243
 
209
244
  async signAndSubmitTransaction(
210
- transactionPyld: TransactionPayload,
245
+ transactionPyld: Types.TransactionPayload,
211
246
  options?: any
212
- ): Promise<{ hash: HexEncodedBytes }> {
247
+ ): Promise<{ hash: Types.HexEncodedBytes }> {
213
248
  try {
214
249
  const wallet = this._wallet;
215
250
  const provider = this._provider || window.pontem;
@@ -243,4 +278,45 @@ export class PontemWalletAdapter extends BaseWalletAdapter {
243
278
  throw error;
244
279
  }
245
280
  }
281
+
282
+ async onAccountChange(): Promise<void> {
283
+ try {
284
+ const wallet = this._wallet;
285
+ const provider = this._provider || window.pontem;
286
+ if (!wallet || !provider) throw new WalletNotConnectedError();
287
+ const handleAccountChange = async (newAccount: string) => {
288
+ console.log('account Changed >>>', newAccount);
289
+ this._wallet = {
290
+ ...this._wallet,
291
+ address: newAccount || this._wallet?.address
292
+ };
293
+ this.emit('accountChange', newAccount);
294
+ };
295
+ await provider?.onChangeAccount(handleAccountChange);
296
+ } catch (error: any) {
297
+ const errMsg = error.message;
298
+ this.emit('error', new WalletAccountChangeError(errMsg));
299
+ throw error;
300
+ }
301
+ }
302
+
303
+ async onNetworkChange(): Promise<void> {
304
+ try {
305
+ const wallet = this._wallet;
306
+ const provider = this._provider || window.pontem;
307
+ if (!wallet || !provider) throw new WalletNotConnectedError();
308
+ const handleNetworkChange = async (network: NetworkInfo) => {
309
+ console.log('network Changed >>>', network);
310
+ this._network = network.name;
311
+ this._api = network.api;
312
+ this._chainId = network.chainId;
313
+ this.emit('networkChange', this._network);
314
+ };
315
+ await provider?.onChangeNetwork(handleNetworkChange);
316
+ } catch (error: any) {
317
+ const errMsg = error.message;
318
+ this.emit('error', new WalletNetworkChangeError(errMsg));
319
+ throw error;
320
+ }
321
+ }
246
322
  }
@@ -1,6 +1,8 @@
1
- import { HexEncodedBytes, TransactionPayload } from 'aptos/src/generated';
1
+ import { MaybeHexString, Types } from 'aptos';
2
2
  import {
3
+ WalletAccountChangeError,
3
4
  WalletDisconnectionError,
5
+ WalletNetworkChangeError,
4
6
  WalletNotConnectedError,
5
7
  WalletNotReadyError,
6
8
  WalletSignMessageError,
@@ -9,13 +11,14 @@ import {
9
11
  import {
10
12
  AccountKeys,
11
13
  BaseWalletAdapter,
14
+ NetworkInfo,
12
15
  scopePollingDetectionStrategy,
13
16
  SignMessagePayload,
14
17
  SignMessageResponse,
18
+ WalletAdapterNetwork,
15
19
  WalletName,
16
20
  WalletReadyState
17
21
  } from './BaseAdapter';
18
- import { MaybeHexString } from 'aptos';
19
22
 
20
23
  interface RiseAccount {
21
24
  address: MaybeHexString;
@@ -28,7 +31,7 @@ interface IRiseWallet {
28
31
  connect: () => Promise<{ address: string }>;
29
32
  account(): Promise<RiseAccount>;
30
33
  isConnected: () => Promise<boolean>;
31
- signAndSubmitTransaction(transaction: any): Promise<{ hash: HexEncodedBytes }>;
34
+ signAndSubmitTransaction(transaction: any): Promise<{ hash: Types.HexEncodedBytes }>;
32
35
  signTransaction(transaction: any, options?: any): Promise<Uint8Array>;
33
36
  signMessage(message: SignMessagePayload): Promise<SignMessageResponse>;
34
37
  disconnect(): Promise<void>;
@@ -57,7 +60,12 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
57
60
 
58
61
  protected _provider: IRiseWallet | undefined;
59
62
 
60
- // protected _network: WalletAdapterNetwork;
63
+ protected _network: WalletAdapterNetwork;
64
+
65
+ protected _chainId: string;
66
+
67
+ protected _api: string;
68
+
61
69
  protected _timeout: number;
62
70
 
63
71
  protected _readyState: WalletReadyState =
@@ -71,13 +79,13 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
71
79
 
72
80
  constructor({
73
81
  // provider,
74
- // network = WalletAdapterNetwork.Mainnet,
82
+ // network = WalletAdapterNetwork.Testnet,
75
83
  timeout = 10000
76
84
  }: RiseWalletAdapterConfig = {}) {
77
85
  super();
78
86
 
79
87
  this._provider = typeof window !== 'undefined' ? window.rise : undefined;
80
- // this._network = network;
88
+ this._network = undefined;
81
89
  this._timeout = timeout;
82
90
  this._connecting = false;
83
91
  this._wallet = null;
@@ -102,6 +110,14 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
102
110
  };
103
111
  }
104
112
 
113
+ get network(): NetworkInfo {
114
+ return {
115
+ name: this._network,
116
+ api: this._api,
117
+ chainId: this._chainId
118
+ };
119
+ }
120
+
105
121
  get connecting(): boolean {
106
122
  return this._connecting;
107
123
  }
@@ -175,7 +191,7 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
175
191
  this.emit('disconnect');
176
192
  }
177
193
 
178
- async signTransaction(transaction: TransactionPayload): Promise<Uint8Array> {
194
+ async signTransaction(transaction: Types.TransactionPayload): Promise<Uint8Array> {
179
195
  try {
180
196
  const wallet = this._wallet;
181
197
  const provider = this._provider || window.rise;
@@ -195,8 +211,8 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
195
211
  }
196
212
 
197
213
  async signAndSubmitTransaction(
198
- transaction: TransactionPayload
199
- ): Promise<{ hash: HexEncodedBytes }> {
214
+ transaction: Types.TransactionPayload
215
+ ): Promise<{ hash: Types.HexEncodedBytes }> {
200
216
  try {
201
217
  const wallet = this._wallet;
202
218
  const provider = this._provider || window.rise;
@@ -235,4 +251,30 @@ export class RiseWalletAdapter extends BaseWalletAdapter {
235
251
  throw error;
236
252
  }
237
253
  }
254
+
255
+ async onAccountChange(): Promise<void> {
256
+ try {
257
+ const wallet = this._wallet;
258
+ const provider = this._provider || window.rise;
259
+ if (!wallet || !provider) throw new WalletNotConnectedError();
260
+ //To be implemented
261
+ } catch (error: any) {
262
+ const errMsg = error.message;
263
+ this.emit('error', new WalletAccountChangeError(errMsg));
264
+ throw error;
265
+ }
266
+ }
267
+
268
+ async onNetworkChange(): Promise<void> {
269
+ try {
270
+ const wallet = this._wallet;
271
+ const provider = this._provider || window.rise;
272
+ if (!wallet || !provider) throw new WalletNotConnectedError();
273
+ //To be implemented
274
+ } catch (error: any) {
275
+ const errMsg = error.message;
276
+ this.emit('error', new WalletNetworkChangeError(errMsg));
277
+ throw error;
278
+ }
279
+ }
238
280
  }
@@ -1,6 +1,8 @@
1
- import { HexEncodedBytes, TransactionPayload } from 'aptos/src/generated';
1
+ import { Types } from 'aptos';
2
2
  import {
3
+ WalletAccountChangeError,
3
4
  WalletDisconnectionError,
5
+ WalletNetworkChangeError,
4
6
  WalletNotConnectedError,
5
7
  WalletNotReadyError,
6
8
  WalletSignAndSubmitMessageError,
@@ -10,7 +12,9 @@ import {
10
12
  import {
11
13
  AccountKeys,
12
14
  BaseWalletAdapter,
15
+ NetworkInfo,
13
16
  scopePollingDetectionStrategy,
17
+ WalletAdapterNetwork,
14
18
  WalletName,
15
19
  WalletReadyState
16
20
  } from './BaseAdapter';
@@ -19,7 +23,10 @@ interface ISpikaWallet {
19
23
  connect: () => Promise<{ publicKey: string; account: string; authKey: string }>;
20
24
  account: () => Promise<string>;
21
25
  isConnected: () => Promise<boolean>;
22
- signAndSubmitTransaction(transaction: any, options?: any): Promise<{ hash: HexEncodedBytes }>;
26
+ signAndSubmitTransaction(
27
+ transaction: any,
28
+ options?: any
29
+ ): Promise<{ hash: Types.HexEncodedBytes }>;
23
30
  signTransaction(transaction: any, options?: any): Promise<Uint8Array>;
24
31
  signMessage(message: string): Promise<string>;
25
32
  disconnect(): Promise<void>;
@@ -48,7 +55,12 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
48
55
 
49
56
  protected _provider: ISpikaWallet | undefined;
50
57
 
51
- // protected _network: WalletAdapterNetwork;
58
+ protected _network: WalletAdapterNetwork;
59
+
60
+ protected _chainId: string;
61
+
62
+ protected _api: string;
63
+
52
64
  protected _timeout: number;
53
65
 
54
66
  protected _readyState: WalletReadyState =
@@ -62,13 +74,13 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
62
74
 
63
75
  constructor({
64
76
  // provider,
65
- // network = WalletAdapterNetwork.Mainnet,
77
+ // network = WalletAdapterNetwork.Testnet,
66
78
  timeout = 10000
67
79
  }: SpikaWalletAdapterConfig = {}) {
68
80
  super();
69
81
 
70
82
  this._provider = typeof window !== 'undefined' ? window.spika : undefined;
71
- // this._network = network;
83
+ this._network = undefined;
72
84
  this._timeout = timeout;
73
85
  this._connecting = false;
74
86
  this._wallet = null;
@@ -93,6 +105,14 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
93
105
  };
94
106
  }
95
107
 
108
+ get network(): NetworkInfo {
109
+ return {
110
+ name: this._network,
111
+ api: this._api,
112
+ chainId: this._chainId
113
+ };
114
+ }
115
+
96
116
  get connecting(): boolean {
97
117
  return this._connecting;
98
118
  }
@@ -166,7 +186,7 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
166
186
  this.emit('disconnect');
167
187
  }
168
188
 
169
- async signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array> {
189
+ async signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array> {
170
190
  try {
171
191
  const wallet = this._wallet;
172
192
  const provider = this._provider || window.spika;
@@ -186,9 +206,9 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
186
206
  }
187
207
 
188
208
  async signAndSubmitTransaction(
189
- transaction: TransactionPayload,
209
+ transaction: Types.TransactionPayload,
190
210
  options?: any
191
- ): Promise<{ hash: HexEncodedBytes }> {
211
+ ): Promise<{ hash: Types.HexEncodedBytes }> {
192
212
  try {
193
213
  const wallet = this._wallet;
194
214
  const provider = this._provider || window.spika;
@@ -224,4 +244,30 @@ export class SpikaWalletAdapter extends BaseWalletAdapter {
224
244
  throw error;
225
245
  }
226
246
  }
247
+
248
+ async onAccountChange(): Promise<void> {
249
+ try {
250
+ const wallet = this._wallet;
251
+ const provider = this._provider || window.spika;
252
+ if (!wallet || !provider) throw new WalletNotConnectedError();
253
+ //To be implemented
254
+ } catch (error: any) {
255
+ const errMsg = error.message;
256
+ this.emit('error', new WalletAccountChangeError(errMsg));
257
+ throw error;
258
+ }
259
+ }
260
+
261
+ async onNetworkChange(): Promise<void> {
262
+ try {
263
+ const wallet = this._wallet;
264
+ const provider = this._provider || window.spika;
265
+ if (!wallet || !provider) throw new WalletNotConnectedError();
266
+ //To be implemented
267
+ } catch (error: any) {
268
+ const errMsg = error.message;
269
+ this.emit('error', new WalletNetworkChangeError(errMsg));
270
+ throw error;
271
+ }
272
+ }
227
273
  }