@reown/appkit-core-react-native 0.0.0-fix-approved-networks-20250822000414 → 0.0.0-fix-ui-changes-20250828183750
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 +75 -38
- 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 +156 -57
- package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionsController.js +402 -0
- package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
- package/lib/commonjs/controllers/EnsController.js.map +1 -1
- 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 +29 -19
- package/lib/commonjs/controllers/OnRampController.js.map +1 -1
- package/lib/commonjs/controllers/OptionsController.js +22 -7
- 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 +96 -96
- 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 +154 -151
- 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 +22 -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/index.js +13 -41
- 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 +8 -18
- package/lib/commonjs/utils/AssetUtil.js.map +1 -1
- package/lib/commonjs/utils/ConstantsUtil.js +122 -5
- package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
- package/lib/commonjs/utils/CoreHelperUtil.js +19 -7
- package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
- package/lib/commonjs/utils/EventUtil.js.map +1 -1
- package/lib/commonjs/utils/FetchUtil.js.map +1 -1
- package/lib/commonjs/utils/RouterUtil.js.map +1 -1
- package/lib/commonjs/utils/StorageUtil.js +90 -108
- 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 +77 -38
- 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 +158 -57
- package/lib/module/controllers/BlockchainApiController.js.map +1 -1
- package/lib/module/controllers/ConnectionsController.js +399 -0
- package/lib/module/controllers/ConnectionsController.js.map +1 -0
- package/lib/module/controllers/EnsController.js +2 -0
- package/lib/module/controllers/EnsController.js.map +1 -1
- package/lib/module/controllers/EventsController.js +2 -0
- 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 +27 -15
- package/lib/module/controllers/OnRampController.js.map +1 -1
- package/lib/module/controllers/OptionsController.js +24 -7
- 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 +98 -96
- 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 +156 -151
- package/lib/module/controllers/SwapController.js.map +1 -1
- package/lib/module/controllers/ThemeController.js +11 -1
- package/lib/module/controllers/ThemeController.js.map +1 -1
- package/lib/module/controllers/TransactionsController.js +24 -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/index.js +7 -7
- 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 +10 -18
- package/lib/module/utils/AssetUtil.js.map +1 -1
- package/lib/module/utils/ConstantsUtil.js +124 -5
- package/lib/module/utils/ConstantsUtil.js.map +1 -1
- package/lib/module/utils/CoreHelperUtil.js +21 -5
- 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 +2 -0
- 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 +93 -108
- 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 +4 -5
- 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 +45 -0
- package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
- 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.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 +9 -4
- 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 +1 -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/index.d.ts +3 -8
- package/lib/typescript/index.d.ts.map +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 +12 -2
- package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
- package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
- package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
- package/lib/typescript/utils/EventUtil.d.ts +1 -1
- package/lib/typescript/utils/EventUtil.d.ts.map +1 -1
- package/lib/typescript/utils/FetchUtil.d.ts +2 -2
- package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
- 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 +8 -22
- package/src/controllers/ApiController.ts +83 -40
- package/src/controllers/AssetController.ts +0 -6
- package/src/controllers/BlockchainApiController.ts +136 -44
- package/src/controllers/ConnectionsController.ts +521 -0
- package/src/controllers/EnsController.ts +1 -1
- package/src/controllers/EventsController.ts +1 -1
- package/src/controllers/ModalController.ts +6 -7
- package/src/controllers/OnRampController.ts +37 -18
- package/src/controllers/OptionsController.ts +37 -14
- package/src/controllers/PublicStateController.ts +1 -1
- package/src/controllers/RouterController.ts +17 -54
- package/src/controllers/SendController.ts +122 -111
- package/src/controllers/SnackController.ts +31 -5
- package/src/controllers/SwapController.ts +177 -183
- package/src/controllers/ThemeController.ts +11 -2
- package/src/controllers/TransactionsController.ts +25 -19
- package/src/controllers/WcController.ts +93 -0
- package/src/index.ts +6 -20
- package/src/utils/AssetUtil.ts +9 -22
- package/src/utils/ConstantsUtil.ts +126 -6
- package/src/utils/CoreHelperUtil.ts +45 -7
- package/src/utils/EventUtil.ts +1 -1
- package/src/utils/FetchUtil.ts +2 -2
- package/src/utils/StorageUtil.ts +163 -131
- 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/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/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 -35
- 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/TypeUtil.d.ts +0 -850
- 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/TypeUtil.ts +0 -1039
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import { proxy } from 'valtio';
|
|
2
4
|
import { OptionsController } from './OptionsController';
|
|
3
5
|
|
|
@@ -11,23 +13,47 @@ const state = proxy({
|
|
|
11
13
|
long: false
|
|
12
14
|
});
|
|
13
15
|
|
|
16
|
+
// -- Private Variables --------------------------------- //
|
|
17
|
+
let hideTimeout = null;
|
|
18
|
+
|
|
19
|
+
// -- Private Functions --------------------------------- //
|
|
20
|
+
const clearHideTimeout = () => {
|
|
21
|
+
if (hideTimeout) {
|
|
22
|
+
clearTimeout(hideTimeout);
|
|
23
|
+
hideTimeout = null;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const scheduleAutoHide = long => {
|
|
27
|
+
clearHideTimeout();
|
|
28
|
+
const duration = long ? 15000 : 2200;
|
|
29
|
+
hideTimeout = setTimeout(() => {
|
|
30
|
+
SnackController.hide();
|
|
31
|
+
}, duration);
|
|
32
|
+
};
|
|
33
|
+
|
|
14
34
|
// -- Controller ---------------------------------------- //
|
|
15
35
|
export const SnackController = {
|
|
16
36
|
state,
|
|
17
|
-
showSuccess(message) {
|
|
37
|
+
showSuccess(message, long = false) {
|
|
18
38
|
state.message = message;
|
|
19
39
|
state.variant = 'success';
|
|
20
40
|
state.open = true;
|
|
41
|
+
state.long = long;
|
|
42
|
+
scheduleAutoHide(long);
|
|
21
43
|
},
|
|
22
|
-
showError(message) {
|
|
44
|
+
showError(message, long = false) {
|
|
23
45
|
state.message = message;
|
|
24
46
|
state.variant = 'error';
|
|
25
47
|
state.open = true;
|
|
48
|
+
state.long = long;
|
|
49
|
+
scheduleAutoHide(long);
|
|
26
50
|
},
|
|
27
|
-
showLoading(message) {
|
|
51
|
+
showLoading(message, long = false) {
|
|
28
52
|
state.message = message;
|
|
29
53
|
state.variant = 'loading';
|
|
30
54
|
state.open = true;
|
|
55
|
+
state.long = long;
|
|
56
|
+
scheduleAutoHide(long);
|
|
31
57
|
},
|
|
32
58
|
showInternalError(error) {
|
|
33
59
|
const {
|
|
@@ -38,6 +64,7 @@ export const SnackController = {
|
|
|
38
64
|
state.variant = 'error';
|
|
39
65
|
state.open = true;
|
|
40
66
|
state.long = true;
|
|
67
|
+
scheduleAutoHide(true);
|
|
41
68
|
}
|
|
42
69
|
if (error.longMessage) {
|
|
43
70
|
// eslint-disable-next-line no-console
|
|
@@ -45,10 +72,9 @@ export const SnackController = {
|
|
|
45
72
|
}
|
|
46
73
|
},
|
|
47
74
|
hide() {
|
|
75
|
+
clearHideTimeout();
|
|
48
76
|
state.open = false;
|
|
49
77
|
state.long = false;
|
|
50
|
-
state.message = '';
|
|
51
|
-
state.variant = 'success';
|
|
52
78
|
}
|
|
53
79
|
};
|
|
54
80
|
//# sourceMappingURL=SnackController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["proxy","OptionsController","state","message","variant","open","long","SnackController","showSuccess","showError","showLoading","showInternalError","error","debug","shortMessage","longMessage","console"
|
|
1
|
+
{"version":3,"names":["proxy","OptionsController","state","message","variant","open","long","hideTimeout","clearHideTimeout","clearTimeout","scheduleAutoHide","duration","setTimeout","SnackController","hide","showSuccess","showError","showLoading","showInternalError","error","debug","shortMessage","longMessage","console"],"sourceRoot":"../../../src","sources":["controllers/SnackController.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,QAAQ;AAC9B,SAASC,iBAAiB,QAAQ,qBAAqB;;AAEvD;;AAaA;AACA,MAAMC,KAAK,GAAGF,KAAK,CAAuB;EACxCG,OAAO,EAAE,EAAE;EACXC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE,KAAK;EACXC,IAAI,EAAE;AACR,CAAC,CAAC;;AAEF;AACA,IAAIC,WAAkC,GAAG,IAAI;;AAE7C;AACA,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,IAAID,WAAW,EAAE;IACfE,YAAY,CAACF,WAAW,CAAC;IACzBA,WAAW,GAAG,IAAI;EACpB;AACF,CAAC;AAED,MAAMG,gBAAgB,GAAIJ,IAAa,IAAK;EAC1CE,gBAAgB,CAAC,CAAC;EAElB,MAAMG,QAAQ,GAAGL,IAAI,GAAG,KAAK,GAAG,IAAI;EACpCC,WAAW,GAAGK,UAAU,CAAC,MAAM;IAC7BC,eAAe,CAACC,IAAI,CAAC,CAAC;EACxB,CAAC,EAAEH,QAAQ,CAAC;AACd,CAAC;;AAED;AACA,OAAO,MAAME,eAAe,GAAG;EAC7BX,KAAK;EAELa,WAAWA,CAACZ,OAAwC,EAAEG,IAAI,GAAG,KAAK,EAAE;IAClEJ,KAAK,CAACC,OAAO,GAAGA,OAAO;IACvBD,KAAK,CAACE,OAAO,GAAG,SAAS;IACzBF,KAAK,CAACG,IAAI,GAAG,IAAI;IACjBH,KAAK,CAACI,IAAI,GAAGA,IAAI;IACjBI,gBAAgB,CAACJ,IAAI,CAAC;EACxB,CAAC;EAEDU,SAASA,CAACb,OAAwC,EAAEG,IAAI,GAAG,KAAK,EAAE;IAChEJ,KAAK,CAACC,OAAO,GAAGA,OAAO;IACvBD,KAAK,CAACE,OAAO,GAAG,OAAO;IACvBF,KAAK,CAACG,IAAI,GAAG,IAAI;IACjBH,KAAK,CAACI,IAAI,GAAGA,IAAI;IACjBI,gBAAgB,CAACJ,IAAI,CAAC;EACxB,CAAC;EAEDW,WAAWA,CAACd,OAAwC,EAAEG,IAAI,GAAG,KAAK,EAAE;IAClEJ,KAAK,CAACC,OAAO,GAAGA,OAAO;IACvBD,KAAK,CAACE,OAAO,GAAG,SAAS;IACzBF,KAAK,CAACG,IAAI,GAAG,IAAI;IACjBH,KAAK,CAACI,IAAI,GAAGA,IAAI;IACjBI,gBAAgB,CAACJ,IAAI,CAAC;EACxB,CAAC;EAEDY,iBAAiBA,CAACC,KAAc,EAAE;IAChC,MAAM;MAAEC;IAAM,CAAC,GAAGnB,iBAAiB,CAACC,KAAK;IAEzC,IAAIkB,KAAK,EAAE;MACTlB,KAAK,CAACC,OAAO,GAAGgB,KAAK,CAACE,YAAY;MAClCnB,KAAK,CAACE,OAAO,GAAG,OAAO;MACvBF,KAAK,CAACG,IAAI,GAAG,IAAI;MACjBH,KAAK,CAACI,IAAI,GAAG,IAAI;MACjBI,gBAAgB,CAAC,IAAI,CAAC;IACxB;IAEA,IAAIS,KAAK,CAACG,WAAW,EAAE;MACrB;MACAC,OAAO,CAACJ,KAAK,CAACA,KAAK,CAACG,WAAW,CAAC;IAClC;EACF,CAAC;EAEDR,IAAIA,CAAA,EAAG;IACLN,gBAAgB,CAAC,CAAC;IAClBN,KAAK,CAACG,IAAI,GAAG,KAAK;IAClBH,KAAK,CAACI,IAAI,GAAG,KAAK;EACpB;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,20 +1,19 @@
|
|
|
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';
|
|
11
12
|
import { RouterController } from './RouterController';
|
|
12
|
-
import { ConnectorController } from './ConnectorController';
|
|
13
|
-
import { AccountController } from './AccountController';
|
|
14
13
|
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
15
|
-
import { ConnectionController } from './ConnectionController';
|
|
16
14
|
import { TransactionsController } from './TransactionsController';
|
|
17
15
|
import { EventsController } from './EventsController';
|
|
16
|
+
import { ConnectionsController } from './ConnectionsController';
|
|
18
17
|
|
|
19
18
|
// -- Constants ---------------------------------------- //
|
|
20
19
|
export const INITIAL_GAS_LIMIT = 150000;
|
|
@@ -32,8 +31,7 @@ class TransactionError extends Error {
|
|
|
32
31
|
// -- State --------------------------------------------- //
|
|
33
32
|
const initialState = {
|
|
34
33
|
// Loading states
|
|
35
|
-
|
|
36
|
-
initialized: false,
|
|
34
|
+
loadingTokens: false,
|
|
37
35
|
loadingPrices: false,
|
|
38
36
|
loadingQuote: false,
|
|
39
37
|
loadingApprovalTransaction: false,
|
|
@@ -53,7 +51,6 @@ const initialState = {
|
|
|
53
51
|
toTokenAmount: '',
|
|
54
52
|
toTokenPriceInUSD: 0,
|
|
55
53
|
networkPrice: '0',
|
|
56
|
-
networkBalanceInUSD: '0',
|
|
57
54
|
networkTokenSymbol: '',
|
|
58
55
|
inputError: undefined,
|
|
59
56
|
// Request values
|
|
@@ -72,7 +69,9 @@ const initialState = {
|
|
|
72
69
|
maxSlippage: undefined,
|
|
73
70
|
providerFee: undefined
|
|
74
71
|
};
|
|
75
|
-
const state = proxy(
|
|
72
|
+
const state = proxy({
|
|
73
|
+
...initialState
|
|
74
|
+
});
|
|
76
75
|
|
|
77
76
|
// -- Controller ---------------------------------------- //
|
|
78
77
|
export const SwapController = {
|
|
@@ -84,10 +83,17 @@ export const SwapController = {
|
|
|
84
83
|
return subKey(state, key, callback);
|
|
85
84
|
},
|
|
86
85
|
getParams() {
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
const {
|
|
87
|
+
activeAddress,
|
|
88
|
+
activeNamespace,
|
|
89
|
+
activeNetwork,
|
|
90
|
+
connection
|
|
91
|
+
} = ConnectionsController.state;
|
|
92
|
+
const address = CoreHelperUtil.getPlainAddress(activeAddress);
|
|
93
|
+
if (!activeNamespace || !activeNetwork) {
|
|
94
|
+
throw new Error('No active namespace or network found to swap the tokens from.');
|
|
95
|
+
}
|
|
96
|
+
const networkAddress = `${activeNetwork.caipNetworkId}:${ConstantsUtil.NATIVE_TOKEN_ADDRESS[activeNamespace]}`;
|
|
91
97
|
if (!address) {
|
|
92
98
|
throw new Error('No address found to swap the tokens from.');
|
|
93
99
|
}
|
|
@@ -96,8 +102,9 @@ export const SwapController = {
|
|
|
96
102
|
const invalidSourceTokenAmount = !state.sourceTokenAmount;
|
|
97
103
|
return {
|
|
98
104
|
networkAddress,
|
|
105
|
+
network: activeNetwork,
|
|
99
106
|
fromAddress: address,
|
|
100
|
-
fromCaipAddress:
|
|
107
|
+
fromCaipAddress: activeAddress,
|
|
101
108
|
sourceTokenAddress: state.sourceToken?.address,
|
|
102
109
|
toTokenAddress: state.toToken?.address,
|
|
103
110
|
toTokenAmount: state.toTokenAmount,
|
|
@@ -107,12 +114,12 @@ export const SwapController = {
|
|
|
107
114
|
invalidToToken,
|
|
108
115
|
invalidSourceToken,
|
|
109
116
|
invalidSourceTokenAmount,
|
|
110
|
-
availableToSwap:
|
|
111
|
-
isAuthConnector:
|
|
117
|
+
availableToSwap: activeAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
|
|
118
|
+
isAuthConnector: !!connection?.properties?.provider
|
|
112
119
|
};
|
|
113
120
|
},
|
|
114
121
|
switchTokens() {
|
|
115
|
-
if (state.
|
|
122
|
+
if (state.loadingTokens) {
|
|
116
123
|
return;
|
|
117
124
|
}
|
|
118
125
|
let newSourceToken = state.toToken ? {
|
|
@@ -132,35 +139,32 @@ export const SwapController = {
|
|
|
132
139
|
this.setToTokenAmount('');
|
|
133
140
|
this.swapTokens();
|
|
134
141
|
},
|
|
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
142
|
async fetchTokens() {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
state.
|
|
143
|
+
try {
|
|
144
|
+
const {
|
|
145
|
+
networkAddress
|
|
146
|
+
} = this.getParams();
|
|
147
|
+
state.loadingTokens = true;
|
|
148
|
+
await this.getTokenList();
|
|
149
|
+
await this.getNetworkTokenPrice();
|
|
150
|
+
await this.getMyTokensWithBalance();
|
|
151
|
+
const networkToken = state.tokens?.find(token => token.address === networkAddress);
|
|
152
|
+
if (networkToken) {
|
|
153
|
+
state.networkTokenSymbol = networkToken.symbol;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Set default source token if not set
|
|
157
|
+
if (!state.sourceToken && state.myTokensWithBalance?.length) {
|
|
158
|
+
const sourceToken = state.myTokensWithBalance?.find(token => token.address.startsWith(networkAddress)) || state.myTokensWithBalance?.[0];
|
|
159
|
+
this.setSourceToken(sourceToken);
|
|
160
|
+
this.setSourceTokenAmount('1');
|
|
161
|
+
}
|
|
162
|
+
} catch (error) {
|
|
163
|
+
SnackController.showError('Failed to initialize swap');
|
|
164
|
+
RouterController.goBack();
|
|
165
|
+
} finally {
|
|
166
|
+
state.loadingTokens = false;
|
|
160
167
|
}
|
|
161
|
-
const sourceToken = state.myTokensWithBalance?.find(token => token.address.startsWith(networkAddress)) || state.myTokensWithBalance?.[0];
|
|
162
|
-
this.setSourceToken(sourceToken);
|
|
163
|
-
this.setSourceTokenAmount('1');
|
|
164
168
|
},
|
|
165
169
|
async getTokenList() {
|
|
166
170
|
const tokens = await SwapApiUtil.getTokenList();
|
|
@@ -182,15 +186,19 @@ export const SwapController = {
|
|
|
182
186
|
}, {});
|
|
183
187
|
},
|
|
184
188
|
async getMyTokensWithBalance(forceUpdate) {
|
|
185
|
-
|
|
186
|
-
|
|
189
|
+
await ConnectionsController.fetchBalance(forceUpdate);
|
|
190
|
+
const swapBalances = SwapApiUtil.mapBalancesToSwapTokens(ConnectionsController.state.balances);
|
|
191
|
+
if (!swapBalances) {
|
|
187
192
|
return;
|
|
188
193
|
}
|
|
189
194
|
await this.getInitialGasPrice();
|
|
190
|
-
this.setBalances(
|
|
195
|
+
this.setBalances(swapBalances);
|
|
191
196
|
},
|
|
192
|
-
getFilteredPopularTokens() {
|
|
193
|
-
|
|
197
|
+
getFilteredPopularTokens(balances) {
|
|
198
|
+
if (!balances) {
|
|
199
|
+
return state.popularTokens;
|
|
200
|
+
}
|
|
201
|
+
return state.popularTokens?.filter(token => !balances.some(t => t.address === token.address));
|
|
194
202
|
},
|
|
195
203
|
setSourceToken(sourceToken) {
|
|
196
204
|
if (!sourceToken) {
|
|
@@ -208,31 +216,17 @@ export const SwapController = {
|
|
|
208
216
|
state.toTokenAmount = '';
|
|
209
217
|
}
|
|
210
218
|
},
|
|
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
219
|
async getAddressPrice(address) {
|
|
220
|
+
const [namespace, chain] = address.split(':');
|
|
221
|
+
const networkId = `${namespace}:${chain}`;
|
|
229
222
|
const existPrice = state.tokensPriceMap[address];
|
|
230
223
|
if (existPrice) {
|
|
231
224
|
return existPrice;
|
|
232
225
|
}
|
|
233
226
|
const response = await BlockchainApiController.fetchTokenPrice({
|
|
234
227
|
projectId: OptionsController.state.projectId,
|
|
235
|
-
addresses: [address]
|
|
228
|
+
addresses: [address],
|
|
229
|
+
caipNetworkId: networkId
|
|
236
230
|
});
|
|
237
231
|
const fungibles = response?.fungibles || [];
|
|
238
232
|
const allTokens = [...(state.tokens || []), ...(state.myTokensWithBalance || [])];
|
|
@@ -246,9 +240,12 @@ export const SwapController = {
|
|
|
246
240
|
const {
|
|
247
241
|
networkAddress
|
|
248
242
|
} = this.getParams();
|
|
243
|
+
const [namespace, chain] = networkAddress.split(':');
|
|
244
|
+
const networkId = `${namespace}:${chain}`;
|
|
249
245
|
const response = await BlockchainApiController.fetchTokenPrice({
|
|
250
246
|
projectId: OptionsController.state.projectId,
|
|
251
|
-
addresses: [networkAddress]
|
|
247
|
+
addresses: [networkAddress],
|
|
248
|
+
caipNetworkId: networkId
|
|
252
249
|
});
|
|
253
250
|
const token = response?.fungibles?.[0];
|
|
254
251
|
const price = token?.price.toString() || '0';
|
|
@@ -279,19 +276,10 @@ export const SwapController = {
|
|
|
279
276
|
return SwapCalculationUtil.getProviderFeePrice(state.sourceTokenAmount, state.sourceTokenPriceInUSD);
|
|
280
277
|
},
|
|
281
278
|
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);
|
|
279
|
+
state.myTokensWithBalance = balances;
|
|
290
280
|
balances.forEach(token => {
|
|
291
281
|
state.tokensPriceMap[token.address] = token.price || 0;
|
|
292
282
|
});
|
|
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
283
|
},
|
|
296
284
|
setToToken(toToken) {
|
|
297
285
|
if (!toToken) {
|
|
@@ -326,36 +314,42 @@ export const SwapController = {
|
|
|
326
314
|
},
|
|
327
315
|
// -- Swap ---------------------------------------------- //
|
|
328
316
|
async swapTokens() {
|
|
329
|
-
const address =
|
|
317
|
+
const address = ConnectionsController.state.activeAddress;
|
|
330
318
|
const sourceToken = state.sourceToken;
|
|
331
319
|
const toToken = state.toToken;
|
|
332
320
|
const haveSourceTokenAmount = NumberUtil.bigNumber(state.sourceTokenAmount).isGreaterThan(0);
|
|
333
|
-
if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount) {
|
|
321
|
+
if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount || !address) {
|
|
334
322
|
return;
|
|
335
323
|
}
|
|
336
324
|
state.loadingQuote = true;
|
|
337
325
|
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
|
-
|
|
326
|
+
try {
|
|
327
|
+
const quoteResponse = await BlockchainApiController.fetchSwapQuote({
|
|
328
|
+
userAddress: address,
|
|
329
|
+
projectId: OptionsController.state.projectId,
|
|
330
|
+
from: sourceToken.address,
|
|
331
|
+
to: toToken.address,
|
|
332
|
+
gasPrice: state.gasFee,
|
|
333
|
+
amount: amountDecimal.toString()
|
|
334
|
+
});
|
|
335
|
+
const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;
|
|
336
|
+
if (!quoteToAmount) {
|
|
337
|
+
state.loadingQuote = false;
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
const toTokenAmount = NumberUtil.bigNumber(quoteToAmount).dividedBy(10 ** toToken.decimals).toString();
|
|
341
|
+
this.setToTokenAmount(toTokenAmount);
|
|
342
|
+
const isInsufficientToken = this.hasInsufficientToken(state.sourceTokenAmount, sourceToken.address);
|
|
343
|
+
if (isInsufficientToken) {
|
|
344
|
+
state.inputError = 'Insufficient balance';
|
|
345
|
+
} else {
|
|
346
|
+
state.inputError = undefined;
|
|
347
|
+
this.setTransactionDetails();
|
|
348
|
+
}
|
|
349
|
+
} catch (error) {
|
|
350
|
+
SnackController.showError('Failed to get swap quote');
|
|
351
|
+
} finally {
|
|
352
|
+
state.loadingQuote = false;
|
|
359
353
|
}
|
|
360
354
|
},
|
|
361
355
|
// -- Create Transactions -------------------------------------- //
|
|
@@ -419,7 +413,7 @@ export const SwapController = {
|
|
|
419
413
|
if (!response) {
|
|
420
414
|
throw new Error('createAllowanceTransaction - No response from generateApproveCalldata');
|
|
421
415
|
}
|
|
422
|
-
const gasLimit = await
|
|
416
|
+
const gasLimit = await ConnectionsController.estimateGas({
|
|
423
417
|
address: fromAddress,
|
|
424
418
|
to: CoreHelperUtil.getPlainAddress(response.tx.to),
|
|
425
419
|
data: response.tx.data
|
|
@@ -469,7 +463,7 @@ export const SwapController = {
|
|
|
469
463
|
if (!fromCaipAddress || !sourceTokenAmount || !sourceToken || !toToken) {
|
|
470
464
|
return undefined;
|
|
471
465
|
}
|
|
472
|
-
const amount =
|
|
466
|
+
const amount = ConnectionsController.parseUnits(sourceTokenAmount, sourceToken.decimals)?.toString();
|
|
473
467
|
try {
|
|
474
468
|
const response = await BlockchainApiController.generateSwapCalldata({
|
|
475
469
|
projectId: OptionsController.state.projectId,
|
|
@@ -508,39 +502,29 @@ export const SwapController = {
|
|
|
508
502
|
async sendTransactionForApproval(data) {
|
|
509
503
|
const {
|
|
510
504
|
fromAddress,
|
|
511
|
-
|
|
505
|
+
network
|
|
512
506
|
} = this.getParams();
|
|
513
507
|
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
|
-
}
|
|
508
|
+
SnackController.showLoading('Approve limit increase in your wallet');
|
|
526
509
|
try {
|
|
527
|
-
await
|
|
510
|
+
await ConnectionsController.sendTransaction({
|
|
528
511
|
address: fromAddress,
|
|
529
512
|
to: data.to,
|
|
530
513
|
data: data.data,
|
|
531
514
|
value: BigInt(data.value),
|
|
532
515
|
gasPrice: BigInt(data.gasPrice),
|
|
533
|
-
chainNamespace:
|
|
516
|
+
chainNamespace: ConnectionsController.state.activeNamespace,
|
|
517
|
+
network
|
|
534
518
|
});
|
|
535
519
|
await this.swapTokens();
|
|
536
520
|
await this.getTransaction();
|
|
537
521
|
state.approvalTransaction = undefined;
|
|
538
|
-
state.loadingApprovalTransaction = false;
|
|
539
522
|
} catch (err) {
|
|
540
523
|
const error = err;
|
|
541
524
|
state.transactionError = error?.shortMessage;
|
|
542
|
-
state.loadingApprovalTransaction = false;
|
|
543
525
|
SnackController.showError(error?.shortMessage ?? 'Transaction error');
|
|
526
|
+
} finally {
|
|
527
|
+
state.loadingApprovalTransaction = false;
|
|
544
528
|
}
|
|
545
529
|
},
|
|
546
530
|
async sendTransactionForSwap(data) {
|
|
@@ -549,57 +533,45 @@ export const SwapController = {
|
|
|
549
533
|
}
|
|
550
534
|
const {
|
|
551
535
|
fromAddress,
|
|
552
|
-
|
|
553
|
-
|
|
536
|
+
isAuthConnector,
|
|
537
|
+
network
|
|
554
538
|
} = this.getParams();
|
|
555
539
|
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
|
-
}
|
|
540
|
+
const snackbarSuccessMessage = `Swapped ${state.sourceToken?.symbol} to ${state.toToken?.symbol}`;
|
|
541
|
+
SnackController.showLoading('Confirm transaction in your wallet');
|
|
570
542
|
try {
|
|
571
|
-
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].
|
|
572
|
-
const transactionHash = await
|
|
543
|
+
const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].filter(Boolean);
|
|
544
|
+
const transactionHash = await ConnectionsController.sendTransaction({
|
|
573
545
|
address: fromAddress,
|
|
574
546
|
to: data.to,
|
|
575
547
|
data: data.data,
|
|
576
548
|
gas: data.gas,
|
|
577
549
|
gasPrice: BigInt(data.gasPrice),
|
|
578
550
|
value: data.value,
|
|
579
|
-
chainNamespace:
|
|
551
|
+
chainNamespace: ConnectionsController.state.activeNamespace,
|
|
552
|
+
network
|
|
580
553
|
});
|
|
581
554
|
state.loadingTransaction = false;
|
|
582
|
-
SnackController.showSuccess(snackbarSuccessMessage);
|
|
555
|
+
SnackController.showSuccess(snackbarSuccessMessage, true);
|
|
583
556
|
EventsController.sendEvent({
|
|
584
557
|
type: 'track',
|
|
585
558
|
event: 'SWAP_SUCCESS',
|
|
586
559
|
properties: {
|
|
587
|
-
network:
|
|
560
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId || '',
|
|
588
561
|
swapFromToken: this.state.sourceToken?.symbol || '',
|
|
589
562
|
swapToToken: this.state.toToken?.symbol || '',
|
|
590
563
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
591
564
|
swapToAmount: this.state.toTokenAmount || '',
|
|
592
|
-
isSmartAccount:
|
|
565
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
593
566
|
}
|
|
594
567
|
});
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
RouterController.replace('AccountDefault');
|
|
598
|
-
}
|
|
568
|
+
RouterController.replace(isAuthConnector ? 'Account' : 'AccountDefault');
|
|
569
|
+
SwapController.clearTokens();
|
|
599
570
|
SwapController.getMyTokensWithBalance(forceUpdateAddresses);
|
|
600
|
-
AccountController.fetchTokenBalance();
|
|
601
571
|
setTimeout(() => {
|
|
602
|
-
|
|
572
|
+
if (ConnectionsController.state.activeAddress) {
|
|
573
|
+
TransactionsController.fetchTransactions(ConnectionsController.state.activeAddress, true);
|
|
574
|
+
}
|
|
603
575
|
}, 5000);
|
|
604
576
|
return transactionHash;
|
|
605
577
|
} catch (err) {
|
|
@@ -612,26 +584,59 @@ export const SwapController = {
|
|
|
612
584
|
event: 'SWAP_ERROR',
|
|
613
585
|
properties: {
|
|
614
586
|
message: error?.shortMessage ?? error?.message ?? 'Unknown',
|
|
615
|
-
network:
|
|
587
|
+
network: ConnectionsController.state.activeNetwork?.caipNetworkId || '',
|
|
616
588
|
swapFromToken: this.state.sourceToken?.symbol || '',
|
|
617
589
|
swapToToken: this.state.toToken?.symbol || '',
|
|
618
590
|
swapFromAmount: this.state.sourceTokenAmount || '',
|
|
619
591
|
swapToAmount: this.state.toTokenAmount || '',
|
|
620
|
-
isSmartAccount:
|
|
592
|
+
isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
|
|
621
593
|
}
|
|
622
594
|
});
|
|
623
595
|
return undefined;
|
|
624
596
|
}
|
|
625
597
|
},
|
|
598
|
+
clearTransactionLoaders() {
|
|
599
|
+
state.loadingApprovalTransaction = false;
|
|
600
|
+
state.loadingBuildTransaction = false;
|
|
601
|
+
state.loadingTransaction = false;
|
|
602
|
+
},
|
|
603
|
+
clearTokens() {
|
|
604
|
+
state.sourceToken = initialState.sourceToken;
|
|
605
|
+
state.sourceTokenAmount = initialState.sourceTokenAmount;
|
|
606
|
+
state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
|
|
607
|
+
state.toToken = initialState.toToken;
|
|
608
|
+
state.toTokenAmount = initialState.toTokenAmount;
|
|
609
|
+
state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
|
|
610
|
+
state.inputError = initialState.inputError;
|
|
611
|
+
state.loadingApprovalTransaction = initialState.loadingApprovalTransaction;
|
|
612
|
+
state.loadingBuildTransaction = initialState.loadingBuildTransaction;
|
|
613
|
+
state.loadingTransaction = initialState.loadingTransaction;
|
|
614
|
+
state.fetchError = initialState.fetchError;
|
|
615
|
+
state.transactionError = initialState.transactionError;
|
|
616
|
+
state.swapTransaction = initialState.swapTransaction;
|
|
617
|
+
state.approvalTransaction = initialState.approvalTransaction;
|
|
618
|
+
},
|
|
619
|
+
resetState() {
|
|
620
|
+
this.clearTokens();
|
|
621
|
+
state.myTokensWithBalance = initialState.myTokensWithBalance;
|
|
622
|
+
state.tokensPriceMap = initialState.tokensPriceMap;
|
|
623
|
+
state.networkPrice = initialState.networkPrice;
|
|
624
|
+
state.networkTokenSymbol = initialState.networkTokenSymbol;
|
|
625
|
+
},
|
|
626
626
|
// -- Checks -------------------------------------------- //
|
|
627
627
|
hasInsufficientToken(sourceTokenAmount, sourceTokenAddress) {
|
|
628
|
+
const {
|
|
629
|
+
balances
|
|
630
|
+
} = ConnectionsController.state;
|
|
631
|
+
const networkToken = balances?.find(t => t.address === undefined);
|
|
632
|
+
const networkBalanceInUSD = networkToken ? NumberUtil.multiply(networkToken.quantity?.numeric ?? '0', networkToken.price).toString() : '0';
|
|
628
633
|
const isInsufficientSourceTokenForSwap = SwapCalculationUtil.isInsufficientSourceTokenForSwap(sourceTokenAmount, sourceTokenAddress, state.myTokensWithBalance);
|
|
629
634
|
let insufficientNetworkTokenForGas = true;
|
|
630
|
-
if (
|
|
635
|
+
if (ConnectionsController.state.accountType === 'smartAccount') {
|
|
631
636
|
// Smart Accounts may pay gas in any ERC20 token
|
|
632
637
|
insufficientNetworkTokenForGas = false;
|
|
633
638
|
} else {
|
|
634
|
-
insufficientNetworkTokenForGas = SwapCalculationUtil.isInsufficientNetworkTokenForGas(
|
|
639
|
+
insufficientNetworkTokenForGas = SwapCalculationUtil.isInsufficientNetworkTokenForGas(networkBalanceInUSD, state.gasPriceInUSD);
|
|
635
640
|
}
|
|
636
641
|
return insufficientNetworkTokenForGas || isInsufficientSourceTokenForSwap;
|
|
637
642
|
},
|