@reown/appkit-core-react-native 2.0.0-alpha.0 → 2.0.0-alpha.2
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/lib/commonjs/controllers/ApiController.js +16 -5
- package/lib/commonjs/controllers/ApiController.js.map +1 -1
- package/lib/commonjs/controllers/AssetController.js.map +1 -1
- package/lib/commonjs/controllers/BlockchainApiController.js +103 -111
- package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionController.js +1 -10
- package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionsController.js +313 -52
- package/lib/commonjs/controllers/ConnectionsController.js.map +1 -1
- package/lib/commonjs/controllers/EnsController.js +4 -4
- package/lib/commonjs/controllers/EnsController.js.map +1 -1
- package/lib/commonjs/controllers/EventsController.js +4 -4
- package/lib/commonjs/controllers/EventsController.js.map +1 -1
- package/lib/commonjs/controllers/ModalController.js +6 -7
- package/lib/commonjs/controllers/ModalController.js.map +1 -1
- package/lib/commonjs/controllers/OnRampController.js +117 -53
- package/lib/commonjs/controllers/OnRampController.js.map +1 -1
- package/lib/commonjs/controllers/OptionsController.js +14 -0
- package/lib/commonjs/controllers/OptionsController.js.map +1 -1
- package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
- package/lib/commonjs/controllers/RouterController.js +1 -22
- package/lib/commonjs/controllers/RouterController.js.map +1 -1
- package/lib/commonjs/controllers/SendController.js +101 -101
- package/lib/commonjs/controllers/SendController.js.map +1 -1
- package/lib/commonjs/controllers/SnackController.js +29 -5
- package/lib/commonjs/controllers/SnackController.js.map +1 -1
- package/lib/commonjs/controllers/SwapController.js +140 -147
- package/lib/commonjs/controllers/SwapController.js.map +1 -1
- package/lib/commonjs/controllers/ThemeController.js.map +1 -1
- package/lib/commonjs/controllers/TransactionsController.js +23 -19
- package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
- package/lib/commonjs/index.js +0 -35
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/utils/ApiUtil.js.map +1 -1
- package/lib/commonjs/utils/AssetUtil.js +3 -14
- package/lib/commonjs/utils/AssetUtil.js.map +1 -1
- package/lib/commonjs/utils/ConstantsUtil.js +122 -426
- package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
- package/lib/commonjs/utils/CoreHelperUtil.js +13 -8
- package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
- package/lib/commonjs/utils/EventUtil.js.map +1 -1
- package/lib/commonjs/utils/FetchUtil.js +34 -10
- package/lib/commonjs/utils/FetchUtil.js.map +1 -1
- package/lib/commonjs/utils/RouterUtil.js.map +1 -1
- package/lib/commonjs/utils/StorageUtil.js +86 -92
- package/lib/commonjs/utils/StorageUtil.js.map +1 -1
- package/lib/commonjs/utils/SwapApiUtil.js +11 -22
- package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
- package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
- package/lib/commonjs/utils/TypeUtil.js +25 -0
- package/lib/commonjs/utils/TypeUtil.js.map +1 -1
- package/lib/module/controllers/ApiController.js +18 -6
- package/lib/module/controllers/ApiController.js.map +1 -1
- package/lib/module/controllers/AssetController.js +2 -0
- package/lib/module/controllers/AssetController.js.map +1 -1
- package/lib/module/controllers/BlockchainApiController.js +104 -110
- package/lib/module/controllers/BlockchainApiController.js.map +1 -1
- package/lib/module/controllers/ConnectionController.js +3 -10
- package/lib/module/controllers/ConnectionController.js.map +1 -1
- package/lib/module/controllers/ConnectionsController.js +314 -51
- package/lib/module/controllers/ConnectionsController.js.map +1 -1
- package/lib/module/controllers/EnsController.js +4 -2
- package/lib/module/controllers/EnsController.js.map +1 -1
- package/lib/module/controllers/EventsController.js +3 -1
- package/lib/module/controllers/EventsController.js.map +1 -1
- package/lib/module/controllers/ModalController.js +8 -7
- package/lib/module/controllers/ModalController.js.map +1 -1
- package/lib/module/controllers/OnRampController.js +118 -52
- package/lib/module/controllers/OnRampController.js.map +1 -1
- package/lib/module/controllers/OptionsController.js +16 -0
- package/lib/module/controllers/OptionsController.js.map +1 -1
- package/lib/module/controllers/PublicStateController.js +2 -0
- package/lib/module/controllers/PublicStateController.js.map +1 -1
- package/lib/module/controllers/RouterController.js +3 -22
- package/lib/module/controllers/RouterController.js.map +1 -1
- package/lib/module/controllers/SendController.js +100 -98
- package/lib/module/controllers/SendController.js.map +1 -1
- package/lib/module/controllers/SnackController.js +31 -5
- package/lib/module/controllers/SnackController.js.map +1 -1
- package/lib/module/controllers/SwapController.js +142 -147
- package/lib/module/controllers/SwapController.js.map +1 -1
- package/lib/module/controllers/ThemeController.js +2 -0
- package/lib/module/controllers/ThemeController.js.map +1 -1
- package/lib/module/controllers/TransactionsController.js +23 -17
- package/lib/module/controllers/TransactionsController.js.map +1 -1
- package/lib/module/index.js +2 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/ApiUtil.js +2 -0
- package/lib/module/utils/ApiUtil.js.map +1 -1
- package/lib/module/utils/AssetUtil.js +5 -14
- package/lib/module/utils/AssetUtil.js.map +1 -1
- package/lib/module/utils/ConstantsUtil.js +124 -426
- package/lib/module/utils/ConstantsUtil.js.map +1 -1
- package/lib/module/utils/CoreHelperUtil.js +14 -6
- package/lib/module/utils/CoreHelperUtil.js.map +1 -1
- package/lib/module/utils/EventUtil.js +2 -0
- package/lib/module/utils/EventUtil.js.map +1 -1
- package/lib/module/utils/FetchUtil.js +36 -10
- package/lib/module/utils/FetchUtil.js.map +1 -1
- package/lib/module/utils/RouterUtil.js +2 -0
- package/lib/module/utils/RouterUtil.js.map +1 -1
- package/lib/module/utils/StorageUtil.js +89 -91
- package/lib/module/utils/StorageUtil.js.map +1 -1
- package/lib/module/utils/SwapApiUtil.js +13 -22
- package/lib/module/utils/SwapApiUtil.js.map +1 -1
- package/lib/module/utils/SwapCalculationUtil.js +2 -0
- package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
- package/lib/module/utils/TypeUtil.js +25 -1
- package/lib/module/utils/TypeUtil.js.map +1 -1
- package/lib/typescript/controllers/ApiController.d.ts +2 -1
- package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/BlockchainApiController.d.ts +20 -13
- package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/ConnectionController.d.ts +3 -16
- package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
- package/lib/typescript/controllers/ConnectionsController.d.ts +26 -22
- package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -1
- package/lib/typescript/controllers/ModalController.d.ts +1 -1
- package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
- package/lib/typescript/controllers/OnRampController.d.ts +3 -2
- package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
- package/lib/typescript/controllers/OptionsController.d.ts +7 -2
- package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
- package/lib/typescript/controllers/RouterController.d.ts +4 -17
- package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
- package/lib/typescript/controllers/SendController.d.ts +5 -7
- package/lib/typescript/controllers/SendController.d.ts.map +1 -1
- package/lib/typescript/controllers/SnackController.d.ts +3 -3
- package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
- package/lib/typescript/controllers/SwapController.d.ts +12 -11
- package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
- package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
- package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +0 -5
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/AssetUtil.d.ts +2 -3
- package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
- package/lib/typescript/utils/ConstantsUtil.d.ts +7 -414
- package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
- package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
- package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
- package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
- package/lib/typescript/utils/StorageUtil.d.ts +11 -15
- package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
- package/lib/typescript/utils/SwapApiUtil.d.ts +3 -3
- package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
- package/lib/typescript/utils/TypeUtil.d.ts +54 -177
- package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
- package/package.json +9 -23
- package/src/controllers/ApiController.ts +17 -4
- package/src/controllers/BlockchainApiController.ts +74 -119
- package/src/controllers/ConnectionController.ts +5 -28
- package/src/controllers/ConnectionsController.ts +399 -92
- package/src/controllers/EnsController.ts +2 -2
- package/src/controllers/EventsController.ts +1 -1
- package/src/controllers/ModalController.ts +7 -9
- package/src/controllers/OnRampController.ts +178 -81
- package/src/controllers/OptionsController.ts +22 -9
- package/src/controllers/RouterController.ts +4 -54
- package/src/controllers/SendController.ts +124 -113
- package/src/controllers/SnackController.ts +31 -5
- package/src/controllers/SwapController.ts +165 -181
- package/src/controllers/TransactionsController.ts +24 -18
- package/src/index.ts +0 -15
- package/src/utils/AssetUtil.ts +4 -18
- package/src/utils/ConstantsUtil.ts +125 -428
- package/src/utils/CoreHelperUtil.ts +30 -8
- package/src/utils/FetchUtil.ts +37 -10
- package/src/utils/StorageUtil.ts +165 -106
- package/src/utils/SwapApiUtil.ts +25 -42
- package/src/utils/TypeUtil.ts +64 -171
- package/lib/commonjs/controllers/AccountController.js +0 -93
- package/lib/commonjs/controllers/AccountController.js.map +0 -1
- package/lib/commonjs/controllers/ConnectorController.js +0 -50
- package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
- package/lib/commonjs/controllers/NetworkController.js +0 -90
- package/lib/commonjs/controllers/NetworkController.js.map +0 -1
- package/lib/commonjs/controllers/WebviewController.js +0 -52
- package/lib/commonjs/controllers/WebviewController.js.map +0 -1
- package/lib/commonjs/utils/NetworkUtil.js +0 -46
- package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
- package/lib/module/controllers/AccountController.js +0 -88
- package/lib/module/controllers/AccountController.js.map +0 -1
- package/lib/module/controllers/ConnectorController.js +0 -45
- package/lib/module/controllers/ConnectorController.js.map +0 -1
- package/lib/module/controllers/NetworkController.js +0 -85
- package/lib/module/controllers/NetworkController.js.map +0 -1
- package/lib/module/controllers/WebviewController.js +0 -47
- package/lib/module/controllers/WebviewController.js.map +0 -1
- package/lib/module/utils/NetworkUtil.js +0 -40
- package/lib/module/utils/NetworkUtil.js.map +0 -1
- package/lib/typescript/controllers/AccountController.d.ts +0 -33
- package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
- package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
- package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
- package/lib/typescript/controllers/NetworkController.d.ts +0 -34
- package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
- package/lib/typescript/controllers/WebviewController.d.ts +0 -21
- package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
- package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
- package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
- package/src/controllers/AccountController.ts +0 -128
- package/src/controllers/ConnectorController.ts +0 -64
- package/src/controllers/NetworkController.ts +0 -120
- package/src/controllers/WebviewController.ts +0 -63
- package/src/utils/NetworkUtil.ts +0 -33
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { proxy } from 'valtio';
|
|
2
|
-
import { subscribeKey as subKey } from 'valtio/utils';
|
|
3
|
-
import type { Balance, CaipAddress } from '@reown/appkit-common-react-native';
|
|
4
|
-
|
|
5
|
-
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
6
|
-
import type { AppKitFrameAccountType, ConnectedWalletInfo } from '../utils/TypeUtil';
|
|
7
|
-
import { NetworkController } from './NetworkController';
|
|
8
|
-
import { BlockchainApiController } from './BlockchainApiController';
|
|
9
|
-
import { SnackController } from './SnackController';
|
|
10
|
-
|
|
11
|
-
// -- Types --------------------------------------------- //
|
|
12
|
-
export interface AccountControllerState {
|
|
13
|
-
isConnected: boolean;
|
|
14
|
-
caipAddress?: CaipAddress;
|
|
15
|
-
address?: string;
|
|
16
|
-
balance?: string;
|
|
17
|
-
balanceSymbol?: string;
|
|
18
|
-
tokenBalance?: Balance[];
|
|
19
|
-
profileName?: string;
|
|
20
|
-
profileImage?: string;
|
|
21
|
-
addressExplorerUrl?: string;
|
|
22
|
-
connectedWalletInfo?: ConnectedWalletInfo;
|
|
23
|
-
preferredAccountType?: AppKitFrameAccountType;
|
|
24
|
-
smartAccountDeployed?: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
type StateKey = keyof AccountControllerState;
|
|
28
|
-
|
|
29
|
-
// -- State --------------------------------------------- //
|
|
30
|
-
const state = proxy<AccountControllerState>({
|
|
31
|
-
isConnected: false,
|
|
32
|
-
tokenBalance: [],
|
|
33
|
-
smartAccountDeployed: false,
|
|
34
|
-
preferredAccountType: 'eoa'
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
// -- Controller ---------------------------------------- //
|
|
38
|
-
export const AccountController = {
|
|
39
|
-
state,
|
|
40
|
-
|
|
41
|
-
subscribeKey<K extends StateKey>(key: K, callback: (value: AccountControllerState[K]) => void) {
|
|
42
|
-
return subKey(state, key, callback);
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
setIsConnected(isConnected: AccountControllerState['isConnected']) {
|
|
46
|
-
state.isConnected = isConnected;
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
setCaipAddress(caipAddress: AccountControllerState['caipAddress']) {
|
|
50
|
-
const address = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;
|
|
51
|
-
state.caipAddress = caipAddress;
|
|
52
|
-
state.address = address;
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
setBalance(
|
|
56
|
-
balance: AccountControllerState['balance'],
|
|
57
|
-
balanceSymbol: AccountControllerState['balanceSymbol']
|
|
58
|
-
) {
|
|
59
|
-
state.balance = balance;
|
|
60
|
-
state.balanceSymbol = balanceSymbol;
|
|
61
|
-
},
|
|
62
|
-
|
|
63
|
-
setTokenBalance(tokenBalance: AccountControllerState['tokenBalance']) {
|
|
64
|
-
state.tokenBalance = tokenBalance;
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
setProfileName(profileName: AccountControllerState['profileName']) {
|
|
68
|
-
state.profileName = profileName;
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
setProfileImage(profileImage: AccountControllerState['profileImage']) {
|
|
72
|
-
state.profileImage = profileImage;
|
|
73
|
-
},
|
|
74
|
-
|
|
75
|
-
setConnectedWalletInfo(connectedWalletInfo: AccountControllerState['connectedWalletInfo']) {
|
|
76
|
-
state.connectedWalletInfo = connectedWalletInfo;
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
setAddressExplorerUrl(explorerUrl: AccountControllerState['addressExplorerUrl']) {
|
|
80
|
-
state.addressExplorerUrl = explorerUrl;
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
setPreferredAccountType(accountType: AccountControllerState['preferredAccountType']) {
|
|
84
|
-
state.preferredAccountType = accountType;
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
setSmartAccountDeployed(smartAccountDeployed: AccountControllerState['smartAccountDeployed']) {
|
|
88
|
-
state.smartAccountDeployed = smartAccountDeployed;
|
|
89
|
-
},
|
|
90
|
-
|
|
91
|
-
async fetchTokenBalance() {
|
|
92
|
-
const chainId = NetworkController.state.caipNetwork?.id;
|
|
93
|
-
const address = AccountController.state.address;
|
|
94
|
-
|
|
95
|
-
try {
|
|
96
|
-
if (address && chainId) {
|
|
97
|
-
const response = await BlockchainApiController.getBalance(address, chainId);
|
|
98
|
-
|
|
99
|
-
if (!response) {
|
|
100
|
-
throw new Error('Failed to fetch token balance');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const filteredBalances = response.balances.filter(
|
|
104
|
-
balance => balance.quantity.decimals !== '0'
|
|
105
|
-
);
|
|
106
|
-
|
|
107
|
-
this.setTokenBalance(filteredBalances);
|
|
108
|
-
}
|
|
109
|
-
} catch (error) {
|
|
110
|
-
SnackController.showError('Failed to fetch token balance');
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
resetAccount() {
|
|
115
|
-
state.isConnected = false;
|
|
116
|
-
state.caipAddress = undefined;
|
|
117
|
-
state.address = undefined;
|
|
118
|
-
state.balance = undefined;
|
|
119
|
-
state.balanceSymbol = undefined;
|
|
120
|
-
state.profileName = undefined;
|
|
121
|
-
state.profileImage = undefined;
|
|
122
|
-
state.addressExplorerUrl = undefined;
|
|
123
|
-
state.tokenBalance = [];
|
|
124
|
-
state.connectedWalletInfo = undefined;
|
|
125
|
-
state.preferredAccountType = 'eoa';
|
|
126
|
-
state.smartAccountDeployed = false;
|
|
127
|
-
}
|
|
128
|
-
};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import type { ConnectorType } from '@reown/appkit-common-react-native';
|
|
2
|
-
import { subscribeKey as subKey } from 'valtio/utils';
|
|
3
|
-
import { proxy, ref } from 'valtio';
|
|
4
|
-
import type { Connector } from '../utils/TypeUtil';
|
|
5
|
-
import { StorageUtil } from '../utils/StorageUtil';
|
|
6
|
-
|
|
7
|
-
// -- Types --------------------------------------------- //
|
|
8
|
-
export interface ConnectorControllerState {
|
|
9
|
-
connectors: Connector[];
|
|
10
|
-
connectedConnector?: ConnectorType;
|
|
11
|
-
authLoading?: boolean;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
type StateKey = keyof ConnectorControllerState;
|
|
15
|
-
|
|
16
|
-
// -- State --------------------------------------------- //
|
|
17
|
-
const state = proxy<ConnectorControllerState>({
|
|
18
|
-
connectors: []
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
// -- Controller ---------------------------------------- //
|
|
22
|
-
export const ConnectorController = {
|
|
23
|
-
state,
|
|
24
|
-
|
|
25
|
-
subscribeKey<K extends StateKey>(key: K, callback: (value: ConnectorControllerState[K]) => void) {
|
|
26
|
-
return subKey(state, key, callback);
|
|
27
|
-
},
|
|
28
|
-
|
|
29
|
-
setConnectors(connectors: ConnectorControllerState['connectors']) {
|
|
30
|
-
state.connectors = connectors.map(c => ref(c));
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
addConnector(connector: Connector) {
|
|
34
|
-
state.connectors = [...state.connectors, ref(connector)];
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
getConnectors() {
|
|
38
|
-
return state.connectors;
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
getAuthConnector() {
|
|
42
|
-
return state.connectors.find(c => c.type === 'AUTH');
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
setConnectedConnector(
|
|
46
|
-
connectorType: ConnectorControllerState['connectedConnector'],
|
|
47
|
-
saveStorage = true
|
|
48
|
-
) {
|
|
49
|
-
state.connectedConnector = connectorType;
|
|
50
|
-
|
|
51
|
-
if (saveStorage) {
|
|
52
|
-
if (connectorType) {
|
|
53
|
-
//TODO: Check this
|
|
54
|
-
StorageUtil.setConnectedConnector(connectorType);
|
|
55
|
-
} else {
|
|
56
|
-
StorageUtil.removeConnectedConnector();
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
|
|
61
|
-
setAuthLoading(loading: ConnectorControllerState['authLoading']) {
|
|
62
|
-
state.authLoading = loading;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { proxy, ref } from 'valtio';
|
|
2
|
-
import type { CaipNetwork, CaipNetworkId } from '@reown/appkit-common-react-native';
|
|
3
|
-
import { PublicStateController } from './PublicStateController';
|
|
4
|
-
import { NetworkUtil } from '@reown/appkit-common-react-native';
|
|
5
|
-
import { ConstantsUtil } from '../utils/ConstantsUtil';
|
|
6
|
-
|
|
7
|
-
// -- Types --------------------------------------------- //
|
|
8
|
-
export interface NetworkControllerClient {
|
|
9
|
-
switchCaipNetwork: (network: NetworkControllerState['caipNetwork']) => Promise<void>;
|
|
10
|
-
getApprovedCaipNetworksData: () => Promise<{
|
|
11
|
-
approvedCaipNetworkIds: NetworkControllerState['approvedCaipNetworkIds'];
|
|
12
|
-
supportsAllNetworks: NetworkControllerState['supportsAllNetworks'];
|
|
13
|
-
}>;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface NetworkControllerState {
|
|
17
|
-
supportsAllNetworks: boolean;
|
|
18
|
-
isDefaultCaipNetwork: boolean;
|
|
19
|
-
_client?: NetworkControllerClient;
|
|
20
|
-
caipNetwork?: CaipNetwork;
|
|
21
|
-
requestedCaipNetworks?: CaipNetwork[];
|
|
22
|
-
approvedCaipNetworkIds?: CaipNetworkId[];
|
|
23
|
-
smartAccountEnabledNetworks: number[];
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
// -- State --------------------------------------------- //
|
|
27
|
-
const state = proxy<NetworkControllerState>({
|
|
28
|
-
supportsAllNetworks: true,
|
|
29
|
-
isDefaultCaipNetwork: false,
|
|
30
|
-
smartAccountEnabledNetworks: []
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
// -- Controller ---------------------------------------- //
|
|
34
|
-
export const NetworkController = {
|
|
35
|
-
state,
|
|
36
|
-
|
|
37
|
-
_getClient() {
|
|
38
|
-
if (!state._client) {
|
|
39
|
-
throw new Error('NetworkController client not set');
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return state._client;
|
|
43
|
-
},
|
|
44
|
-
|
|
45
|
-
setClient(client: NetworkControllerClient) {
|
|
46
|
-
state._client = ref(client);
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
setCaipNetwork(caipNetwork: NetworkControllerState['caipNetwork']) {
|
|
50
|
-
state.caipNetwork = caipNetwork;
|
|
51
|
-
PublicStateController.set({ selectedNetworkId: caipNetwork?.id });
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
setDefaultCaipNetwork(caipNetwork: NetworkControllerState['caipNetwork']) {
|
|
55
|
-
state.caipNetwork = caipNetwork;
|
|
56
|
-
state.isDefaultCaipNetwork = true;
|
|
57
|
-
PublicStateController.set({ selectedNetworkId: caipNetwork?.id });
|
|
58
|
-
},
|
|
59
|
-
|
|
60
|
-
setRequestedCaipNetworks(requestedNetworks: NetworkControllerState['requestedCaipNetworks']) {
|
|
61
|
-
state.requestedCaipNetworks = requestedNetworks;
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
setSmartAccountEnabledNetworks(
|
|
65
|
-
smartAccountEnabledNetworks: NetworkControllerState['smartAccountEnabledNetworks']
|
|
66
|
-
) {
|
|
67
|
-
state.smartAccountEnabledNetworks = smartAccountEnabledNetworks;
|
|
68
|
-
},
|
|
69
|
-
|
|
70
|
-
checkIfSmartAccountEnabled() {
|
|
71
|
-
const networkId = NetworkUtil.caipNetworkIdToNumber(state.caipNetwork?.id);
|
|
72
|
-
|
|
73
|
-
if (!networkId) {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return Boolean(state.smartAccountEnabledNetworks?.includes(Number(networkId)));
|
|
78
|
-
},
|
|
79
|
-
|
|
80
|
-
async getApprovedCaipNetworksData() {
|
|
81
|
-
const data = await this._getClient().getApprovedCaipNetworksData();
|
|
82
|
-
state.supportsAllNetworks = data.supportsAllNetworks;
|
|
83
|
-
state.approvedCaipNetworkIds = data.approvedCaipNetworkIds;
|
|
84
|
-
},
|
|
85
|
-
|
|
86
|
-
getApprovedCaipNetworks() {
|
|
87
|
-
return state.approvedCaipNetworkIds
|
|
88
|
-
?.map(id => state.requestedCaipNetworks?.find(network => network.id === id))
|
|
89
|
-
.filter(Boolean) as CaipNetwork[];
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
getSmartAccountEnabledNetworks() {
|
|
93
|
-
return this.getApprovedCaipNetworks().filter(
|
|
94
|
-
network =>
|
|
95
|
-
state.smartAccountEnabledNetworks?.find(networkId => network.id === `eip155:${networkId}`)
|
|
96
|
-
);
|
|
97
|
-
},
|
|
98
|
-
|
|
99
|
-
getActiveNetworkTokenAddress() {
|
|
100
|
-
const chainId = this.state.caipNetwork?.id || 'eip155:1';
|
|
101
|
-
const address = ConstantsUtil.NATIVE_TOKEN_ADDRESS;
|
|
102
|
-
|
|
103
|
-
return `${chainId}:${address}`;
|
|
104
|
-
},
|
|
105
|
-
|
|
106
|
-
async switchActiveNetwork(network: NetworkControllerState['caipNetwork']) {
|
|
107
|
-
await this._getClient().switchCaipNetwork(network);
|
|
108
|
-
state.caipNetwork = network;
|
|
109
|
-
PublicStateController.set({ selectedNetworkId: network?.id });
|
|
110
|
-
},
|
|
111
|
-
|
|
112
|
-
resetNetwork() {
|
|
113
|
-
if (!state.isDefaultCaipNetwork) {
|
|
114
|
-
state.caipNetwork = undefined;
|
|
115
|
-
}
|
|
116
|
-
state.approvedCaipNetworkIds = undefined;
|
|
117
|
-
state.supportsAllNetworks = true;
|
|
118
|
-
state.smartAccountEnabledNetworks = [];
|
|
119
|
-
}
|
|
120
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { SocialProvider } from '@reown/appkit-common-react-native';
|
|
2
|
-
import { proxy, subscribe as sub } from 'valtio';
|
|
3
|
-
|
|
4
|
-
// -- Types --------------------------------------------- //
|
|
5
|
-
export interface WebviewControllerState {
|
|
6
|
-
frameViewVisible: boolean;
|
|
7
|
-
webviewVisible: boolean;
|
|
8
|
-
webviewUrl?: string;
|
|
9
|
-
connecting?: boolean;
|
|
10
|
-
connectingProvider?: SocialProvider;
|
|
11
|
-
processingAuth?: boolean;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// -- State --------------------------------------------- //
|
|
15
|
-
const state = proxy<WebviewControllerState>({
|
|
16
|
-
frameViewVisible: false,
|
|
17
|
-
webviewVisible: false,
|
|
18
|
-
connecting: false,
|
|
19
|
-
connectingProvider: undefined,
|
|
20
|
-
processingAuth: false
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// -- Controller ---------------------------------------- //
|
|
24
|
-
export const WebviewController = {
|
|
25
|
-
state,
|
|
26
|
-
|
|
27
|
-
subscribe(callback: (newState: WebviewControllerState) => void) {
|
|
28
|
-
return sub(state, () => callback(state));
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
setFrameViewVisible(frameViewVisible: WebviewControllerState['frameViewVisible']) {
|
|
32
|
-
state.frameViewVisible = frameViewVisible;
|
|
33
|
-
},
|
|
34
|
-
|
|
35
|
-
setWebviewVisible(visible: WebviewControllerState['webviewVisible']) {
|
|
36
|
-
state.webviewVisible = visible;
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
setWebviewUrl(url: WebviewControllerState['webviewUrl']) {
|
|
40
|
-
state.webviewUrl = url;
|
|
41
|
-
},
|
|
42
|
-
|
|
43
|
-
setConnecting(connecting: WebviewControllerState['connecting']) {
|
|
44
|
-
state.connecting = connecting;
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
setConnectingProvider(provider: WebviewControllerState['connectingProvider']) {
|
|
48
|
-
state.connectingProvider = provider;
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
setProcessingAuth(processingAuth: WebviewControllerState['processingAuth']) {
|
|
52
|
-
state.processingAuth = processingAuth;
|
|
53
|
-
},
|
|
54
|
-
|
|
55
|
-
reset() {
|
|
56
|
-
state.frameViewVisible = false;
|
|
57
|
-
state.webviewVisible = false;
|
|
58
|
-
state.connecting = false;
|
|
59
|
-
state.connectingProvider = undefined;
|
|
60
|
-
state.processingAuth = false;
|
|
61
|
-
state.webviewUrl = undefined;
|
|
62
|
-
}
|
|
63
|
-
};
|
package/src/utils/NetworkUtil.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { RouterUtil } from './RouterUtil';
|
|
2
|
-
import { RouterController } from '../controllers/RouterController';
|
|
3
|
-
import { NetworkController } from '../controllers/NetworkController';
|
|
4
|
-
import { AccountController } from '../controllers/AccountController';
|
|
5
|
-
import { ConnectorController } from '../controllers/ConnectorController';
|
|
6
|
-
import { SwapController } from '../controllers/SwapController';
|
|
7
|
-
import { type CaipNetwork } from '@reown/appkit-common-react-native';
|
|
8
|
-
|
|
9
|
-
export const NetworkUtil = {
|
|
10
|
-
async handleNetworkSwitch(network: CaipNetwork) {
|
|
11
|
-
const { isConnected } = AccountController.state;
|
|
12
|
-
const { caipNetwork, approvedCaipNetworkIds, supportsAllNetworks } = NetworkController.state;
|
|
13
|
-
const isAuthConnected = ConnectorController.state.connectedConnector === 'AUTH';
|
|
14
|
-
let eventData = null;
|
|
15
|
-
|
|
16
|
-
if (isConnected && caipNetwork?.id !== network.id) {
|
|
17
|
-
if (approvedCaipNetworkIds?.includes(network.id) && !isAuthConnected) {
|
|
18
|
-
await NetworkController.switchActiveNetwork(network);
|
|
19
|
-
RouterUtil.navigateAfterNetworkSwitch(['ConnectingSiwe']);
|
|
20
|
-
eventData = { type: 'SWITCH_NETWORK', networkId: network.id };
|
|
21
|
-
} else if (supportsAllNetworks || isAuthConnected) {
|
|
22
|
-
RouterController.push('SwitchNetwork', { network });
|
|
23
|
-
}
|
|
24
|
-
} else if (!isConnected) {
|
|
25
|
-
NetworkController.setCaipNetwork(network);
|
|
26
|
-
RouterController.push('Connect');
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
SwapController.resetState();
|
|
30
|
-
|
|
31
|
-
return eventData;
|
|
32
|
-
}
|
|
33
|
-
};
|