@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.
- package/README.md +4 -2
- package/dist/WalletAdapters/AptosSnap.d.ts +15 -9
- package/dist/WalletAdapters/AptosSnap.d.ts.map +1 -1
- package/dist/WalletAdapters/AptosSnap.js +41 -2
- package/dist/WalletAdapters/AptosSnap.js.map +1 -1
- package/dist/WalletAdapters/BaseAdapter.d.ts +25 -8
- package/dist/WalletAdapters/BaseAdapter.d.ts.map +1 -1
- package/dist/WalletAdapters/BaseAdapter.js +7 -1
- package/dist/WalletAdapters/BaseAdapter.js.map +1 -1
- package/dist/WalletAdapters/FewchaWallet.d.ts +11 -5
- package/dist/WalletAdapters/FewchaWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/FewchaWallet.js +54 -3
- package/dist/WalletAdapters/FewchaWallet.js.map +1 -1
- package/dist/WalletAdapters/FletchWallet.d.ts +11 -5
- package/dist/WalletAdapters/FletchWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/FletchWallet.js +41 -2
- package/dist/WalletAdapters/FletchWallet.js.map +1 -1
- package/dist/WalletAdapters/HippoExtensionWallet.d.ts +11 -6
- package/dist/WalletAdapters/HippoExtensionWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/HippoExtensionWallet.js +41 -2
- package/dist/WalletAdapters/HippoExtensionWallet.js.map +1 -1
- package/dist/WalletAdapters/HippoWallet.d.ts +11 -6
- package/dist/WalletAdapters/HippoWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/HippoWallet.js +33 -2
- package/dist/WalletAdapters/HippoWallet.js.map +1 -1
- package/dist/WalletAdapters/HyperPayWallet.d.ts +13 -8
- package/dist/WalletAdapters/HyperPayWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/HyperPayWallet.js +39 -0
- package/dist/WalletAdapters/HyperPayWallet.js.map +1 -1
- package/dist/WalletAdapters/MartianWallet.d.ts +19 -8
- package/dist/WalletAdapters/MartianWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/MartianWallet.js +63 -2
- package/dist/WalletAdapters/MartianWallet.js.map +1 -1
- package/dist/WalletAdapters/NightlyWallet.d.ts +8 -2
- package/dist/WalletAdapters/NightlyWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/NightlyWallet.js +44 -7
- package/dist/WalletAdapters/NightlyWallet.js.map +1 -1
- package/dist/WalletAdapters/PetraWallet.d.ts +25 -11
- package/dist/WalletAdapters/PetraWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/PetraWallet.js +66 -2
- package/dist/WalletAdapters/PetraWallet.js.map +1 -1
- package/dist/WalletAdapters/PontemWallet.d.ts +17 -9
- package/dist/WalletAdapters/PontemWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/PontemWallet.js +65 -2
- package/dist/WalletAdapters/PontemWallet.js.map +1 -1
- package/dist/WalletAdapters/RiseWallet.d.ts +12 -7
- package/dist/WalletAdapters/RiseWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/RiseWallet.js +41 -2
- package/dist/WalletAdapters/RiseWallet.js.map +1 -1
- package/dist/WalletAdapters/SpikaWallet.d.ts +12 -6
- package/dist/WalletAdapters/SpikaWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/SpikaWallet.js +41 -2
- package/dist/WalletAdapters/SpikaWallet.js.map +1 -1
- package/dist/WalletProviders/WalletProvider.d.ts.map +1 -1
- package/dist/WalletProviders/WalletProvider.js +45 -6
- package/dist/WalletProviders/WalletProvider.js.map +1 -1
- package/dist/WalletProviders/errors.d.ts +9 -0
- package/dist/WalletProviders/errors.d.ts.map +1 -1
- package/dist/WalletProviders/errors.js +22 -1
- package/dist/WalletProviders/errors.js.map +1 -1
- package/dist/WalletProviders/useWallet.d.ts +6 -5
- package/dist/WalletProviders/useWallet.d.ts.map +1 -1
- package/dist/WalletProviders/useWallet.js.map +1 -1
- package/dist/utilities/util.d.ts +2 -2
- package/dist/utilities/util.d.ts.map +1 -1
- package/dist/utilities/util.js.map +1 -1
- package/package.json +2 -2
- package/src/WalletAdapters/AptosSnap.ts +58 -20
- package/src/WalletAdapters/BaseAdapter.ts +29 -8
- package/src/WalletAdapters/FewchaWallet.ts +72 -10
- package/src/WalletAdapters/FletchWallet.ts +226 -182
- package/src/WalletAdapters/HippoExtensionWallet.ts +50 -8
- package/src/WalletAdapters/HippoWallet.ts +51 -10
- package/src/WalletAdapters/HyperPayWallet.ts +53 -8
- package/src/WalletAdapters/MartianWallet.ts +86 -10
- package/src/WalletAdapters/NightlyWallet.ts +54 -10
- package/src/WalletAdapters/PetraWallet.ts +91 -11
- package/src/WalletAdapters/PontemWallet.ts +87 -11
- package/src/WalletAdapters/RiseWallet.ts +51 -9
- package/src/WalletAdapters/SpikaWallet.ts +54 -8
- package/src/WalletProviders/WalletProvider.tsx +57 -8
- package/src/WalletProviders/errors.ts +11 -0
- package/src/WalletProviders/useWallet.ts +6 -4
- package/src/utilities/util.ts +3 -3
@@ -1,5 +1,5 @@
|
|
1
1
|
import { FC, ReactNode, useCallback, useEffect, useRef, useState } from 'react';
|
2
|
-
import {
|
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
|
-
}, [
|
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 {
|
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>;
|
package/src/utilities/util.ts
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
import {
|
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,
|