@reown/appkit-core-react-native 0.0.0-develop-20250728141602 → 0.0.0-develop-20251008155354
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 +157 -91
- package/lib/commonjs/controllers/ApiController.js.map +1 -1
- package/lib/commonjs/controllers/AssetController.js +0 -4
- package/lib/commonjs/controllers/AssetController.js.map +1 -1
- package/lib/commonjs/controllers/BlockchainApiController.js +180 -78
- package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionsController.js +425 -0
- package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
- package/lib/commonjs/controllers/EnsController.js +2 -0
- package/lib/commonjs/controllers/EnsController.js.map +1 -1
- package/lib/commonjs/controllers/EventsController.js +51 -1
- package/lib/commonjs/controllers/EventsController.js.map +1 -1
- package/lib/commonjs/controllers/LogController.js +188 -0
- package/lib/commonjs/controllers/LogController.js.map +1 -0
- package/lib/commonjs/controllers/ModalController.js +9 -7
- package/lib/commonjs/controllers/ModalController.js.map +1 -1
- package/lib/commonjs/controllers/OnRampController.js +47 -20
- package/lib/commonjs/controllers/OnRampController.js.map +1 -1
- package/lib/commonjs/controllers/OptionsController.js +28 -10
- package/lib/commonjs/controllers/OptionsController.js.map +1 -1
- package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
- package/lib/commonjs/controllers/RouterController.js +7 -22
- package/lib/commonjs/controllers/RouterController.js.map +1 -1
- package/lib/commonjs/controllers/SendController.js +111 -95
- 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 +162 -151
- package/lib/commonjs/controllers/SwapController.js.map +1 -1
- package/lib/commonjs/controllers/ThemeController.js +14 -1
- package/lib/commonjs/controllers/ThemeController.js.map +1 -1
- package/lib/commonjs/controllers/TransactionsController.js +24 -18
- package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
- package/lib/commonjs/controllers/WcController.js +73 -0
- package/lib/commonjs/controllers/WcController.js.map +1 -0
- package/lib/commonjs/features/reown-authentication/ReownAuthentication.js +272 -0
- package/lib/commonjs/features/reown-authentication/ReownAuthentication.js.map +1 -0
- package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js +48 -0
- package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
- package/lib/commonjs/features/reown-authentication/index.js +28 -0
- package/lib/commonjs/features/reown-authentication/index.js.map +1 -0
- package/lib/commonjs/index.js +33 -40
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/utils/ApiUtil.js +1 -1
- package/lib/commonjs/utils/ApiUtil.js.map +1 -1
- package/lib/commonjs/utils/AssetUtil.js +8 -18
- package/lib/commonjs/utils/AssetUtil.js.map +1 -1
- package/lib/commonjs/utils/ConstantsUtil.js +117 -5
- package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
- package/lib/commonjs/utils/CoreHelperUtil.js +32 -9
- package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
- package/lib/commonjs/utils/EventUtil.js.map +1 -1
- package/lib/commonjs/utils/FetchUtil.js +7 -2
- package/lib/commonjs/utils/FetchUtil.js.map +1 -1
- package/lib/commonjs/utils/LogUtils.js +131 -0
- package/lib/commonjs/utils/LogUtils.js.map +1 -0
- package/lib/commonjs/utils/StorageUtil.js +131 -150
- package/lib/commonjs/utils/StorageUtil.js.map +1 -1
- package/lib/commonjs/utils/SwapApiUtil.js +15 -21
- package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
- package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
- package/lib/commonjs/utils/WalletUtil.js +23 -0
- package/lib/commonjs/utils/WalletUtil.js.map +1 -0
- package/lib/module/controllers/ApiController.js +159 -91
- package/lib/module/controllers/ApiController.js.map +1 -1
- package/lib/module/controllers/AssetController.js +2 -4
- package/lib/module/controllers/AssetController.js.map +1 -1
- package/lib/module/controllers/BlockchainApiController.js +182 -78
- package/lib/module/controllers/BlockchainApiController.js.map +1 -1
- package/lib/module/controllers/ConnectionsController.js +422 -0
- package/lib/module/controllers/ConnectionsController.js.map +1 -0
- package/lib/module/controllers/EnsController.js +4 -0
- package/lib/module/controllers/EnsController.js.map +1 -1
- package/lib/module/controllers/EventsController.js +53 -1
- package/lib/module/controllers/EventsController.js.map +1 -1
- package/lib/module/controllers/LogController.js +185 -0
- package/lib/module/controllers/LogController.js.map +1 -0
- package/lib/module/controllers/ModalController.js +11 -7
- package/lib/module/controllers/ModalController.js.map +1 -1
- package/lib/module/controllers/OnRampController.js +45 -16
- package/lib/module/controllers/OnRampController.js.map +1 -1
- package/lib/module/controllers/OptionsController.js +30 -10
- 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 +9 -22
- package/lib/module/controllers/RouterController.js.map +1 -1
- package/lib/module/controllers/SendController.js +113 -95
- 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 +164 -151
- package/lib/module/controllers/SwapController.js.map +1 -1
- package/lib/module/controllers/ThemeController.js +16 -1
- package/lib/module/controllers/ThemeController.js.map +1 -1
- package/lib/module/controllers/TransactionsController.js +26 -18
- package/lib/module/controllers/TransactionsController.js.map +1 -1
- package/lib/module/controllers/WcController.js +70 -0
- package/lib/module/controllers/WcController.js.map +1 -0
- package/lib/module/features/reown-authentication/ReownAuthentication.js +268 -0
- package/lib/module/features/reown-authentication/ReownAuthentication.js.map +1 -0
- package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js +43 -0
- package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
- package/lib/module/features/reown-authentication/index.js +5 -0
- package/lib/module/features/reown-authentication/index.js.map +1 -0
- package/lib/module/index.js +13 -8
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/ApiUtil.js +3 -1
- package/lib/module/utils/ApiUtil.js.map +1 -1
- package/lib/module/utils/AssetUtil.js +10 -18
- package/lib/module/utils/AssetUtil.js.map +1 -1
- package/lib/module/utils/ConstantsUtil.js +119 -5
- package/lib/module/utils/ConstantsUtil.js.map +1 -1
- package/lib/module/utils/CoreHelperUtil.js +34 -7
- 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 +10 -2
- package/lib/module/utils/FetchUtil.js.map +1 -1
- package/lib/module/utils/LogUtils.js +121 -0
- package/lib/module/utils/LogUtils.js.map +1 -0
- package/lib/module/utils/StorageUtil.js +134 -150
- package/lib/module/utils/StorageUtil.js.map +1 -1
- package/lib/module/utils/SwapApiUtil.js +17 -21
- package/lib/module/utils/SwapApiUtil.js.map +1 -1
- package/lib/module/utils/SwapCalculationUtil.js +3 -0
- package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
- package/lib/module/utils/WalletUtil.js +19 -0
- package/lib/module/utils/WalletUtil.js.map +1 -0
- package/lib/typescript/controllers/ApiController.d.ts +9 -8
- package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/AssetController.d.ts +0 -2
- package/lib/typescript/controllers/AssetController.d.ts.map +1 -1
- package/lib/typescript/controllers/BlockchainApiController.d.ts +29 -11
- package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/ConnectionsController.d.ts +47 -0
- package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
- package/lib/typescript/controllers/EnsController.d.ts +1 -1
- package/lib/typescript/controllers/EnsController.d.ts.map +1 -1
- package/lib/typescript/controllers/EventsController.d.ts +13 -1
- package/lib/typescript/controllers/EventsController.d.ts.map +1 -1
- package/lib/typescript/controllers/LogController.d.ts +65 -0
- package/lib/typescript/controllers/LogController.d.ts.map +1 -0
- package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
- package/lib/typescript/controllers/OnRampController.d.ts +2 -2
- package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
- package/lib/typescript/controllers/OptionsController.d.ts +11 -6
- package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
- package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
- package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
- package/lib/typescript/controllers/RouterController.d.ts +6 -20
- 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 -12
- package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
- package/lib/typescript/controllers/ThemeController.d.ts +3 -1
- package/lib/typescript/controllers/ThemeController.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/controllers/WcController.d.ts +27 -0
- package/lib/typescript/controllers/WcController.d.ts.map +1 -0
- package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts +174 -0
- package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts.map +1 -0
- package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts +16 -0
- package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts.map +1 -0
- package/lib/typescript/features/reown-authentication/index.d.ts +3 -0
- package/lib/typescript/features/reown-authentication/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +7 -9
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/ApiUtil.d.ts +1 -1
- package/lib/typescript/utils/AssetUtil.d.ts +3 -4
- package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
- package/lib/typescript/utils/ConstantsUtil.d.ts +11 -2
- package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
- package/lib/typescript/utils/CoreHelperUtil.d.ts +8 -6
- package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
- package/lib/typescript/utils/EventUtil.d.ts +1 -1
- package/lib/typescript/utils/EventUtil.d.ts.map +1 -1
- package/lib/typescript/utils/FetchUtil.d.ts +4 -4
- package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
- package/lib/typescript/utils/LogUtils.d.ts +15 -0
- package/lib/typescript/utils/LogUtils.d.ts.map +1 -0
- package/lib/typescript/utils/StorageUtil.d.ts +15 -16
- package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
- package/lib/typescript/utils/SwapApiUtil.d.ts +3 -4
- package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
- package/lib/typescript/utils/SwapCalculationUtil.d.ts +1 -1
- package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -1
- package/lib/typescript/utils/WalletUtil.d.ts +5 -0
- package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
- package/package.json +11 -24
- package/src/controllers/ApiController.ts +167 -84
- package/src/controllers/AssetController.ts +0 -6
- package/src/controllers/BlockchainApiController.ts +168 -66
- package/src/controllers/ConnectionsController.ts +575 -0
- package/src/controllers/EnsController.ts +3 -1
- package/src/controllers/EventsController.ts +73 -2
- package/src/controllers/LogController.ts +250 -0
- package/src/controllers/ModalController.ts +10 -7
- package/src/controllers/OnRampController.ts +54 -19
- package/src/controllers/OptionsController.ts +46 -18
- package/src/controllers/PublicStateController.ts +1 -1
- package/src/controllers/RouterController.ts +20 -57
- package/src/controllers/SendController.ts +147 -111
- package/src/controllers/SnackController.ts +31 -5
- package/src/controllers/SwapController.ts +185 -183
- package/src/controllers/ThemeController.ts +18 -2
- package/src/controllers/TransactionsController.ts +27 -19
- package/src/controllers/WcController.ts +93 -0
- package/src/features/reown-authentication/ReownAuthentication.ts +475 -0
- package/src/features/reown-authentication/ReownAuthenticationMessenger.ts +80 -0
- package/src/features/reown-authentication/index.ts +2 -0
- package/src/index.ts +17 -20
- package/src/utils/ApiUtil.ts +1 -1
- package/src/utils/AssetUtil.ts +9 -22
- package/src/utils/ConstantsUtil.ts +121 -6
- package/src/utils/CoreHelperUtil.ts +66 -10
- package/src/utils/EventUtil.ts +1 -1
- package/src/utils/FetchUtil.ts +14 -5
- package/src/utils/LogUtils.ts +179 -0
- package/src/utils/StorageUtil.ts +191 -176
- package/src/utils/SwapApiUtil.ts +30 -37
- package/src/utils/SwapCalculationUtil.ts +1 -2
- package/src/utils/WalletUtil.ts +14 -0
- package/lib/commonjs/controllers/AccountController.js +0 -93
- package/lib/commonjs/controllers/AccountController.js.map +0 -1
- package/lib/commonjs/controllers/ConnectionController.js +0 -126
- package/lib/commonjs/controllers/ConnectionController.js.map +0 -1
- package/lib/commonjs/controllers/ConnectorController.js +0 -49
- 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/ConnectionUtil.js +0 -33
- package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
- package/lib/commonjs/utils/NetworkUtil.js +0 -46
- package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
- package/lib/commonjs/utils/RouterUtil.js +0 -25
- package/lib/commonjs/utils/RouterUtil.js.map +0 -1
- package/lib/commonjs/utils/TypeUtil.js +0 -35
- package/lib/commonjs/utils/TypeUtil.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/ConnectionController.js +0 -121
- package/lib/module/controllers/ConnectionController.js.map +0 -1
- package/lib/module/controllers/ConnectorController.js +0 -44
- 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/ConnectionUtil.js +0 -27
- package/lib/module/utils/ConnectionUtil.js.map +0 -1
- package/lib/module/utils/NetworkUtil.js +0 -40
- package/lib/module/utils/NetworkUtil.js.map +0 -1
- package/lib/module/utils/RouterUtil.js +0 -19
- package/lib/module/utils/RouterUtil.js.map +0 -1
- package/lib/module/utils/TypeUtil.js +0 -28
- package/lib/module/utils/TypeUtil.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/ConnectionController.d.ts +0 -66
- package/lib/typescript/controllers/ConnectionController.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/ConnectionUtil.d.ts +0 -4
- package/lib/typescript/utils/ConnectionUtil.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/lib/typescript/utils/RouterUtil.d.ts +0 -5
- package/lib/typescript/utils/RouterUtil.d.ts.map +0 -1
- package/lib/typescript/utils/TypeUtil.d.ts +0 -849
- package/lib/typescript/utils/TypeUtil.d.ts.map +0 -1
- package/src/controllers/AccountController.ts +0 -128
- package/src/controllers/ConnectionController.ts +0 -200
- package/src/controllers/ConnectorController.ts +0 -63
- package/src/controllers/NetworkController.ts +0 -120
- package/src/controllers/WebviewController.ts +0 -63
- package/src/utils/ConnectionUtil.ts +0 -27
- package/src/utils/NetworkUtil.ts +0 -33
- package/src/utils/RouterUtil.ts +0 -21
- package/src/utils/TypeUtil.ts +0 -1036
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import { subscribeKey as subKey } from 'valtio/utils';
|
|
2
2
|
import { proxy, subscribe as sub } from 'valtio';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
NumberUtil,
|
|
5
|
+
type CaipAddress,
|
|
6
|
+
type CaipNetworkId,
|
|
7
|
+
type SwapInputTarget,
|
|
8
|
+
type SwapTokenWithBalance
|
|
9
|
+
} from '@reown/appkit-common-react-native';
|
|
4
10
|
|
|
5
11
|
import { ConstantsUtil } from '../utils/ConstantsUtil';
|
|
6
12
|
import { SwapApiUtil } from '../utils/SwapApiUtil';
|
|
7
|
-
import { NetworkController } from './NetworkController';
|
|
8
13
|
import { BlockchainApiController } from './BlockchainApiController';
|
|
9
14
|
import { OptionsController } from './OptionsController';
|
|
10
15
|
import { SwapCalculationUtil } from '../utils/SwapCalculationUtil';
|
|
11
16
|
import { SnackController } from './SnackController';
|
|
17
|
+
import { LogController } from './LogController';
|
|
12
18
|
import { RouterController } from './RouterController';
|
|
13
|
-
import type { SwapInputTarget, SwapTokenWithBalance } from '../utils/TypeUtil';
|
|
14
|
-
import { ConnectorController } from './ConnectorController';
|
|
15
|
-
import { AccountController } from './AccountController';
|
|
16
19
|
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
17
|
-
import { ConnectionController } from './ConnectionController';
|
|
18
20
|
import { TransactionsController } from './TransactionsController';
|
|
19
21
|
import { EventsController } from './EventsController';
|
|
22
|
+
import { ConnectionsController } from './ConnectionsController';
|
|
20
23
|
|
|
21
24
|
// -- Constants ---------------------------------------- //
|
|
22
25
|
export const INITIAL_GAS_LIMIT = 150000;
|
|
@@ -44,8 +47,7 @@ class TransactionError extends Error {
|
|
|
44
47
|
|
|
45
48
|
export interface SwapControllerState {
|
|
46
49
|
// Loading states
|
|
47
|
-
|
|
48
|
-
initialized: boolean;
|
|
50
|
+
loadingTokens: boolean;
|
|
49
51
|
loadingPrices: boolean;
|
|
50
52
|
loadingQuote?: boolean;
|
|
51
53
|
loadingApprovalTransaction?: boolean;
|
|
@@ -68,7 +70,6 @@ export interface SwapControllerState {
|
|
|
68
70
|
toTokenAmount: string;
|
|
69
71
|
toTokenPriceInUSD: number;
|
|
70
72
|
networkPrice: string;
|
|
71
|
-
networkBalanceInUSD: string;
|
|
72
73
|
networkTokenSymbol: string;
|
|
73
74
|
inputError: string | undefined;
|
|
74
75
|
|
|
@@ -96,8 +97,7 @@ type StateKey = keyof SwapControllerState;
|
|
|
96
97
|
// -- State --------------------------------------------- //
|
|
97
98
|
const initialState: SwapControllerState = {
|
|
98
99
|
// Loading states
|
|
99
|
-
|
|
100
|
-
initialized: false,
|
|
100
|
+
loadingTokens: false,
|
|
101
101
|
loadingPrices: false,
|
|
102
102
|
loadingQuote: false,
|
|
103
103
|
loadingApprovalTransaction: false,
|
|
@@ -120,7 +120,6 @@ const initialState: SwapControllerState = {
|
|
|
120
120
|
toTokenAmount: '',
|
|
121
121
|
toTokenPriceInUSD: 0,
|
|
122
122
|
networkPrice: '0',
|
|
123
|
-
networkBalanceInUSD: '0',
|
|
124
123
|
networkTokenSymbol: '',
|
|
125
124
|
inputError: undefined,
|
|
126
125
|
|
|
@@ -143,7 +142,7 @@ const initialState: SwapControllerState = {
|
|
|
143
142
|
providerFee: undefined
|
|
144
143
|
};
|
|
145
144
|
|
|
146
|
-
const state = proxy<SwapControllerState>(initialState);
|
|
145
|
+
const state = proxy<SwapControllerState>({ ...initialState });
|
|
147
146
|
|
|
148
147
|
// -- Controller ---------------------------------------- //
|
|
149
148
|
export const SwapController = {
|
|
@@ -158,10 +157,15 @@ export const SwapController = {
|
|
|
158
157
|
},
|
|
159
158
|
|
|
160
159
|
getParams() {
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
const
|
|
164
|
-
|
|
160
|
+
const { activeAddress, activeNamespace, activeNetwork, connection } =
|
|
161
|
+
ConnectionsController.state;
|
|
162
|
+
const address = CoreHelperUtil.getPlainAddress(activeAddress);
|
|
163
|
+
|
|
164
|
+
if (!activeNamespace || !activeNetwork) {
|
|
165
|
+
throw new Error('No active namespace or network found to swap the tokens from.');
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const networkAddress: CaipAddress = `${activeNetwork.caipNetworkId}:${ConstantsUtil.NATIVE_TOKEN_ADDRESS[activeNamespace]}`;
|
|
165
169
|
|
|
166
170
|
if (!address) {
|
|
167
171
|
throw new Error('No address found to swap the tokens from.');
|
|
@@ -177,8 +181,9 @@ export const SwapController = {
|
|
|
177
181
|
|
|
178
182
|
return {
|
|
179
183
|
networkAddress,
|
|
184
|
+
network: activeNetwork,
|
|
180
185
|
fromAddress: address,
|
|
181
|
-
fromCaipAddress:
|
|
186
|
+
fromCaipAddress: activeAddress,
|
|
182
187
|
sourceTokenAddress: state.sourceToken?.address,
|
|
183
188
|
toTokenAddress: state.toToken?.address,
|
|
184
189
|
toTokenAmount: state.toTokenAmount,
|
|
@@ -189,13 +194,13 @@ export const SwapController = {
|
|
|
189
194
|
invalidSourceToken,
|
|
190
195
|
invalidSourceTokenAmount,
|
|
191
196
|
availableToSwap:
|
|
192
|
-
|
|
193
|
-
isAuthConnector:
|
|
197
|
+
activeAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
|
|
198
|
+
isAuthConnector: !!connection?.properties?.provider
|
|
194
199
|
};
|
|
195
200
|
},
|
|
196
201
|
|
|
197
202
|
switchTokens() {
|
|
198
|
-
if (state.
|
|
203
|
+
if (state.loadingTokens) {
|
|
199
204
|
return;
|
|
200
205
|
}
|
|
201
206
|
|
|
@@ -220,41 +225,37 @@ export const SwapController = {
|
|
|
220
225
|
this.swapTokens();
|
|
221
226
|
},
|
|
222
227
|
|
|
223
|
-
resetState() {
|
|
224
|
-
state.myTokensWithBalance = initialState.myTokensWithBalance;
|
|
225
|
-
state.tokensPriceMap = initialState.tokensPriceMap;
|
|
226
|
-
state.initialized = initialState.initialized;
|
|
227
|
-
state.sourceToken = initialState.sourceToken;
|
|
228
|
-
state.sourceTokenAmount = initialState.sourceTokenAmount;
|
|
229
|
-
state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
|
|
230
|
-
state.toToken = initialState.toToken;
|
|
231
|
-
state.toTokenAmount = initialState.toTokenAmount;
|
|
232
|
-
state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
|
|
233
|
-
state.networkPrice = initialState.networkPrice;
|
|
234
|
-
state.networkTokenSymbol = initialState.networkTokenSymbol;
|
|
235
|
-
state.networkBalanceInUSD = initialState.networkBalanceInUSD;
|
|
236
|
-
state.inputError = initialState.inputError;
|
|
237
|
-
},
|
|
238
|
-
|
|
239
228
|
async fetchTokens() {
|
|
240
|
-
|
|
229
|
+
try {
|
|
230
|
+
const { networkAddress } = this.getParams();
|
|
241
231
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
232
|
+
state.loadingTokens = true;
|
|
233
|
+
await this.getTokenList();
|
|
234
|
+
await this.getNetworkTokenPrice();
|
|
235
|
+
await this.getMyTokensWithBalance();
|
|
245
236
|
|
|
246
|
-
|
|
237
|
+
const networkToken = state.tokens?.find(token => token.address === networkAddress);
|
|
247
238
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
239
|
+
if (networkToken) {
|
|
240
|
+
state.networkTokenSymbol = networkToken.symbol;
|
|
241
|
+
}
|
|
251
242
|
|
|
252
|
-
|
|
253
|
-
state.
|
|
254
|
-
|
|
243
|
+
// Set default source token if not set
|
|
244
|
+
if (!state.sourceToken && state.myTokensWithBalance?.length) {
|
|
245
|
+
const sourceToken =
|
|
246
|
+
state.myTokensWithBalance?.find(token => token.address.startsWith(networkAddress)) ||
|
|
247
|
+
state.myTokensWithBalance?.[0];
|
|
255
248
|
|
|
256
|
-
|
|
257
|
-
|
|
249
|
+
this.setSourceToken(sourceToken);
|
|
250
|
+
this.setSourceTokenAmount('1');
|
|
251
|
+
}
|
|
252
|
+
} catch (error) {
|
|
253
|
+
LogController.sendError(error, 'SwapController.ts', 'initializeState');
|
|
254
|
+
SnackController.showError('Failed to initialize swap');
|
|
255
|
+
RouterController.goBack();
|
|
256
|
+
} finally {
|
|
257
|
+
state.loadingTokens = false;
|
|
258
|
+
}
|
|
258
259
|
},
|
|
259
260
|
|
|
260
261
|
async getTokenList() {
|
|
@@ -280,21 +281,23 @@ export const SwapController = {
|
|
|
280
281
|
}, {});
|
|
281
282
|
},
|
|
282
283
|
|
|
283
|
-
async getMyTokensWithBalance(forceUpdate?:
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
if (!
|
|
284
|
+
async getMyTokensWithBalance(forceUpdate?: CaipAddress[]) {
|
|
285
|
+
await ConnectionsController.fetchBalance(forceUpdate);
|
|
286
|
+
const swapBalances = SwapApiUtil.mapBalancesToSwapTokens(ConnectionsController.state.balances);
|
|
287
|
+
if (!swapBalances) {
|
|
287
288
|
return;
|
|
288
289
|
}
|
|
289
290
|
|
|
290
291
|
await this.getInitialGasPrice();
|
|
291
|
-
this.setBalances(
|
|
292
|
+
this.setBalances(swapBalances);
|
|
292
293
|
},
|
|
293
294
|
|
|
294
|
-
getFilteredPopularTokens() {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
295
|
+
getFilteredPopularTokens(balances?: SwapTokenWithBalance[]) {
|
|
296
|
+
if (!balances) {
|
|
297
|
+
return state.popularTokens;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
return state.popularTokens?.filter(token => !balances.some(t => t.address === token.address));
|
|
298
301
|
},
|
|
299
302
|
|
|
300
303
|
setSourceToken(sourceToken: SwapTokenWithBalance | undefined) {
|
|
@@ -318,26 +321,10 @@ export const SwapController = {
|
|
|
318
321
|
}
|
|
319
322
|
},
|
|
320
323
|
|
|
321
|
-
async
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
}
|
|
324
|
+
async getAddressPrice(address: CaipAddress) {
|
|
325
|
+
const [namespace, chain] = address.split(':');
|
|
326
|
+
const networkId: CaipNetworkId = `${namespace}:${chain}`;
|
|
325
327
|
|
|
326
|
-
state.initializing = true;
|
|
327
|
-
if (!state.initialized) {
|
|
328
|
-
try {
|
|
329
|
-
await this.fetchTokens();
|
|
330
|
-
state.initialized = true;
|
|
331
|
-
} catch (error) {
|
|
332
|
-
state.initialized = false;
|
|
333
|
-
SnackController.showError('Failed to initialize swap');
|
|
334
|
-
RouterController.goBack();
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
state.initializing = false;
|
|
338
|
-
},
|
|
339
|
-
|
|
340
|
-
async getAddressPrice(address: string) {
|
|
341
328
|
const existPrice = state.tokensPriceMap[address];
|
|
342
329
|
|
|
343
330
|
if (existPrice) {
|
|
@@ -346,7 +333,8 @@ export const SwapController = {
|
|
|
346
333
|
|
|
347
334
|
const response = await BlockchainApiController.fetchTokenPrice({
|
|
348
335
|
projectId: OptionsController.state.projectId,
|
|
349
|
-
addresses: [address]
|
|
336
|
+
addresses: [address],
|
|
337
|
+
caipNetworkId: networkId
|
|
350
338
|
});
|
|
351
339
|
const fungibles = response?.fungibles || [];
|
|
352
340
|
const allTokens = [...(state.tokens || []), ...(state.myTokensWithBalance || [])];
|
|
@@ -361,10 +349,13 @@ export const SwapController = {
|
|
|
361
349
|
|
|
362
350
|
async getNetworkTokenPrice() {
|
|
363
351
|
const { networkAddress } = this.getParams();
|
|
352
|
+
const [namespace, chain] = networkAddress.split(':');
|
|
353
|
+
const networkId: CaipNetworkId = `${namespace}:${chain}`;
|
|
364
354
|
|
|
365
355
|
const response = await BlockchainApiController.fetchTokenPrice({
|
|
366
356
|
projectId: OptionsController.state.projectId,
|
|
367
|
-
addresses: [networkAddress]
|
|
357
|
+
addresses: [networkAddress],
|
|
358
|
+
caipNetworkId: networkId
|
|
368
359
|
});
|
|
369
360
|
|
|
370
361
|
const token = response?.fungibles?.[0];
|
|
@@ -400,24 +391,11 @@ export const SwapController = {
|
|
|
400
391
|
},
|
|
401
392
|
|
|
402
393
|
setBalances(balances: SwapTokenWithBalance[]) {
|
|
403
|
-
|
|
404
|
-
const caipNetwork = NetworkController.state.caipNetwork;
|
|
405
|
-
|
|
406
|
-
if (!caipNetwork) {
|
|
407
|
-
return;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
const networkToken = balances.find(token => token.address === networkAddress);
|
|
394
|
+
state.myTokensWithBalance = balances;
|
|
411
395
|
|
|
412
396
|
balances.forEach(token => {
|
|
413
397
|
state.tokensPriceMap[token.address] = token.price || 0;
|
|
414
398
|
});
|
|
415
|
-
|
|
416
|
-
state.myTokensWithBalance = balances.filter(token => token.address?.startsWith(caipNetwork.id));
|
|
417
|
-
|
|
418
|
-
state.networkBalanceInUSD = networkToken
|
|
419
|
-
? NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString()
|
|
420
|
-
: '0';
|
|
421
399
|
},
|
|
422
400
|
|
|
423
401
|
setToToken(toToken: SwapTokenWithBalance | undefined) {
|
|
@@ -439,7 +417,7 @@ export const SwapController = {
|
|
|
439
417
|
: '';
|
|
440
418
|
},
|
|
441
419
|
|
|
442
|
-
async setTokenPrice(address:
|
|
420
|
+
async setTokenPrice(address: CaipAddress, target: SwapInputTarget) {
|
|
443
421
|
let price = state.tokensPriceMap[address] || 0;
|
|
444
422
|
|
|
445
423
|
if (!price) {
|
|
@@ -464,12 +442,12 @@ export const SwapController = {
|
|
|
464
442
|
|
|
465
443
|
// -- Swap ---------------------------------------------- //
|
|
466
444
|
async swapTokens() {
|
|
467
|
-
const address =
|
|
445
|
+
const address = ConnectionsController.state.activeAddress;
|
|
468
446
|
const sourceToken = state.sourceToken;
|
|
469
447
|
const toToken = state.toToken;
|
|
470
448
|
const haveSourceTokenAmount = NumberUtil.bigNumber(state.sourceTokenAmount).isGreaterThan(0);
|
|
471
449
|
|
|
472
|
-
if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount) {
|
|
450
|
+
if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount || !address) {
|
|
473
451
|
return;
|
|
474
452
|
}
|
|
475
453
|
|
|
@@ -479,39 +457,46 @@ export const SwapController = {
|
|
|
479
457
|
.multipliedBy(10 ** sourceToken.decimals)
|
|
480
458
|
.integerValue();
|
|
481
459
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
460
|
+
try {
|
|
461
|
+
const quoteResponse = await BlockchainApiController.fetchSwapQuote({
|
|
462
|
+
userAddress: address,
|
|
463
|
+
projectId: OptionsController.state.projectId,
|
|
464
|
+
from: sourceToken.address,
|
|
465
|
+
to: toToken.address,
|
|
466
|
+
gasPrice: state.gasFee,
|
|
467
|
+
amount: amountDecimal.toString()
|
|
468
|
+
});
|
|
490
469
|
|
|
491
|
-
|
|
470
|
+
const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;
|
|
492
471
|
|
|
493
|
-
|
|
472
|
+
if (!quoteToAmount) {
|
|
473
|
+
state.loadingQuote = false;
|
|
494
474
|
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
}
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
498
477
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
478
|
+
const toTokenAmount = NumberUtil.bigNumber(quoteToAmount)
|
|
479
|
+
.dividedBy(10 ** toToken.decimals)
|
|
480
|
+
.toString();
|
|
502
481
|
|
|
503
|
-
|
|
482
|
+
this.setToTokenAmount(toTokenAmount);
|
|
504
483
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
484
|
+
const isInsufficientToken = this.hasInsufficientToken(
|
|
485
|
+
state.sourceTokenAmount,
|
|
486
|
+
sourceToken.address
|
|
487
|
+
);
|
|
509
488
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
489
|
+
if (isInsufficientToken) {
|
|
490
|
+
state.inputError = 'Insufficient balance';
|
|
491
|
+
} else {
|
|
492
|
+
state.inputError = undefined;
|
|
493
|
+
this.setTransactionDetails();
|
|
494
|
+
}
|
|
495
|
+
} catch (error) {
|
|
496
|
+
LogController.sendError(error, 'SwapController.ts', 'getQuote');
|
|
497
|
+
SnackController.showError('Failed to get swap quote');
|
|
498
|
+
} finally {
|
|
499
|
+
state.loadingQuote = false;
|
|
515
500
|
}
|
|
516
501
|
},
|
|
517
502
|
|
|
@@ -580,7 +565,7 @@ export const SwapController = {
|
|
|
580
565
|
if (!response) {
|
|
581
566
|
throw new Error('createAllowanceTransaction - No response from generateApproveCalldata');
|
|
582
567
|
}
|
|
583
|
-
const gasLimit = await
|
|
568
|
+
const gasLimit = await ConnectionsController.estimateGas({
|
|
584
569
|
address: fromAddress as `0x${string}`,
|
|
585
570
|
to: CoreHelperUtil.getPlainAddress(response.tx.to) as `0x${string}`,
|
|
586
571
|
data: response.tx.data
|
|
@@ -633,7 +618,7 @@ export const SwapController = {
|
|
|
633
618
|
return undefined;
|
|
634
619
|
}
|
|
635
620
|
|
|
636
|
-
const amount =
|
|
621
|
+
const amount = ConnectionsController.parseUnits(
|
|
637
622
|
sourceTokenAmount,
|
|
638
623
|
sourceToken.decimals
|
|
639
624
|
)?.toString();
|
|
@@ -683,42 +668,32 @@ export const SwapController = {
|
|
|
683
668
|
},
|
|
684
669
|
|
|
685
670
|
async sendTransactionForApproval(data: TransactionParams) {
|
|
686
|
-
const { fromAddress,
|
|
687
|
-
|
|
671
|
+
const { fromAddress, network } = this.getParams();
|
|
688
672
|
state.loadingApprovalTransaction = true;
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
if (isAuthConnector) {
|
|
692
|
-
RouterController.pushTransactionStack({
|
|
693
|
-
view: null,
|
|
694
|
-
goBack: true,
|
|
695
|
-
onSuccess() {
|
|
696
|
-
SnackController.showLoading(approveLimitMessage);
|
|
697
|
-
}
|
|
698
|
-
});
|
|
699
|
-
} else {
|
|
700
|
-
SnackController.showLoading(approveLimitMessage);
|
|
701
|
-
}
|
|
673
|
+
|
|
674
|
+
SnackController.showLoading('Approve limit increase in your wallet');
|
|
702
675
|
|
|
703
676
|
try {
|
|
704
|
-
await
|
|
677
|
+
await ConnectionsController.sendTransaction({
|
|
705
678
|
address: fromAddress as `0x${string}`,
|
|
706
679
|
to: data.to as `0x${string}`,
|
|
707
680
|
data: data.data as `0x${string}`,
|
|
708
681
|
value: BigInt(data.value),
|
|
709
682
|
gasPrice: BigInt(data.gasPrice),
|
|
710
|
-
chainNamespace:
|
|
683
|
+
chainNamespace: ConnectionsController.state.activeNamespace,
|
|
684
|
+
network
|
|
711
685
|
});
|
|
712
686
|
|
|
713
687
|
await this.swapTokens();
|
|
714
688
|
await this.getTransaction();
|
|
715
689
|
state.approvalTransaction = undefined;
|
|
716
|
-
state.loadingApprovalTransaction = false;
|
|
717
690
|
} catch (err) {
|
|
718
691
|
const error = err as TransactionError;
|
|
719
692
|
state.transactionError = error?.shortMessage as unknown as string;
|
|
720
|
-
|
|
693
|
+
|
|
721
694
|
SnackController.showError(error?.shortMessage ?? 'Transaction error');
|
|
695
|
+
} finally {
|
|
696
|
+
state.loadingApprovalTransaction = false;
|
|
722
697
|
}
|
|
723
698
|
},
|
|
724
699
|
|
|
@@ -726,73 +701,63 @@ export const SwapController = {
|
|
|
726
701
|
if (!data) {
|
|
727
702
|
return undefined;
|
|
728
703
|
}
|
|
729
|
-
|
|
730
|
-
const { fromAddress, toTokenAmount, isAuthConnector } = this.getParams();
|
|
704
|
+
const { fromAddress, isAuthConnector, network } = this.getParams();
|
|
731
705
|
|
|
732
706
|
state.loadingTransaction = true;
|
|
733
707
|
|
|
734
|
-
const
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
const snackbarSuccessMessage = `Swapped ${state.sourceToken
|
|
738
|
-
?.symbol} to ${NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken
|
|
739
|
-
?.symbol}`;
|
|
740
|
-
|
|
741
|
-
if (isAuthConnector) {
|
|
742
|
-
RouterController.pushTransactionStack({
|
|
743
|
-
view: 'Account',
|
|
744
|
-
goBack: false,
|
|
745
|
-
onSuccess() {
|
|
746
|
-
SnackController.showLoading(snackbarPendingMessage);
|
|
747
|
-
SwapController.resetState();
|
|
748
|
-
}
|
|
749
|
-
});
|
|
750
|
-
} else {
|
|
751
|
-
SnackController.showLoading('Confirm transaction in your wallet');
|
|
752
|
-
}
|
|
708
|
+
const snackbarSuccessMessage = `Swapped ${state.sourceToken?.symbol} to ${state.toToken?.symbol}`;
|
|
709
|
+
|
|
710
|
+
SnackController.showLoading('Confirm transaction in your wallet');
|
|
753
711
|
|
|
754
712
|
try {
|
|
755
|
-
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].
|
|
756
|
-
|
|
713
|
+
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].filter(
|
|
714
|
+
Boolean
|
|
715
|
+
) as CaipAddress[];
|
|
716
|
+
|
|
717
|
+
const transactionHash = await ConnectionsController.sendTransaction({
|
|
757
718
|
address: fromAddress as `0x${string}`,
|
|
758
719
|
to: data.to as `0x${string}`,
|
|
759
720
|
data: data.data as `0x${string}`,
|
|
760
721
|
gas: data.gas,
|
|
761
722
|
gasPrice: BigInt(data.gasPrice),
|
|
762
723
|
value: data.value,
|
|
763
|
-
chainNamespace:
|
|
724
|
+
chainNamespace: ConnectionsController.state.activeNamespace,
|
|
725
|
+
network
|
|
764
726
|
});
|
|
765
727
|
|
|
766
728
|
state.loadingTransaction = false;
|
|
767
|
-
|
|
729
|
+
|
|
730
|
+
SnackController.showSuccess(snackbarSuccessMessage, true);
|
|
768
731
|
EventsController.sendEvent({
|
|
769
732
|
type: 'track',
|
|
770
733
|
event: 'SWAP_SUCCESS',
|
|
771
734
|
properties: {
|
|
772
|
-
network:
|
|
735
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId,
|
|
773
736
|
swapFromToken: this.state.sourceToken?.symbol || '',
|
|
774
737
|
swapToToken: this.state.toToken?.symbol || '',
|
|
775
738
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
776
739
|
swapToAmount: this.state.toTokenAmount || '',
|
|
777
|
-
isSmartAccount:
|
|
740
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
778
741
|
}
|
|
779
742
|
});
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
if (!isAuthConnector) {
|
|
783
|
-
RouterController.replace('AccountDefault');
|
|
784
|
-
}
|
|
785
|
-
|
|
743
|
+
RouterController.replace(isAuthConnector ? 'Account' : 'AccountDefault');
|
|
744
|
+
SwapController.clearTokens();
|
|
786
745
|
SwapController.getMyTokensWithBalance(forceUpdateAddresses);
|
|
787
|
-
AccountController.fetchTokenBalance();
|
|
788
746
|
|
|
789
747
|
setTimeout(() => {
|
|
790
|
-
|
|
748
|
+
if (ConnectionsController.state.activeAddress) {
|
|
749
|
+
TransactionsController.fetchTransactions(ConnectionsController.state.activeAddress, true);
|
|
750
|
+
}
|
|
791
751
|
}, 5000);
|
|
792
752
|
|
|
793
753
|
return transactionHash;
|
|
794
754
|
} catch (err) {
|
|
795
755
|
const error = err as TransactionError;
|
|
756
|
+
LogController.sendError(error, 'SwapController.ts', 'sendTransactionForSwap', {
|
|
757
|
+
sourceToken: this.state.sourceToken?.symbol,
|
|
758
|
+
toToken: this.state.toToken?.symbol,
|
|
759
|
+
amount: this.state.sourceTokenAmount
|
|
760
|
+
});
|
|
796
761
|
state.transactionError = error?.shortMessage;
|
|
797
762
|
state.loadingTransaction = false;
|
|
798
763
|
SnackController.showError(error?.shortMessage ?? 'Transaction error');
|
|
@@ -801,12 +766,12 @@ export const SwapController = {
|
|
|
801
766
|
event: 'SWAP_ERROR',
|
|
802
767
|
properties: {
|
|
803
768
|
message: error?.shortMessage ?? error?.message ?? 'Unknown',
|
|
804
|
-
network:
|
|
769
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId,
|
|
805
770
|
swapFromToken: this.state.sourceToken?.symbol || '',
|
|
806
771
|
swapToToken: this.state.toToken?.symbol || '',
|
|
807
772
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
808
773
|
swapToAmount: this.state.toTokenAmount || '',
|
|
809
|
-
isSmartAccount:
|
|
774
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
810
775
|
}
|
|
811
776
|
});
|
|
812
777
|
|
|
@@ -814,8 +779,45 @@ export const SwapController = {
|
|
|
814
779
|
}
|
|
815
780
|
},
|
|
816
781
|
|
|
782
|
+
clearTransactionLoaders() {
|
|
783
|
+
state.loadingApprovalTransaction = false;
|
|
784
|
+
state.loadingBuildTransaction = false;
|
|
785
|
+
state.loadingTransaction = false;
|
|
786
|
+
},
|
|
787
|
+
|
|
788
|
+
clearTokens() {
|
|
789
|
+
state.sourceToken = initialState.sourceToken;
|
|
790
|
+
state.sourceTokenAmount = initialState.sourceTokenAmount;
|
|
791
|
+
state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
|
|
792
|
+
state.toToken = initialState.toToken;
|
|
793
|
+
state.toTokenAmount = initialState.toTokenAmount;
|
|
794
|
+
state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
|
|
795
|
+
state.inputError = initialState.inputError;
|
|
796
|
+
state.loadingApprovalTransaction = initialState.loadingApprovalTransaction;
|
|
797
|
+
state.loadingBuildTransaction = initialState.loadingBuildTransaction;
|
|
798
|
+
state.loadingTransaction = initialState.loadingTransaction;
|
|
799
|
+
state.fetchError = initialState.fetchError;
|
|
800
|
+
state.transactionError = initialState.transactionError;
|
|
801
|
+
state.swapTransaction = initialState.swapTransaction;
|
|
802
|
+
state.approvalTransaction = initialState.approvalTransaction;
|
|
803
|
+
},
|
|
804
|
+
|
|
805
|
+
resetState() {
|
|
806
|
+
this.clearTokens();
|
|
807
|
+
state.myTokensWithBalance = initialState.myTokensWithBalance;
|
|
808
|
+
state.tokensPriceMap = initialState.tokensPriceMap;
|
|
809
|
+
state.networkPrice = initialState.networkPrice;
|
|
810
|
+
state.networkTokenSymbol = initialState.networkTokenSymbol;
|
|
811
|
+
},
|
|
812
|
+
|
|
817
813
|
// -- Checks -------------------------------------------- //
|
|
818
814
|
hasInsufficientToken(sourceTokenAmount: string, sourceTokenAddress: string) {
|
|
815
|
+
const { balances } = ConnectionsController.state;
|
|
816
|
+
const networkToken = balances?.find(t => t.address === undefined);
|
|
817
|
+
const networkBalanceInUSD = networkToken
|
|
818
|
+
? NumberUtil.multiply(networkToken.quantity?.numeric ?? '0', networkToken.price).toString()
|
|
819
|
+
: '0';
|
|
820
|
+
|
|
819
821
|
const isInsufficientSourceTokenForSwap = SwapCalculationUtil.isInsufficientSourceTokenForSwap(
|
|
820
822
|
sourceTokenAmount,
|
|
821
823
|
sourceTokenAddress,
|
|
@@ -823,12 +825,12 @@ export const SwapController = {
|
|
|
823
825
|
);
|
|
824
826
|
|
|
825
827
|
let insufficientNetworkTokenForGas = true;
|
|
826
|
-
if (
|
|
828
|
+
if (ConnectionsController.state.accountType === 'smartAccount') {
|
|
827
829
|
// Smart Accounts may pay gas in any ERC20 token
|
|
828
830
|
insufficientNetworkTokenForGas = false;
|
|
829
831
|
} else {
|
|
830
832
|
insufficientNetworkTokenForGas = SwapCalculationUtil.isInsufficientNetworkTokenForGas(
|
|
831
|
-
|
|
833
|
+
networkBalanceInUSD,
|
|
832
834
|
state.gasPriceInUSD
|
|
833
835
|
);
|
|
834
836
|
}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
+
import { Appearance } from 'react-native';
|
|
1
2
|
import { proxy, subscribe as sub } from 'valtio';
|
|
2
3
|
import type { ThemeMode, ThemeVariables } from '@reown/appkit-common-react-native';
|
|
3
4
|
|
|
4
5
|
// -- Types --------------------------------------------- //
|
|
5
6
|
export interface ThemeControllerState {
|
|
6
7
|
themeMode?: ThemeMode;
|
|
7
|
-
|
|
8
|
+
defaultThemeMode?: ThemeMode;
|
|
9
|
+
themeVariables?: ThemeVariables;
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
// -- State --------------------------------------------- //
|
|
11
13
|
const state = proxy<ThemeControllerState>({
|
|
12
14
|
themeMode: undefined,
|
|
15
|
+
defaultThemeMode: undefined,
|
|
13
16
|
themeVariables: {}
|
|
14
17
|
});
|
|
15
18
|
|
|
@@ -22,10 +25,23 @@ export const ThemeController = {
|
|
|
22
25
|
},
|
|
23
26
|
|
|
24
27
|
setThemeMode(themeMode: ThemeControllerState['themeMode']) {
|
|
25
|
-
|
|
28
|
+
if (!themeMode) {
|
|
29
|
+
state.themeMode = Appearance.getColorScheme() as ThemeMode;
|
|
30
|
+
} else {
|
|
31
|
+
state.themeMode = themeMode;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
setDefaultThemeMode(themeMode: ThemeControllerState['defaultThemeMode']) {
|
|
36
|
+
state.defaultThemeMode = themeMode;
|
|
37
|
+
this.setThemeMode(themeMode);
|
|
26
38
|
},
|
|
27
39
|
|
|
28
40
|
setThemeVariables(themeVariables: ThemeControllerState['themeVariables']) {
|
|
41
|
+
if (!themeVariables) {
|
|
42
|
+
state.themeVariables = {};
|
|
43
|
+
}
|
|
44
|
+
|
|
29
45
|
state.themeVariables = { ...state.themeVariables, ...themeVariables };
|
|
30
46
|
}
|
|
31
47
|
};
|