@tronweb3/tronwallet-adapter-react-hooks 1.1.3 → 1.1.5
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.
- package/README.md +51 -11
- package/lib/cjs/WalletProvider.js +48 -9
- package/lib/cjs/WalletProvider.js.map +1 -1
- package/lib/cjs/useWallet.js.map +1 -1
- package/lib/esm/WalletProvider.js +121 -70
- package/lib/esm/WalletProvider.js.map +1 -1
- package/lib/esm/useWallet.js.map +1 -1
- package/lib/types/WalletProvider.d.ts +8 -1
- package/lib/types/WalletProvider.d.ts.map +1 -1
- package/lib/types/useWallet.d.ts +1 -0
- package/lib/types/useWallet.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/WalletProvider.tsx +88 -11
- package/src/useWallet.ts +1 -0
package/README.md
CHANGED
|
@@ -60,12 +60,9 @@ function Profile() {
|
|
|
60
60
|
`WalletProvider` and `useWallet` work together like `Context.Provider` and `useContext()`. There is a `WalletProviderContext` underlying which maintains some state and can be obtained with `useWallet`. So developers need to wrap application components with `WalletProvider`.
|
|
61
61
|
|
|
62
62
|
```jsx
|
|
63
|
+
import { useWallet, WalletProvider } from '@tronweb3/tronwallet-adapter-react-hooks';
|
|
63
64
|
function App() {
|
|
64
|
-
return
|
|
65
|
-
<div>
|
|
66
|
-
<WalletProvider>/* here is application components */</WalletProvider>
|
|
67
|
-
</div>
|
|
68
|
-
);
|
|
65
|
+
return <WalletProvider>/* here is application components */</WalletProvider>;
|
|
69
66
|
}
|
|
70
67
|
```
|
|
71
68
|
|
|
@@ -81,14 +78,11 @@ Used to specify what wallet adapters are supported. All wallet adapters can be i
|
|
|
81
78
|
|
|
82
79
|
- Example
|
|
83
80
|
```jsx
|
|
81
|
+
import { useWallet, WalletProvider } from '@tronweb3/tronwallet-adapter-react-hooks';
|
|
84
82
|
import { TronLinkAdapter } from '@tronweb3/tronwallet-adapters';
|
|
85
83
|
function App() {
|
|
86
84
|
const adapters = useMemo(() => [new TronLinkAdapter()]);
|
|
87
|
-
return
|
|
88
|
-
<div>
|
|
89
|
-
<WalletProvider adapters={adapters}>/* here is application components */</WalletProvider>
|
|
90
|
-
</div>
|
|
91
|
-
);
|
|
85
|
+
return <WalletProvider adapters={adapters}>/* here is application components */</WalletProvider>;
|
|
92
86
|
}
|
|
93
87
|
```
|
|
94
88
|
|
|
@@ -119,6 +113,15 @@ Used to handle errors occured when use wallet. Developers can use the callback t
|
|
|
119
113
|
|
|
120
114
|
Whether connect to the specified wallet automatically when loading the page and selecting a wallet.
|
|
121
115
|
|
|
116
|
+
#### disableAutoConnectOnLoad
|
|
117
|
+
|
|
118
|
+
- Required: `false`
|
|
119
|
+
- Type: `boolean`
|
|
120
|
+
- Default: `false`
|
|
121
|
+
|
|
122
|
+
When `autoConnect` enabled, whether automatically connect to current selected wallet when loading the page.
|
|
123
|
+
If you don't want to connect the wallet when page is first loaded, set `disableAutoConnectOnLoad: true`.
|
|
124
|
+
|
|
122
125
|
#### localStorageKey
|
|
123
126
|
|
|
124
127
|
- Required: `false`
|
|
@@ -127,19 +130,56 @@ Whether connect to the specified wallet automatically when loading the page and
|
|
|
127
130
|
|
|
128
131
|
Specified the key used to cache wallet name in `localStorage`. When user select a wallet, applications will cache the wallet name to localStorage.
|
|
129
132
|
|
|
133
|
+
#### Event handlers
|
|
134
|
+
|
|
135
|
+
You can provide event handlers for listen adapter events, such as `connect`,`disconnect`,`accountsChanged`. Available event handlers and their types are as follows:
|
|
136
|
+
|
|
137
|
+
- `readyStateChanged: (readyState: 'Found' | 'NotFound') => void`: Called when current adapter emits `readyStateChanged` event.
|
|
138
|
+
- `onConnect: (address: string) => void`: Called when current adapter emits `connect` event.
|
|
139
|
+
- `onDisconnect: () => void`: Called when current adapter emits `disconnect` event.
|
|
140
|
+
- `onAccountsChanged: (newAddress: string; preAddress?: string) => void`: Called when current adapter emits `accountsChanged` event.
|
|
141
|
+
- `onChainChanged: (chainData: unknow) => void`: Called when current adapter emits `chainChanged` event.
|
|
142
|
+
|
|
143
|
+
An event handler named `onAdapterChanged` is also avaliable to get noticed when selected adapter is changed.
|
|
144
|
+
|
|
145
|
+
- `onAdapterChanged: (adapter: Adapter | null) => void`: Called when current adapter is changed.
|
|
146
|
+
|
|
147
|
+
Here is an example:
|
|
148
|
+
|
|
149
|
+
```jsx
|
|
150
|
+
import { useWallet, WalletProvider } from '@tronweb3/tronwallet-adapter-react-hooks';
|
|
151
|
+
import { TronLinkAdapter } from '@tronweb3/tronwallet-adapters';
|
|
152
|
+
function App() {
|
|
153
|
+
const adapters = useMemo(() => [new TronLinkAdapter()]);
|
|
154
|
+
const onAccountsChanged = useCallback((curAddr, preAddr) => {
|
|
155
|
+
console.log('new address is: ', curAddr, ' previous address is: ', preAddr);
|
|
156
|
+
}, []);
|
|
157
|
+
return (
|
|
158
|
+
<WalletProvider adapters={adapters} onAccountsChanged={onAccountsChanged}>
|
|
159
|
+
/* here is application components */
|
|
160
|
+
</WalletProvider>
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
130
165
|
## `useWallet()`
|
|
131
166
|
|
|
132
167
|
`useWallet` is a react hook providing a set of properties and methods which can be used to select and connect wallet, get wallet state and so on.
|
|
133
168
|
|
|
134
169
|
> `useWallet()` must be used in the descendant components of `WalletProvider`!
|
|
135
170
|
|
|
136
|
-
###
|
|
171
|
+
### ReturnedValue
|
|
137
172
|
|
|
138
173
|
#### `autoConnect`
|
|
139
174
|
|
|
140
175
|
- Type: `boolean`
|
|
141
176
|
Synchronous with `autoConnect` property passed to `WalletProvider`.
|
|
142
177
|
|
|
178
|
+
#### `disableAutoConnectOnLoad`
|
|
179
|
+
|
|
180
|
+
- Type: `boolean`
|
|
181
|
+
Synchronous with `disableAutoConnectOnLoad` property passed to `WalletProvider`.
|
|
182
|
+
|
|
143
183
|
#### `wallet`
|
|
144
184
|
|
|
145
185
|
- Type: `Wallet | null`
|
|
@@ -44,7 +44,7 @@ const initialState = {
|
|
|
44
44
|
connected: false,
|
|
45
45
|
adapter: null,
|
|
46
46
|
};
|
|
47
|
-
const WalletProvider = function ({ children, adapters: adaptersPro = null, onError = (error) => console.error(error), localStorageKey = 'tronAdapterName', autoConnect = true, }) {
|
|
47
|
+
const WalletProvider = function ({ children, adapters: adaptersPro = null, onError = (error) => console.error(error), onReadyStateChanged, onConnect, onDisconnect, onAccountsChanged, onChainChanged, onAdapterChanged, localStorageKey = 'tronAdapterName', autoConnect = true, disableAutoConnectOnLoad = false, }) {
|
|
48
48
|
const [name, setName] = (0, useLocalStorage_js_1.useLocalStorage)(localStorageKey, null);
|
|
49
49
|
const [{ wallet, connected, address, adapter }, setState] = (0, react_1.useState)(initialState);
|
|
50
50
|
const [connecting, setConnecting] = (0, react_1.useState)(false);
|
|
@@ -105,40 +105,74 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
105
105
|
setState(initialState);
|
|
106
106
|
}
|
|
107
107
|
}, [name, wallets]);
|
|
108
|
-
const
|
|
108
|
+
const preAdapter = (0, react_1.useRef)(null);
|
|
109
|
+
(0, react_1.useEffect)(function () {
|
|
110
|
+
if (adapter !== preAdapter.current) {
|
|
111
|
+
onAdapterChanged === null || onAdapterChanged === void 0 ? void 0 : onAdapterChanged(adapter);
|
|
112
|
+
preAdapter.current = adapter;
|
|
113
|
+
}
|
|
114
|
+
}, [adapter, onAdapterChanged]);
|
|
115
|
+
const handleConnect = (0, react_1.useCallback)(function (addr) {
|
|
109
116
|
if (!adapter) {
|
|
110
117
|
return setName(null);
|
|
111
118
|
}
|
|
112
119
|
setState((state) => (Object.assign(Object.assign({}, state), { connected: adapter.connected, address: adapter.address })));
|
|
113
|
-
|
|
120
|
+
onConnect === null || onConnect === void 0 ? void 0 : onConnect(addr);
|
|
121
|
+
}, [adapter, setName, onConnect]);
|
|
114
122
|
const handleError = (0, react_1.useCallback)(function (error) {
|
|
115
123
|
onError(error);
|
|
116
124
|
return error;
|
|
117
125
|
}, [onError]);
|
|
118
|
-
const handleAccountChange = (0, react_1.useCallback)(function (address) {
|
|
126
|
+
const handleAccountChange = (0, react_1.useCallback)(function (address, preAddr) {
|
|
119
127
|
setState((state) => (Object.assign(Object.assign({}, state), { address })));
|
|
120
|
-
|
|
128
|
+
onAccountsChanged === null || onAccountsChanged === void 0 ? void 0 : onAccountsChanged(address, preAddr);
|
|
129
|
+
}, [onAccountsChanged]);
|
|
130
|
+
const handleDisconnect = (0, react_1.useCallback)(function () {
|
|
131
|
+
onDisconnect === null || onDisconnect === void 0 ? void 0 : onDisconnect();
|
|
132
|
+
}, [onDisconnect]);
|
|
133
|
+
const handleReadyStateChanged = (0, react_1.useCallback)(function (readyState) {
|
|
134
|
+
onReadyStateChanged === null || onReadyStateChanged === void 0 ? void 0 : onReadyStateChanged(readyState);
|
|
135
|
+
}, [onReadyStateChanged]);
|
|
136
|
+
const handleChainChanged = (0, react_1.useCallback)(function (chainData) {
|
|
137
|
+
onChainChanged === null || onChainChanged === void 0 ? void 0 : onChainChanged(chainData);
|
|
138
|
+
}, [onChainChanged]);
|
|
121
139
|
(0, react_1.useEffect)(function () {
|
|
122
140
|
if (adapter) {
|
|
123
141
|
adapter.on('connect', handleConnect);
|
|
124
142
|
adapter.on('error', handleError);
|
|
125
143
|
adapter.on('accountsChanged', handleAccountChange);
|
|
144
|
+
adapter.on('chainChanged', handleChainChanged);
|
|
145
|
+
adapter.on('readyStateChanged', handleReadyStateChanged);
|
|
146
|
+
adapter.on('disconnect', handleDisconnect);
|
|
126
147
|
return () => {
|
|
127
148
|
adapter.off('connect', handleConnect);
|
|
128
149
|
adapter.off('error', handleError);
|
|
129
150
|
adapter.off('accountsChanged', handleAccountChange);
|
|
151
|
+
adapter.off('chainChanged', handleChainChanged);
|
|
152
|
+
adapter.off('readyStateChanged', handleReadyStateChanged);
|
|
153
|
+
adapter.off('disconnect', handleDisconnect);
|
|
130
154
|
};
|
|
131
155
|
}
|
|
132
|
-
}, [
|
|
156
|
+
}, [
|
|
157
|
+
adapter,
|
|
158
|
+
handleConnect,
|
|
159
|
+
handleError,
|
|
160
|
+
handleAccountChange,
|
|
161
|
+
handleChainChanged,
|
|
162
|
+
handleReadyStateChanged,
|
|
163
|
+
handleDisconnect,
|
|
164
|
+
]);
|
|
133
165
|
// disconnect the previous when wallet changes
|
|
134
166
|
(0, react_1.useEffect)(() => {
|
|
135
167
|
return () => {
|
|
136
168
|
adapter === null || adapter === void 0 ? void 0 : adapter.disconnect();
|
|
137
169
|
};
|
|
138
170
|
}, [adapter]);
|
|
171
|
+
const hasManuallySetName = (0, react_1.useRef)(false);
|
|
139
172
|
// auto connect
|
|
140
173
|
(0, react_1.useEffect)(function () {
|
|
141
|
-
|
|
174
|
+
const canAutoConnect = autoConnect && (!disableAutoConnectOnLoad || hasManuallySetName.current);
|
|
175
|
+
if (isConnecting.current || !canAutoConnect || !adapter || adapter.state !== tronwallet_abstract_adapter_1.AdapterState.Disconnect) {
|
|
142
176
|
return;
|
|
143
177
|
}
|
|
144
178
|
(function connect() {
|
|
@@ -157,7 +191,11 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
157
191
|
}
|
|
158
192
|
});
|
|
159
193
|
})();
|
|
160
|
-
}, [isConnecting, autoConnect, adapter, setName]);
|
|
194
|
+
}, [isConnecting, autoConnect, adapter, setName, disableAutoConnectOnLoad]);
|
|
195
|
+
const select = (0, react_1.useCallback)((name) => {
|
|
196
|
+
hasManuallySetName.current = true;
|
|
197
|
+
setName(name);
|
|
198
|
+
}, [setName]);
|
|
161
199
|
const connect = (0, react_1.useCallback)(function () {
|
|
162
200
|
return __awaiter(this, void 0, void 0, function* () {
|
|
163
201
|
if (isConnecting.current || isDisconnecting.current || connected) {
|
|
@@ -217,6 +255,7 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
217
255
|
});
|
|
218
256
|
}, [adapter, handleError]);
|
|
219
257
|
return (react_1.default.createElement(useWallet_js_1.WalletContext.Provider, { value: {
|
|
258
|
+
disableAutoConnectOnLoad,
|
|
220
259
|
autoConnect,
|
|
221
260
|
wallets,
|
|
222
261
|
wallet,
|
|
@@ -224,7 +263,7 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
224
263
|
connecting,
|
|
225
264
|
connected,
|
|
226
265
|
disconnecting,
|
|
227
|
-
select
|
|
266
|
+
select,
|
|
228
267
|
connect,
|
|
229
268
|
disconnect,
|
|
230
269
|
signTransaction,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uFAA6F;
|
|
1
|
+
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":"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"}
|
package/lib/cjs/useWallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../src/useWallet.ts"],"names":[],"mappings":";;;AACA,iCAAkD;
|
|
1
|
+
{"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../src/useWallet.ts"],"names":[],"mappings":";;;AACA,iCAAkD;AAuBlD,SAAS,UAAU;IACf,OAAO,CAAC,KAAK,CAAC;;;CAGjB,CAAC,CAAC;AACH,CAAC;AACD,MAAM,eAAe,GAAG;IACpB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,KAAK;IACpB,oBAAoB;IACpB,MAAM,CAAC,KAAkB;QACrB,UAAU,EAAE,CAAC;IACjB,CAAC;IACD,OAAO;QACH,UAAU,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,UAAU;QACN,UAAU,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,eAAe,CAAC,YAAyB;QACrC,UAAU,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,WAAW,CAAC,QAAgB;QACxB,UAAU,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,mBAAmB;CACA,CAAC;AAExB,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,SAAS,EAAE;IAC9C,GAAG;QACC,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAC,CAAC;AACH,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,QAAQ,EAAE;IAC7C,GAAG;QACC,UAAU,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAC,CAAC;AACH,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,SAAS,EAAE;IAC9C,GAAG;QACC,UAAU,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAC,CAAC;AAEU,QAAA,aAAa,GAAG,IAAA,qBAAa,EAAqB,eAAqC,CAAC,CAAC;AACtG,SAAgB,SAAS;IACrB,OAAO,IAAA,kBAAU,EAAC,qBAAa,CAAC,CAAC;AACrC,CAAC;AAFD,8BAEC"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
1
10
|
import { WalletNotSelectedError, AdapterState } from '@tronweb3/tronwallet-abstract-adapter';
|
|
2
11
|
import { TronLinkAdapter } from '@tronweb3/tronwallet-adapter-tronlink';
|
|
3
12
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
@@ -9,7 +18,7 @@ const initialState = {
|
|
|
9
18
|
connected: false,
|
|
10
19
|
adapter: null,
|
|
11
20
|
};
|
|
12
|
-
export const WalletProvider = function ({ children, adapters: adaptersPro = null, onError = (error) => console.error(error), localStorageKey = 'tronAdapterName', autoConnect = true, }) {
|
|
21
|
+
export const WalletProvider = function ({ children, adapters: adaptersPro = null, onError = (error) => console.error(error), onReadyStateChanged, onConnect, onDisconnect, onAccountsChanged, onChainChanged, onAdapterChanged, localStorageKey = 'tronAdapterName', autoConnect = true, disableAutoConnectOnLoad = false, }) {
|
|
13
22
|
const [name, setName] = useLocalStorage(localStorageKey, null);
|
|
14
23
|
const [{ wallet, connected, address, adapter }, setState] = useState(initialState);
|
|
15
24
|
const [connecting, setConnecting] = useState(false);
|
|
@@ -46,10 +55,7 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
46
55
|
}
|
|
47
56
|
return prevWallets.map((wallet, idx) => {
|
|
48
57
|
if (idx === index) {
|
|
49
|
-
return {
|
|
50
|
-
...wallet,
|
|
51
|
-
state: wallet.adapter.state,
|
|
52
|
-
};
|
|
58
|
+
return Object.assign(Object.assign({}, wallet), { state: wallet.adapter.state });
|
|
53
59
|
}
|
|
54
60
|
return wallet;
|
|
55
61
|
});
|
|
@@ -73,112 +79,157 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
73
79
|
setState(initialState);
|
|
74
80
|
}
|
|
75
81
|
}, [name, wallets]);
|
|
76
|
-
const
|
|
82
|
+
const preAdapter = useRef(null);
|
|
83
|
+
useEffect(function () {
|
|
84
|
+
if (adapter !== preAdapter.current) {
|
|
85
|
+
onAdapterChanged === null || onAdapterChanged === void 0 ? void 0 : onAdapterChanged(adapter);
|
|
86
|
+
preAdapter.current = adapter;
|
|
87
|
+
}
|
|
88
|
+
}, [adapter, onAdapterChanged]);
|
|
89
|
+
const handleConnect = useCallback(function (addr) {
|
|
77
90
|
if (!adapter) {
|
|
78
91
|
return setName(null);
|
|
79
92
|
}
|
|
80
|
-
setState((state) => ({
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
address: adapter.address,
|
|
84
|
-
}));
|
|
85
|
-
}, [adapter, setName]);
|
|
93
|
+
setState((state) => (Object.assign(Object.assign({}, state), { connected: adapter.connected, address: adapter.address })));
|
|
94
|
+
onConnect === null || onConnect === void 0 ? void 0 : onConnect(addr);
|
|
95
|
+
}, [adapter, setName, onConnect]);
|
|
86
96
|
const handleError = useCallback(function (error) {
|
|
87
97
|
onError(error);
|
|
88
98
|
return error;
|
|
89
99
|
}, [onError]);
|
|
90
|
-
const handleAccountChange = useCallback(function (address) {
|
|
91
|
-
setState((state) => ({
|
|
92
|
-
|
|
100
|
+
const handleAccountChange = useCallback(function (address, preAddr) {
|
|
101
|
+
setState((state) => (Object.assign(Object.assign({}, state), { address })));
|
|
102
|
+
onAccountsChanged === null || onAccountsChanged === void 0 ? void 0 : onAccountsChanged(address, preAddr);
|
|
103
|
+
}, [onAccountsChanged]);
|
|
104
|
+
const handleDisconnect = useCallback(function () {
|
|
105
|
+
onDisconnect === null || onDisconnect === void 0 ? void 0 : onDisconnect();
|
|
106
|
+
}, [onDisconnect]);
|
|
107
|
+
const handleReadyStateChanged = useCallback(function (readyState) {
|
|
108
|
+
onReadyStateChanged === null || onReadyStateChanged === void 0 ? void 0 : onReadyStateChanged(readyState);
|
|
109
|
+
}, [onReadyStateChanged]);
|
|
110
|
+
const handleChainChanged = useCallback(function (chainData) {
|
|
111
|
+
onChainChanged === null || onChainChanged === void 0 ? void 0 : onChainChanged(chainData);
|
|
112
|
+
}, [onChainChanged]);
|
|
93
113
|
useEffect(function () {
|
|
94
114
|
if (adapter) {
|
|
95
115
|
adapter.on('connect', handleConnect);
|
|
96
116
|
adapter.on('error', handleError);
|
|
97
117
|
adapter.on('accountsChanged', handleAccountChange);
|
|
118
|
+
adapter.on('chainChanged', handleChainChanged);
|
|
119
|
+
adapter.on('readyStateChanged', handleReadyStateChanged);
|
|
120
|
+
adapter.on('disconnect', handleDisconnect);
|
|
98
121
|
return () => {
|
|
99
122
|
adapter.off('connect', handleConnect);
|
|
100
123
|
adapter.off('error', handleError);
|
|
101
124
|
adapter.off('accountsChanged', handleAccountChange);
|
|
125
|
+
adapter.off('chainChanged', handleChainChanged);
|
|
126
|
+
adapter.off('readyStateChanged', handleReadyStateChanged);
|
|
127
|
+
adapter.off('disconnect', handleDisconnect);
|
|
102
128
|
};
|
|
103
129
|
}
|
|
104
|
-
}, [
|
|
130
|
+
}, [
|
|
131
|
+
adapter,
|
|
132
|
+
handleConnect,
|
|
133
|
+
handleError,
|
|
134
|
+
handleAccountChange,
|
|
135
|
+
handleChainChanged,
|
|
136
|
+
handleReadyStateChanged,
|
|
137
|
+
handleDisconnect,
|
|
138
|
+
]);
|
|
105
139
|
// disconnect the previous when wallet changes
|
|
106
140
|
useEffect(() => {
|
|
107
141
|
return () => {
|
|
108
|
-
adapter
|
|
142
|
+
adapter === null || adapter === void 0 ? void 0 : adapter.disconnect();
|
|
109
143
|
};
|
|
110
144
|
}, [adapter]);
|
|
145
|
+
const hasManuallySetName = useRef(false);
|
|
111
146
|
// auto connect
|
|
112
147
|
useEffect(function () {
|
|
113
|
-
|
|
148
|
+
const canAutoConnect = autoConnect && (!disableAutoConnectOnLoad || hasManuallySetName.current);
|
|
149
|
+
if (isConnecting.current || !canAutoConnect || !adapter || adapter.state !== AdapterState.Disconnect) {
|
|
114
150
|
return;
|
|
115
151
|
}
|
|
116
|
-
(
|
|
152
|
+
(function connect() {
|
|
153
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
isConnecting.current = true;
|
|
155
|
+
setConnecting(true);
|
|
156
|
+
try {
|
|
157
|
+
yield adapter.connect();
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
// setName(null);
|
|
161
|
+
}
|
|
162
|
+
finally {
|
|
163
|
+
setConnecting(false);
|
|
164
|
+
isConnecting.current = false;
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
})();
|
|
168
|
+
}, [isConnecting, autoConnect, adapter, setName, disableAutoConnectOnLoad]);
|
|
169
|
+
const select = useCallback((name) => {
|
|
170
|
+
hasManuallySetName.current = true;
|
|
171
|
+
setName(name);
|
|
172
|
+
}, [setName]);
|
|
173
|
+
const connect = useCallback(function () {
|
|
174
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
175
|
+
if (isConnecting.current || isDisconnecting.current || connected) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
if (!adapter)
|
|
179
|
+
throw handleError(new WalletNotSelectedError());
|
|
117
180
|
isConnecting.current = true;
|
|
118
181
|
setConnecting(true);
|
|
119
182
|
try {
|
|
120
|
-
|
|
183
|
+
yield adapter.connect();
|
|
121
184
|
}
|
|
122
185
|
catch (error) {
|
|
123
|
-
|
|
186
|
+
setName(null);
|
|
187
|
+
throw error;
|
|
124
188
|
}
|
|
125
189
|
finally {
|
|
126
190
|
setConnecting(false);
|
|
127
191
|
isConnecting.current = false;
|
|
128
192
|
}
|
|
129
|
-
})
|
|
130
|
-
}, [isConnecting, autoConnect, adapter, setName]);
|
|
131
|
-
const connect = useCallback(async function () {
|
|
132
|
-
if (isConnecting.current || isDisconnecting.current || connected) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
if (!adapter)
|
|
136
|
-
throw handleError(new WalletNotSelectedError());
|
|
137
|
-
isConnecting.current = true;
|
|
138
|
-
setConnecting(true);
|
|
139
|
-
try {
|
|
140
|
-
await adapter.connect();
|
|
141
|
-
}
|
|
142
|
-
catch (error) {
|
|
143
|
-
setName(null);
|
|
144
|
-
throw error;
|
|
145
|
-
}
|
|
146
|
-
finally {
|
|
147
|
-
setConnecting(false);
|
|
148
|
-
isConnecting.current = false;
|
|
149
|
-
}
|
|
193
|
+
});
|
|
150
194
|
}, [isConnecting, isDisconnecting, adapter, connected, handleError, setName]);
|
|
151
|
-
const disconnect = useCallback(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
195
|
+
const disconnect = useCallback(function () {
|
|
196
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
197
|
+
if (isDisconnecting.current)
|
|
198
|
+
return;
|
|
199
|
+
if (!adapter)
|
|
200
|
+
return setName(null);
|
|
201
|
+
isDisconnecting.current = true;
|
|
202
|
+
setDisconnecting(true);
|
|
203
|
+
try {
|
|
204
|
+
yield adapter.disconnect();
|
|
205
|
+
setName(null);
|
|
206
|
+
}
|
|
207
|
+
catch (error) {
|
|
208
|
+
setName(null);
|
|
209
|
+
throw error;
|
|
210
|
+
}
|
|
211
|
+
finally {
|
|
212
|
+
setDisconnecting(false);
|
|
213
|
+
isDisconnecting.current = false;
|
|
214
|
+
}
|
|
215
|
+
});
|
|
170
216
|
}, [adapter, isDisconnecting, setName]);
|
|
171
|
-
const signTransaction = useCallback(
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
217
|
+
const signTransaction = useCallback(function (transaction, privateKey) {
|
|
218
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
219
|
+
if (!adapter)
|
|
220
|
+
throw handleError(new WalletNotSelectedError());
|
|
221
|
+
return yield adapter.signTransaction(transaction, privateKey);
|
|
222
|
+
});
|
|
175
223
|
}, [adapter, handleError]);
|
|
176
|
-
const signMessage = useCallback(
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
224
|
+
const signMessage = useCallback(function (message, privateKey) {
|
|
225
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
226
|
+
if (!adapter)
|
|
227
|
+
throw handleError(new WalletNotSelectedError());
|
|
228
|
+
return yield adapter.signMessage(message, privateKey);
|
|
229
|
+
});
|
|
180
230
|
}, [adapter, handleError]);
|
|
181
231
|
return (React.createElement(WalletContext.Provider, { value: {
|
|
232
|
+
disableAutoConnectOnLoad,
|
|
182
233
|
autoConnect,
|
|
183
234
|
wallets,
|
|
184
235
|
wallet,
|
|
@@ -186,7 +237,7 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
186
237
|
connecting,
|
|
187
238
|
connected,
|
|
188
239
|
disconnecting,
|
|
189
|
-
select
|
|
240
|
+
select,
|
|
190
241
|
connect,
|
|
191
242
|
disconnect,
|
|
192
243
|
signTransaction,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":"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"}
|
package/lib/esm/useWallet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../src/useWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useWallet.js","sourceRoot":"","sources":["../../src/useWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAuBlD,SAAS,UAAU;IACf,OAAO,CAAC,KAAK,CAAC;;;CAGjB,CAAC,CAAC;AACH,CAAC;AACD,MAAM,eAAe,GAAG;IACpB,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;IAChB,aAAa,EAAE,KAAK;IACpB,oBAAoB;IACpB,MAAM,CAAC,KAAkB;QACrB,UAAU,EAAE,CAAC;IACjB,CAAC;IACD,OAAO;QACH,UAAU,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,UAAU;QACN,UAAU,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,eAAe,CAAC,YAAyB;QACrC,UAAU,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,WAAW,CAAC,QAAgB;QACxB,UAAU,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IACD,mBAAmB;CACA,CAAC;AAExB,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,SAAS,EAAE;IAC9C,GAAG;QACC,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAC,CAAC;AACH,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,QAAQ,EAAE;IAC7C,GAAG;QACC,UAAU,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAC,CAAC;AACH,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,SAAS,EAAE;IAC9C,GAAG;QACC,UAAU,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAqB,eAAqC,CAAC,CAAC;AACtG,MAAM,UAAU,SAAS;IACrB,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import type { Adapter, WalletError } from '@tronweb3/tronwallet-abstract-adapter';
|
|
1
|
+
import type { Adapter, WalletError, WalletReadyState } from '@tronweb3/tronwallet-abstract-adapter';
|
|
2
2
|
import type { FC, ReactNode } from 'react';
|
|
3
3
|
export interface WalletProviderProps {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
adapters?: Adapter[];
|
|
6
6
|
onError?: (error: WalletError) => void;
|
|
7
|
+
onConnect?: (address: string) => unknown;
|
|
8
|
+
onDisconnect?: () => unknown;
|
|
9
|
+
onAccountsChanged?: (address: string, preAddr?: string) => unknown;
|
|
10
|
+
onReadyStateChanged?: (state: WalletReadyState) => unknown;
|
|
11
|
+
onChainChanged?: (chainData: unknown) => unknown;
|
|
12
|
+
onAdapterChanged?: (adapter: Adapter | null) => unknown;
|
|
7
13
|
localStorageKey?: string;
|
|
8
14
|
autoConnect?: boolean;
|
|
15
|
+
disableAutoConnectOnLoad?: boolean;
|
|
9
16
|
}
|
|
10
17
|
export declare const WalletProvider: FC<WalletProviderProps>;
|
|
11
18
|
//# sourceMappingURL=WalletProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EAGX,gBAAgB,EACnB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM3C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC;IACjD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACtC;AAcD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAuSlD,CAAC"}
|
package/lib/types/useWallet.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../src/useWallet.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAe,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAG7G,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;CACvB;AACD,MAAM,WAAW,kBAAkB;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IAEvB,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACvC;AAsDD,eAAO,MAAM,aAAa,6CAA2E,CAAC;AACtG,wBAAgB,SAAS,IAAI,kBAAkB,CAE9C"}
|
|
1
|
+
{"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../src/useWallet.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAe,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAG7G,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;CACvB;AACD,MAAM,WAAW,kBAAkB;IAC/B,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IAEvB,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5C,WAAW,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACvC;AAsDD,eAAO,MAAM,aAAa,6CAA2E,CAAC;AACtG,wBAAgB,SAAS,IAAI,kBAAkB,CAE9C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tronweb3/tronwallet-adapter-react-hooks",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.5",
|
|
4
4
|
"description": "A `useWallet()` hook to make it easy to interact with Tron wallets.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"TRON",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@tronweb3/tronwallet-abstract-adapter": "^1.1.5",
|
|
44
|
-
"@tronweb3/tronwallet-adapter-tronlink": "^1.1.
|
|
44
|
+
"@tronweb3/tronwallet-adapter-tronlink": "^1.1.7"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/react": "^18.0.26",
|
package/src/WalletProvider.tsx
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { WalletNotSelectedError, AdapterState } from '@tronweb3/tronwallet-abstract-adapter';
|
|
2
|
-
import type {
|
|
2
|
+
import type {
|
|
3
|
+
Adapter,
|
|
4
|
+
WalletError,
|
|
5
|
+
AdapterName,
|
|
6
|
+
Transaction,
|
|
7
|
+
WalletReadyState,
|
|
8
|
+
} from '@tronweb3/tronwallet-abstract-adapter';
|
|
3
9
|
import { TronLinkAdapter } from '@tronweb3/tronwallet-adapter-tronlink';
|
|
4
10
|
import type { FC, ReactNode } from 'react';
|
|
5
11
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
@@ -11,8 +17,15 @@ export interface WalletProviderProps {
|
|
|
11
17
|
children: ReactNode;
|
|
12
18
|
adapters?: Adapter[];
|
|
13
19
|
onError?: (error: WalletError) => void;
|
|
20
|
+
onConnect?: (address: string) => unknown;
|
|
21
|
+
onDisconnect?: () => unknown;
|
|
22
|
+
onAccountsChanged?: (address: string, preAddr?: string) => unknown;
|
|
23
|
+
onReadyStateChanged?: (state: WalletReadyState) => unknown;
|
|
24
|
+
onChainChanged?: (chainData: unknown) => unknown;
|
|
25
|
+
onAdapterChanged?: (adapter: Adapter | null) => unknown;
|
|
14
26
|
localStorageKey?: string;
|
|
15
27
|
autoConnect?: boolean;
|
|
28
|
+
disableAutoConnectOnLoad?: boolean;
|
|
16
29
|
}
|
|
17
30
|
|
|
18
31
|
const initialState: {
|
|
@@ -31,8 +44,15 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
31
44
|
children,
|
|
32
45
|
adapters: adaptersPro = null,
|
|
33
46
|
onError = (error) => console.error(error),
|
|
47
|
+
onReadyStateChanged,
|
|
48
|
+
onConnect,
|
|
49
|
+
onDisconnect,
|
|
50
|
+
onAccountsChanged,
|
|
51
|
+
onChainChanged,
|
|
52
|
+
onAdapterChanged,
|
|
34
53
|
localStorageKey = 'tronAdapterName',
|
|
35
54
|
autoConnect = true,
|
|
55
|
+
disableAutoConnectOnLoad = false,
|
|
36
56
|
}) {
|
|
37
57
|
const [name, setName] = useLocalStorage<AdapterName | null>(localStorageKey, null);
|
|
38
58
|
const [{ wallet, connected, address, adapter }, setState] = useState(initialState);
|
|
@@ -110,8 +130,19 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
110
130
|
[name, wallets]
|
|
111
131
|
);
|
|
112
132
|
|
|
113
|
-
const
|
|
133
|
+
const preAdapter = useRef<Adapter | null>(null);
|
|
134
|
+
useEffect(
|
|
114
135
|
function () {
|
|
136
|
+
if (adapter !== preAdapter.current) {
|
|
137
|
+
onAdapterChanged?.(adapter);
|
|
138
|
+
preAdapter.current = adapter;
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
[adapter, onAdapterChanged]
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
const handleConnect = useCallback(
|
|
145
|
+
function (addr: string) {
|
|
115
146
|
if (!adapter) {
|
|
116
147
|
return setName(null);
|
|
117
148
|
}
|
|
@@ -120,8 +151,9 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
120
151
|
connected: adapter.connected,
|
|
121
152
|
address: adapter.address,
|
|
122
153
|
}));
|
|
154
|
+
onConnect?.(addr);
|
|
123
155
|
},
|
|
124
|
-
[adapter, setName]
|
|
156
|
+
[adapter, setName, onConnect]
|
|
125
157
|
);
|
|
126
158
|
|
|
127
159
|
const handleError = useCallback(
|
|
@@ -131,24 +163,59 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
131
163
|
},
|
|
132
164
|
[onError]
|
|
133
165
|
);
|
|
134
|
-
const handleAccountChange = useCallback(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
166
|
+
const handleAccountChange = useCallback(
|
|
167
|
+
function (address: string, preAddr?: string) {
|
|
168
|
+
setState((state) => ({ ...state, address }));
|
|
169
|
+
onAccountsChanged?.(address, preAddr);
|
|
170
|
+
},
|
|
171
|
+
[onAccountsChanged]
|
|
172
|
+
);
|
|
173
|
+
const handleDisconnect = useCallback(
|
|
174
|
+
function () {
|
|
175
|
+
onDisconnect?.();
|
|
176
|
+
},
|
|
177
|
+
[onDisconnect]
|
|
178
|
+
);
|
|
179
|
+
const handleReadyStateChanged = useCallback(
|
|
180
|
+
function (readyState: WalletReadyState) {
|
|
181
|
+
onReadyStateChanged?.(readyState);
|
|
182
|
+
},
|
|
183
|
+
[onReadyStateChanged]
|
|
184
|
+
);
|
|
185
|
+
const handleChainChanged = useCallback(
|
|
186
|
+
function (chainData: unknown) {
|
|
187
|
+
onChainChanged?.(chainData);
|
|
188
|
+
},
|
|
189
|
+
[onChainChanged]
|
|
190
|
+
);
|
|
138
191
|
useEffect(
|
|
139
192
|
function () {
|
|
140
193
|
if (adapter) {
|
|
141
194
|
adapter.on('connect', handleConnect);
|
|
142
195
|
adapter.on('error', handleError);
|
|
143
196
|
adapter.on('accountsChanged', handleAccountChange);
|
|
197
|
+
adapter.on('chainChanged', handleChainChanged);
|
|
198
|
+
adapter.on('readyStateChanged', handleReadyStateChanged);
|
|
199
|
+
adapter.on('disconnect', handleDisconnect);
|
|
144
200
|
return () => {
|
|
145
201
|
adapter.off('connect', handleConnect);
|
|
146
202
|
adapter.off('error', handleError);
|
|
147
203
|
adapter.off('accountsChanged', handleAccountChange);
|
|
204
|
+
adapter.off('chainChanged', handleChainChanged);
|
|
205
|
+
adapter.off('readyStateChanged', handleReadyStateChanged);
|
|
206
|
+
adapter.off('disconnect', handleDisconnect);
|
|
148
207
|
};
|
|
149
208
|
}
|
|
150
209
|
},
|
|
151
|
-
[
|
|
210
|
+
[
|
|
211
|
+
adapter,
|
|
212
|
+
handleConnect,
|
|
213
|
+
handleError,
|
|
214
|
+
handleAccountChange,
|
|
215
|
+
handleChainChanged,
|
|
216
|
+
handleReadyStateChanged,
|
|
217
|
+
handleDisconnect,
|
|
218
|
+
]
|
|
152
219
|
);
|
|
153
220
|
// disconnect the previous when wallet changes
|
|
154
221
|
useEffect(() => {
|
|
@@ -157,10 +224,12 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
157
224
|
};
|
|
158
225
|
}, [adapter]);
|
|
159
226
|
|
|
227
|
+
const hasManuallySetName = useRef(false);
|
|
160
228
|
// auto connect
|
|
161
229
|
useEffect(
|
|
162
230
|
function () {
|
|
163
|
-
|
|
231
|
+
const canAutoConnect = autoConnect && (!disableAutoConnectOnLoad || hasManuallySetName.current);
|
|
232
|
+
if (isConnecting.current || !canAutoConnect || !adapter || adapter.state !== AdapterState.Disconnect) {
|
|
164
233
|
return;
|
|
165
234
|
}
|
|
166
235
|
(async function connect() {
|
|
@@ -176,7 +245,14 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
176
245
|
}
|
|
177
246
|
})();
|
|
178
247
|
},
|
|
179
|
-
[isConnecting, autoConnect, adapter, setName]
|
|
248
|
+
[isConnecting, autoConnect, adapter, setName, disableAutoConnectOnLoad]
|
|
249
|
+
);
|
|
250
|
+
const select = useCallback(
|
|
251
|
+
(name: AdapterName) => {
|
|
252
|
+
hasManuallySetName.current = true;
|
|
253
|
+
setName(name);
|
|
254
|
+
},
|
|
255
|
+
[setName]
|
|
180
256
|
);
|
|
181
257
|
|
|
182
258
|
const connect = useCallback(
|
|
@@ -240,6 +316,7 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
240
316
|
return (
|
|
241
317
|
<WalletContext.Provider
|
|
242
318
|
value={{
|
|
319
|
+
disableAutoConnectOnLoad,
|
|
243
320
|
autoConnect,
|
|
244
321
|
wallets,
|
|
245
322
|
wallet,
|
|
@@ -248,7 +325,7 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
248
325
|
connected,
|
|
249
326
|
disconnecting,
|
|
250
327
|
|
|
251
|
-
select
|
|
328
|
+
select,
|
|
252
329
|
connect,
|
|
253
330
|
disconnect,
|
|
254
331
|
signTransaction,
|