@reown/appkit-core-react-native 2.0.0-alpha.1 → 2.0.0-alpha.3
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 -21
- 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 +102 -112
- package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionsController.js +248 -51
- 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 +10 -4
- package/lib/commonjs/controllers/OptionsController.js.map +1 -1
- package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
- package/lib/commonjs/controllers/RouterController.js +6 -21
- package/lib/commonjs/controllers/RouterController.js.map +1 -1
- package/lib/commonjs/controllers/SendController.js +100 -100
- 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 +109 -117
- 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/controllers/WcController.js +73 -0
- package/lib/commonjs/controllers/WcController.js.map +1 -0
- package/lib/commonjs/index.js +3 -38
- 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 +6 -14
- package/lib/commonjs/utils/AssetUtil.js.map +1 -1
- package/lib/commonjs/utils/ConstantsUtil.js +13 -425
- 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 +77 -129
- package/lib/commonjs/utils/StorageUtil.js.map +1 -1
- package/lib/commonjs/utils/SwapApiUtil.js +2 -17
- package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
- package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
- package/lib/module/controllers/ApiController.js +17 -21
- 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 +103 -111
- package/lib/module/controllers/BlockchainApiController.js.map +1 -1
- package/lib/module/controllers/ConnectionsController.js +250 -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 +12 -4
- 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 +8 -21
- package/lib/module/controllers/RouterController.js.map +1 -1
- package/lib/module/controllers/SendController.js +99 -97
- 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 +111 -117
- 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/controllers/WcController.js +70 -0
- package/lib/module/controllers/WcController.js.map +1 -0
- package/lib/module/index.js +5 -6
- 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 +8 -14
- package/lib/module/utils/AssetUtil.js.map +1 -1
- package/lib/module/utils/ConstantsUtil.js +15 -425
- package/lib/module/utils/ConstantsUtil.js.map +1 -1
- package/lib/module/utils/CoreHelperUtil.js +15 -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 +80 -129
- package/lib/module/utils/StorageUtil.js.map +1 -1
- package/lib/module/utils/SwapApiUtil.js +4 -17
- 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/typescript/controllers/ApiController.d.ts +3 -4
- 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 +21 -13
- package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/ConnectionsController.d.ts +19 -17
- package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -1
- package/lib/typescript/controllers/EnsController.d.ts +1 -1
- package/lib/typescript/controllers/EventsController.d.ts +1 -1
- package/lib/typescript/controllers/EventsController.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 +4 -3
- package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
- package/lib/typescript/controllers/OptionsController.d.ts +4 -4
- package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
- package/lib/typescript/controllers/RouterController.d.ts +5 -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 +11 -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/controllers/WcController.d.ts +27 -0
- package/lib/typescript/controllers/WcController.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -7
- 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 -415
- package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
- package/lib/typescript/utils/CoreHelperUtil.d.ts +4 -4
- 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 +1 -1
- package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
- package/lib/typescript/utils/StorageUtil.d.ts +8 -19
- 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/package.json +9 -23
- package/src/controllers/ApiController.ts +24 -28
- package/src/controllers/AssetController.ts +0 -6
- package/src/controllers/BlockchainApiController.ts +76 -121
- package/src/controllers/ConnectionsController.ts +308 -78
- package/src/controllers/EnsController.ts +3 -3
- package/src/controllers/EventsController.ts +2 -2
- package/src/controllers/ModalController.ts +7 -9
- package/src/controllers/OnRampController.ts +179 -82
- package/src/controllers/OptionsController.ts +24 -8
- package/src/controllers/RouterController.ts +12 -54
- package/src/controllers/SendController.ts +123 -112
- package/src/controllers/SnackController.ts +31 -5
- package/src/controllers/SwapController.ts +130 -146
- package/src/controllers/TransactionsController.ts +24 -18
- package/src/controllers/WcController.ts +93 -0
- package/src/index.ts +2 -21
- package/src/utils/AssetUtil.ts +7 -17
- package/src/utils/ConstantsUtil.ts +15 -429
- package/src/utils/CoreHelperUtil.ts +31 -8
- package/src/utils/EventUtil.ts +1 -1
- package/src/utils/FetchUtil.ts +38 -11
- package/src/utils/StorageUtil.ts +146 -157
- package/src/utils/SwapApiUtil.ts +18 -37
- package/src/utils/SwapCalculationUtil.ts +1 -2
- package/lib/commonjs/controllers/AccountController.js +0 -93
- package/lib/commonjs/controllers/AccountController.js.map +0 -1
- package/lib/commonjs/controllers/ConnectionController.js +0 -132
- package/lib/commonjs/controllers/ConnectionController.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/commonjs/utils/TypeUtil.js +0 -6
- 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 -127
- package/lib/module/controllers/ConnectionController.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/module/utils/TypeUtil.js +0 -2
- 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 -68
- 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/NetworkUtil.d.ts +0 -8
- package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
- package/lib/typescript/utils/TypeUtil.d.ts +0 -817
- package/lib/typescript/utils/TypeUtil.d.ts.map +0 -1
- package/src/controllers/AccountController.ts +0 -128
- package/src/controllers/ConnectionController.ts +0 -208
- 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
- package/src/utils/TypeUtil.ts +0 -995
|
@@ -1,6 +1,12 @@
|
|
|
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';
|
|
@@ -9,9 +15,6 @@ import { OptionsController } from './OptionsController';
|
|
|
9
15
|
import { SwapCalculationUtil } from '../utils/SwapCalculationUtil';
|
|
10
16
|
import { SnackController } from './SnackController';
|
|
11
17
|
import { RouterController } from './RouterController';
|
|
12
|
-
import type { SwapInputTarget, SwapTokenWithBalance } from '../utils/TypeUtil';
|
|
13
|
-
import { ConnectorController } from './ConnectorController';
|
|
14
|
-
import { AccountController } from './AccountController';
|
|
15
18
|
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
16
19
|
import { TransactionsController } from './TransactionsController';
|
|
17
20
|
import { EventsController } from './EventsController';
|
|
@@ -43,8 +46,7 @@ class TransactionError extends Error {
|
|
|
43
46
|
|
|
44
47
|
export interface SwapControllerState {
|
|
45
48
|
// Loading states
|
|
46
|
-
|
|
47
|
-
initialized: boolean;
|
|
49
|
+
loadingTokens: boolean;
|
|
48
50
|
loadingPrices: boolean;
|
|
49
51
|
loadingQuote?: boolean;
|
|
50
52
|
loadingApprovalTransaction?: boolean;
|
|
@@ -67,7 +69,6 @@ export interface SwapControllerState {
|
|
|
67
69
|
toTokenAmount: string;
|
|
68
70
|
toTokenPriceInUSD: number;
|
|
69
71
|
networkPrice: string;
|
|
70
|
-
networkBalanceInUSD: string;
|
|
71
72
|
networkTokenSymbol: string;
|
|
72
73
|
inputError: string | undefined;
|
|
73
74
|
|
|
@@ -95,8 +96,7 @@ type StateKey = keyof SwapControllerState;
|
|
|
95
96
|
// -- State --------------------------------------------- //
|
|
96
97
|
const initialState: SwapControllerState = {
|
|
97
98
|
// Loading states
|
|
98
|
-
|
|
99
|
-
initialized: false,
|
|
99
|
+
loadingTokens: false,
|
|
100
100
|
loadingPrices: false,
|
|
101
101
|
loadingQuote: false,
|
|
102
102
|
loadingApprovalTransaction: false,
|
|
@@ -119,7 +119,6 @@ const initialState: SwapControllerState = {
|
|
|
119
119
|
toTokenAmount: '',
|
|
120
120
|
toTokenPriceInUSD: 0,
|
|
121
121
|
networkPrice: '0',
|
|
122
|
-
networkBalanceInUSD: '0',
|
|
123
122
|
networkTokenSymbol: '',
|
|
124
123
|
inputError: undefined,
|
|
125
124
|
|
|
@@ -142,7 +141,7 @@ const initialState: SwapControllerState = {
|
|
|
142
141
|
providerFee: undefined
|
|
143
142
|
};
|
|
144
143
|
|
|
145
|
-
const state = proxy<SwapControllerState>(initialState);
|
|
144
|
+
const state = proxy<SwapControllerState>({ ...initialState });
|
|
146
145
|
|
|
147
146
|
// -- Controller ---------------------------------------- //
|
|
148
147
|
export const SwapController = {
|
|
@@ -157,7 +156,8 @@ export const SwapController = {
|
|
|
157
156
|
},
|
|
158
157
|
|
|
159
158
|
getParams() {
|
|
160
|
-
const { activeAddress, activeNamespace, activeNetwork } =
|
|
159
|
+
const { activeAddress, activeNamespace, activeNetwork, connection } =
|
|
160
|
+
ConnectionsController.state;
|
|
161
161
|
const address = CoreHelperUtil.getPlainAddress(activeAddress);
|
|
162
162
|
|
|
163
163
|
if (!activeNamespace || !activeNetwork) {
|
|
@@ -166,8 +166,6 @@ export const SwapController = {
|
|
|
166
166
|
|
|
167
167
|
const networkAddress: CaipAddress = `${activeNetwork.caipNetworkId}:${ConstantsUtil.NATIVE_TOKEN_ADDRESS[activeNamespace]}`;
|
|
168
168
|
|
|
169
|
-
const type = ConnectorController.state.connectedConnector;
|
|
170
|
-
|
|
171
169
|
if (!address) {
|
|
172
170
|
throw new Error('No address found to swap the tokens from.');
|
|
173
171
|
}
|
|
@@ -182,6 +180,7 @@ export const SwapController = {
|
|
|
182
180
|
|
|
183
181
|
return {
|
|
184
182
|
networkAddress,
|
|
183
|
+
network: activeNetwork,
|
|
185
184
|
fromAddress: address,
|
|
186
185
|
fromCaipAddress: activeAddress,
|
|
187
186
|
sourceTokenAddress: state.sourceToken?.address,
|
|
@@ -195,12 +194,12 @@ export const SwapController = {
|
|
|
195
194
|
invalidSourceTokenAmount,
|
|
196
195
|
availableToSwap:
|
|
197
196
|
activeAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
|
|
198
|
-
isAuthConnector:
|
|
197
|
+
isAuthConnector: !!connection?.properties?.provider
|
|
199
198
|
};
|
|
200
199
|
},
|
|
201
200
|
|
|
202
201
|
switchTokens() {
|
|
203
|
-
if (state.
|
|
202
|
+
if (state.loadingTokens) {
|
|
204
203
|
return;
|
|
205
204
|
}
|
|
206
205
|
|
|
@@ -225,41 +224,36 @@ export const SwapController = {
|
|
|
225
224
|
this.swapTokens();
|
|
226
225
|
},
|
|
227
226
|
|
|
228
|
-
resetState() {
|
|
229
|
-
state.myTokensWithBalance = initialState.myTokensWithBalance;
|
|
230
|
-
state.tokensPriceMap = initialState.tokensPriceMap;
|
|
231
|
-
state.initialized = initialState.initialized;
|
|
232
|
-
state.sourceToken = initialState.sourceToken;
|
|
233
|
-
state.sourceTokenAmount = initialState.sourceTokenAmount;
|
|
234
|
-
state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
|
|
235
|
-
state.toToken = initialState.toToken;
|
|
236
|
-
state.toTokenAmount = initialState.toTokenAmount;
|
|
237
|
-
state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
|
|
238
|
-
state.networkPrice = initialState.networkPrice;
|
|
239
|
-
state.networkTokenSymbol = initialState.networkTokenSymbol;
|
|
240
|
-
state.networkBalanceInUSD = initialState.networkBalanceInUSD;
|
|
241
|
-
state.inputError = initialState.inputError;
|
|
242
|
-
},
|
|
243
|
-
|
|
244
227
|
async fetchTokens() {
|
|
245
|
-
|
|
228
|
+
try {
|
|
229
|
+
const { networkAddress } = this.getParams();
|
|
246
230
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
231
|
+
state.loadingTokens = true;
|
|
232
|
+
await this.getTokenList();
|
|
233
|
+
await this.getNetworkTokenPrice();
|
|
234
|
+
await this.getMyTokensWithBalance();
|
|
250
235
|
|
|
251
|
-
|
|
236
|
+
const networkToken = state.tokens?.find(token => token.address === networkAddress);
|
|
252
237
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
238
|
+
if (networkToken) {
|
|
239
|
+
state.networkTokenSymbol = networkToken.symbol;
|
|
240
|
+
}
|
|
256
241
|
|
|
257
|
-
|
|
258
|
-
state.
|
|
259
|
-
|
|
242
|
+
// Set default source token if not set
|
|
243
|
+
if (!state.sourceToken && state.myTokensWithBalance?.length) {
|
|
244
|
+
const sourceToken =
|
|
245
|
+
state.myTokensWithBalance?.find(token => token.address.startsWith(networkAddress)) ||
|
|
246
|
+
state.myTokensWithBalance?.[0];
|
|
260
247
|
|
|
261
|
-
|
|
262
|
-
|
|
248
|
+
this.setSourceToken(sourceToken);
|
|
249
|
+
this.setSourceTokenAmount('1');
|
|
250
|
+
}
|
|
251
|
+
} catch (error) {
|
|
252
|
+
SnackController.showError('Failed to initialize swap');
|
|
253
|
+
RouterController.goBack();
|
|
254
|
+
} finally {
|
|
255
|
+
state.loadingTokens = false;
|
|
256
|
+
}
|
|
263
257
|
},
|
|
264
258
|
|
|
265
259
|
async getTokenList() {
|
|
@@ -285,20 +279,23 @@ export const SwapController = {
|
|
|
285
279
|
}, {});
|
|
286
280
|
},
|
|
287
281
|
|
|
288
|
-
async getMyTokensWithBalance(forceUpdate?:
|
|
289
|
-
|
|
290
|
-
|
|
282
|
+
async getMyTokensWithBalance(forceUpdate?: CaipAddress[]) {
|
|
283
|
+
await ConnectionsController.fetchBalance(forceUpdate);
|
|
284
|
+
const swapBalances = SwapApiUtil.mapBalancesToSwapTokens(ConnectionsController.state.balances);
|
|
285
|
+
if (!swapBalances) {
|
|
291
286
|
return;
|
|
292
287
|
}
|
|
293
288
|
|
|
294
289
|
await this.getInitialGasPrice();
|
|
295
|
-
this.setBalances(
|
|
290
|
+
this.setBalances(swapBalances);
|
|
296
291
|
},
|
|
297
292
|
|
|
298
|
-
getFilteredPopularTokens() {
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
293
|
+
getFilteredPopularTokens(balances?: SwapTokenWithBalance[]) {
|
|
294
|
+
if (!balances) {
|
|
295
|
+
return state.popularTokens;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
return state.popularTokens?.filter(token => !balances.some(t => t.address === token.address));
|
|
302
299
|
},
|
|
303
300
|
|
|
304
301
|
setSourceToken(sourceToken: SwapTokenWithBalance | undefined) {
|
|
@@ -322,26 +319,10 @@ export const SwapController = {
|
|
|
322
319
|
}
|
|
323
320
|
},
|
|
324
321
|
|
|
325
|
-
async
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
state.initializing = true;
|
|
331
|
-
if (!state.initialized) {
|
|
332
|
-
try {
|
|
333
|
-
await this.fetchTokens();
|
|
334
|
-
state.initialized = true;
|
|
335
|
-
} catch (error) {
|
|
336
|
-
state.initialized = false;
|
|
337
|
-
SnackController.showError('Failed to initialize swap');
|
|
338
|
-
RouterController.goBack();
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
state.initializing = false;
|
|
342
|
-
},
|
|
322
|
+
async getAddressPrice(address: CaipAddress) {
|
|
323
|
+
const [namespace, chain] = address.split(':');
|
|
324
|
+
const networkId: CaipNetworkId = `${namespace}:${chain}`;
|
|
343
325
|
|
|
344
|
-
async getAddressPrice(address: string) {
|
|
345
326
|
const existPrice = state.tokensPriceMap[address];
|
|
346
327
|
|
|
347
328
|
if (existPrice) {
|
|
@@ -350,7 +331,8 @@ export const SwapController = {
|
|
|
350
331
|
|
|
351
332
|
const response = await BlockchainApiController.fetchTokenPrice({
|
|
352
333
|
projectId: OptionsController.state.projectId,
|
|
353
|
-
addresses: [address]
|
|
334
|
+
addresses: [address],
|
|
335
|
+
caipNetworkId: networkId
|
|
354
336
|
});
|
|
355
337
|
const fungibles = response?.fungibles || [];
|
|
356
338
|
const allTokens = [...(state.tokens || []), ...(state.myTokensWithBalance || [])];
|
|
@@ -365,10 +347,13 @@ export const SwapController = {
|
|
|
365
347
|
|
|
366
348
|
async getNetworkTokenPrice() {
|
|
367
349
|
const { networkAddress } = this.getParams();
|
|
350
|
+
const [namespace, chain] = networkAddress.split(':');
|
|
351
|
+
const networkId: CaipNetworkId = `${namespace}:${chain}`;
|
|
368
352
|
|
|
369
353
|
const response = await BlockchainApiController.fetchTokenPrice({
|
|
370
354
|
projectId: OptionsController.state.projectId,
|
|
371
|
-
addresses: [networkAddress]
|
|
355
|
+
addresses: [networkAddress],
|
|
356
|
+
caipNetworkId: networkId
|
|
372
357
|
});
|
|
373
358
|
|
|
374
359
|
const token = response?.fungibles?.[0];
|
|
@@ -404,26 +389,11 @@ export const SwapController = {
|
|
|
404
389
|
},
|
|
405
390
|
|
|
406
391
|
setBalances(balances: SwapTokenWithBalance[]) {
|
|
407
|
-
|
|
408
|
-
const caipNetwork = ConnectionsController.state.activeNetwork;
|
|
409
|
-
|
|
410
|
-
if (!caipNetwork) {
|
|
411
|
-
return;
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
const networkToken = balances.find(token => token.address === networkAddress);
|
|
392
|
+
state.myTokensWithBalance = balances;
|
|
415
393
|
|
|
416
394
|
balances.forEach(token => {
|
|
417
395
|
state.tokensPriceMap[token.address] = token.price || 0;
|
|
418
396
|
});
|
|
419
|
-
|
|
420
|
-
state.myTokensWithBalance = balances.filter(
|
|
421
|
-
token => token.address?.startsWith(caipNetwork.caipNetworkId)
|
|
422
|
-
);
|
|
423
|
-
|
|
424
|
-
state.networkBalanceInUSD = networkToken
|
|
425
|
-
? NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString()
|
|
426
|
-
: '0';
|
|
427
397
|
},
|
|
428
398
|
|
|
429
399
|
setToToken(toToken: SwapTokenWithBalance | undefined) {
|
|
@@ -445,7 +415,7 @@ export const SwapController = {
|
|
|
445
415
|
: '';
|
|
446
416
|
},
|
|
447
417
|
|
|
448
|
-
async setTokenPrice(address:
|
|
418
|
+
async setTokenPrice(address: CaipAddress, target: SwapInputTarget) {
|
|
449
419
|
let price = state.tokensPriceMap[address] || 0;
|
|
450
420
|
|
|
451
421
|
if (!price) {
|
|
@@ -495,11 +465,11 @@ export const SwapController = {
|
|
|
495
465
|
amount: amountDecimal.toString()
|
|
496
466
|
});
|
|
497
467
|
|
|
498
|
-
state.loadingQuote = false;
|
|
499
|
-
|
|
500
468
|
const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;
|
|
501
469
|
|
|
502
470
|
if (!quoteToAmount) {
|
|
471
|
+
state.loadingQuote = false;
|
|
472
|
+
|
|
503
473
|
return;
|
|
504
474
|
}
|
|
505
475
|
|
|
@@ -522,6 +492,7 @@ export const SwapController = {
|
|
|
522
492
|
}
|
|
523
493
|
} catch (error) {
|
|
524
494
|
SnackController.showError('Failed to get swap quote');
|
|
495
|
+
} finally {
|
|
525
496
|
state.loadingQuote = false;
|
|
526
497
|
}
|
|
527
498
|
},
|
|
@@ -694,22 +665,10 @@ export const SwapController = {
|
|
|
694
665
|
},
|
|
695
666
|
|
|
696
667
|
async sendTransactionForApproval(data: TransactionParams) {
|
|
697
|
-
const { fromAddress,
|
|
698
|
-
|
|
668
|
+
const { fromAddress, network } = this.getParams();
|
|
699
669
|
state.loadingApprovalTransaction = true;
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
if (isAuthConnector) {
|
|
703
|
-
RouterController.pushTransactionStack({
|
|
704
|
-
view: null,
|
|
705
|
-
goBack: true,
|
|
706
|
-
onSuccess() {
|
|
707
|
-
SnackController.showLoading(approveLimitMessage);
|
|
708
|
-
}
|
|
709
|
-
});
|
|
710
|
-
} else {
|
|
711
|
-
SnackController.showLoading(approveLimitMessage);
|
|
712
|
-
}
|
|
670
|
+
|
|
671
|
+
SnackController.showLoading('Approve limit increase in your wallet');
|
|
713
672
|
|
|
714
673
|
try {
|
|
715
674
|
await ConnectionsController.sendTransaction({
|
|
@@ -718,18 +677,20 @@ export const SwapController = {
|
|
|
718
677
|
data: data.data as `0x${string}`,
|
|
719
678
|
value: BigInt(data.value),
|
|
720
679
|
gasPrice: BigInt(data.gasPrice),
|
|
721
|
-
chainNamespace: ConnectionsController.state.activeNamespace
|
|
680
|
+
chainNamespace: ConnectionsController.state.activeNamespace,
|
|
681
|
+
network
|
|
722
682
|
});
|
|
723
683
|
|
|
724
684
|
await this.swapTokens();
|
|
725
685
|
await this.getTransaction();
|
|
726
686
|
state.approvalTransaction = undefined;
|
|
727
|
-
state.loadingApprovalTransaction = false;
|
|
728
687
|
} catch (err) {
|
|
729
688
|
const error = err as TransactionError;
|
|
730
689
|
state.transactionError = error?.shortMessage as unknown as string;
|
|
731
|
-
|
|
690
|
+
|
|
732
691
|
SnackController.showError(error?.shortMessage ?? 'Transaction error');
|
|
692
|
+
} finally {
|
|
693
|
+
state.loadingApprovalTransaction = false;
|
|
733
694
|
}
|
|
734
695
|
},
|
|
735
696
|
|
|
@@ -737,32 +698,19 @@ export const SwapController = {
|
|
|
737
698
|
if (!data) {
|
|
738
699
|
return undefined;
|
|
739
700
|
}
|
|
740
|
-
const { fromAddress,
|
|
701
|
+
const { fromAddress, isAuthConnector, network } = this.getParams();
|
|
741
702
|
|
|
742
703
|
state.loadingTransaction = true;
|
|
743
704
|
|
|
744
|
-
const
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
const snackbarSuccessMessage = `Swapped ${state.sourceToken
|
|
748
|
-
?.symbol} to ${NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken
|
|
749
|
-
?.symbol}`;
|
|
750
|
-
|
|
751
|
-
if (isAuthConnector) {
|
|
752
|
-
RouterController.pushTransactionStack({
|
|
753
|
-
view: 'Account',
|
|
754
|
-
goBack: false,
|
|
755
|
-
onSuccess() {
|
|
756
|
-
SnackController.showLoading(snackbarPendingMessage);
|
|
757
|
-
SwapController.resetState();
|
|
758
|
-
}
|
|
759
|
-
});
|
|
760
|
-
} else {
|
|
761
|
-
SnackController.showLoading('Confirm transaction in your wallet');
|
|
762
|
-
}
|
|
705
|
+
const snackbarSuccessMessage = `Swapped ${state.sourceToken?.symbol} to ${state.toToken?.symbol}`;
|
|
706
|
+
|
|
707
|
+
SnackController.showLoading('Confirm transaction in your wallet');
|
|
763
708
|
|
|
764
709
|
try {
|
|
765
|
-
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].
|
|
710
|
+
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].filter(
|
|
711
|
+
Boolean
|
|
712
|
+
) as CaipAddress[];
|
|
713
|
+
|
|
766
714
|
const transactionHash = await ConnectionsController.sendTransaction({
|
|
767
715
|
address: fromAddress as `0x${string}`,
|
|
768
716
|
to: data.to as `0x${string}`,
|
|
@@ -770,11 +718,13 @@ export const SwapController = {
|
|
|
770
718
|
gas: data.gas,
|
|
771
719
|
gasPrice: BigInt(data.gasPrice),
|
|
772
720
|
value: data.value,
|
|
773
|
-
chainNamespace: ConnectionsController.state.activeNamespace
|
|
721
|
+
chainNamespace: ConnectionsController.state.activeNamespace,
|
|
722
|
+
network
|
|
774
723
|
});
|
|
775
724
|
|
|
776
725
|
state.loadingTransaction = false;
|
|
777
|
-
|
|
726
|
+
|
|
727
|
+
SnackController.showSuccess(snackbarSuccessMessage, true);
|
|
778
728
|
EventsController.sendEvent({
|
|
779
729
|
type: 'track',
|
|
780
730
|
event: 'SWAP_SUCCESS',
|
|
@@ -784,20 +734,17 @@ export const SwapController = {
|
|
|
784
734
|
swapToToken: this.state.toToken?.symbol || '',
|
|
785
735
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
786
736
|
swapToAmount: this.state.toTokenAmount || '',
|
|
787
|
-
isSmartAccount:
|
|
737
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
788
738
|
}
|
|
789
739
|
});
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
if (!isAuthConnector) {
|
|
793
|
-
RouterController.replace('AccountDefault');
|
|
794
|
-
}
|
|
795
|
-
|
|
740
|
+
RouterController.replace(isAuthConnector ? 'Account' : 'AccountDefault');
|
|
741
|
+
SwapController.clearTokens();
|
|
796
742
|
SwapController.getMyTokensWithBalance(forceUpdateAddresses);
|
|
797
|
-
AccountController.fetchTokenBalance();
|
|
798
743
|
|
|
799
744
|
setTimeout(() => {
|
|
800
|
-
|
|
745
|
+
if (ConnectionsController.state.activeAddress) {
|
|
746
|
+
TransactionsController.fetchTransactions(ConnectionsController.state.activeAddress, true);
|
|
747
|
+
}
|
|
801
748
|
}, 5000);
|
|
802
749
|
|
|
803
750
|
return transactionHash;
|
|
@@ -816,7 +763,7 @@ export const SwapController = {
|
|
|
816
763
|
swapToToken: this.state.toToken?.symbol || '',
|
|
817
764
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
818
765
|
swapToAmount: this.state.toTokenAmount || '',
|
|
819
|
-
isSmartAccount:
|
|
766
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
820
767
|
}
|
|
821
768
|
});
|
|
822
769
|
|
|
@@ -824,8 +771,45 @@ export const SwapController = {
|
|
|
824
771
|
}
|
|
825
772
|
},
|
|
826
773
|
|
|
774
|
+
clearTransactionLoaders() {
|
|
775
|
+
state.loadingApprovalTransaction = false;
|
|
776
|
+
state.loadingBuildTransaction = false;
|
|
777
|
+
state.loadingTransaction = false;
|
|
778
|
+
},
|
|
779
|
+
|
|
780
|
+
clearTokens() {
|
|
781
|
+
state.sourceToken = initialState.sourceToken;
|
|
782
|
+
state.sourceTokenAmount = initialState.sourceTokenAmount;
|
|
783
|
+
state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
|
|
784
|
+
state.toToken = initialState.toToken;
|
|
785
|
+
state.toTokenAmount = initialState.toTokenAmount;
|
|
786
|
+
state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
|
|
787
|
+
state.inputError = initialState.inputError;
|
|
788
|
+
state.loadingApprovalTransaction = initialState.loadingApprovalTransaction;
|
|
789
|
+
state.loadingBuildTransaction = initialState.loadingBuildTransaction;
|
|
790
|
+
state.loadingTransaction = initialState.loadingTransaction;
|
|
791
|
+
state.fetchError = initialState.fetchError;
|
|
792
|
+
state.transactionError = initialState.transactionError;
|
|
793
|
+
state.swapTransaction = initialState.swapTransaction;
|
|
794
|
+
state.approvalTransaction = initialState.approvalTransaction;
|
|
795
|
+
},
|
|
796
|
+
|
|
797
|
+
resetState() {
|
|
798
|
+
this.clearTokens();
|
|
799
|
+
state.myTokensWithBalance = initialState.myTokensWithBalance;
|
|
800
|
+
state.tokensPriceMap = initialState.tokensPriceMap;
|
|
801
|
+
state.networkPrice = initialState.networkPrice;
|
|
802
|
+
state.networkTokenSymbol = initialState.networkTokenSymbol;
|
|
803
|
+
},
|
|
804
|
+
|
|
827
805
|
// -- Checks -------------------------------------------- //
|
|
828
806
|
hasInsufficientToken(sourceTokenAmount: string, sourceTokenAddress: string) {
|
|
807
|
+
const { balances } = ConnectionsController.state;
|
|
808
|
+
const networkToken = balances?.find(t => t.address === undefined);
|
|
809
|
+
const networkBalanceInUSD = networkToken
|
|
810
|
+
? NumberUtil.multiply(networkToken.quantity?.numeric ?? '0', networkToken.price).toString()
|
|
811
|
+
: '0';
|
|
812
|
+
|
|
829
813
|
const isInsufficientSourceTokenForSwap = SwapCalculationUtil.isInsufficientSourceTokenForSwap(
|
|
830
814
|
sourceTokenAmount,
|
|
831
815
|
sourceTokenAddress,
|
|
@@ -833,12 +817,12 @@ export const SwapController = {
|
|
|
833
817
|
);
|
|
834
818
|
|
|
835
819
|
let insufficientNetworkTokenForGas = true;
|
|
836
|
-
if (
|
|
820
|
+
if (ConnectionsController.state.accountType === 'smartAccount') {
|
|
837
821
|
// Smart Accounts may pay gas in any ERC20 token
|
|
838
822
|
insufficientNetworkTokenForGas = false;
|
|
839
823
|
} else {
|
|
840
824
|
insufficientNetworkTokenForGas = SwapCalculationUtil.isInsufficientNetworkTokenForGas(
|
|
841
|
-
|
|
825
|
+
networkBalanceInUSD,
|
|
842
826
|
state.gasPriceInUSD
|
|
843
827
|
);
|
|
844
828
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import type { Transaction } from '@reown/appkit-common-react-native';
|
|
2
|
-
import { proxy, subscribe as sub } from 'valtio
|
|
1
|
+
import type { CaipAddress, Transaction } from '@reown/appkit-common-react-native';
|
|
2
|
+
import { proxy, subscribe as sub } from 'valtio';
|
|
3
3
|
import { OptionsController } from './OptionsController';
|
|
4
4
|
import { EventsController } from './EventsController';
|
|
5
5
|
import { SnackController } from './SnackController';
|
|
6
6
|
import { BlockchainApiController } from './BlockchainApiController';
|
|
7
|
-
import { AccountController } from './AccountController';
|
|
8
7
|
import { ConnectionsController } from './ConnectionsController';
|
|
9
8
|
|
|
10
9
|
// -- Types --------------------------------------------- //
|
|
@@ -34,22 +33,29 @@ export const TransactionsController = {
|
|
|
34
33
|
return sub(state, () => callback(state));
|
|
35
34
|
},
|
|
36
35
|
|
|
37
|
-
async fetchTransactions(accountAddress
|
|
38
|
-
|
|
36
|
+
async fetchTransactions(accountAddress: CaipAddress, reset?: boolean) {
|
|
37
|
+
try {
|
|
38
|
+
const { projectId } = OptionsController.state;
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
if (!projectId || !accountAddress) {
|
|
41
|
+
throw new Error("Transactions can't be fetched without a projectId and an accountAddress");
|
|
42
|
+
}
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
state.loading = true;
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
if (reset) {
|
|
47
|
+
state.next = undefined;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const [namespace, chain, address] = accountAddress?.split(':') ?? [];
|
|
51
|
+
|
|
52
|
+
if (!namespace || !chain || !address) {
|
|
53
|
+
throw new Error('Invalid address');
|
|
54
|
+
}
|
|
49
55
|
|
|
50
|
-
try {
|
|
51
56
|
const response = await BlockchainApiController.fetchTransactions({
|
|
52
|
-
account:
|
|
57
|
+
account: address,
|
|
58
|
+
chainId: `${namespace}:${chain}`,
|
|
53
59
|
projectId,
|
|
54
60
|
cursor: state.next
|
|
55
61
|
});
|
|
@@ -72,10 +78,10 @@ export const TransactionsController = {
|
|
|
72
78
|
type: 'track',
|
|
73
79
|
event: 'ERROR_FETCH_TRANSACTIONS',
|
|
74
80
|
properties: {
|
|
75
|
-
address: accountAddress,
|
|
76
|
-
projectId,
|
|
81
|
+
address: accountAddress ?? '',
|
|
82
|
+
projectId: OptionsController.state.projectId,
|
|
77
83
|
cursor: state.next,
|
|
78
|
-
isSmartAccount:
|
|
84
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
79
85
|
}
|
|
80
86
|
});
|
|
81
87
|
SnackController.showError('Failed to fetch transactions');
|
|
@@ -133,7 +139,7 @@ export const TransactionsController = {
|
|
|
133
139
|
state.next = undefined;
|
|
134
140
|
},
|
|
135
141
|
|
|
136
|
-
|
|
142
|
+
resetState() {
|
|
137
143
|
state.transactions = [];
|
|
138
144
|
state.loading = false;
|
|
139
145
|
state.empty = false;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { proxy } from 'valtio';
|
|
2
|
+
import { subscribeKey as subKey } from 'valtio/utils';
|
|
3
|
+
import type { WalletDeepLink, WcWallet } from '@reown/appkit-common-react-native';
|
|
4
|
+
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
5
|
+
import { StorageUtil } from '../utils/StorageUtil';
|
|
6
|
+
|
|
7
|
+
// -- Types --------------------------------------------- //
|
|
8
|
+
export interface WcControllerState {
|
|
9
|
+
wcUri?: string;
|
|
10
|
+
wcPromise?: Promise<void>;
|
|
11
|
+
wcPairingExpiry?: number;
|
|
12
|
+
wcLinking?: WalletDeepLink;
|
|
13
|
+
wcError?: boolean;
|
|
14
|
+
pressedWallet?: WcWallet;
|
|
15
|
+
recentWallets?: WcWallet[];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
type StateKey = keyof WcControllerState;
|
|
19
|
+
|
|
20
|
+
// -- State --------------------------------------------- //
|
|
21
|
+
const state = proxy<WcControllerState>({
|
|
22
|
+
wcError: false
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// -- Controller ---------------------------------------- //
|
|
26
|
+
export const WcController = {
|
|
27
|
+
state,
|
|
28
|
+
|
|
29
|
+
subscribeKey<K extends StateKey>(key: K, callback: (value: WcControllerState[K]) => void) {
|
|
30
|
+
return subKey(state, key, callback);
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
setWcLinking(wcLinking: WcControllerState['wcLinking']) {
|
|
34
|
+
state.wcLinking = wcLinking;
|
|
35
|
+
},
|
|
36
|
+
|
|
37
|
+
removeWcLinking() {
|
|
38
|
+
state.wcLinking = undefined;
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
setWcError(wcError: WcControllerState['wcError']) {
|
|
42
|
+
state.wcError = wcError;
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
setPressedWallet(wallet: WcControllerState['pressedWallet']) {
|
|
46
|
+
state.pressedWallet = wallet;
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
removePressedWallet() {
|
|
50
|
+
state.pressedWallet = undefined;
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
setWcPromise(wcPromise: WcControllerState['wcPromise']) {
|
|
54
|
+
state.wcPromise = wcPromise;
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
setWcUri(wcUri: WcControllerState['wcUri']) {
|
|
58
|
+
state.wcUri = wcUri;
|
|
59
|
+
state.wcPairingExpiry = CoreHelperUtil.getPairingExpiry();
|
|
60
|
+
},
|
|
61
|
+
|
|
62
|
+
setRecentWallets(wallets: WcControllerState['recentWallets']) {
|
|
63
|
+
state.recentWallets = wallets;
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
async addRecentWallet(wallet: WcWallet) {
|
|
67
|
+
const recentWallets = await StorageUtil.addRecentWallet(wallet);
|
|
68
|
+
if (recentWallets) {
|
|
69
|
+
WcController.setRecentWallets(recentWallets);
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
setConnectedWallet: async (wcLinking: WalletDeepLink, pressedWallet?: WcWallet) => {
|
|
74
|
+
StorageUtil.setWalletConnectDeepLink(wcLinking);
|
|
75
|
+
|
|
76
|
+
if (pressedWallet) {
|
|
77
|
+
WcController.addRecentWallet(pressedWallet);
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
clearUri() {
|
|
82
|
+
state.wcUri = undefined;
|
|
83
|
+
state.wcPairingExpiry = undefined;
|
|
84
|
+
state.wcPromise = undefined;
|
|
85
|
+
state.wcLinking = undefined;
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
resetState() {
|
|
89
|
+
this.clearUri();
|
|
90
|
+
state.pressedWallet = undefined;
|
|
91
|
+
StorageUtil.removeWalletConnectDeepLink();
|
|
92
|
+
}
|
|
93
|
+
};
|