@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,5 +1,5 @@
1
1
  import { FC, ReactNode, useCallback, useEffect, useRef, useState } from 'react';
2
- import { TransactionPayload } from 'aptos/src/generated';
2
+ import { Types } from 'aptos';
3
3
  import {
4
4
  WalletError,
5
5
  WalletNotConnectedError,
@@ -9,6 +9,7 @@ import {
9
9
  import { useLocalStorage } from '../hooks/useLocalStorage';
10
10
  import {
11
11
  AccountKeys,
12
+ NetworkInfo,
12
13
  SignMessagePayload,
13
14
  WalletAdapter,
14
15
  WalletName,
@@ -29,11 +30,13 @@ const initialState: {
29
30
  adapter: WalletAdapter | null;
30
31
  account: AccountKeys | null;
31
32
  connected: boolean;
33
+ network: NetworkInfo | null;
32
34
  } = {
33
35
  wallet: null,
34
36
  adapter: null,
35
37
  account: null,
36
- connected: false
38
+ connected: false,
39
+ network: null
37
40
  };
38
41
 
39
42
  export const WalletProvider: FC<WalletProviderProps> = ({
@@ -44,7 +47,7 @@ export const WalletProvider: FC<WalletProviderProps> = ({
44
47
  localStorageKey = 'walletName'
45
48
  }) => {
46
49
  const [name, setName] = useLocalStorage<WalletName | null>(localStorageKey, null);
47
- const [{ wallet, adapter, account, connected }, setState] = useState(initialState);
50
+ const [{ wallet, adapter, account, connected, network }, setState] = useState(initialState);
48
51
  const readyState = adapter?.readyState || WalletReadyState.Unsupported;
49
52
  const [connecting, setConnecting] = useState(false);
50
53
  const [disconnecting, setDisconnecting] = useState(false);
@@ -110,7 +113,8 @@ export const WalletProvider: FC<WalletProviderProps> = ({
110
113
  wallet: selectedWallet,
111
114
  adapter: selectedWallet.adapter,
112
115
  connected: selectedWallet.adapter.connected,
113
- account: selectedWallet.adapter.publicAccount
116
+ account: selectedWallet.adapter.publicAccount,
117
+ network: selectedWallet.adapter.network
114
118
  });
115
119
  } else {
116
120
  setState(initialState);
@@ -137,6 +141,31 @@ export const WalletProvider: FC<WalletProviderProps> = ({
137
141
  return {
138
142
  ...state,
139
143
  connected: adapter.connected,
144
+ account: adapter.publicAccount,
145
+ network: adapter.network
146
+ };
147
+ });
148
+ }, [adapter]);
149
+
150
+ // Handle the adapter's network event
151
+ const handleNetworkChange = useCallback(() => {
152
+ if (!adapter) return;
153
+ console.log('adapter: handleNetworkChange', adapter.network);
154
+ setState((state) => {
155
+ return {
156
+ ...state,
157
+ network: adapter.network
158
+ };
159
+ });
160
+ }, [adapter]);
161
+
162
+ // Handle the adapter's account event
163
+ const handleAccountChange = useCallback(() => {
164
+ if (!adapter) return;
165
+ console.log('adapter: handleAccountChange', adapter.publicAccount);
166
+ setState((state) => {
167
+ return {
168
+ ...state,
140
169
  account: adapter.publicAccount
141
170
  };
142
171
  });
@@ -158,19 +187,38 @@ export const WalletProvider: FC<WalletProviderProps> = ({
158
187
  [isUnloading, onError]
159
188
  );
160
189
 
190
+ // Listen on the adapter's network/account changes
191
+ useEffect(() => {
192
+ if (adapter && connected) {
193
+ adapter.onAccountChange();
194
+ adapter.onNetworkChange();
195
+ }
196
+ }, [adapter, connected]);
197
+
161
198
  // Setup and teardown event listeners when the adapter changes
162
199
  useEffect(() => {
163
200
  if (adapter) {
164
201
  adapter.on('connect', handleConnect);
202
+ adapter.on('networkChange', handleNetworkChange);
203
+ adapter.on('accountChange', handleAccountChange);
165
204
  adapter.on('disconnect', handleDisconnect);
166
205
  adapter.on('error', handleError);
167
206
  return () => {
168
207
  adapter.off('connect', handleConnect);
208
+ adapter.off('networkChange', handleNetworkChange);
209
+ adapter.off('accountChange', handleAccountChange);
169
210
  adapter.off('disconnect', handleDisconnect);
170
211
  adapter.off('error', handleError);
171
212
  };
172
213
  }
173
- }, [adapter, handleConnect, handleDisconnect, handleError]);
214
+ }, [
215
+ adapter,
216
+ handleAccountChange,
217
+ handleConnect,
218
+ handleDisconnect,
219
+ handleError,
220
+ handleNetworkChange
221
+ ]);
174
222
 
175
223
  // When the adapter changes, disconnect the old one
176
224
  useEffect(() => {
@@ -265,7 +313,7 @@ export const WalletProvider: FC<WalletProviderProps> = ({
265
313
 
266
314
  // Send a transaction using the provided connection
267
315
  const signAndSubmitTransaction = useCallback(
268
- async (transaction: TransactionPayload, option?: any) => {
316
+ async (transaction: Types.TransactionPayload, option?: any) => {
269
317
  if (!adapter) throw handleError(new WalletNotSelectedError());
270
318
  if (!connected) throw handleError(new WalletNotConnectedError());
271
319
  const response = await adapter.signAndSubmitTransaction(transaction, option);
@@ -275,7 +323,7 @@ export const WalletProvider: FC<WalletProviderProps> = ({
275
323
  );
276
324
 
277
325
  const signTransaction = useCallback(
278
- async (transaction: TransactionPayload, option?: any) => {
326
+ async (transaction: Types.TransactionPayload, option?: any) => {
279
327
  if (!adapter) throw handleError(new WalletNotSelectedError());
280
328
  if (!connected) throw handleError(new WalletNotConnectedError());
281
329
  return adapter.signTransaction(transaction, option);
@@ -307,7 +355,8 @@ export const WalletProvider: FC<WalletProviderProps> = ({
307
355
  disconnect,
308
356
  signAndSubmitTransaction,
309
357
  signTransaction,
310
- signMessage
358
+ signMessage,
359
+ network
311
360
  }}>
312
361
  {children}
313
362
  </WalletContext.Provider>
@@ -39,6 +39,17 @@ export class WalletDisconnectionError extends WalletError {
39
39
  export class WalletAccountError extends WalletError {
40
40
  name = 'WalletAccountError';
41
41
  }
42
+ export class WalletGetNetworkError extends WalletError {
43
+ name = 'WalletGetNetworkError';
44
+ }
45
+
46
+ export class WalletAccountChangeError extends WalletError {
47
+ name = 'WalletAccountChangeError';
48
+ }
49
+
50
+ export class WalletNetworkChangeError extends WalletError {
51
+ name = 'WalletNetworkChangeError';
52
+ }
42
53
 
43
54
  export class WalletPublicKeyError extends WalletError {
44
55
  name = 'WalletPublicKeyError';
@@ -1,7 +1,8 @@
1
- import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
1
+ import { Types } from 'aptos';
2
2
  import { createContext, useContext } from 'react';
3
3
  import {
4
4
  AccountKeys,
5
+ NetworkInfo,
5
6
  SignMessagePayload,
6
7
  SignMessageResponse,
7
8
  WalletAdapter,
@@ -22,14 +23,15 @@ export interface WalletContextState {
22
23
  connecting: boolean;
23
24
  connected: boolean;
24
25
  disconnecting: boolean;
26
+ network: NetworkInfo;
25
27
  select(walletName: WalletName): void;
26
28
  connect(): Promise<void>;
27
29
  disconnect(): Promise<void>;
28
30
  signAndSubmitTransaction(
29
- transaction: TransactionPayload,
31
+ transaction: Types.TransactionPayload,
30
32
  options?: any
31
- ): Promise<{ hash: HexEncodedBytes }>;
32
- signTransaction(transaction: TransactionPayload, options?: any): Promise<Uint8Array>;
33
+ ): Promise<{ hash: Types.HexEncodedBytes }>;
34
+ signTransaction(transaction: Types.TransactionPayload, options?: any): Promise<Uint8Array>;
33
35
  signMessage(
34
36
  message: string | SignMessagePayload | Uint8Array
35
37
  ): Promise<SignMessageResponse | string>;
@@ -1,7 +1,7 @@
1
- import { TransactionPayload, TransactionPayload_EntryFunctionPayload } from 'aptos/src/generated';
1
+ import { Types } from 'aptos';
2
2
 
3
- export const payloadV1ToV0 = (payload: TransactionPayload) => {
4
- const v1 = payload as TransactionPayload_EntryFunctionPayload;
3
+ export const payloadV1ToV0 = (payload: Types.TransactionPayload) => {
4
+ const v1 = payload as Types.TransactionPayload_EntryFunctionPayload;
5
5
  return {
6
6
  type: 'script_function_payload',
7
7
  function: v1.function,