@reown/appkit-core-react-native 0.0.0-develop-20250728141602 → 0.0.0-develop-20251008155354

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/lib/commonjs/controllers/ApiController.js +157 -91
  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 +180 -78
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionsController.js +425 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/EnsController.js +2 -0
  10. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  11. package/lib/commonjs/controllers/EventsController.js +51 -1
  12. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  13. package/lib/commonjs/controllers/LogController.js +188 -0
  14. package/lib/commonjs/controllers/LogController.js.map +1 -0
  15. package/lib/commonjs/controllers/ModalController.js +9 -7
  16. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  17. package/lib/commonjs/controllers/OnRampController.js +47 -20
  18. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  19. package/lib/commonjs/controllers/OptionsController.js +28 -10
  20. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  21. package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
  22. package/lib/commonjs/controllers/RouterController.js +7 -22
  23. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  24. package/lib/commonjs/controllers/SendController.js +111 -95
  25. package/lib/commonjs/controllers/SendController.js.map +1 -1
  26. package/lib/commonjs/controllers/SnackController.js +29 -5
  27. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  28. package/lib/commonjs/controllers/SwapController.js +162 -151
  29. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  30. package/lib/commonjs/controllers/ThemeController.js +14 -1
  31. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  32. package/lib/commonjs/controllers/TransactionsController.js +24 -18
  33. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  34. package/lib/commonjs/controllers/WcController.js +73 -0
  35. package/lib/commonjs/controllers/WcController.js.map +1 -0
  36. package/lib/commonjs/features/reown-authentication/ReownAuthentication.js +272 -0
  37. package/lib/commonjs/features/reown-authentication/ReownAuthentication.js.map +1 -0
  38. package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js +48 -0
  39. package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
  40. package/lib/commonjs/features/reown-authentication/index.js +28 -0
  41. package/lib/commonjs/features/reown-authentication/index.js.map +1 -0
  42. package/lib/commonjs/index.js +33 -40
  43. package/lib/commonjs/index.js.map +1 -1
  44. package/lib/commonjs/package.json +1 -0
  45. package/lib/commonjs/utils/ApiUtil.js +1 -1
  46. package/lib/commonjs/utils/ApiUtil.js.map +1 -1
  47. package/lib/commonjs/utils/AssetUtil.js +8 -18
  48. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  49. package/lib/commonjs/utils/ConstantsUtil.js +117 -5
  50. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  51. package/lib/commonjs/utils/CoreHelperUtil.js +32 -9
  52. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  53. package/lib/commonjs/utils/EventUtil.js.map +1 -1
  54. package/lib/commonjs/utils/FetchUtil.js +7 -2
  55. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  56. package/lib/commonjs/utils/LogUtils.js +131 -0
  57. package/lib/commonjs/utils/LogUtils.js.map +1 -0
  58. package/lib/commonjs/utils/StorageUtil.js +131 -150
  59. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  60. package/lib/commonjs/utils/SwapApiUtil.js +15 -21
  61. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  62. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
  63. package/lib/commonjs/utils/WalletUtil.js +23 -0
  64. package/lib/commonjs/utils/WalletUtil.js.map +1 -0
  65. package/lib/module/controllers/ApiController.js +159 -91
  66. package/lib/module/controllers/ApiController.js.map +1 -1
  67. package/lib/module/controllers/AssetController.js +2 -4
  68. package/lib/module/controllers/AssetController.js.map +1 -1
  69. package/lib/module/controllers/BlockchainApiController.js +182 -78
  70. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  71. package/lib/module/controllers/ConnectionsController.js +422 -0
  72. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  73. package/lib/module/controllers/EnsController.js +4 -0
  74. package/lib/module/controllers/EnsController.js.map +1 -1
  75. package/lib/module/controllers/EventsController.js +53 -1
  76. package/lib/module/controllers/EventsController.js.map +1 -1
  77. package/lib/module/controllers/LogController.js +185 -0
  78. package/lib/module/controllers/LogController.js.map +1 -0
  79. package/lib/module/controllers/ModalController.js +11 -7
  80. package/lib/module/controllers/ModalController.js.map +1 -1
  81. package/lib/module/controllers/OnRampController.js +45 -16
  82. package/lib/module/controllers/OnRampController.js.map +1 -1
  83. package/lib/module/controllers/OptionsController.js +30 -10
  84. package/lib/module/controllers/OptionsController.js.map +1 -1
  85. package/lib/module/controllers/PublicStateController.js +2 -0
  86. package/lib/module/controllers/PublicStateController.js.map +1 -1
  87. package/lib/module/controllers/RouterController.js +9 -22
  88. package/lib/module/controllers/RouterController.js.map +1 -1
  89. package/lib/module/controllers/SendController.js +113 -95
  90. package/lib/module/controllers/SendController.js.map +1 -1
  91. package/lib/module/controllers/SnackController.js +31 -5
  92. package/lib/module/controllers/SnackController.js.map +1 -1
  93. package/lib/module/controllers/SwapController.js +164 -151
  94. package/lib/module/controllers/SwapController.js.map +1 -1
  95. package/lib/module/controllers/ThemeController.js +16 -1
  96. package/lib/module/controllers/ThemeController.js.map +1 -1
  97. package/lib/module/controllers/TransactionsController.js +26 -18
  98. package/lib/module/controllers/TransactionsController.js.map +1 -1
  99. package/lib/module/controllers/WcController.js +70 -0
  100. package/lib/module/controllers/WcController.js.map +1 -0
  101. package/lib/module/features/reown-authentication/ReownAuthentication.js +268 -0
  102. package/lib/module/features/reown-authentication/ReownAuthentication.js.map +1 -0
  103. package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js +43 -0
  104. package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
  105. package/lib/module/features/reown-authentication/index.js +5 -0
  106. package/lib/module/features/reown-authentication/index.js.map +1 -0
  107. package/lib/module/index.js +13 -8
  108. package/lib/module/index.js.map +1 -1
  109. package/lib/module/utils/ApiUtil.js +3 -1
  110. package/lib/module/utils/ApiUtil.js.map +1 -1
  111. package/lib/module/utils/AssetUtil.js +10 -18
  112. package/lib/module/utils/AssetUtil.js.map +1 -1
  113. package/lib/module/utils/ConstantsUtil.js +119 -5
  114. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  115. package/lib/module/utils/CoreHelperUtil.js +34 -7
  116. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  117. package/lib/module/utils/EventUtil.js +2 -0
  118. package/lib/module/utils/EventUtil.js.map +1 -1
  119. package/lib/module/utils/FetchUtil.js +10 -2
  120. package/lib/module/utils/FetchUtil.js.map +1 -1
  121. package/lib/module/utils/LogUtils.js +121 -0
  122. package/lib/module/utils/LogUtils.js.map +1 -0
  123. package/lib/module/utils/StorageUtil.js +134 -150
  124. package/lib/module/utils/StorageUtil.js.map +1 -1
  125. package/lib/module/utils/SwapApiUtil.js +17 -21
  126. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  127. package/lib/module/utils/SwapCalculationUtil.js +3 -0
  128. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  129. package/lib/module/utils/WalletUtil.js +19 -0
  130. package/lib/module/utils/WalletUtil.js.map +1 -0
  131. package/lib/typescript/controllers/ApiController.d.ts +9 -8
  132. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  133. package/lib/typescript/controllers/AssetController.d.ts +0 -2
  134. package/lib/typescript/controllers/AssetController.d.ts.map +1 -1
  135. package/lib/typescript/controllers/BlockchainApiController.d.ts +29 -11
  136. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  137. package/lib/typescript/controllers/ConnectionsController.d.ts +47 -0
  138. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  139. package/lib/typescript/controllers/EnsController.d.ts +1 -1
  140. package/lib/typescript/controllers/EnsController.d.ts.map +1 -1
  141. package/lib/typescript/controllers/EventsController.d.ts +13 -1
  142. package/lib/typescript/controllers/EventsController.d.ts.map +1 -1
  143. package/lib/typescript/controllers/LogController.d.ts +65 -0
  144. package/lib/typescript/controllers/LogController.d.ts.map +1 -0
  145. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  146. package/lib/typescript/controllers/OnRampController.d.ts +2 -2
  147. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  148. package/lib/typescript/controllers/OptionsController.d.ts +11 -6
  149. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  150. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  151. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  152. package/lib/typescript/controllers/RouterController.d.ts +6 -20
  153. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  154. package/lib/typescript/controllers/SendController.d.ts +5 -7
  155. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  156. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  157. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  158. package/lib/typescript/controllers/SwapController.d.ts +12 -12
  159. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  160. package/lib/typescript/controllers/ThemeController.d.ts +3 -1
  161. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  162. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  163. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  164. package/lib/typescript/controllers/WcController.d.ts +27 -0
  165. package/lib/typescript/controllers/WcController.d.ts.map +1 -0
  166. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts +174 -0
  167. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts.map +1 -0
  168. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts +16 -0
  169. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts.map +1 -0
  170. package/lib/typescript/features/reown-authentication/index.d.ts +3 -0
  171. package/lib/typescript/features/reown-authentication/index.d.ts.map +1 -0
  172. package/lib/typescript/index.d.ts +7 -9
  173. package/lib/typescript/index.d.ts.map +1 -1
  174. package/lib/typescript/utils/ApiUtil.d.ts +1 -1
  175. package/lib/typescript/utils/AssetUtil.d.ts +3 -4
  176. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  177. package/lib/typescript/utils/ConstantsUtil.d.ts +11 -2
  178. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  179. package/lib/typescript/utils/CoreHelperUtil.d.ts +8 -6
  180. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  181. package/lib/typescript/utils/EventUtil.d.ts +1 -1
  182. package/lib/typescript/utils/EventUtil.d.ts.map +1 -1
  183. package/lib/typescript/utils/FetchUtil.d.ts +4 -4
  184. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  185. package/lib/typescript/utils/LogUtils.d.ts +15 -0
  186. package/lib/typescript/utils/LogUtils.d.ts.map +1 -0
  187. package/lib/typescript/utils/StorageUtil.d.ts +15 -16
  188. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  189. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -4
  190. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  191. package/lib/typescript/utils/SwapCalculationUtil.d.ts +1 -1
  192. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -1
  193. package/lib/typescript/utils/WalletUtil.d.ts +5 -0
  194. package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
  195. package/package.json +11 -24
  196. package/src/controllers/ApiController.ts +167 -84
  197. package/src/controllers/AssetController.ts +0 -6
  198. package/src/controllers/BlockchainApiController.ts +168 -66
  199. package/src/controllers/ConnectionsController.ts +575 -0
  200. package/src/controllers/EnsController.ts +3 -1
  201. package/src/controllers/EventsController.ts +73 -2
  202. package/src/controllers/LogController.ts +250 -0
  203. package/src/controllers/ModalController.ts +10 -7
  204. package/src/controllers/OnRampController.ts +54 -19
  205. package/src/controllers/OptionsController.ts +46 -18
  206. package/src/controllers/PublicStateController.ts +1 -1
  207. package/src/controllers/RouterController.ts +20 -57
  208. package/src/controllers/SendController.ts +147 -111
  209. package/src/controllers/SnackController.ts +31 -5
  210. package/src/controllers/SwapController.ts +185 -183
  211. package/src/controllers/ThemeController.ts +18 -2
  212. package/src/controllers/TransactionsController.ts +27 -19
  213. package/src/controllers/WcController.ts +93 -0
  214. package/src/features/reown-authentication/ReownAuthentication.ts +475 -0
  215. package/src/features/reown-authentication/ReownAuthenticationMessenger.ts +80 -0
  216. package/src/features/reown-authentication/index.ts +2 -0
  217. package/src/index.ts +17 -20
  218. package/src/utils/ApiUtil.ts +1 -1
  219. package/src/utils/AssetUtil.ts +9 -22
  220. package/src/utils/ConstantsUtil.ts +121 -6
  221. package/src/utils/CoreHelperUtil.ts +66 -10
  222. package/src/utils/EventUtil.ts +1 -1
  223. package/src/utils/FetchUtil.ts +14 -5
  224. package/src/utils/LogUtils.ts +179 -0
  225. package/src/utils/StorageUtil.ts +191 -176
  226. package/src/utils/SwapApiUtil.ts +30 -37
  227. package/src/utils/SwapCalculationUtil.ts +1 -2
  228. package/src/utils/WalletUtil.ts +14 -0
  229. package/lib/commonjs/controllers/AccountController.js +0 -93
  230. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  231. package/lib/commonjs/controllers/ConnectionController.js +0 -126
  232. package/lib/commonjs/controllers/ConnectionController.js.map +0 -1
  233. package/lib/commonjs/controllers/ConnectorController.js +0 -49
  234. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  235. package/lib/commonjs/controllers/NetworkController.js +0 -90
  236. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  237. package/lib/commonjs/controllers/WebviewController.js +0 -52
  238. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  239. package/lib/commonjs/utils/ConnectionUtil.js +0 -33
  240. package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
  241. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  242. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  243. package/lib/commonjs/utils/RouterUtil.js +0 -25
  244. package/lib/commonjs/utils/RouterUtil.js.map +0 -1
  245. package/lib/commonjs/utils/TypeUtil.js +0 -35
  246. package/lib/commonjs/utils/TypeUtil.js.map +0 -1
  247. package/lib/module/controllers/AccountController.js +0 -88
  248. package/lib/module/controllers/AccountController.js.map +0 -1
  249. package/lib/module/controllers/ConnectionController.js +0 -121
  250. package/lib/module/controllers/ConnectionController.js.map +0 -1
  251. package/lib/module/controllers/ConnectorController.js +0 -44
  252. package/lib/module/controllers/ConnectorController.js.map +0 -1
  253. package/lib/module/controllers/NetworkController.js +0 -85
  254. package/lib/module/controllers/NetworkController.js.map +0 -1
  255. package/lib/module/controllers/WebviewController.js +0 -47
  256. package/lib/module/controllers/WebviewController.js.map +0 -1
  257. package/lib/module/utils/ConnectionUtil.js +0 -27
  258. package/lib/module/utils/ConnectionUtil.js.map +0 -1
  259. package/lib/module/utils/NetworkUtil.js +0 -40
  260. package/lib/module/utils/NetworkUtil.js.map +0 -1
  261. package/lib/module/utils/RouterUtil.js +0 -19
  262. package/lib/module/utils/RouterUtil.js.map +0 -1
  263. package/lib/module/utils/TypeUtil.js +0 -28
  264. package/lib/module/utils/TypeUtil.js.map +0 -1
  265. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  266. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  267. package/lib/typescript/controllers/ConnectionController.d.ts +0 -66
  268. package/lib/typescript/controllers/ConnectionController.d.ts.map +0 -1
  269. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  270. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  271. package/lib/typescript/controllers/NetworkController.d.ts +0 -34
  272. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  273. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  274. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  275. package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
  276. package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
  277. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  278. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  279. package/lib/typescript/utils/RouterUtil.d.ts +0 -5
  280. package/lib/typescript/utils/RouterUtil.d.ts.map +0 -1
  281. package/lib/typescript/utils/TypeUtil.d.ts +0 -849
  282. package/lib/typescript/utils/TypeUtil.d.ts.map +0 -1
  283. package/src/controllers/AccountController.ts +0 -128
  284. package/src/controllers/ConnectionController.ts +0 -200
  285. package/src/controllers/ConnectorController.ts +0 -63
  286. package/src/controllers/NetworkController.ts +0 -120
  287. package/src/controllers/WebviewController.ts +0 -63
  288. package/src/utils/ConnectionUtil.ts +0 -27
  289. package/src/utils/NetworkUtil.ts +0 -33
  290. package/src/utils/RouterUtil.ts +0 -21
  291. package/src/utils/TypeUtil.ts +0 -1036
