@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.
Files changed (245) hide show
  1. package/lib/commonjs/controllers/ApiController.js +75 -38
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  3. package/lib/commonjs/controllers/AssetController.js +0 -4
  4. package/lib/commonjs/controllers/AssetController.js.map +1 -1
  5. package/lib/commonjs/controllers/BlockchainApiController.js +156 -57
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionsController.js +402 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  10. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  11. package/lib/commonjs/controllers/ModalController.js +6 -7
  12. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  13. package/lib/commonjs/controllers/OnRampController.js +29 -19
  14. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  15. package/lib/commonjs/controllers/OptionsController.js +22 -7
  16. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  17. package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
  18. package/lib/commonjs/controllers/RouterController.js +7 -22
  19. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  20. package/lib/commonjs/controllers/SendController.js +96 -96
  21. package/lib/commonjs/controllers/SendController.js.map +1 -1
  22. package/lib/commonjs/controllers/SnackController.js +29 -5
  23. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  24. package/lib/commonjs/controllers/SwapController.js +154 -151
  25. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  26. package/lib/commonjs/controllers/ThemeController.js +9 -1
  27. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  28. package/lib/commonjs/controllers/TransactionsController.js +22 -18
  29. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  30. package/lib/commonjs/controllers/WcController.js +73 -0
  31. package/lib/commonjs/controllers/WcController.js.map +1 -0
  32. package/lib/commonjs/index.js +13 -41
  33. package/lib/commonjs/index.js.map +1 -1
  34. package/lib/commonjs/package.json +1 -0
  35. package/lib/commonjs/utils/ApiUtil.js.map +1 -1
  36. package/lib/commonjs/utils/AssetUtil.js +8 -18
  37. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  38. package/lib/commonjs/utils/ConstantsUtil.js +122 -5
  39. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  40. package/lib/commonjs/utils/CoreHelperUtil.js +19 -7
  41. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  42. package/lib/commonjs/utils/EventUtil.js.map +1 -1
  43. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  44. package/lib/commonjs/utils/RouterUtil.js.map +1 -1
  45. package/lib/commonjs/utils/StorageUtil.js +90 -108
  46. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  47. package/lib/commonjs/utils/SwapApiUtil.js +15 -21
  48. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  49. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
  50. package/lib/commonjs/utils/WalletUtil.js +23 -0
  51. package/lib/commonjs/utils/WalletUtil.js.map +1 -0
  52. package/lib/module/controllers/ApiController.js +77 -38
  53. package/lib/module/controllers/ApiController.js.map +1 -1
  54. package/lib/module/controllers/AssetController.js +2 -4
  55. package/lib/module/controllers/AssetController.js.map +1 -1
  56. package/lib/module/controllers/BlockchainApiController.js +158 -57
  57. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  58. package/lib/module/controllers/ConnectionsController.js +399 -0
  59. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  60. package/lib/module/controllers/EnsController.js +2 -0
  61. package/lib/module/controllers/EnsController.js.map +1 -1
  62. package/lib/module/controllers/EventsController.js +2 -0
  63. package/lib/module/controllers/EventsController.js.map +1 -1
  64. package/lib/module/controllers/ModalController.js +8 -7
  65. package/lib/module/controllers/ModalController.js.map +1 -1
  66. package/lib/module/controllers/OnRampController.js +27 -15
  67. package/lib/module/controllers/OnRampController.js.map +1 -1
  68. package/lib/module/controllers/OptionsController.js +24 -7
  69. package/lib/module/controllers/OptionsController.js.map +1 -1
  70. package/lib/module/controllers/PublicStateController.js +2 -0
  71. package/lib/module/controllers/PublicStateController.js.map +1 -1
  72. package/lib/module/controllers/RouterController.js +9 -22
  73. package/lib/module/controllers/RouterController.js.map +1 -1
  74. package/lib/module/controllers/SendController.js +98 -96
  75. package/lib/module/controllers/SendController.js.map +1 -1
  76. package/lib/module/controllers/SnackController.js +31 -5
  77. package/lib/module/controllers/SnackController.js.map +1 -1
  78. package/lib/module/controllers/SwapController.js +156 -151
  79. package/lib/module/controllers/SwapController.js.map +1 -1
  80. package/lib/module/controllers/ThemeController.js +11 -1
  81. package/lib/module/controllers/ThemeController.js.map +1 -1
  82. package/lib/module/controllers/TransactionsController.js +24 -18
  83. package/lib/module/controllers/TransactionsController.js.map +1 -1
  84. package/lib/module/controllers/WcController.js +70 -0
  85. package/lib/module/controllers/WcController.js.map +1 -0
  86. package/lib/module/index.js +7 -7
  87. package/lib/module/index.js.map +1 -1
  88. package/lib/module/utils/ApiUtil.js +2 -0
  89. package/lib/module/utils/ApiUtil.js.map +1 -1
  90. package/lib/module/utils/AssetUtil.js +10 -18
  91. package/lib/module/utils/AssetUtil.js.map +1 -1
  92. package/lib/module/utils/ConstantsUtil.js +124 -5
  93. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  94. package/lib/module/utils/CoreHelperUtil.js +21 -5
  95. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  96. package/lib/module/utils/EventUtil.js +2 -0
  97. package/lib/module/utils/EventUtil.js.map +1 -1
  98. package/lib/module/utils/FetchUtil.js +2 -0
  99. package/lib/module/utils/FetchUtil.js.map +1 -1
  100. package/lib/module/utils/RouterUtil.js +2 -0
  101. package/lib/module/utils/RouterUtil.js.map +1 -1
  102. package/lib/module/utils/StorageUtil.js +93 -108
  103. package/lib/module/utils/StorageUtil.js.map +1 -1
  104. package/lib/module/utils/SwapApiUtil.js +17 -21
  105. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  106. package/lib/module/utils/SwapCalculationUtil.js +3 -0
  107. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  108. package/lib/module/utils/WalletUtil.js +19 -0
  109. package/lib/module/utils/WalletUtil.js.map +1 -0
  110. package/lib/typescript/controllers/ApiController.d.ts +4 -5
  111. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  112. package/lib/typescript/controllers/AssetController.d.ts +0 -2
  113. package/lib/typescript/controllers/AssetController.d.ts.map +1 -1
  114. package/lib/typescript/controllers/BlockchainApiController.d.ts +29 -11
  115. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  116. package/lib/typescript/controllers/ConnectionsController.d.ts +45 -0
  117. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  118. package/lib/typescript/controllers/EnsController.d.ts +1 -1
  119. package/lib/typescript/controllers/EventsController.d.ts +1 -1
  120. package/lib/typescript/controllers/EventsController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  122. package/lib/typescript/controllers/OnRampController.d.ts +2 -2
  123. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  124. package/lib/typescript/controllers/OptionsController.d.ts +9 -4
  125. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  126. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  127. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  128. package/lib/typescript/controllers/RouterController.d.ts +6 -20
  129. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  130. package/lib/typescript/controllers/SendController.d.ts +5 -7
  131. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  132. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  133. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  134. package/lib/typescript/controllers/SwapController.d.ts +12 -12
  135. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  136. package/lib/typescript/controllers/ThemeController.d.ts +1 -1
  137. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  138. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  139. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  140. package/lib/typescript/controllers/WcController.d.ts +27 -0
  141. package/lib/typescript/controllers/WcController.d.ts.map +1 -0
  142. package/lib/typescript/index.d.ts +3 -8
  143. package/lib/typescript/index.d.ts.map +1 -1
  144. package/lib/typescript/utils/AssetUtil.d.ts +3 -4
  145. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  146. package/lib/typescript/utils/ConstantsUtil.d.ts +12 -2
  147. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  148. package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
  149. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  150. package/lib/typescript/utils/EventUtil.d.ts +1 -1
  151. package/lib/typescript/utils/EventUtil.d.ts.map +1 -1
  152. package/lib/typescript/utils/FetchUtil.d.ts +2 -2
  153. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  154. package/lib/typescript/utils/StorageUtil.d.ts +15 -16
  155. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  156. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -4
  157. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  158. package/lib/typescript/utils/SwapCalculationUtil.d.ts +1 -1
  159. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -1
  160. package/lib/typescript/utils/WalletUtil.d.ts +5 -0
  161. package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
  162. package/package.json +8 -22
  163. package/src/controllers/ApiController.ts +83 -40
  164. package/src/controllers/AssetController.ts +0 -6
  165. package/src/controllers/BlockchainApiController.ts +136 -44
  166. package/src/controllers/ConnectionsController.ts +521 -0
  167. package/src/controllers/EnsController.ts +1 -1
  168. package/src/controllers/EventsController.ts +1 -1
  169. package/src/controllers/ModalController.ts +6 -7
  170. package/src/controllers/OnRampController.ts +37 -18
  171. package/src/controllers/OptionsController.ts +37 -14
  172. package/src/controllers/PublicStateController.ts +1 -1
  173. package/src/controllers/RouterController.ts +17 -54
  174. package/src/controllers/SendController.ts +122 -111
  175. package/src/controllers/SnackController.ts +31 -5
  176. package/src/controllers/SwapController.ts +177 -183
  177. package/src/controllers/ThemeController.ts +11 -2
  178. package/src/controllers/TransactionsController.ts +25 -19
  179. package/src/controllers/WcController.ts +93 -0
  180. package/src/index.ts +6 -20
  181. package/src/utils/AssetUtil.ts +9 -22
  182. package/src/utils/ConstantsUtil.ts +126 -6
  183. package/src/utils/CoreHelperUtil.ts +45 -7
  184. package/src/utils/EventUtil.ts +1 -1
  185. package/src/utils/FetchUtil.ts +2 -2
  186. package/src/utils/StorageUtil.ts +163 -131
  187. package/src/utils/SwapApiUtil.ts +30 -37
  188. package/src/utils/SwapCalculationUtil.ts +1 -2
  189. package/src/utils/WalletUtil.ts +14 -0
  190. package/lib/commonjs/controllers/AccountController.js +0 -93
  191. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  192. package/lib/commonjs/controllers/ConnectionController.js +0 -126
  193. package/lib/commonjs/controllers/ConnectionController.js.map +0 -1
  194. package/lib/commonjs/controllers/ConnectorController.js +0 -49
  195. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  196. package/lib/commonjs/controllers/NetworkController.js +0 -90
  197. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  198. package/lib/commonjs/controllers/WebviewController.js +0 -52
  199. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  200. package/lib/commonjs/utils/ConnectionUtil.js +0 -33
  201. package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
  202. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  203. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  204. package/lib/commonjs/utils/TypeUtil.js +0 -35
  205. package/lib/commonjs/utils/TypeUtil.js.map +0 -1
  206. package/lib/module/controllers/AccountController.js +0 -88
  207. package/lib/module/controllers/AccountController.js.map +0 -1
  208. package/lib/module/controllers/ConnectionController.js +0 -121
  209. package/lib/module/controllers/ConnectionController.js.map +0 -1
  210. package/lib/module/controllers/ConnectorController.js +0 -44
  211. package/lib/module/controllers/ConnectorController.js.map +0 -1
  212. package/lib/module/controllers/NetworkController.js +0 -85
  213. package/lib/module/controllers/NetworkController.js.map +0 -1
  214. package/lib/module/controllers/WebviewController.js +0 -47
  215. package/lib/module/controllers/WebviewController.js.map +0 -1
  216. package/lib/module/utils/ConnectionUtil.js +0 -27
  217. package/lib/module/utils/ConnectionUtil.js.map +0 -1
  218. package/lib/module/utils/NetworkUtil.js +0 -40
  219. package/lib/module/utils/NetworkUtil.js.map +0 -1
  220. package/lib/module/utils/TypeUtil.js +0 -28
  221. package/lib/module/utils/TypeUtil.js.map +0 -1
  222. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  223. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  224. package/lib/typescript/controllers/ConnectionController.d.ts +0 -66
  225. package/lib/typescript/controllers/ConnectionController.d.ts.map +0 -1
  226. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  227. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  228. package/lib/typescript/controllers/NetworkController.d.ts +0 -35
  229. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  230. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  231. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  232. package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
  233. package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
  234. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  235. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  236. package/lib/typescript/utils/TypeUtil.d.ts +0 -850
  237. package/lib/typescript/utils/TypeUtil.d.ts.map +0 -1
  238. package/src/controllers/AccountController.ts +0 -128
  239. package/src/controllers/ConnectionController.ts +0 -200
  240. package/src/controllers/ConnectorController.ts +0 -63
  241. package/src/controllers/NetworkController.ts +0 -120
  242. package/src/controllers/WebviewController.ts +0 -63
  243. package/src/utils/ConnectionUtil.ts +0 -27
  244. package/src/utils/NetworkUtil.ts +0 -33
  245. 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","hide"],"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,OAAO,MAAMC,eAAe,GAAG;EAC7BL,KAAK;EAELM,WAAWA,CAACL,OAAwC,EAAE;IACpDD,KAAK,CAACC,OAAO,GAAGA,OAAO;IACvBD,KAAK,CAACE,OAAO,GAAG,SAAS;IACzBF,KAAK,CAACG,IAAI,GAAG,IAAI;EACnB,CAAC;EAEDI,SAASA,CAACN,OAAwC,EAAE;IAClDD,KAAK,CAACC,OAAO,GAAGA,OAAO;IACvBD,KAAK,CAACE,OAAO,GAAG,OAAO;IACvBF,KAAK,CAACG,IAAI,GAAG,IAAI;EACnB,CAAC;EAEDK,WAAWA,CAACP,OAAwC,EAAE;IACpDD,KAAK,CAACC,OAAO,GAAGA,OAAO;IACvBD,KAAK,CAACE,OAAO,GAAG,SAAS;IACzBF,KAAK,CAACG,IAAI,GAAG,IAAI;EACnB,CAAC;EAEDM,iBAAiBA,CAACC,KAAc,EAAE;IAChC,MAAM;MAAEC;IAAM,CAAC,GAAGZ,iBAAiB,CAACC,KAAK;IAEzC,IAAIW,KAAK,EAAE;MACTX,KAAK,CAACC,OAAO,GAAGS,KAAK,CAACE,YAAY;MAClCZ,KAAK,CAACE,OAAO,GAAG,OAAO;MACvBF,KAAK,CAACG,IAAI,GAAG,IAAI;MACjBH,KAAK,CAACI,IAAI,GAAG,IAAI;IACnB;IAEA,IAAIM,KAAK,CAACG,WAAW,EAAE;MACrB;MACAC,OAAO,CAACJ,KAAK,CAACA,KAAK,CAACG,WAAW,CAAC;IAClC;EACF,CAAC;EAEDE,IAAIA,CAAA,EAAG;IACLf,KAAK,CAACG,IAAI,GAAG,KAAK;IAClBH,KAAK,CAACI,IAAI,GAAG,KAAK;IAClBJ,KAAK,CAACC,OAAO,GAAG,EAAE;IAClBD,KAAK,CAACE,OAAO,GAAG,SAAS;EAC3B;AACF,CAAC"}
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
- initializing: false,
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(initialState);
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 caipAddress = AccountController.state.caipAddress;
88
- const address = CoreHelperUtil.getPlainAddress(caipAddress);
89
- const networkAddress = NetworkController.getActiveNetworkTokenAddress();
90
- const type = ConnectorController.state.connectedConnector;
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: caipAddress,
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: caipAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
111
- isAuthConnector: type === 'AUTH'
117
+ availableToSwap: activeAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
118
+ isAuthConnector: !!connection?.properties?.provider
112
119
  };
