@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,20 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import { subscribeKey as subKey } from 'valtio/utils';
|
|
2
4
|
import { proxy, subscribe as sub } from 'valtio';
|
|
3
5
|
import { NumberUtil } from '@reown/appkit-common-react-native';
|
|
4
6
|
import { ConstantsUtil } from '../utils/ConstantsUtil';
|
|
5
7
|
import { SwapApiUtil } from '../utils/SwapApiUtil';
|
|
6
|
-
import { NetworkController } from './NetworkController';
|
|
7
8
|
import { BlockchainApiController } from './BlockchainApiController';
|
|
8
9
|
import { OptionsController } from './OptionsController';
|
|
9
10
|
import { SwapCalculationUtil } from '../utils/SwapCalculationUtil';
|
|
10
11
|
import { SnackController } from './SnackController';
|
|
12
|
+
import { LogController } from './LogController';
|
|
11
13
|
import { RouterController } from './RouterController';
|
|
12
|
-
import { ConnectorController } from './ConnectorController';
|
|
13
|
-
import { AccountController } from './AccountController';
|
|
14
14
|
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
15
|
-
import { ConnectionController } from './ConnectionController';
|
|
16
15
|
import { TransactionsController } from './TransactionsController';
|
|
17
16
|
import { EventsController } from './EventsController';
|
|
17
|
+
import { ConnectionsController } from './ConnectionsController';
|
|
18
18
|
|
|
19
19
|
// -- Constants ---------------------------------------- //
|
|
20
20
|
export const INITIAL_GAS_LIMIT = 150000;
|
|
@@ -32,8 +32,7 @@ class TransactionError extends Error {
|
|
|
32
32
|
// -- State --------------------------------------------- //
|
|
33
33
|
const initialState = {
|
|
34
34
|
// Loading states
|
|
35
|
-
|
|
36
|
-
initialized: false,
|
|
35
|
+
loadingTokens: false,
|
|
37
36
|
loadingPrices: false,
|
|
38
37
|
loadingQuote: false,
|
|
39
38
|
loadingApprovalTransaction: false,
|
|
@@ -53,7 +52,6 @@ const initialState = {
|
|
|
53
52
|
toTokenAmount: '',
|
|
54
53
|
toTokenPriceInUSD: 0,
|
|
55
54
|
networkPrice: '0',
|
|
56
|
-
networkBalanceInUSD: '0',
|
|
57
55
|
networkTokenSymbol: '',
|
|
58
56
|
inputError: undefined,
|
|
59
57
|
// Request values
|
|
@@ -72,7 +70,9 @@ const initialState = {
|
|
|
72
70
|
maxSlippage: undefined,
|
|
73
71
|
providerFee: undefined
|
|
74
72
|
};
|
|
75
|
-
const state = proxy(
|
|
73
|
+
const state = proxy({
|
|
74
|
+
...initialState
|
|
75
|
+
});
|
|
76
76
|
|
|
77
77
|
// -- Controller ---------------------------------------- //
|
|
78
78
|
export const SwapController = {
|
|
@@ -84,10 +84,17 @@ export const SwapController = {
|
|
|
84
84
|
return subKey(state, key, callback);
|
|
85
85
|
},
|
|
86
86
|
getParams() {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
const {
|
|
88
|
+
activeAddress,
|
|
89
|
+
activeNamespace,
|
|
90
|
+
activeNetwork,
|
|
91
|
+
connection
|
|
92
|
+
} = ConnectionsController.state;
|
|
93
|
+
const address = CoreHelperUtil.getPlainAddress(activeAddress);
|
|
94
|
+
if (!activeNamespace || !activeNetwork) {
|
|
95
|
+
throw new Error('No active namespace or network found to swap the tokens from.');
|
|
96
|
+
}
|
|
97
|
+
const networkAddress = `${activeNetwork.caipNetworkId}:${ConstantsUtil.NATIVE_TOKEN_ADDRESS[activeNamespace]}`;
|
|
91
98
|
if (!address) {
|
|
92
99
|
throw new Error('No address found to swap the tokens from.');
|
|
93
100
|
}
|
|
@@ -96,8 +103,9 @@ export const SwapController = {
|
|
|
96
103
|
const invalidSourceTokenAmount = !state.sourceTokenAmount;
|
|
97
104
|
return {
|
|
98
105
|
networkAddress,
|
|
106
|
+
network: activeNetwork,
|
|
99
107
|
fromAddress: address,
|
|
100
|
-
fromCaipAddress:
|
|
108
|
+
fromCaipAddress: activeAddress,
|
|
101
109
|
sourceTokenAddress: state.sourceToken?.address,
|
|
102
110
|
toTokenAddress: state.toToken?.address,
|
|
103
111
|
toTokenAmount: state.toTokenAmount,
|
|
@@ -107,12 +115,12 @@ export const SwapController = {
|
|
|
107
115
|
invalidToToken,
|
|
108
116
|
invalidSourceToken,
|
|
109
117
|
invalidSourceTokenAmount,
|
|
110
|
-
availableToSwap:
|
|
111
|
-
isAuthConnector:
|
|
118
|
+
availableToSwap: activeAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
|
|
119
|
+
isAuthConnector: !!connection?.properties?.provider
|
|
112
120
|
};
|
|
113
121
|
},
|
|
114
122
|
switchTokens() {
|
|
115
|
-
if (state.
|
|
123
|
+
if (state.loadingTokens) {
|
|
116
124
|
return;
|
|
117
125
|
}
|
|
118
126
|
let newSourceToken = state.toToken ? {
|
|
@@ -132,35 +140,33 @@ export const SwapController = {
|
|
|
132
140
|
this.setToTokenAmount('');
|
|
133
141
|
this.swapTokens();
|
|
134
142
|
},
|
|
135
|
-
resetState() {
|
|
136
|
-
state.myTokensWithBalance = initialState.myTokensWithBalance;
|
|
137
|
-
state.tokensPriceMap = initialState.tokensPriceMap;
|
|
138
|
-
state.initialized = initialState.initialized;
|
|
139
|
-
state.sourceToken = initialState.sourceToken;
|
|
140
|
-
state.sourceTokenAmount = initialState.sourceTokenAmount;
|
|
141
|
-
state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
|
|
142
|
-
state.toToken = initialState.toToken;
|
|
143
|
-
state.toTokenAmount = initialState.toTokenAmount;
|
|
144
|
-
state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
|
|
145
|
-
state.networkPrice = initialState.networkPrice;
|
|
146
|
-
state.networkTokenSymbol = initialState.networkTokenSymbol;
|
|
147
|
-
state.networkBalanceInUSD = initialState.networkBalanceInUSD;
|
|
148
|
-
state.inputError = initialState.inputError;
|
|
149
|
-
},
|
|
150
143
|
async fetchTokens() {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
state.
|
|
144
|
+
try {
|
|
145
|
+
const {
|
|
146
|
+
networkAddress
|
|
147
|
+
} = this.getParams();
|
|
148
|
+
state.loadingTokens = true;
|
|
149
|
+
await this.getTokenList();
|
|
150
|
+
await this.getNetworkTokenPrice();
|
|
151
|
+
await this.getMyTokensWithBalance();
|
|
152
|
+
const networkToken = state.tokens?.find(token => token.address === networkAddress);
|
|
153
|
+
if (networkToken) {
|
|
154
|
+
state.networkTokenSymbol = networkToken.symbol;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Set default source token if not set
|
|
158
|
+
if (!state.sourceToken && state.myTokensWithBalance?.length) {
|
|
159
|
+
const sourceToken = state.myTokensWithBalance?.find(token => token.address.startsWith(networkAddress)) || state.myTokensWithBalance?.[0];
|
|
160
|
+
this.setSourceToken(sourceToken);
|
|
161
|
+
this.setSourceTokenAmount('1');
|
|
162
|
+
}
|
|
163
|
+
} catch (error) {
|
|
164
|
+
LogController.sendError(error, 'SwapController.ts', 'initializeState');
|
|
165
|
+
SnackController.showError('Failed to initialize swap');
|
|
166
|
+
RouterController.goBack();
|
|
167
|
+
} finally {
|
|
168
|
+
state.loadingTokens = false;
|
|
160
169
|
}
|
|
161
|
-
const sourceToken = state.myTokensWithBalance?.find(token => token.address.startsWith(networkAddress)) || state.myTokensWithBalance?.[0];
|
|
162
|
-
this.setSourceToken(sourceToken);
|
|
163
|
-
this.setSourceTokenAmount('1');
|
|
164
170
|
},
|
|
165
171
|
async getTokenList() {
|
|
166
172
|
const tokens = await SwapApiUtil.getTokenList();
|
|
@@ -182,15 +188,19 @@ export const SwapController = {
|
|
|
182
188
|
}, {});
|
|
183
189
|
},
|
|
184
190
|
async getMyTokensWithBalance(forceUpdate) {
|
|
185
|
-
|
|
186
|
-
|
|
191
|
+
await ConnectionsController.fetchBalance(forceUpdate);
|
|
192
|
+
const swapBalances = SwapApiUtil.mapBalancesToSwapTokens(ConnectionsController.state.balances);
|
|
193
|
+
if (!swapBalances) {
|
|
187
194
|
return;
|
|
188
195
|
}
|
|
189
196
|
await this.getInitialGasPrice();
|
|
190
|
-
this.setBalances(
|
|
197
|
+
this.setBalances(swapBalances);
|
|
191
198
|
},
|
|
192
|
-
getFilteredPopularTokens() {
|
|
193
|
-
|
|
199
|
+
getFilteredPopularTokens(balances) {
|
|
200
|
+
if (!balances) {
|
|
201
|
+
return state.popularTokens;
|
|
202
|
+
}
|
|
203
|
+
return state.popularTokens?.filter(token => !balances.some(t => t.address === token.address));
|
|
194
204
|
},
|
|
195
205
|
setSourceToken(sourceToken) {
|
|
196
206
|
if (!sourceToken) {
|
|
@@ -208,31 +218,17 @@ export const SwapController = {
|
|
|
208
218
|
state.toTokenAmount = '';
|
|
209
219
|
}
|
|
210
220
|
},
|
|
211
|
-
async initializeState() {
|
|
212
|
-
if (state.initializing) {
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
state.initializing = true;
|
|
216
|
-
if (!state.initialized) {
|
|
217
|
-
try {
|
|
218
|
-
await this.fetchTokens();
|
|
219
|
-
state.initialized = true;
|
|
220
|
-
} catch (error) {
|
|
221
|
-
state.initialized = false;
|
|
222
|
-
SnackController.showError('Failed to initialize swap');
|
|
223
|
-
RouterController.goBack();
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
state.initializing = false;
|
|
227
|
-
},
|
|
228
221
|
async getAddressPrice(address) {
|
|
222
|
+
const [namespace, chain] = address.split(':');
|
|
223
|
+
const networkId = `${namespace}:${chain}`;
|
|
229
224
|
const existPrice = state.tokensPriceMap[address];
|
|
230
225
|
if (existPrice) {
|
|
231
226
|
return existPrice;
|
|
232
227
|
}
|
|
233
228
|
const response = await BlockchainApiController.fetchTokenPrice({
|
|
234
229
|
projectId: OptionsController.state.projectId,
|
|
235
|
-
addresses: [address]
|
|
230
|
+
addresses: [address],
|
|
231
|
+
caipNetworkId: networkId
|
|
236
232
|
});
|
|
237
233
|
const fungibles = response?.fungibles || [];
|
|
238
234
|
const allTokens = [...(state.tokens || []), ...(state.myTokensWithBalance || [])];
|
|
@@ -246,9 +242,12 @@ export const SwapController = {
|
|
|
246
242
|
const {
|
|
247
243
|
networkAddress
|
|
248
244
|
} = this.getParams();
|
|
245
|
+
const [namespace, chain] = networkAddress.split(':');
|
|
246
|
+
const networkId = `${namespace}:${chain}`;
|
|
249
247
|
const response = await BlockchainApiController.fetchTokenPrice({
|
|
250
248
|
projectId: OptionsController.state.projectId,
|
|
251
|
-
addresses: [networkAddress]
|
|
249
|
+
addresses: [networkAddress],
|
|
250
|
+
caipNetworkId: networkId
|
|
252
251
|
});
|
|
253
252
|
const token = response?.fungibles?.[0];
|
|
254
253
|
const price = token?.price.toString() || '0';
|
|
@@ -279,19 +278,10 @@ export const SwapController = {
|
|
|
279
278
|
return SwapCalculationUtil.getProviderFeePrice(state.sourceTokenAmount, state.sourceTokenPriceInUSD);
|
|
280
279
|
},
|
|
281
280
|
setBalances(balances) {
|
|
282
|
-
|
|
283
|
-
networkAddress
|
|
284
|
-
} = this.getParams();
|
|
285
|
-
const caipNetwork = NetworkController.state.caipNetwork;
|
|
286
|
-
if (!caipNetwork) {
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
const networkToken = balances.find(token => token.address === networkAddress);
|
|
281
|
+
state.myTokensWithBalance = balances;
|
|
290
282
|
balances.forEach(token => {
|
|
291
283
|
state.tokensPriceMap[token.address] = token.price || 0;
|
|
292
284
|
});
|
|
293
|
-
state.myTokensWithBalance = balances.filter(token => token.address?.startsWith(caipNetwork.id));
|
|
294
|
-
state.networkBalanceInUSD = networkToken ? NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString() : '0';
|
|
295
285
|
},
|
|
296
286
|
setToToken(toToken) {
|
|
297
287
|
if (!toToken) {
|
|
@@ -326,36 +316,43 @@ export const SwapController = {
|
|
|
326
316
|
},
|
|
327
317
|
// -- Swap ---------------------------------------------- //
|
|
328
318
|
async swapTokens() {
|
|
329
|
-
const address =
|
|
319
|
+
const address = ConnectionsController.state.activeAddress;
|
|
330
320
|
const sourceToken = state.sourceToken;
|
|
331
321
|
const toToken = state.toToken;
|
|
332
322
|
const haveSourceTokenAmount = NumberUtil.bigNumber(state.sourceTokenAmount).isGreaterThan(0);
|
|
333
|
-
if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount) {
|
|
323
|
+
if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount || !address) {
|
|
334
324
|
return;
|
|
335
325
|
}
|
|
336
326
|
state.loadingQuote = true;
|
|
337
327
|
const amountDecimal = NumberUtil.bigNumber(state.sourceTokenAmount).multipliedBy(10 ** sourceToken.decimals).integerValue();
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
328
|
+
try {
|
|
329
|
+
const quoteResponse = await BlockchainApiController.fetchSwapQuote({
|
|
330
|
+
userAddress: address,
|
|
331
|
+
projectId: OptionsController.state.projectId,
|
|
332
|
+
from: sourceToken.address,
|
|
333
|
+
to: toToken.address,
|
|
334
|
+
gasPrice: state.gasFee,
|
|
335
|
+
amount: amountDecimal.toString()
|
|
336
|
+
});
|
|
337
|
+
const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;
|
|
338
|
+
if (!quoteToAmount) {
|
|
339
|
+
state.loadingQuote = false;
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
const toTokenAmount = NumberUtil.bigNumber(quoteToAmount).dividedBy(10 ** toToken.decimals).toString();
|
|
343
|
+
this.setToTokenAmount(toTokenAmount);
|
|
344
|
+
const isInsufficientToken = this.hasInsufficientToken(state.sourceTokenAmount, sourceToken.address);
|
|
345
|
+
if (isInsufficientToken) {
|
|
346
|
+
state.inputError = 'Insufficient balance';
|
|
347
|
+
} else {
|
|
348
|
+
state.inputError = undefined;
|
|
349
|
+
this.setTransactionDetails();
|
|
350
|
+
}
|
|
351
|
+
} catch (error) {
|
|
352
|
+
LogController.sendError(error, 'SwapController.ts', 'getQuote');
|
|
353
|
+
SnackController.showError('Failed to get swap quote');
|
|
354
|
+
} finally {
|
|
355
|
+
state.loadingQuote = false;
|
|
359
356
|
}
|
|
360
357
|
},
|
|
361
358
|
// -- Create Transactions -------------------------------------- //
|
|
@@ -419,7 +416,7 @@ export const SwapController = {
|
|
|
419
416
|
if (!response) {
|
|
420
417
|
throw new Error('createAllowanceTransaction - No response from generateApproveCalldata');
|
|
421
418
|
}
|
|
422
|
-
const gasLimit = await
|
|
419
|
+
const gasLimit = await ConnectionsController.estimateGas({
|
|
423
420
|
address: fromAddress,
|
|
424
421
|
to: CoreHelperUtil.getPlainAddress(response.tx.to),
|
|
425
422
|
data: response.tx.data
|
|
@@ -469,7 +466,7 @@ export const SwapController = {
|
|
|
469
466
|
if (!fromCaipAddress || !sourceTokenAmount || !sourceToken || !toToken) {
|
|
470
467
|
return undefined;
|
|
471
468
|
}
|
|
472
|
-
const amount =
|
|
469
|
+
const amount = ConnectionsController.parseUnits(sourceTokenAmount, sourceToken.decimals)?.toString();
|
|
473
470
|
try {
|
|
474
471
|
const response = await BlockchainApiController.generateSwapCalldata({
|
|
475
472
|
projectId: OptionsController.state.projectId,
|
|
@@ -508,39 +505,29 @@ export const SwapController = {
|
|
|
508
505
|
async sendTransactionForApproval(data) {
|
|
509
506
|
const {
|
|
510
507
|
fromAddress,
|
|
511
|
-
|
|
508
|
+
network
|
|
512
509
|
} = this.getParams();
|
|
513
510
|
state.loadingApprovalTransaction = true;
|
|
514
|
-
|
|
515
|
-
if (isAuthConnector) {
|
|
516
|
-
RouterController.pushTransactionStack({
|
|
517
|
-
view: null,
|
|
518
|
-
goBack: true,
|
|
519
|
-
onSuccess() {
|
|
520
|
-
SnackController.showLoading(approveLimitMessage);
|
|
521
|
-
}
|
|
522
|
-
});
|
|
523
|
-
} else {
|
|
524
|
-
SnackController.showLoading(approveLimitMessage);
|
|
525
|
-
}
|
|
511
|
+
SnackController.showLoading('Approve limit increase in your wallet');
|
|
526
512
|
try {
|
|
527
|
-
await
|
|
513
|
+
await ConnectionsController.sendTransaction({
|
|
528
514
|
address: fromAddress,
|
|
529
515
|
to: data.to,
|
|
530
516
|
data: data.data,
|
|
531
517
|
value: BigInt(data.value),
|
|
532
518
|
gasPrice: BigInt(data.gasPrice),
|
|
533
|
-
chainNamespace:
|
|
519
|
+
chainNamespace: ConnectionsController.state.activeNamespace,
|
|
520
|
+
network
|
|
534
521
|
});
|
|
535
522
|
await this.swapTokens();
|
|
536
523
|
await this.getTransaction();
|
|
537
524
|
state.approvalTransaction = undefined;
|
|
538
|
-
state.loadingApprovalTransaction = false;
|
|
539
525
|
} catch (err) {
|
|
540
526
|
const error = err;
|
|
541
527
|
state.transactionError = error?.shortMessage;
|
|
542
|
-
state.loadingApprovalTransaction = false;
|
|
543
528
|
SnackController.showError(error?.shortMessage ?? 'Transaction error');
|
|
529
|
+
} finally {
|
|
530
|
+
state.loadingApprovalTransaction = false;
|
|
544
531
|
}
|
|
545
532
|
},
|
|
546
533
|
async sendTransactionForSwap(data) {
|
|
@@ -549,61 +536,54 @@ export const SwapController = {
|
|
|
549
536
|
}
|
|
550
537
|
const {
|
|
551
538
|
fromAddress,
|
|
552
|
-
|
|
553
|
-
|
|
539
|
+
isAuthConnector,
|
|
540
|
+
network
|
|
554
541
|
} = this.getParams();
|
|
555
542
|
state.loadingTransaction = true;
|
|
556
|
-
const
|
|
557
|
-
|
|
558
|
-
if (isAuthConnector) {
|
|
559
|
-
RouterController.pushTransactionStack({
|
|
560
|
-
view: 'Account',
|
|
561
|
-
goBack: false,
|
|
562
|
-
onSuccess() {
|
|
563
|
-
SnackController.showLoading(snackbarPendingMessage);
|
|
564
|
-
SwapController.resetState();
|
|
565
|
-
}
|
|
566
|
-
});
|
|
567
|
-
} else {
|
|
568
|
-
SnackController.showLoading('Confirm transaction in your wallet');
|
|
569
|
-
}
|
|
543
|
+
const snackbarSuccessMessage = `Swapped ${state.sourceToken?.symbol} to ${state.toToken?.symbol}`;
|
|
544
|
+
SnackController.showLoading('Confirm transaction in your wallet');
|
|
570
545
|
try {
|
|
571
|
-
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].
|
|
572
|
-
const transactionHash = await
|
|
546
|
+
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].filter(Boolean);
|
|
547
|
+
const transactionHash = await ConnectionsController.sendTransaction({
|
|
573
548
|
address: fromAddress,
|
|
574
549
|
to: data.to,
|
|
575
550
|
data: data.data,
|
|
576
551
|
gas: data.gas,
|
|
577
552
|
gasPrice: BigInt(data.gasPrice),
|
|
578
553
|
value: data.value,
|
|
579
|
-
chainNamespace:
|
|
554
|
+
chainNamespace: ConnectionsController.state.activeNamespace,
|
|
555
|
+
network
|
|
580
556
|
});
|
|
581
557
|
state.loadingTransaction = false;
|
|
582
|
-
SnackController.showSuccess(snackbarSuccessMessage);
|
|
558
|
+
SnackController.showSuccess(snackbarSuccessMessage, true);
|
|
583
559
|
EventsController.sendEvent({
|
|
584
560
|
type: 'track',
|
|
585
561
|
event: 'SWAP_SUCCESS',
|
|
586
562
|
properties: {
|
|
587
|
-
network:
|
|
563
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId,
|
|
588
564
|
swapFromToken: this.state.sourceToken?.symbol || '',
|
|
589
565
|
swapToToken: this.state.toToken?.symbol || '',
|
|
590
566
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
591
567
|
swapToAmount: this.state.toTokenAmount || '',
|
|
592
|
-
isSmartAccount:
|
|
568
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
593
569
|
}
|
|
594
570
|
});
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
RouterController.replace('AccountDefault');
|
|
598
|
-
}
|
|
571
|
+
RouterController.replace(isAuthConnector ? 'Account' : 'AccountDefault');
|
|
572
|
+
SwapController.clearTokens();
|
|
599
573
|
SwapController.getMyTokensWithBalance(forceUpdateAddresses);
|
|
600
|
-
AccountController.fetchTokenBalance();
|
|
601
574
|
setTimeout(() => {
|
|
602
|
-
|
|
575
|
+
if (ConnectionsController.state.activeAddress) {
|
|
576
|
+
TransactionsController.fetchTransactions(ConnectionsController.state.activeAddress, true);
|
|
577
|
+
}
|
|
603
578
|
}, 5000);
|
|
604
579
|
return transactionHash;
|
|
605
580
|
} catch (err) {
|
|
606
581
|
const error = err;
|
|
582
|
+
LogController.sendError(error, 'SwapController.ts', 'sendTransactionForSwap', {
|
|
583
|
+
sourceToken: this.state.sourceToken?.symbol,
|
|
584
|
+
toToken: this.state.toToken?.symbol,
|
|
585
|
+
amount: this.state.sourceTokenAmount
|
|
586
|
+
});
|
|
607
587
|
state.transactionError = error?.shortMessage;
|
|
608
588
|
state.loadingTransaction = false;
|
|
609
589
|
SnackController.showError(error?.shortMessage ?? 'Transaction error');
|
|
@@ -612,26 +592,59 @@ export const SwapController = {
|
|
|
612
592
|
event: 'SWAP_ERROR',
|
|
613
593
|
properties: {
|
|
614
594
|
message: error?.shortMessage ?? error?.message ?? 'Unknown',
|
|
615
|
-
network:
|
|
595
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId,
|
|
616
596
|
swapFromToken: this.state.sourceToken?.symbol || '',
|
|
617
597
|
swapToToken: this.state.toToken?.symbol || '',
|
|
618
598
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
619
599
|
swapToAmount: this.state.toTokenAmount || '',
|
|
620
|
-
isSmartAccount:
|
|
600
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
621
601
|
}
|
|
622
602
|
});
|
|
623
603
|
return undefined;
|
|
624
604
|
}
|
|
625
605
|
},
|
|
606
|
+
clearTransactionLoaders() {
|
|
607
|
+
state.loadingApprovalTransaction = false;
|
|
608
|
+
state.loadingBuildTransaction = false;
|
|
609
|
+
state.loadingTransaction = false;
|
|
610
|
+
},
|
|
611
|
+
clearTokens() {
|
|
612
|
+
state.sourceToken = initialState.sourceToken;
|
|
613
|
+
state.sourceTokenAmount = initialState.sourceTokenAmount;
|
|
614
|
+
state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
|
|
615
|
+
state.toToken = initialState.toToken;
|
|
616
|
+
state.toTokenAmount = initialState.toTokenAmount;
|
|
617
|
+
state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
|
|
618
|
+
state.inputError = initialState.inputError;
|
|
619
|
+
state.loadingApprovalTransaction = initialState.loadingApprovalTransaction;
|
|
620
|
+
state.loadingBuildTransaction = initialState.loadingBuildTransaction;
|
|
621
|
+
state.loadingTransaction = initialState.loadingTransaction;
|
|
622
|
+
state.fetchError = initialState.fetchError;
|
|
623
|
+
state.transactionError = initialState.transactionError;
|
|
624
|
+
state.swapTransaction = initialState.swapTransaction;
|
|
625
|
+
state.approvalTransaction = initialState.approvalTransaction;
|
|
626
|
+
},
|
|
627
|
+
resetState() {
|
|
628
|
+
this.clearTokens();
|
|
629
|
+
state.myTokensWithBalance = initialState.myTokensWithBalance;
|
|
630
|
+
state.tokensPriceMap = initialState.tokensPriceMap;
|
|
631
|
+
state.networkPrice = initialState.networkPrice;
|
|
632
|
+
state.networkTokenSymbol = initialState.networkTokenSymbol;
|
|
633
|
+
},
|
|
626
634
|
// -- Checks -------------------------------------------- //
|
|
627
635
|
hasInsufficientToken(sourceTokenAmount, sourceTokenAddress) {
|
|
636
|
+
const {
|
|
637
|
+
balances
|
|
638
|
+
} = ConnectionsController.state;
|
|
639
|
+
const networkToken = balances?.find(t => t.address === undefined);
|
|
640
|
+
const networkBalanceInUSD = networkToken ? NumberUtil.multiply(networkToken.quantity?.numeric ?? '0', networkToken.price).toString() : '0';
|
|
628
641
|
const isInsufficientSourceTokenForSwap = SwapCalculationUtil.isInsufficientSourceTokenForSwap(sourceTokenAmount, sourceTokenAddress, state.myTokensWithBalance);
|
|
629
642
|
let insufficientNetworkTokenForGas = true;
|
|
630
|
-
if (
|
|
643
|
+
if (ConnectionsController.state.accountType === 'smartAccount') {
|
|
631
644
|
// Smart Accounts may pay gas in any ERC20 token
|
|
632
645
|
insufficientNetworkTokenForGas = false;
|
|
633
646
|
} else {
|
|
634
|
-
insufficientNetworkTokenForGas = SwapCalculationUtil.isInsufficientNetworkTokenForGas(
|
|
647
|
+
insufficientNetworkTokenForGas = SwapCalculationUtil.isInsufficientNetworkTokenForGas(networkBalanceInUSD, state.gasPriceInUSD);
|
|
635
648
|
}
|
|
636
649
|
return insufficientNetworkTokenForGas || isInsufficientSourceTokenForSwap;
|
|
637
650
|
},
|