@@ -9,18 +9,16 @@ var _valtio = require("valtio");
9
9
  var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
10
10
  var _ConstantsUtil = require("../utils/ConstantsUtil");
11
11
  var _SwapApiUtil = require("../utils/SwapApiUtil");
12
- var _NetworkController = require("./NetworkController");
13
12
  var _BlockchainApiController = require("./BlockchainApiController");
14
13
  var _OptionsController = require("./OptionsController");
15
14
  var _SwapCalculationUtil = require("../utils/SwapCalculationUtil");
16
15
  var _SnackController = require("./SnackController");
16
+ var _LogController = require("./LogController");
17
17
  var _RouterController = require("./RouterController");
18
- var _ConnectorController = require("./ConnectorController");
19
- var _AccountController = require("./AccountController");
20
18
  var _CoreHelperUtil = require("../utils/CoreHelperUtil");
21
- var _ConnectionController = require("./ConnectionController");
22
19
  var _TransactionsController = require("./TransactionsController");
23
20
  var _EventsController = require("./EventsController");
21
+ var _ConnectionsController = require("./ConnectionsController");
24
22
  // -- Constants ---------------------------------------- //
25
23
  const INITIAL_GAS_LIMIT = exports.INITIAL_GAS_LIMIT = 150000;
26
24
  const TO_AMOUNT_DECIMALS = exports.TO_AMOUNT_DECIMALS = 6;