113
120
  },
114
121
  switchTokens() {
115
- if (state.initializing || !state.initialized) {
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
- const {
152
- networkAddress
153
- } = this.getParams();
154
- await this.getTokenList();
155
- await this.getNetworkTokenPrice();
156
- await this.getMyTokensWithBalance();
157
- const networkToken = state.tokens?.find(token => token.address === networkAddress);
158
- if (networkToken) {
159
- state.networkTokenSymbol = networkToken.symbol;
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
- const balances = await SwapApiUtil.getMyTokensWithBalance(forceUpdate);
186
- if (!balances) {
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(balances);
195
+ this.setBalances(swapBalances);
191
196
  },
192
- getFilteredPopularTokens() {
193
- return state.popularTokens?.filter(token => !state.myTokensWithBalance?.some(t => t.address === token.address));
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
- const {
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 = AccountController.state.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
- const quoteResponse = await BlockchainApiController.fetchSwapQuote({
339
- userAddress: address,
340
- projectId: OptionsController.state.projectId,
341
- from: sourceToken.address,
342
- to: toToken.address,
343
- gasPrice: state.gasFee,
344
- amount: amountDecimal.toString()
345
- });
346
- state.loadingQuote = false;
347
- const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;
348
- if (!quoteToAmount) {
349
- return;
350
- }
351
- const toTokenAmount = NumberUtil.bigNumber(quoteToAmount).dividedBy(10 ** toToken.decimals).toString();
352
- this.setToTokenAmount(toTokenAmount);
353
- const isInsufficientToken = this.hasInsufficientToken(state.sourceTokenAmount, sourceToken.address);
354
- if (isInsufficientToken) {
355
- state.inputError = 'Insufficient balance';
356
- } else {
357
- state.inputError = undefined;
358
- this.setTransactionDetails();
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 ConnectionController.estimateGas({
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 = ConnectionController.parseUnits(sourceTokenAmount, sourceToken.decimals)?.toString();
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
- isAuthConnector
505
+ network
512
506
  } = this.getParams();
513
507
  state.loadingApprovalTransaction = true;
514
- const approveLimitMessage = `Approve limit increase in your wallet`;
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 ConnectionController.sendTransaction({
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: 'eip155'
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
- toTokenAmount,
553
- isAuthConnector
536
+ isAuthConnector,
537
+ network
554
538
  } = this.getParams();
555
539
  state.loadingTransaction = true;
556
- const snackbarPendingMessage = `Swapping ${state.sourceToken?.symbol} to ${NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken?.symbol}`;
557
- const snackbarSuccessMessage = `Swapped ${state.sourceToken?.symbol} to ${NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken?.symbol}`;
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].join(',');
572
- const transactionHash = await ConnectionController.sendTransaction({
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: 'eip155'
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: NetworkController.state.caipNetwork?.id || '',
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: AccountController.state.preferredAccountType === 'smartAccount'
565
+ isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
593
566
  }
594
567
  });
595
- SwapController.resetState();
596
- if (!isAuthConnector) {
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
- TransactionsController.fetchTransactions(AccountController.state.address, true);
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: NetworkController.state.caipNetwork?.id || '',
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: AccountController.state.preferredAccountType === 'smartAccount'
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 (AccountController.state.preferredAccountType === 'smartAccount') {
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(state.networkBalanceInUSD, state.gasPriceInUSD);
639
+ insufficientNetworkTokenForGas = SwapCalculationUtil.isInsufficientNetworkTokenForGas(networkBalanceInUSD, state.gasPriceInUSD);
635
640
  }
636
641
  return insufficientNetworkTokenForGas || isInsufficientSourceTokenForSwap;
637
642
  },