@manahippo/aptos-wallet-adapter 0.4.12 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -14
- package/dist/WalletAdapters/BaseAdapter.d.ts +2 -1
- package/dist/WalletAdapters/BaseAdapter.d.ts.map +1 -1
- package/dist/WalletAdapters/BaseAdapter.js.map +1 -1
- package/dist/WalletAdapters/BloctoWallet.d.ts +43 -0
- package/dist/WalletAdapters/BloctoWallet.d.ts.map +1 -0
- package/dist/WalletAdapters/BloctoWallet.js +240 -0
- package/dist/WalletAdapters/BloctoWallet.js.map +1 -0
- package/dist/WalletAdapters/ONTOWallet.d.ts +64 -0
- package/dist/WalletAdapters/ONTOWallet.d.ts.map +1 -0
- package/dist/WalletAdapters/ONTOWallet.js +244 -0
- package/dist/WalletAdapters/ONTOWallet.js.map +1 -0
- package/dist/WalletAdapters/index.d.ts +2 -0
- package/dist/WalletAdapters/index.d.ts.map +1 -1
- package/dist/WalletAdapters/index.js +2 -0
- package/dist/WalletAdapters/index.js.map +1 -1
- package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
- package/dist/WalletProviders/WalletProvider.js +53 -53
- package/dist/WalletProviders/WalletProvider.js.map +1 -1
- package/dist/WalletProviders/useWallet.d.ts +2 -2
- package/dist/WalletProviders/useWallet.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/WalletAdapters/BaseAdapter.ts +2 -1
- package/src/WalletAdapters/BloctoWallet.ts +264 -0
- package/src/WalletAdapters/ONTOWallet.ts +306 -0
- package/src/WalletAdapters/index.ts +2 -0
- package/src/WalletProviders/WalletProvider.tsx +71 -67
- package/src/WalletProviders/useWallet.ts +2 -2
@@ -65,22 +65,6 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
65
65
|
|
66
66
|
// When the wallets change, start to listen for changes to their `readyState`
|
67
67
|
useEffect(() => {
|
68
|
-
// When the adapters change, wrap them to conform to the `Wallet` interface
|
69
|
-
setWallets((currentWallets) =>
|
70
|
-
adapters.map((wAdapter, index) => {
|
71
|
-
const currentWallet = currentWallets[index];
|
72
|
-
// If the wallet hasn't changed, return the same instance
|
73
|
-
return currentWallet &&
|
74
|
-
currentWallet.adapter === wAdapter &&
|
75
|
-
currentWallet.readyState === wAdapter.readyState
|
76
|
-
? currentWallet
|
77
|
-
: {
|
78
|
-
adapter: wAdapter,
|
79
|
-
readyState: wAdapter.readyState
|
80
|
-
};
|
81
|
-
})
|
82
|
-
);
|
83
|
-
|
84
68
|
function handleReadyStateChange(this: any, wReadyState: WalletReadyState) {
|
85
69
|
setWallets((prevWallets) => {
|
86
70
|
const index = prevWallets.findIndex(({ adapter: wAdapter }) => wAdapter === this);
|
@@ -106,9 +90,10 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
106
90
|
|
107
91
|
// When the selected wallet changes, initialize the state
|
108
92
|
useEffect(() => {
|
93
|
+
if (!autoConnect) return;
|
109
94
|
const selectedWallet = wallets.find((wAdapter) => wAdapter.adapter.name === name);
|
110
95
|
if (selectedWallet) {
|
111
|
-
console.log('selectedWallets', selectedWallet);
|
96
|
+
// console.log('selectedWallets in autoConnect', selectedWallet);
|
112
97
|
setState({
|
113
98
|
wallet: selectedWallet,
|
114
99
|
adapter: selectedWallet.adapter,
|
@@ -119,7 +104,7 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
119
104
|
} else {
|
120
105
|
setState(initialState);
|
121
106
|
}
|
122
|
-
}, [name, wallets]);
|
107
|
+
}, [name, wallets, autoConnect]);
|
123
108
|
|
124
109
|
// If the window is closing or reloading, ignore disconnect and error events from the adapter
|
125
110
|
useEffect(() => {
|
@@ -150,7 +135,7 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
150
135
|
// Handle the adapter's network event
|
151
136
|
const handleNetworkChange = useCallback(() => {
|
152
137
|
if (!adapter) return;
|
153
|
-
console.log('adapter: handleNetworkChange', adapter.network);
|
138
|
+
// console.log('adapter: handleNetworkChange', adapter.network);
|
154
139
|
setState((state) => {
|
155
140
|
return {
|
156
141
|
...state,
|
@@ -162,7 +147,7 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
162
147
|
// Handle the adapter's account event
|
163
148
|
const handleAccountChange = useCallback(() => {
|
164
149
|
if (!adapter) return;
|
165
|
-
console.log('adapter: handleAccountChange', adapter.publicAccount);
|
150
|
+
// console.log('adapter: handleAccountChange', adapter.publicAccount);
|
166
151
|
setState((state) => {
|
167
152
|
return {
|
168
153
|
...state,
|
@@ -174,7 +159,10 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
174
159
|
// Handle the adapter's disconnect event
|
175
160
|
const handleDisconnect = useCallback(() => {
|
176
161
|
// Clear the selected wallet unless the window is unloading
|
177
|
-
if (!isUnloading.current)
|
162
|
+
if (!isUnloading.current) {
|
163
|
+
setName(null);
|
164
|
+
setState(initialState);
|
165
|
+
}
|
178
166
|
}, [isUnloading, setName]);
|
179
167
|
|
180
168
|
// Handle the adapter's error event, and local errors
|
@@ -227,63 +215,79 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
227
215
|
};
|
228
216
|
}, [adapter]);
|
229
217
|
|
230
|
-
//
|
231
|
-
|
232
|
-
|
233
|
-
isConnecting.current ||
|
234
|
-
|
235
|
-
!
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
218
|
+
// Connect the adapter to the wallet
|
219
|
+
const connect = useCallback(
|
220
|
+
async (walletName?) => {
|
221
|
+
if (isConnecting.current || isDisconnecting.current || connected || !walletName) return;
|
222
|
+
let walletToConnect = initialState;
|
223
|
+
if (!adapter || walletName !== adapter?.name) {
|
224
|
+
const selectedWallet = wallets.find((wAdapter) => wAdapter.adapter.name === walletName);
|
225
|
+
if (selectedWallet) {
|
226
|
+
walletToConnect = {
|
227
|
+
wallet: selectedWallet,
|
228
|
+
adapter: selectedWallet.adapter,
|
229
|
+
connected: selectedWallet.adapter.connected,
|
230
|
+
account: selectedWallet.adapter.publicAccount,
|
231
|
+
network: selectedWallet.adapter.network
|
232
|
+
};
|
233
|
+
}
|
234
|
+
setState(walletToConnect);
|
235
|
+
setName(walletName);
|
236
|
+
} else {
|
237
|
+
walletToConnect = {
|
238
|
+
wallet,
|
239
|
+
adapter,
|
240
|
+
connected,
|
241
|
+
account,
|
242
|
+
network
|
243
|
+
};
|
244
|
+
}
|
245
|
+
if (!walletToConnect.adapter) throw handleError(new WalletNotSelectedError());
|
246
|
+
if (
|
247
|
+
!(
|
248
|
+
walletToConnect.adapter.readyState === WalletReadyState.Installed ||
|
249
|
+
walletToConnect.adapter.readyState === WalletReadyState.Loadable
|
250
|
+
)
|
251
|
+
) {
|
252
|
+
// Clear the selected wallet
|
253
|
+
setName(null);
|
240
254
|
|
241
|
-
|
255
|
+
if (typeof window !== 'undefined') {
|
256
|
+
window.open(walletToConnect.adapter.url, '_blank');
|
257
|
+
}
|
258
|
+
|
259
|
+
throw handleError(new WalletNotReadyError('Wallet Not Ready'));
|
260
|
+
}
|
242
261
|
isConnecting.current = true;
|
243
262
|
setConnecting(true);
|
244
263
|
try {
|
245
|
-
await adapter.connect();
|
264
|
+
await walletToConnect.adapter.connect();
|
246
265
|
} catch (error: any) {
|
247
266
|
// Clear the selected wallet
|
248
267
|
setName(null);
|
249
|
-
//
|
268
|
+
// Rethrow the error, and handleError will also be called
|
269
|
+
throw error;
|
250
270
|
} finally {
|
251
271
|
setConnecting(false);
|
252
272
|
isConnecting.current = false;
|
253
273
|
}
|
254
|
-
}
|
255
|
-
|
256
|
-
|
257
|
-
// Connect the adapter to the wallet
|
258
|
-
const connect = useCallback(async () => {
|
259
|
-
if (isConnecting.current || isDisconnecting.current || connected) return;
|
260
|
-
|
261
|
-
if (!adapter) throw handleError(new WalletNotSelectedError());
|
262
|
-
|
263
|
-
if (!(readyState === WalletReadyState.Installed || readyState === WalletReadyState.Loadable)) {
|
264
|
-
// Clear the selected wallet
|
265
|
-
setName(null);
|
266
|
-
|
267
|
-
if (typeof window !== 'undefined') {
|
268
|
-
window.open(adapter.url, '_blank');
|
269
|
-
}
|
274
|
+
},
|
275
|
+
[connected, adapter, handleError, wallets, setName, wallet, account, network]
|
276
|
+
);
|
270
277
|
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
isConnecting.current = false;
|
285
|
-
}
|
286
|
-
}, [isConnecting, isDisconnecting, connected, adapter, readyState, handleError, setName]);
|
278
|
+
// If autoConnect is enabled, try to connect when the adapter changes and is ready
|
279
|
+
useEffect(() => {
|
280
|
+
if (
|
281
|
+
isConnecting.current ||
|
282
|
+
connected ||
|
283
|
+
!autoConnect ||
|
284
|
+
!name ||
|
285
|
+
!adapter ||
|
286
|
+
!(readyState === WalletReadyState.Installed || readyState === WalletReadyState.Loadable)
|
287
|
+
)
|
288
|
+
return;
|
289
|
+
connect(name);
|
290
|
+
}, [isConnecting, connected, autoConnect, name, connect, adapter, readyState]);
|
287
291
|
|
288
292
|
// Disconnect the adapter from the wallet
|
289
293
|
const disconnect = useCallback(async () => {
|
@@ -344,7 +348,7 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
344
348
|
connecting,
|
345
349
|
disconnecting,
|
346
350
|
autoConnect,
|
347
|
-
select:
|
351
|
+
select: connect,
|
348
352
|
connect,
|
349
353
|
disconnect,
|
350
354
|
signAndSubmitTransaction,
|
@@ -24,8 +24,8 @@ export interface WalletContextState {
|
|
24
24
|
connected: boolean;
|
25
25
|
disconnecting: boolean;
|
26
26
|
network: NetworkInfo;
|
27
|
-
select(walletName
|
28
|
-
connect(): Promise<void>;
|
27
|
+
select(walletName?: WalletName): Promise<void>;
|
28
|
+
connect(walletName?: WalletName): Promise<void>;
|
29
29
|
disconnect(): Promise<void>;
|
30
30
|
signAndSubmitTransaction(
|
31
31
|
transaction: Types.TransactionPayload,
|