@@ -37,8 +35,7 @@ class TransactionError extends Error {
37
35
  // -- State --------------------------------------------- //
38
36
  const initialState = {
39
37
  // Loading states
40
- initializing: false,
41
- initialized: false,
38
+ loadingTokens: false,
42
39
  loadingPrices: false,
43
40
  loadingQuote: false,
44
41
  loadingApprovalTransaction: false,
@@ -58,7 +55,6 @@ const initialState = {
58
55
  toTokenAmount: '',
59
56
  toTokenPriceInUSD: 0,
60
57
  networkPrice: '0',
61
- networkBalanceInUSD: '0',
62
58
  networkTokenSymbol: '',
63
59
  inputError: undefined,
64
60
  // Request values
@@ -77,7 +73,9 @@ const initialState = {
77
73
  maxSlippage: undefined,
78
74
  providerFee: undefined
79
75
  };
80
- const state = (0, _valtio.proxy)(initialState);
76
+ const state = (0, _valtio.proxy)({
77
+ ...initialState
78
+ });
81
79
 
82
80
  // -- Controller ---------------------------------------- //
83
81
  const SwapController = exports.SwapController = {
@@ -89,10 +87,17 @@ const SwapController = exports.SwapController = {
89
87
  return (0, _utils.subscribeKey)(state, key, callback);
90
88
  },
91
89
  getParams() {
92
- const caipAddress = _AccountController.AccountController.state.caipAddress;
93
- const address = _CoreHelperUtil.CoreHelperUtil.getPlainAddress(caipAddress);
94
- const networkAddress = _NetworkController.NetworkController.getActiveNetworkTokenAddress();
95
- const type = _ConnectorController.ConnectorController.state.connectedConnector;
90
+ const {
91
+ activeAddress,
92
+ activeNamespace,
93
+ activeNetwork,
94
+ connection
95
+ } = _ConnectionsController.ConnectionsController.state;
96
+ const address = _CoreHelperUtil.CoreHelperUtil.getPlainAddress(activeAddress);
97
+ if (!activeNamespace || !activeNetwork) {
98
+ throw new Error('No active namespace or network found to swap the tokens from.');
99
+ }
100
+ const networkAddress = `${activeNetwork.caipNetworkId}:${_ConstantsUtil.ConstantsUtil.NATIVE_TOKEN_ADDRESS[activeNamespace]}`;
96
101
  if (!address) {
97
102
  throw new Error('No address found to swap the tokens from.');
98
103
  }
@@ -101,8 +106,9 @@ const SwapController = exports.SwapController = {
101
106
  const invalidSourceTokenAmount = !state.sourceTokenAmount;
102
107
  return {
103
108
  networkAddress,
109
+ network: activeNetwork,
104
110
  fromAddress: address,
105
- fromCaipAddress: caipAddress,
111
+ fromCaipAddress: activeAddress,
106
112
  sourceTokenAddress: state.sourceToken?.address,
107
113
  toTokenAddress: state.toToken?.address,
108
114
  toTokenAmount: state.toTokenAmount,
@@ -112,12 +118,12 @@ const SwapController = exports.SwapController = {
112
118
  invalidToToken,
113
119
  invalidSourceToken,
114
120
  invalidSourceTokenAmount,
115
- availableToSwap: caipAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
116
- isAuthConnector: type === 'AUTH'
121
+ availableToSwap: activeAddress && !invalidToToken && !invalidSourceToken && !invalidSourceTokenAmount,
122
+ isAuthConnector: !!connection?.properties?.provider
117
123
  };
118
124
  },
119
125
  switchTokens() {
120
- if (state.initializing || !state.initialized) {
126
+ if (state.loadingTokens) {
121
127
  return;
122
128
  }
123
129
  let newSourceToken = state.toToken ? {
@@ -137,35 +143,33 @@ const SwapController = exports.SwapController = {
137
143
  this.setToTokenAmount('');
138
144
  this.swapTokens();
139
145
  },
140
- resetState() {
141
- state.myTokensWithBalance = initialState.myTokensWithBalance;
142
- state.tokensPriceMap = initialState.tokensPriceMap;
143
- state.initialized = initialState.initialized;
144
- state.sourceToken = initialState.sourceToken;
145
- state.sourceTokenAmount = initialState.sourceTokenAmount;
146
- state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
147
- state.toToken = initialState.toToken;
148
- state.toTokenAmount = initialState.toTokenAmount;
149
- state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
150
- state.networkPrice = initialState.networkPrice;
151
- state.networkTokenSymbol = initialState.networkTokenSymbol;
152
- state.networkBalanceInUSD = initialState.networkBalanceInUSD;
153
- state.inputError = initialState.inputError;
154
- },
155
146
  async fetchTokens() {
156
- const {
157
- networkAddress
158
- } = this.getParams();
159
- await this.getTokenList();
160
- await this.getNetworkTokenPrice();
161
- await this.getMyTokensWithBalance();
162
- const networkToken = state.tokens?.find(token => token.address === networkAddress);
163
- if (networkToken) {
164
- state.networkTokenSymbol = networkToken.symbol;
147
+ try {
148
+ const {
149
+ networkAddress
150
+ } = this.getParams();
151
+ state.loadingTokens = true;
152
+ await this.getTokenList();
153
+ await this.getNetworkTokenPrice();
154
+ await this.getMyTokensWithBalance();
155
+ const networkToken = state.tokens?.find(token => token.address === networkAddress);
156
+ if (networkToken) {
157
+ state.networkTokenSymbol = networkToken.symbol;
158
+ }
159
+
160
+ // Set default source token if not set
161
+ if (!state.sourceToken && state.myTokensWithBalance?.length) {
162
+ const sourceToken = state.myTokensWithBalance?.find(token => token.address.startsWith(networkAddress)) || state.myTokensWithBalance?.[0];
163
+ this.setSourceToken(sourceToken);
164
+ this.setSourceTokenAmount('1');
165
+ }
166
+ } catch (error) {
167
+ _LogController.LogController.sendError(error, 'SwapController.ts', 'initializeState');
168
+ _SnackController.SnackController.showError('Failed to initialize swap');
169
+ _RouterController.RouterController.goBack();
170
+ } finally {
171
+ state.loadingTokens = false;
165
172
  }
166
- const sourceToken = state.myTokensWithBalance?.find(token => token.address.startsWith(networkAddress)) || state.myTokensWithBalance?.[0];
167
- this.setSourceToken(sourceToken);
168
- this.setSourceTokenAmount('1');
169
173
  },
170
174
  async getTokenList() {
171
175
  const tokens = await _SwapApiUtil.SwapApiUtil.getTokenList();
@@ -187,15 +191,19 @@ const SwapController = exports.SwapController = {
187
191
  }, {});
188
192
  },
189
193
  async getMyTokensWithBalance(forceUpdate) {
190
- const balances = await _SwapApiUtil.SwapApiUtil.getMyTokensWithBalance(forceUpdate);
191
- if (!balances) {
194
+ await _ConnectionsController.ConnectionsController.fetchBalance(forceUpdate);
195
+ const swapBalances = _SwapApiUtil.SwapApiUtil.mapBalancesToSwapTokens(_ConnectionsController.ConnectionsController.state.balances);
196
+ if (!swapBalances) {
192
197
  return;
193
198
  }
194
199
  await this.getInitialGasPrice();
195
- this.setBalances(balances);
200
+ this.setBalances(swapBalances);
196
201
  },
197
- getFilteredPopularTokens() {
198
- return state.popularTokens?.filter(token => !state.myTokensWithBalance?.some(t => t.address === token.address));
202
+ getFilteredPopularTokens(balances) {
203
+ if (!balances) {
204
+ return state.popularTokens;
205
+ }
206
+ return state.popularTokens?.filter(token => !balances.some(t => t.address === token.address));
199
207
  },
200
208
  setSourceToken(sourceToken) {
201
209
  if (!sourceToken) {
@@ -213,31 +221,17 @@ const SwapController = exports.SwapController = {
213
221
  state.toTokenAmount = '';
214
222
  }
215
223
  },
216
- async initializeState() {
217
- if (state.initializing) {
218
- return;
219
- }
220
- state.initializing = true;
221
- if (!state.initialized) {
222
- try {
223
- await this.fetchTokens();
224
- state.initialized = true;
225
- } catch (error) {
226
- state.initialized = false;
227
- _SnackController.SnackController.showError('Failed to initialize swap');
228
- _RouterController.RouterController.goBack();
229
- }
230
- }
231
- state.initializing = false;
232
- },
233
224
  async getAddressPrice(address) {
225
+ const [namespace, chain] = address.split(':');
226
+ const networkId = `${namespace}:${chain}`;
234
227
  const existPrice = state.tokensPriceMap[address];
235
228
  if (existPrice) {
236
229
  return existPrice;
237
230
  }
238
231
  const response = await _BlockchainApiController.BlockchainApiController.fetchTokenPrice({
239
232
  projectId: _OptionsController.OptionsController.state.projectId,
240
- addresses: [address]
233
+ addresses: [address],
234
+ caipNetworkId: networkId
241
235
  });
242
236
  const fungibles = response?.fungibles || [];
243
237
  const allTokens = [...(state.tokens || []), ...(state.myTokensWithBalance || [])];
@@ -251,9 +245,12 @@ const SwapController = exports.SwapController = {
251
245
  const {
252
246
  networkAddress
253
247
  } = this.getParams();
248
+ const [namespace, chain] = networkAddress.split(':');
249
+ const networkId = `${namespace}:${chain}`;
254
250
  const response = await _BlockchainApiController.BlockchainApiController.fetchTokenPrice({
255
251
  projectId: _OptionsController.OptionsController.state.projectId,
256
- addresses: [networkAddress]
252
+ addresses: [networkAddress],
253
+ caipNetworkId: networkId
257
254
  });
258
255
  const token = response?.fungibles?.[0];
259
256
  const price = token?.price.toString() || '0';
@@ -284,19 +281,10 @@ const SwapController = exports.SwapController = {
284
281
  return _SwapCalculationUtil.SwapCalculationUtil.getProviderFeePrice(state.sourceTokenAmount, state.sourceTokenPriceInUSD);
285
282
  },
286
283
  setBalances(balances) {
287
- const {
288
- networkAddress
289
- } = this.getParams();
290
- const caipNetwork = _NetworkController.NetworkController.state.caipNetwork;
291
- if (!caipNetwork) {
292
- return;
293
- }
294
- const networkToken = balances.find(token => token.address === networkAddress);
284
+ state.myTokensWithBalance = balances;
295
285
  balances.forEach(token => {
296
286
  state.tokensPriceMap[token.address] = token.price || 0;
297
287
  });
298
- state.myTokensWithBalance = balances.filter(token => token.address?.startsWith(caipNetwork.id));
299
- state.networkBalanceInUSD = networkToken ? _appkitCommonReactNative.NumberUtil.multiply(networkToken.quantity.numeric, networkToken.price).toString() : '0';
300
288
  },
301
289
  setToToken(toToken) {
302
290
  if (!toToken) {
@@ -331,36 +319,43 @@ const SwapController = exports.SwapController = {
331
319
  },
332
320
  // -- Swap ---------------------------------------------- //
333
321
  async swapTokens() {
334
- const address = _AccountController.AccountController.state.address;
322
+ const address = _ConnectionsController.ConnectionsController.state.activeAddress;
335
323
  const sourceToken = state.sourceToken;
336
324
  const toToken = state.toToken;
337
325
  const haveSourceTokenAmount = _appkitCommonReactNative.NumberUtil.bigNumber(state.sourceTokenAmount).isGreaterThan(0);
338
- if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount) {
326
+ if (!toToken || !sourceToken || state.loadingPrices || !haveSourceTokenAmount || !address) {
339
327
  return;
340
328
  }
341
329
  state.loadingQuote = true;
342
330
  const amountDecimal = _appkitCommonReactNative.NumberUtil.bigNumber(state.sourceTokenAmount).multipliedBy(10 ** sourceToken.decimals).integerValue();
343
- const quoteResponse = await _BlockchainApiController.BlockchainApiController.fetchSwapQuote({
344
- userAddress: address,
345
- projectId: _OptionsController.OptionsController.state.projectId,
346
- from: sourceToken.address,
347
- to: toToken.address,
348
- gasPrice: state.gasFee,
349
- amount: amountDecimal.toString()
350
- });
351
- state.loadingQuote = false;
352
- const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;
353
- if (!quoteToAmount) {
354
- return;
355
- }
356
- const toTokenAmount = _appkitCommonReactNative.NumberUtil.bigNumber(quoteToAmount).dividedBy(10 ** toToken.decimals).toString();
357
- this.setToTokenAmount(toTokenAmount);
358
- const isInsufficientToken = this.hasInsufficientToken(state.sourceTokenAmount, sourceToken.address);
359
- if (isInsufficientToken) {
360
- state.inputError = 'Insufficient balance';
361
- } else {
362
- state.inputError = undefined;
363
- this.setTransactionDetails();
331
+ try {
332
+ const quoteResponse = await _BlockchainApiController.BlockchainApiController.fetchSwapQuote({
333
+ userAddress: address,
334
+ projectId: _OptionsController.OptionsController.state.projectId,
335
+ from: sourceToken.address,
336
+ to: toToken.address,
337
+ gasPrice: state.gasFee,
338
+ amount: amountDecimal.toString()
339
+ });
340
+ const quoteToAmount = quoteResponse?.quotes?.[0]?.toAmount;
341
+ if (!quoteToAmount) {
342
+ state.loadingQuote = false;
343
+ return;
344
+ }
345
+ const toTokenAmount = _appkitCommonReactNative.NumberUtil.bigNumber(quoteToAmount).dividedBy(10 ** toToken.decimals).toString();
346
+ this.setToTokenAmount(toTokenAmount);
347
+ const isInsufficientToken = this.hasInsufficientToken(state.sourceTokenAmount, sourceToken.address);
348
+ if (isInsufficientToken) {
349
+ state.inputError = 'Insufficient balance';
350
+ } else {
351
+ state.inputError = undefined;
352
+ this.setTransactionDetails();
353
+ }
354
+ } catch (error) {
355
+ _LogController.LogController.sendError(error, 'SwapController.ts', 'getQuote');
356
+ _SnackController.SnackController.showError('Failed to get swap quote');
357
+ } finally {
358
+ state.loadingQuote = false;
364
359
  }
365
360
  },
366
361
  // -- Create Transactions -------------------------------------- //
@@ -424,7 +419,7 @@ const SwapController = exports.SwapController = {
424
419
  if (!response) {
425
420
  throw new Error('createAllowanceTransaction - No response from generateApproveCalldata');
426
421
  }
427
- const gasLimit = await _ConnectionController.ConnectionController.estimateGas({
422
+ const gasLimit = await _ConnectionsController.ConnectionsController.estimateGas({
428
423
  address: fromAddress,
429
424
  to: _CoreHelperUtil.CoreHelperUtil.getPlainAddress(response.tx.to),
430
425
  data: response.tx.data
@@ -474,7 +469,7 @@ const SwapController = exports.SwapController = {
474
469
  if (!fromCaipAddress || !sourceTokenAmount || !sourceToken || !toToken) {
475
470
  return undefined;
476
471
  }
477
- const amount = _ConnectionController.ConnectionController.parseUnits(sourceTokenAmount, sourceToken.decimals)?.toString();
472
+ const amount = _ConnectionsController.ConnectionsController.parseUnits(sourceTokenAmount, sourceToken.decimals)?.toString();
478
473
  try {
479
474
  const response = await _BlockchainApiController.BlockchainApiController.generateSwapCalldata({
480
475
  projectId: _OptionsController.OptionsController.state.projectId,
@@ -513,39 +508,29 @@ const SwapController = exports.SwapController = {
513
508
  async sendTransactionForApproval(data) {
514
509
  const {
515
510
  fromAddress,
516
- isAuthConnector
511
+ network
517
512
  } = this.getParams();
518
513
  state.loadingApprovalTransaction = true;
519
- const approveLimitMessage = `Approve limit increase in your wallet`;
520
- if (isAuthConnector) {
521
- _RouterController.RouterController.pushTransactionStack({
522
- view: null,
523
- goBack: true,
524
- onSuccess() {
525
- _SnackController.SnackController.showLoading(approveLimitMessage);
526
- }
527
- });
528
- } else {
529
- _SnackController.SnackController.showLoading(approveLimitMessage);
530
- }
514
+ _SnackController.SnackController.showLoading('Approve limit increase in your wallet');
531
515
  try {
532
- await _ConnectionController.ConnectionController.sendTransaction({
516
+ await _ConnectionsController.ConnectionsController.sendTransaction({
533
517
  address: fromAddress,
534
518
  to: data.to,
535
519
  data: data.data,
536
520
  value: BigInt(data.value),
537
521
  gasPrice: BigInt(data.gasPrice),
538
- chainNamespace: 'eip155'
522
+ chainNamespace: _ConnectionsController.ConnectionsController.state.activeNamespace,
523
+ network
539
524
  });
540
525
  await this.swapTokens();
541
526
  await this.getTransaction();
542
527
  state.approvalTransaction = undefined;
543
- state.loadingApprovalTransaction = false;
544
528
  } catch (err) {
545
529
  const error = err;
546
530
  state.transactionError = error?.shortMessage;
547
- state.loadingApprovalTransaction = false;
548
531
  _SnackController.SnackController.showError(error?.shortMessage ?? 'Transaction error');
532
+ } finally {
533
+ state.loadingApprovalTransaction = false;
549
534
  }
550
535
  },
551
536
  async sendTransactionForSwap(data) {
@@ -554,61 +539,54 @@ const SwapController = exports.SwapController = {
554
539
  }
555
540
  const {
556
541
  fromAddress,
557
- toTokenAmount,
558
- isAuthConnector
542
+ isAuthConnector,
543
+ network
559
544
  } = this.getParams();
560
545
  state.loadingTransaction = true;
561
- const snackbarPendingMessage = `Swapping ${state.sourceToken?.symbol} to ${_appkitCommonReactNative.NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken?.symbol}`;
562
- const snackbarSuccessMessage = `Swapped ${state.sourceToken?.symbol} to ${_appkitCommonReactNative.NumberUtil.formatNumberToLocalString(toTokenAmount, 3)} ${state.toToken?.symbol}`;
563
- if (isAuthConnector) {
564
- _RouterController.RouterController.pushTransactionStack({
565
- view: 'Account',
566
- goBack: false,
567
- onSuccess() {
568
- _SnackController.SnackController.showLoading(snackbarPendingMessage);
569
- SwapController.resetState();
570
- }
571
- });
572
- } else {
573
- _SnackController.SnackController.showLoading('Confirm transaction in your wallet');
574
- }
546
+ const snackbarSuccessMessage = `Swapped ${state.sourceToken?.symbol} to ${state.toToken?.symbol}`;
547
+ _SnackController.SnackController.showLoading('Confirm transaction in your wallet');
575
548
  try {
576
- const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].join(',');
577
- const transactionHash = await _ConnectionController.ConnectionController.sendTransaction({
549
+ const forceUpdateAddresses = [state.sourceToken?.address, state.toToken?.address].filter(Boolean);
550
+ const transactionHash = await _ConnectionsController.ConnectionsController.sendTransaction({
578
551
  address: fromAddress,
579
552
  to: data.to,
580
553
  data: data.data,
581
554
  gas: data.gas,
582
555
  gasPrice: BigInt(data.gasPrice),
583
556
  value: data.value,
584
- chainNamespace: 'eip155'
557
+ chainNamespace: _ConnectionsController.ConnectionsController.state.activeNamespace,
558
+ network
585
559
  });
586
560
  state.loadingTransaction = false;
587
- _SnackController.SnackController.showSuccess(snackbarSuccessMessage);
561
+ _SnackController.SnackController.showSuccess(snackbarSuccessMessage, true);
588
562
  _EventsController.EventsController.sendEvent({
589
563
  type: 'track',
590
564
  event: 'SWAP_SUCCESS',
591
565
  properties: {
592
- network: _NetworkController.NetworkController.state.caipNetwork?.id || '',
566
+ network: _ConnectionsController.ConnectionsController.state.activeNetwork?.caipNetworkId,
593
567
  swapFromToken: this.state.sourceToken?.symbol || '',
594
568
  swapToToken: this.state.toToken?.symbol || '',
595
569
  swapFromAmount: this.state.sourceTokenAmount || '',
596
570
  swapToAmount: this.state.toTokenAmount || '',
597
- isSmartAccount: _AccountController.AccountController.state.preferredAccountType === 'smartAccount'
571
+ isSmartAccount: _ConnectionsController.ConnectionsController.state.accountType === 'smartAccount'
598
572
  }
599
573
  });
600
- SwapController.resetState();
601
- if (!isAuthConnector) {
602
- _RouterController.RouterController.replace('AccountDefault');
603
- }
574
+ _RouterController.RouterController.replace(isAuthConnector ? 'Account' : 'AccountDefault');
575
+ SwapController.clearTokens();
604
576
  SwapController.getMyTokensWithBalance(forceUpdateAddresses);
605
- _AccountController.AccountController.fetchTokenBalance();
606
577
  setTimeout(() => {
607
- _TransactionsController.TransactionsController.fetchTransactions(_AccountController.AccountController.state.address, true);
578
+ if (_ConnectionsController.ConnectionsController.state.activeAddress) {
579
+ _TransactionsController.TransactionsController.fetchTransactions(_ConnectionsController.ConnectionsController.state.activeAddress, true);
580
+ }
608
581
  }, 5000);
609
582
  return transactionHash;
610
583
  } catch (err) {
611
584
  const error = err;
585
+ _LogController.LogController.sendError(error, 'SwapController.ts', 'sendTransactionForSwap', {
586
+ sourceToken: this.state.sourceToken?.symbol,
587
+ toToken: this.state.toToken?.symbol,
588
+ amount: this.state.sourceTokenAmount
589
+ });
612
590
  state.transactionError = error?.shortMessage;
613
591
  state.loadingTransaction = false;
614
592
  _SnackController.SnackController.showError(error?.shortMessage ?? 'Transaction error');
@@ -617,26 +595,59 @@ const SwapController = exports.SwapController = {
617
595
  event: 'SWAP_ERROR',
618
596
  properties: {
619
597
  message: error?.shortMessage ?? error?.message ?? 'Unknown',
620
- network: _NetworkController.NetworkController.state.caipNetwork?.id || '',
598
+ network: _ConnectionsController.ConnectionsController.state.activeNetwork?.caipNetworkId,
621
599
  swapFromToken: this.state.sourceToken?.symbol || '',
622
600
  swapToToken: this.state.toToken?.symbol || '',
623
601
  swapFromAmount: this.state.sourceTokenAmount || '',
624
602
  swapToAmount: this.state.toTokenAmount || '',
625
- isSmartAccount: _AccountController.AccountController.state.preferredAccountType === 'smartAccount'
603
+ isSmartAccount: _ConnectionsController.ConnectionsController.state.accountType === 'smartAccount'
626
604
  }
627
605
  });
628
606
  return undefined;
629
607
  }
630
608
  },
609
+ clearTransactionLoaders() {
610
+ state.loadingApprovalTransaction = false;
611
+ state.loadingBuildTransaction = false;
612
+ state.loadingTransaction = false;
613
+ },
614
+ clearTokens() {
615
+ state.sourceToken = initialState.sourceToken;
616
+ state.sourceTokenAmount = initialState.sourceTokenAmount;
617
+ state.sourceTokenPriceInUSD = initialState.sourceTokenPriceInUSD;
618
+ state.toToken = initialState.toToken;
619
+ state.toTokenAmount = initialState.toTokenAmount;
620
+ state.toTokenPriceInUSD = initialState.toTokenPriceInUSD;
621
+ state.inputError = initialState.inputError;
622
+ state.loadingApprovalTransaction = initialState.loadingApprovalTransaction;
623
+ state.loadingBuildTransaction = initialState.loadingBuildTransaction;
624
+ state.loadingTransaction = initialState.loadingTransaction;
625
+ state.fetchError = initialState.fetchError;
626
+ state.transactionError = initialState.transactionError;
627
+ state.swapTransaction = initialState.swapTransaction;
628
+ state.approvalTransaction = initialState.approvalTransaction;
629
+ },
630
+ resetState() {
631
+ this.clearTokens();
632
+ state.myTokensWithBalance = initialState.myTokensWithBalance;
633
+ state.tokensPriceMap = initialState.tokensPriceMap;
634
+ state.networkPrice = initialState.networkPrice;
635
+ state.networkTokenSymbol = initialState.networkTokenSymbol;
636
+ },
631
637
  // -- Checks -------------------------------------------- //
632
638
  hasInsufficientToken(sourceTokenAmount, sourceTokenAddress) {
639
+ const {
640
+ balances
641
+ } = _ConnectionsController.ConnectionsController.state;
642
+ const networkToken = balances?.find(t => t.address === undefined);
643
+ const networkBalanceInUSD = networkToken ? _appkitCommonReactNative.NumberUtil.multiply(networkToken.quantity?.numeric ?? '0', networkToken.price).toString() : '0';
633
644
  const isInsufficientSourceTokenForSwap = _SwapCalculationUtil.SwapCalculationUtil.isInsufficientSourceTokenForSwap(sourceTokenAmount, sourceTokenAddress, state.myTokensWithBalance);
634
645
  let insufficientNetworkTokenForGas = true;
635
- if (_AccountController.AccountController.state.preferredAccountType === 'smartAccount') {
646
+ if (_ConnectionsController.ConnectionsController.state.accountType === 'smartAccount') {
636
647
  // Smart Accounts may pay gas in any ERC20 token
637
648
  insufficientNetworkTokenForGas = false;
638
649
  } else {
639
- insufficientNetworkTokenForGas = _SwapCalculationUtil.SwapCalculationUtil.isInsufficientNetworkTokenForGas(state.networkBalanceInUSD, state.gasPriceInUSD);
650
+ insufficientNetworkTokenForGas = _SwapCalculationUtil.SwapCalculationUtil.isInsufficientNetworkTokenForGas(networkBalanceInUSD, state.gasPriceInUSD);
640
651
  }
641
652
  return insufficientNetworkTokenForGas || isInsufficientSourceTokenForSwap;
642
653
  },