@manahippo/aptos-wallet-adapter 0.3.8 → 0.4.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 +13 -4
- package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
- package/dist/WalletProviders/WalletProvider.js +33 -33
- package/dist/WalletProviders/WalletProvider.js.map +1 -1
- package/dist/WalletProviders/useWallet.d.ts +1 -1
- package/dist/WalletProviders/useWallet.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/WalletProviders/WalletProvider.tsx +37 -40
- package/src/WalletProviders/useWallet.ts +1 -1
package/README.md
CHANGED
@@ -42,7 +42,7 @@ Wallets source code [here](https://github.com/hippospace/aptos-wallet-adapter/tr
|
|
42
42
|
# Use React Provider
|
43
43
|
|
44
44
|
```typescript
|
45
|
-
import React from
|
45
|
+
import React from 'react';
|
46
46
|
import {
|
47
47
|
WalletProvider,
|
48
48
|
HippoWalletAdapter,
|
@@ -66,8 +66,9 @@ const App: React.FC = () => {
|
|
66
66
|
return (
|
67
67
|
<WalletProvider
|
68
68
|
wallets={wallets}
|
69
|
+
autoConnect={true | false} /** allow auto wallet connection or not **/
|
69
70
|
onError={(error: Error) => {
|
70
|
-
console.log('Handle Error Message', error)
|
71
|
+
console.log('Handle Error Message', error);
|
71
72
|
}}>
|
72
73
|
{/* your website */}
|
73
74
|
</WalletProvider>
|
@@ -106,13 +107,21 @@ import { AptosWalletName, useWallet } from "@manahippo/aptos-wallet-adapter"
|
|
106
107
|
|
107
108
|
...
|
108
109
|
|
109
|
-
const { connect, disconnect, connected } = useWallet();
|
110
|
+
const { connect, disconnect, connected, select } = useWallet();
|
111
|
+
|
112
|
+
/** If auto-connect is not enabled, you will require to do the connect() manually **/
|
113
|
+
useEffect(() => {
|
114
|
+
if (!autoConnect && currentWallet?.adapter) {
|
115
|
+
connect();
|
116
|
+
}
|
117
|
+
}, [autoConnect, currentWallet, connect]);
|
118
|
+
/** this is only required if you do not want auto connect wallet **/
|
110
119
|
|
111
120
|
if (!connected) {
|
112
121
|
return (
|
113
122
|
<button
|
114
123
|
onClick={() => {
|
115
|
-
|
124
|
+
select(); // E.g. connecting to the Aptos official wallet (Breaking Change)
|
116
125
|
}}
|
117
126
|
>
|
118
127
|
Connect
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../src/WalletProviders/WalletProvider.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../src/WalletProviders/WalletProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAEhF,OAAO,EACL,WAAW,EAIZ,MAAM,UAAU,CAAC;AAElB,OAAO,EAEL,aAAa,EAGd,MAAM,+BAA+B,CAAC;AAGvC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAcD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA6QlD,CAAC"}
|
@@ -11,9 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
12
|
exports.WalletProvider = void 0;
|
13
13
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
14
|
-
const useLocalStorage_1 = require("../hooks/useLocalStorage");
|
15
14
|
const react_1 = require("react");
|
16
15
|
const errors_1 = require("./errors");
|
16
|
+
const useLocalStorage_1 = require("../hooks/useLocalStorage");
|
17
17
|
const BaseAdapter_1 = require("../WalletAdapters/BaseAdapter");
|
18
18
|
const useWallet_1 = require("./useWallet");
|
19
19
|
const initialState = {
|
@@ -85,16 +85,21 @@ const WalletProvider = ({ children, wallets: adapters, autoConnect = false, onEr
|
|
85
85
|
// If the window is closing or reloading, ignore disconnect and error events from the adapter
|
86
86
|
(0, react_1.useEffect)(() => {
|
87
87
|
function listener() {
|
88
|
+
if (!autoConnect) {
|
89
|
+
setName(null);
|
90
|
+
}
|
88
91
|
isUnloading.current = true;
|
89
92
|
}
|
90
93
|
window.addEventListener('beforeunload', listener);
|
91
94
|
return () => window.removeEventListener('beforeunload', listener);
|
92
|
-
}, [isUnloading]);
|
95
|
+
}, [isUnloading, autoConnect]);
|
93
96
|
// Handle the adapter's connect event
|
94
97
|
const handleConnect = (0, react_1.useCallback)(() => {
|
95
98
|
if (!adapter)
|
96
99
|
return;
|
97
|
-
setState((state) =>
|
100
|
+
setState((state) => {
|
101
|
+
return Object.assign(Object.assign({}, state), { connected: adapter.connected, account: adapter.publicAccount });
|
102
|
+
});
|
98
103
|
}, [adapter]);
|
99
104
|
// Handle the adapter's disconnect event
|
100
105
|
const handleDisconnect = (0, react_1.useCallback)(() => {
|
@@ -156,40 +161,35 @@ const WalletProvider = ({ children, wallets: adapters, autoConnect = false, onEr
|
|
156
161
|
})();
|
157
162
|
}, [isConnecting, connected, autoConnect, adapter, readyState, setName]);
|
158
163
|
// Connect the adapter to the wallet
|
159
|
-
const connect = (0, react_1.useCallback)((
|
164
|
+
const connect = (0, react_1.useCallback)(() => __awaiter(void 0, void 0, void 0, function* () {
|
160
165
|
if (isConnecting.current || isDisconnecting.current || connected)
|
161
166
|
return;
|
162
|
-
if (!
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
// Clear the selected wallet
|
170
|
-
setName(null);
|
171
|
-
if (typeof window !== 'undefined') {
|
172
|
-
window.open(adapter.url, '_blank');
|
173
|
-
}
|
174
|
-
throw handleError(new errors_1.WalletNotReadyError());
|
175
|
-
}
|
176
|
-
isConnecting.current = true;
|
177
|
-
setConnecting(true);
|
178
|
-
try {
|
179
|
-
yield adapter.connect();
|
180
|
-
}
|
181
|
-
catch (error) {
|
182
|
-
// Clear the selected wallet
|
183
|
-
setName(null);
|
184
|
-
// Rethrow the error, and handleError will also be called
|
185
|
-
throw error;
|
186
|
-
}
|
187
|
-
finally {
|
188
|
-
setConnecting(false);
|
189
|
-
isConnecting.current = false;
|
167
|
+
if (!adapter)
|
168
|
+
throw handleError(new errors_1.WalletNotSelectedError());
|
169
|
+
if (!(readyState === BaseAdapter_1.WalletReadyState.Installed || readyState === BaseAdapter_1.WalletReadyState.Loadable)) {
|
170
|
+
// Clear the selected wallet
|
171
|
+
setName(null);
|
172
|
+
if (typeof window !== 'undefined') {
|
173
|
+
window.open(adapter.url, '_blank');
|
190
174
|
}
|
175
|
+
throw handleError(new errors_1.WalletNotReadyError());
|
176
|
+
}
|
177
|
+
isConnecting.current = true;
|
178
|
+
setConnecting(true);
|
179
|
+
try {
|
180
|
+
yield adapter.connect();
|
181
|
+
}
|
182
|
+
catch (error) {
|
183
|
+
// Clear the selected wallet
|
184
|
+
setName(null);
|
185
|
+
// Rethrow the error, and handleError will also be called
|
186
|
+
throw error;
|
187
|
+
}
|
188
|
+
finally {
|
189
|
+
setConnecting(false);
|
190
|
+
isConnecting.current = false;
|
191
191
|
}
|
192
|
-
}), [isConnecting, isDisconnecting, connected, adapter, readyState, handleError, setName
|
192
|
+
}), [isConnecting, isDisconnecting, connected, adapter, readyState, handleError, setName]);
|
193
193
|
// Disconnect the adapter from the wallet
|
194
194
|
const disconnect = (0, react_1.useCallback)(() => __awaiter(void 0, void 0, void 0, function* () {
|
195
195
|
if (isDisconnecting.current)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProviders/WalletProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,
|
1
|
+
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProviders/WalletProvider.tsx"],"names":[],"mappings":"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"}
|
@@ -14,7 +14,7 @@ export interface WalletContextState {
|
|
14
14
|
connected: boolean;
|
15
15
|
disconnecting: boolean;
|
16
16
|
select(walletName: WalletName): void;
|
17
|
-
connect(
|
17
|
+
connect(): Promise<void>;
|
18
18
|
disconnect(): Promise<void>;
|
19
19
|
signAndSubmitTransaction(transaction: TransactionPayload, options?: any): Promise<{
|
20
20
|
hash: HexEncodedBytes;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../src/WalletProviders/useWallet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACrC,OAAO,
|
1
|
+
{"version":3,"file":"useWallet.d.ts","sourceRoot":"","sources":["../../src/WalletProviders/useWallet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,MAAM;IACrB,OAAO,EAAE,aAAa,CAAC;IACvB,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IACrC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,wBAAwB,CACtB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACtC,eAAe,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C;AASD,eAAO,MAAM,aAAa,6CAEzB,CAAC;AAEF,wBAAgB,SAAS,IAAI,kBAAkB,CAE9C"}
|
package/package.json
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
import { useLocalStorage } from '../hooks/useLocalStorage';
|
2
1
|
import { FC, ReactNode, useCallback, useEffect, useRef, useState } from 'react';
|
3
2
|
import { TransactionPayload } from 'aptos/src/generated';
|
4
3
|
import {
|
@@ -7,6 +6,7 @@ import {
|
|
7
6
|
WalletNotReadyError,
|
8
7
|
WalletNotSelectedError
|
9
8
|
} from './errors';
|
9
|
+
import { useLocalStorage } from '../hooks/useLocalStorage';
|
10
10
|
import {
|
11
11
|
AccountKeys,
|
12
12
|
WalletAdapter,
|
@@ -118,21 +118,26 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
118
118
|
// If the window is closing or reloading, ignore disconnect and error events from the adapter
|
119
119
|
useEffect(() => {
|
120
120
|
function listener() {
|
121
|
+
if (!autoConnect) {
|
122
|
+
setName(null);
|
123
|
+
}
|
121
124
|
isUnloading.current = true;
|
122
125
|
}
|
123
126
|
|
124
127
|
window.addEventListener('beforeunload', listener);
|
125
128
|
return () => window.removeEventListener('beforeunload', listener);
|
126
|
-
}, [isUnloading]);
|
129
|
+
}, [isUnloading, autoConnect]);
|
127
130
|
|
128
131
|
// Handle the adapter's connect event
|
129
132
|
const handleConnect = useCallback(() => {
|
130
133
|
if (!adapter) return;
|
131
|
-
setState((state) =>
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
134
|
+
setState((state) => {
|
135
|
+
return {
|
136
|
+
...state,
|
137
|
+
connected: adapter.connected,
|
138
|
+
account: adapter.publicAccount
|
139
|
+
};
|
140
|
+
});
|
136
141
|
}, [adapter]);
|
137
142
|
|
138
143
|
// Handle the adapter's disconnect event
|
@@ -200,43 +205,35 @@ export const WalletProvider: FC<WalletProviderProps> = ({
|
|
200
205
|
}, [isConnecting, connected, autoConnect, adapter, readyState, setName]);
|
201
206
|
|
202
207
|
// Connect the adapter to the wallet
|
203
|
-
const connect = useCallback(
|
204
|
-
|
205
|
-
if (isConnecting.current || isDisconnecting.current || connected) return;
|
206
|
-
if (!name) {
|
207
|
-
setName(walletName);
|
208
|
-
} else {
|
209
|
-
if (!adapter) throw handleError(new WalletNotSelectedError());
|
208
|
+
const connect = useCallback(async () => {
|
209
|
+
if (isConnecting.current || isDisconnecting.current || connected) return;
|
210
210
|
|
211
|
-
|
212
|
-
!(readyState === WalletReadyState.Installed || readyState === WalletReadyState.Loadable)
|
213
|
-
) {
|
214
|
-
// Clear the selected wallet
|
215
|
-
setName(null);
|
211
|
+
if (!adapter) throw handleError(new WalletNotSelectedError());
|
216
212
|
|
217
|
-
|
218
|
-
|
219
|
-
|
213
|
+
if (!(readyState === WalletReadyState.Installed || readyState === WalletReadyState.Loadable)) {
|
214
|
+
// Clear the selected wallet
|
215
|
+
setName(null);
|
220
216
|
|
221
|
-
|
222
|
-
|
223
|
-
isConnecting.current = true;
|
224
|
-
setConnecting(true);
|
225
|
-
try {
|
226
|
-
await adapter.connect();
|
227
|
-
} catch (error: any) {
|
228
|
-
// Clear the selected wallet
|
229
|
-
setName(null);
|
230
|
-
// Rethrow the error, and handleError will also be called
|
231
|
-
throw error;
|
232
|
-
} finally {
|
233
|
-
setConnecting(false);
|
234
|
-
isConnecting.current = false;
|
235
|
-
}
|
217
|
+
if (typeof window !== 'undefined') {
|
218
|
+
window.open(adapter.url, '_blank');
|
236
219
|
}
|
237
|
-
|
238
|
-
|
239
|
-
|
220
|
+
|
221
|
+
throw handleError(new WalletNotReadyError());
|
222
|
+
}
|
223
|
+
isConnecting.current = true;
|
224
|
+
setConnecting(true);
|
225
|
+
try {
|
226
|
+
await adapter.connect();
|
227
|
+
} catch (error: any) {
|
228
|
+
// Clear the selected wallet
|
229
|
+
setName(null);
|
230
|
+
// Rethrow the error, and handleError will also be called
|
231
|
+
throw error;
|
232
|
+
} finally {
|
233
|
+
setConnecting(false);
|
234
|
+
isConnecting.current = false;
|
235
|
+
}
|
236
|
+
}, [isConnecting, isDisconnecting, connected, adapter, readyState, handleError, setName]);
|
240
237
|
|
241
238
|
// Disconnect the adapter from the wallet
|
242
239
|
const disconnect = useCallback(async () => {
|
@@ -21,7 +21,7 @@ export interface WalletContextState {
|
|
21
21
|
connected: boolean;
|
22
22
|
disconnecting: boolean;
|
23
23
|
select(walletName: WalletName): void;
|
24
|
-
connect(
|
24
|
+
connect(): Promise<void>;
|
25
25
|
disconnect(): Promise<void>;
|
26
26
|
signAndSubmitTransaction(
|
27
27
|
transaction: TransactionPayload,
|