@reown/appkit-core-react-native 1.2.4 → 2.0.0-alpha.1
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 +11 -11
- package/lib/commonjs/controllers/ApiController.js.map +1 -1
- package/lib/commonjs/controllers/BlockchainApiController.js +187 -14
- package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionController.js +7 -1
- package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionsController.js +205 -0
- package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
- package/lib/commonjs/controllers/ConnectorController.js +1 -0
- package/lib/commonjs/controllers/ConnectorController.js.map +1 -1
- package/lib/commonjs/controllers/OnRampController.js +421 -0
- package/lib/commonjs/controllers/OnRampController.js.map +1 -0
- package/lib/commonjs/controllers/OptionsController.js +11 -3
- package/lib/commonjs/controllers/OptionsController.js.map +1 -1
- package/lib/commonjs/controllers/RouterController.js +3 -2
- package/lib/commonjs/controllers/RouterController.js.map +1 -1
- package/lib/commonjs/controllers/SendController.js +5 -5
- package/lib/commonjs/controllers/SendController.js.map +1 -1
- package/lib/commonjs/controllers/SwapController.js +51 -40
- package/lib/commonjs/controllers/SwapController.js.map +1 -1
- package/lib/commonjs/controllers/ThemeController.js +9 -1
- package/lib/commonjs/controllers/ThemeController.js.map +1 -1
- package/lib/commonjs/controllers/TransactionsController.js +2 -2
- package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
- package/lib/commonjs/index.js +10 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/AssetUtil.js +5 -6
- package/lib/commonjs/utils/AssetUtil.js.map +1 -1
- package/lib/commonjs/utils/ConstantsUtil.js +599 -6
- package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
- package/lib/commonjs/utils/CoreHelperUtil.js +28 -0
- package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
- package/lib/commonjs/utils/FetchUtil.js +15 -4
- package/lib/commonjs/utils/FetchUtil.js.map +1 -1
- package/lib/commonjs/utils/StorageUtil.js +218 -0
- package/lib/commonjs/utils/StorageUtil.js.map +1 -1
- package/lib/commonjs/utils/SwapApiUtil.js +19 -10
- package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
- package/lib/module/controllers/ApiController.js +11 -11
- package/lib/module/controllers/ApiController.js.map +1 -1
- package/lib/module/controllers/BlockchainApiController.js +187 -14
- package/lib/module/controllers/BlockchainApiController.js.map +1 -1
- package/lib/module/controllers/ConnectionController.js +7 -1
- package/lib/module/controllers/ConnectionController.js.map +1 -1
- package/lib/module/controllers/ConnectionsController.js +200 -0
- package/lib/module/controllers/ConnectionsController.js.map +1 -0
- package/lib/module/controllers/ConnectorController.js +1 -0
- package/lib/module/controllers/ConnectorController.js.map +1 -1
- package/lib/module/controllers/OnRampController.js +416 -0
- package/lib/module/controllers/OnRampController.js.map +1 -0
- package/lib/module/controllers/OptionsController.js +11 -3
- package/lib/module/controllers/OptionsController.js.map +1 -1
- package/lib/module/controllers/RouterController.js +3 -2
- package/lib/module/controllers/RouterController.js.map +1 -1
- package/lib/module/controllers/SendController.js +5 -5
- package/lib/module/controllers/SendController.js.map +1 -1
- package/lib/module/controllers/SwapController.js +51 -40
- package/lib/module/controllers/SwapController.js.map +1 -1
- package/lib/module/controllers/ThemeController.js +9 -1
- package/lib/module/controllers/ThemeController.js.map +1 -1
- package/lib/module/controllers/TransactionsController.js +2 -2
- package/lib/module/controllers/TransactionsController.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/AssetUtil.js +5 -6
- package/lib/module/utils/AssetUtil.js.map +1 -1
- package/lib/module/utils/ConstantsUtil.js +598 -5
- package/lib/module/utils/ConstantsUtil.js.map +1 -1
- package/lib/module/utils/CoreHelperUtil.js +26 -0
- package/lib/module/utils/CoreHelperUtil.js.map +1 -1
- package/lib/module/utils/FetchUtil.js +15 -4
- package/lib/module/utils/FetchUtil.js.map +1 -1
- package/lib/module/utils/StorageUtil.js +219 -0
- package/lib/module/utils/StorageUtil.js.map +1 -1
- package/lib/module/utils/SwapApiUtil.js +19 -10
- package/lib/module/utils/SwapApiUtil.js.map +1 -1
- package/lib/typescript/controllers/AccountController.d.ts +2 -2
- package/lib/typescript/controllers/AccountController.d.ts.map +1 -1
- package/lib/typescript/controllers/ApiController.d.ts +1 -1
- package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/BlockchainApiController.d.ts +27 -2
- package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/ConnectionController.d.ts +2 -0
- package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
- package/lib/typescript/controllers/ConnectionsController.d.ts +43 -0
- package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
- package/lib/typescript/controllers/ConnectorController.d.ts.map +1 -1
- package/lib/typescript/controllers/NetworkController.d.ts +1 -1
- package/lib/typescript/controllers/NetworkController.d.ts.map +1 -1
- package/lib/typescript/controllers/OnRampController.d.ts +54 -0
- package/lib/typescript/controllers/OnRampController.d.ts.map +1 -0
- package/lib/typescript/controllers/OptionsController.d.ts +7 -2
- 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 +5 -3
- package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
- package/lib/typescript/controllers/SwapController.d.ts +1 -1
- package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
- package/lib/typescript/controllers/ThemeController.d.ts +1 -1
- package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/AssetUtil.d.ts +2 -2
- package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
- package/lib/typescript/utils/ConstantsUtil.d.ts +474 -1
- package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
- package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -2
- package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
- package/lib/typescript/utils/FetchUtil.d.ts +5 -5
- package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
- package/lib/typescript/utils/NetworkUtil.d.ts +1 -1
- package/lib/typescript/utils/NetworkUtil.d.ts.map +1 -1
- package/lib/typescript/utils/StorageUtil.d.ts +26 -2
- package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
- package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
- package/lib/typescript/utils/TypeUtil.d.ts +164 -25
- package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/controllers/AccountController.ts +2 -2
- package/src/controllers/ApiController.ts +12 -7
- package/src/controllers/BlockchainApiController.ts +238 -15
- package/src/controllers/ConnectionController.ts +10 -2
- package/src/controllers/ConnectionsController.ts +291 -0
- package/src/controllers/ConnectorController.ts +1 -0
- package/src/controllers/NetworkController.ts +1 -1
- package/src/controllers/OnRampController.ts +585 -0
- package/src/controllers/OptionsController.ts +19 -13
- package/src/controllers/PublicStateController.ts +1 -1
- package/src/controllers/RouterController.ts +17 -3
- package/src/controllers/SendController.ts +5 -5
- package/src/controllers/SwapController.ts +58 -48
- package/src/controllers/ThemeController.ts +11 -2
- package/src/controllers/TransactionsController.ts +2 -2
- package/src/index.ts +6 -1
- package/src/utils/AssetUtil.ts +5 -7
- package/src/utils/ConstantsUtil.ts +584 -5
- package/src/utils/CoreHelperUtil.ts +38 -3
- package/src/utils/FetchUtil.ts +16 -9
- package/src/utils/NetworkUtil.ts +1 -1
- package/src/utils/StorageUtil.ts +267 -2
- package/src/utils/SwapApiUtil.ts +22 -10
- package/src/utils/TypeUtil.ts +185 -29
- package/lib/commonjs/utils/ConnectionUtil.js +0 -33
- package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
- package/lib/module/utils/ConnectionUtil.js +0 -27
- package/lib/module/utils/ConnectionUtil.js.map +0 -1
- package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
- package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
- package/src/utils/ConnectionUtil.ts +0 -27
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { proxy } from 'valtio';
|
|
2
|
-
import type {
|
|
2
|
+
import type { CaipNetwork } from '@reown/appkit-common-react-native';
|
|
3
|
+
|
|
4
|
+
import type {
|
|
5
|
+
WcWallet,
|
|
6
|
+
Connector,
|
|
7
|
+
SwapInputTarget,
|
|
8
|
+
OnRampTransactionResult
|
|
9
|
+
} from '../utils/TypeUtil';
|
|
3
10
|
|
|
4
11
|
// -- Types --------------------------------------------- //
|
|
5
12
|
type TransactionAction = {
|
|
@@ -28,6 +35,11 @@ export interface RouterControllerState {
|
|
|
28
35
|
| 'EmailVerifyOtp'
|
|
29
36
|
| 'GetWallet'
|
|
30
37
|
| 'Networks'
|
|
38
|
+
| 'OnRamp'
|
|
39
|
+
| 'OnRampCheckout'
|
|
40
|
+
| 'OnRampLoading'
|
|
41
|
+
| 'OnRampSettings'
|
|
42
|
+
| 'OnRampTransaction'
|
|
31
43
|
| 'SwitchNetwork'
|
|
32
44
|
| 'Swap'
|
|
33
45
|
| 'SwapSelectToken'
|
|
@@ -54,6 +66,7 @@ export interface RouterControllerState {
|
|
|
54
66
|
email?: string;
|
|
55
67
|
newEmail?: string;
|
|
56
68
|
swapTarget?: SwapInputTarget;
|
|
69
|
+
onrampResult?: OnRampTransactionResult;
|
|
57
70
|
};
|
|
58
71
|
transactionStack: TransactionAction[];
|
|
59
72
|
}
|
|
@@ -101,13 +114,14 @@ export const RouterController = {
|
|
|
101
114
|
}
|
|
102
115
|
},
|
|
103
116
|
|
|
104
|
-
reset(view: RouterControllerState['view']) {
|
|
117
|
+
reset(view: RouterControllerState['view'], data?: RouterControllerState['data']) {
|
|
105
118
|
state.view = view;
|
|
106
119
|
state.history = [view];
|
|
120
|
+
state.data = data;
|
|
107
121
|
},
|
|
108
122
|
|
|
109
123
|
replace(view: RouterControllerState['view'], data?: RouterControllerState['data']) {
|
|
110
|
-
if (state.history.length
|
|
124
|
+
if (state.history.length >= 1 && state.history.at(-1) !== view) {
|
|
111
125
|
state.view = view;
|
|
112
126
|
state.history[state.history.length - 1] = view;
|
|
113
127
|
state.data = data;
|
|
@@ -6,8 +6,8 @@ import { ConnectionController } from './ConnectionController';
|
|
|
6
6
|
import { SnackController } from './SnackController';
|
|
7
7
|
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
8
8
|
import { EventsController } from './EventsController';
|
|
9
|
-
import { NetworkController } from './NetworkController';
|
|
10
9
|
import { RouterController } from './RouterController';
|
|
10
|
+
import { ConnectionsController } from './ConnectionsController';
|
|
11
11
|
|
|
12
12
|
// -- Types --------------------------------------------- //
|
|
13
13
|
export interface TxParams {
|
|
@@ -100,7 +100,7 @@ export const SendController = {
|
|
|
100
100
|
isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount',
|
|
101
101
|
token: this.state.token.address,
|
|
102
102
|
amount: this.state.sendTokenAmount,
|
|
103
|
-
network:
|
|
103
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId || ''
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
106
|
this.sendERC20Token({
|
|
@@ -123,7 +123,7 @@ export const SendController = {
|
|
|
123
123
|
isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount',
|
|
124
124
|
token: this.state.token?.symbol,
|
|
125
125
|
amount: this.state.sendTokenAmount,
|
|
126
|
-
network:
|
|
126
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId || ''
|
|
127
127
|
}
|
|
128
128
|
});
|
|
129
129
|
this.sendNativeToken({
|
|
@@ -165,7 +165,7 @@ export const SendController = {
|
|
|
165
165
|
isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount',
|
|
166
166
|
token: this.state.token?.symbol || '',
|
|
167
167
|
amount: params.sendTokenAmount,
|
|
168
|
-
network:
|
|
168
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId || ''
|
|
169
169
|
}
|
|
170
170
|
});
|
|
171
171
|
this.resetSend();
|
|
@@ -178,7 +178,7 @@ export const SendController = {
|
|
|
178
178
|
isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount',
|
|
179
179
|
token: this.state.token?.symbol || '',
|
|
180
180
|
amount: params.sendTokenAmount,
|
|
181
|
-
network:
|
|
181
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId || ''
|
|
182
182
|
}
|
|
183
183
|
});
|
|
184
184
|
SnackController.showError('Something went wrong');
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { subscribeKey as subKey } from 'valtio/utils';
|
|
2
2
|
import { proxy, subscribe as sub } from 'valtio';
|
|
3
|
-
import { NumberUtil } from '@reown/appkit-common-react-native';
|
|
3
|
+
import { NumberUtil, type CaipAddress } from '@reown/appkit-common-react-native';
|
|
4
4
|
|
|
5
5
|
import { ConstantsUtil } from '../utils/ConstantsUtil';
|
|
6
6
|
import { SwapApiUtil } from '../utils/SwapApiUtil';
|
|
7
|
-
import { NetworkController } from './NetworkController';
|
|
8
7
|
import { BlockchainApiController } from './BlockchainApiController';
|
|
9
8
|
import { OptionsController } from './OptionsController';
|
|
10
9
|
import { SwapCalculationUtil } from '../utils/SwapCalculationUtil';
|
|
@@ -14,9 +13,9 @@ import type { SwapInputTarget, SwapTokenWithBalance } from '../utils/TypeUtil';
|
|
|
14
13
|
import { ConnectorController } from './ConnectorController';
|
|
15
14
|
import { AccountController } from './AccountController';
|
|
16
15
|
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
17
|
-
import { ConnectionController } from './ConnectionController';
|
|
18
16
|
import { TransactionsController } from './TransactionsController';
|
|
19
17
|
import { EventsController } from './EventsController';
|
|
18
|
+
import { ConnectionsController } from './ConnectionsController';
|
|
20
19
|
|
|
21
20
|
// -- Constants ---------------------------------------- //
|
|
22
21
|
export const INITIAL_GAS_LIMIT = 150000;
|
|
@@ -158,9 +157,15 @@ export const SwapController = {
|
|
|
158
157
|
},
|
|
159
158
|
|
|
160
159
|
getParams() {
|
|
161
|
-
const
|
|
162
|
-
const address = CoreHelperUtil.getPlainAddress(
|
|
163
|
-
|
|
160
|
+
const { activeAddress, activeNamespace, activeNetwork } = ConnectionsController.state;
|
|
161
|
+
const address = CoreHelperUtil.getPlainAddress(activeAddress);
|
|
162
|
+
|
|
163
|
+
if (!activeNamespace || !activeNetwork) {
|
|
164
|
+
throw new Error('No active namespace or network found to swap the tokens from.');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const networkAddress: CaipAddress = `${activeNetwork.caipNetworkId}:${ConstantsUtil.NATIVE_TOKEN_ADDRESS[activeNamespace]}`;
|
|
168
|
+
|
|
164
169
|
const type = ConnectorController.state.connectedConnector;
|
|
165
170
|
|
|
166
171
|
if (!address) {
|
|
@@ -178,7 +183,7 @@ export const SwapController = {
|
|
|
178
183
|
return {
|
|
179
184
|
networkAddress,
|
|
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,7 +194,7 @@ export const SwapController = {
|
|
|
189
194
|
invalidSourceToken,
|
|
190
195
|
invalidSourceTokenAmount,
|
|
191
196
|
availableToSwap:
|
|
192
|
-
|
|
197
|
+
activeAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
|
|
193
198
|
isAuthConnector: type === 'AUTH'
|
|
194
199
|
};
|
|
195
200
|
},
|
|
@@ -282,7 +287,6 @@ export const SwapController = {
|
|
|
282
287
|
|
|
283
288
|
async getMyTokensWithBalance(forceUpdate?: string) {
|
|
284
289
|
const balances = await SwapApiUtil.getMyTokensWithBalance(forceUpdate);
|
|
285
|
-
|
|
286
290
|
if (!balances) {
|
|
287
291
|
return;
|
|
288
292
|
}
|
|
@@ -401,7 +405,7 @@ export const SwapController = {
|
|
|
401
405
|
|
|
402
406
|
setBalances(balances: SwapTokenWithBalance[]) {
|
|
403
407
|
const { networkAddress } = this.getParams();
|
|
404
|
-
const caipNetwork =
|
|
408
|
+
const caipNetwork = ConnectionsController.state.activeNetwork;
|
|
405
409
|
|
|
406
410
|
if (!caipNetwork) {
|
|
407
411
|
return;
|
|
@@ -413,7 +417,9 @@ export const SwapController = {
|
|
|
413
417
|
state.tokensPriceMap[token.address] = token.price || 0;
|
|
414
418
|
});
|
|
415
419
|
|
|
416
|
-
state.myTokensWithBalance = balances.filter(
|
|
420
|
+
state.myTokensWithBalance = balances.filter(
|
|
421
|
+
token => token.address?.startsWith(caipNetwork.caipNetworkId)
|
|
422
|
+
);
|
|
417
423
|
|
|
418
424
|
state.networkBalanceInUSD = networkToken
|
|
419
425
|
? NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString()
|
|
@@ -464,12 +470,12 @@ export const SwapController = {
|
|
|
464
470
|
|
|
465
471
|
// -- Swap ---------------------------------------------- //
|
|
466
472
|
async swapTokens() {
|
|
467
|
-
const address =
|
|
473
|
+
const address = ConnectionsController.state.activeAddress;
|
|
468
474
|
const sourceToken = state.sourceToken;
|
|
469
475
|
const toToken = state.toToken;
|
|
470
476
|
const haveSourceTokenAmount = NumberUtil.bigNumber(state.sourceTokenAmount).isGreaterThan(0);
|
|
471
477
|
|
|
472
|
-
if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount) {
|
|
478
|
+
if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount || !address) {
|
|
473
479
|
return;
|
|
474
480
|
}
|
|
475
481
|
|
|
@@ -479,39 +485,44 @@ export const SwapController = {
|
|
|
479
485
|
.multipliedBy(10 ** sourceToken.decimals)
|
|
480
486
|
.integerValue();
|
|
481
487
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
488
|
+
try {
|
|
489
|
+
const quoteResponse = await BlockchainApiController.fetchSwapQuote({
|
|
490
|
+
userAddress: address,
|
|
491
|
+
projectId: OptionsController.state.projectId,
|
|
492
|
+
from: sourceToken.address,
|
|
493
|
+
to: toToken.address,
|
|
494
|
+
gasPrice: state.gasFee,
|
|
495
|
+
amount: amountDecimal.toString()
|
|
496
|
+
});
|
|
490
497
|
|
|
491
|
-
|
|
498
|
+
state.loadingQuote = false;
|
|
492
499
|
|
|
493
|
-
|
|
500
|
+
const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;
|
|
494
501
|
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
502
|
+
if (!quoteToAmount) {
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
498
505
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
506
|
+
const toTokenAmount = NumberUtil.bigNumber(quoteToAmount)
|
|
507
|
+
.dividedBy(10 ** toToken.decimals)
|
|
508
|
+
.toString();
|
|
502
509
|
|
|
503
|
-
|
|
510
|
+
this.setToTokenAmount(toTokenAmount);
|
|
504
511
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
512
|
+
const isInsufficientToken = this.hasInsufficientToken(
|
|
513
|
+
state.sourceTokenAmount,
|
|
514
|
+
sourceToken.address
|
|
515
|
+
);
|
|
509
516
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
517
|
+
if (isInsufficientToken) {
|
|
518
|
+
state.inputError = 'Insufficient balance';
|
|
519
|
+
} else {
|
|
520
|
+
state.inputError = undefined;
|
|
521
|
+
this.setTransactionDetails();
|
|
522
|
+
}
|
|
523
|
+
} catch (error) {
|
|
524
|
+
SnackController.showError('Failed to get swap quote');
|
|
525
|
+
state.loadingQuote = false;
|
|
515
526
|
}
|
|
516
527
|
},
|
|
517
528
|
|
|
@@ -580,7 +591,7 @@ export const SwapController = {
|
|
|
580
591
|
if (!response) {
|
|
581
592
|
throw new Error('createAllowanceTransaction - No response from generateApproveCalldata');
|
|
582
593
|
}
|
|
583
|
-
const gasLimit = await
|
|
594
|
+
const gasLimit = await ConnectionsController.estimateGas({
|
|
584
595
|
address: fromAddress as `0x${string}`,
|
|
585
596
|
to: CoreHelperUtil.getPlainAddress(response.tx.to) as `0x${string}`,
|
|
586
597
|
data: response.tx.data
|
|
@@ -633,7 +644,7 @@ export const SwapController = {
|
|
|
633
644
|
return undefined;
|
|
634
645
|
}
|
|
635
646
|
|
|
636
|
-
const amount =
|
|
647
|
+
const amount = ConnectionsController.parseUnits(
|
|
637
648
|
sourceTokenAmount,
|
|
638
649
|
sourceToken.decimals
|
|
639
650
|
)?.toString();
|
|
@@ -701,13 +712,13 @@ export const SwapController = {
|
|
|
701
712
|
}
|
|
702
713
|
|
|
703
714
|
try {
|
|
704
|
-
await
|
|
715
|
+
await ConnectionsController.sendTransaction({
|
|
705
716
|
address: fromAddress as `0x${string}`,
|
|
706
717
|
to: data.to as `0x${string}`,
|
|
707
718
|
data: data.data as `0x${string}`,
|
|
708
719
|
value: BigInt(data.value),
|
|
709
720
|
gasPrice: BigInt(data.gasPrice),
|
|
710
|
-
chainNamespace:
|
|
721
|
+
chainNamespace: ConnectionsController.state.activeNamespace
|
|
711
722
|
});
|
|
712
723
|
|
|
713
724
|
await this.swapTokens();
|
|
@@ -726,7 +737,6 @@ export const SwapController = {
|
|
|
726
737
|
if (!data) {
|
|
727
738
|
return undefined;
|
|
728
739
|
}
|
|
729
|
-
|
|
730
740
|
const { fromAddress, toTokenAmount, isAuthConnector } = this.getParams();
|
|
731
741
|
|
|
732
742
|
state.loadingTransaction = true;
|
|
@@ -753,14 +763,14 @@ export const SwapController = {
|
|
|
753
763
|
|
|
754
764
|
try {
|
|
755
765
|
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].join(',');
|
|
756
|
-
const transactionHash = await
|
|
766
|
+
const transactionHash = await ConnectionsController.sendTransaction({
|
|
757
767
|
address: fromAddress as `0x${string}`,
|
|
758
768
|
to: data.to as `0x${string}`,
|
|
759
769
|
data: data.data as `0x${string}`,
|
|
760
770
|
gas: data.gas,
|
|
761
771
|
gasPrice: BigInt(data.gasPrice),
|
|
762
772
|
value: data.value,
|
|
763
|
-
chainNamespace:
|
|
773
|
+
chainNamespace: ConnectionsController.state.activeNamespace
|
|
764
774
|
});
|
|
765
775
|
|
|
766
776
|
state.loadingTransaction = false;
|
|
@@ -769,7 +779,7 @@ export const SwapController = {
|
|
|
769
779
|
type: 'track',
|
|
770
780
|
event: 'SWAP_SUCCESS',
|
|
771
781
|
properties: {
|
|
772
|
-
network:
|
|
782
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId || '',
|
|
773
783
|
swapFromToken: this.state.sourceToken?.symbol || '',
|
|
774
784
|
swapToToken: this.state.toToken?.symbol || '',
|
|
775
785
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
@@ -801,7 +811,7 @@ export const SwapController = {
|
|
|
801
811
|
event: 'SWAP_ERROR',
|
|
802
812
|
properties: {
|
|
803
813
|
message: error?.shortMessage ?? error?.message ?? 'Unknown',
|
|
804
|
-
network:
|
|
814
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId || '',
|
|
805
815
|
swapFromToken: this.state.sourceToken?.symbol || '',
|
|
806
816
|
swapToToken: this.state.toToken?.symbol || '',
|
|
807
817
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
@@ -1,10 +1,11 @@
|
|
|
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
|
-
themeVariables
|
|
8
|
+
themeVariables?: ThemeVariables;
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
// -- State --------------------------------------------- //
|
|
@@ -22,10 +23,18 @@ export const ThemeController = {
|
|
|
22
23
|
},
|
|
23
24
|
|
|
24
25
|
setThemeMode(themeMode: ThemeControllerState['themeMode']) {
|
|
25
|
-
|
|
26
|
+
if (!themeMode) {
|
|
27
|
+
state.themeMode = Appearance.getColorScheme() as ThemeMode;
|
|
28
|
+
} else {
|
|
29
|
+
state.themeMode = themeMode;
|
|
30
|
+
}
|
|
26
31
|
},
|
|
27
32
|
|
|
28
33
|
setThemeVariables(themeVariables: ThemeControllerState['themeVariables']) {
|
|
34
|
+
if (!themeVariables) {
|
|
35
|
+
state.themeVariables = {};
|
|
36
|
+
}
|
|
37
|
+
|
|
29
38
|
state.themeVariables = { ...state.themeVariables, ...themeVariables };
|
|
30
39
|
}
|
|
31
40
|
};
|
|
@@ -3,9 +3,9 @@ import { proxy, subscribe as sub } from 'valtio/vanilla';
|
|
|
3
3
|
import { OptionsController } from './OptionsController';
|
|
4
4
|
import { EventsController } from './EventsController';
|
|
5
5
|
import { SnackController } from './SnackController';
|
|
6
|
-
import { NetworkController } from './NetworkController';
|
|
7
6
|
import { BlockchainApiController } from './BlockchainApiController';
|
|
8
7
|
import { AccountController } from './AccountController';
|
|
8
|
+
import { ConnectionsController } from './ConnectionsController';
|
|
9
9
|
|
|
10
10
|
// -- Types --------------------------------------------- //
|
|
11
11
|
type TransactionByMonthMap = Record<string, Transaction[]>;
|
|
@@ -121,7 +121,7 @@ export const TransactionsController = {
|
|
|
121
121
|
},
|
|
122
122
|
|
|
123
123
|
filterByConnectedChain(transactions: Transaction[]) {
|
|
124
|
-
const chainId =
|
|
124
|
+
const chainId = ConnectionsController.state.activeCaipNetworkId;
|
|
125
125
|
const filteredTransactions = transactions.filter(
|
|
126
126
|
transaction => transaction.metadata.chain === chainId
|
|
127
127
|
);
|
package/src/index.ts
CHANGED
|
@@ -21,6 +21,11 @@ export {
|
|
|
21
21
|
type ConnectionControllerState
|
|
22
22
|
} from './controllers/ConnectionController';
|
|
23
23
|
|
|
24
|
+
export {
|
|
25
|
+
ConnectionsController,
|
|
26
|
+
type ConnectionsControllerState
|
|
27
|
+
} from './controllers/ConnectionsController';
|
|
28
|
+
|
|
24
29
|
export {
|
|
25
30
|
ConnectorController,
|
|
26
31
|
type ConnectorControllerState
|
|
@@ -56,12 +61,12 @@ export {
|
|
|
56
61
|
|
|
57
62
|
export { SendController, type SendControllerState } from './controllers/SendController';
|
|
58
63
|
|
|
64
|
+
export { OnRampController, type OnRampControllerState } from './controllers/OnRampController';
|
|
59
65
|
export { WebviewController, type WebviewControllerState } from './controllers/WebviewController';
|
|
60
66
|
|
|
61
67
|
// -- Utils -------------------------------------------------------------------
|
|
62
68
|
export { ApiUtil } from './utils/ApiUtil';
|
|
63
69
|
export { AssetUtil } from './utils/AssetUtil';
|
|
64
|
-
export { ConnectionUtil } from './utils/ConnectionUtil';
|
|
65
70
|
export { ConstantsUtil } from './utils/ConstantsUtil';
|
|
66
71
|
export { CoreHelperUtil } from './utils/CoreHelperUtil';
|
|
67
72
|
export { StorageUtil } from './utils/StorageUtil';
|
package/src/utils/AssetUtil.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AssetController } from '../controllers/AssetController';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Connector, WcWallet } from './TypeUtil';
|
|
3
3
|
|
|
4
4
|
export const AssetUtil = {
|
|
5
5
|
getWalletImage(wallet?: WcWallet) {
|
|
@@ -14,13 +14,11 @@ export const AssetUtil = {
|
|
|
14
14
|
return undefined;
|
|
15
15
|
},
|
|
16
16
|
|
|
17
|
-
getNetworkImage(
|
|
18
|
-
if
|
|
19
|
-
return network?.imageUrl;
|
|
20
|
-
}
|
|
17
|
+
getNetworkImage(networkId?: string | number) {
|
|
18
|
+
//TODO: check if imageUrl case is needed
|
|
21
19
|
|
|
22
|
-
if (
|
|
23
|
-
return AssetController.state.networkImages[
|
|
20
|
+
if (networkId) {
|
|
21
|
+
return AssetController.state.networkImages[networkId];
|
|
24
22
|
}
|
|
25
23
|
|
|
26
24
|
return undefined;
|