@sodax/sdk 0.0.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +224 -0
  3. package/dist/abis/asset-manager.abi.d.ts +418 -0
  4. package/dist/abis/asset-manager.abi.d.ts.map +1 -0
  5. package/dist/abis/asset-manager.abi.js +542 -0
  6. package/dist/abis/asset-manager.abi.js.map +1 -0
  7. package/dist/abis/connection.abi.d.ts +72 -0
  8. package/dist/abis/connection.abi.d.ts.map +1 -0
  9. package/dist/abis/connection.abi.js +92 -0
  10. package/dist/abis/connection.abi.js.map +1 -0
  11. package/dist/abis/erc20.abi.d.ts +236 -0
  12. package/dist/abis/erc20.abi.d.ts.map +1 -0
  13. package/dist/abis/erc20.abi.js +311 -0
  14. package/dist/abis/erc20.abi.js.map +1 -0
  15. package/dist/abis/index.d.ts +10 -0
  16. package/dist/abis/index.d.ts.map +1 -0
  17. package/dist/abis/index.js +10 -0
  18. package/dist/abis/index.js.map +1 -0
  19. package/dist/abis/intents.abi.d.ts +901 -0
  20. package/dist/abis/intents.abi.d.ts.map +1 -0
  21. package/dist/abis/intents.abi.js +1158 -0
  22. package/dist/abis/intents.abi.js.map +1 -0
  23. package/dist/abis/pool.abi.d.ts +626 -0
  24. package/dist/abis/pool.abi.d.ts.map +1 -0
  25. package/dist/abis/pool.abi.js +812 -0
  26. package/dist/abis/pool.abi.js.map +1 -0
  27. package/dist/abis/spokeAssetManager.abi.d.ts +169 -0
  28. package/dist/abis/spokeAssetManager.abi.d.ts.map +1 -0
  29. package/dist/abis/spokeAssetManager.abi.js +217 -0
  30. package/dist/abis/spokeAssetManager.abi.js.map +1 -0
  31. package/dist/abis/uiPoolData.abi.d.ts +369 -0
  32. package/dist/abis/uiPoolData.abi.d.ts.map +1 -0
  33. package/dist/abis/uiPoolData.abi.js +476 -0
  34. package/dist/abis/uiPoolData.abi.js.map +1 -0
  35. package/dist/abis/vaultToken.abi.d.ts +816 -0
  36. package/dist/abis/vaultToken.abi.d.ts.map +1 -0
  37. package/dist/abis/vaultToken.abi.js +1062 -0
  38. package/dist/abis/vaultToken.abi.js.map +1 -0
  39. package/dist/abis/walletFactory.abi.d.ts +20 -0
  40. package/dist/abis/walletFactory.abi.d.ts.map +1 -0
  41. package/dist/abis/walletFactory.abi.js +27 -0
  42. package/dist/abis/walletFactory.abi.js.map +1 -0
  43. package/dist/constants.d.ts +565 -0
  44. package/dist/constants.d.ts.map +1 -0
  45. package/dist/constants.js +1196 -0
  46. package/dist/constants.js.map +1 -0
  47. package/dist/constants.test.d.ts +2 -0
  48. package/dist/constants.test.d.ts.map +1 -0
  49. package/dist/constants.test.js +128 -0
  50. package/dist/constants.test.js.map +1 -0
  51. package/dist/entities/Providers.d.ts +61 -0
  52. package/dist/entities/Providers.d.ts.map +1 -0
  53. package/dist/entities/Providers.js +51 -0
  54. package/dist/entities/Providers.js.map +1 -0
  55. package/dist/entities/Sodax.d.ts +23 -0
  56. package/dist/entities/Sodax.d.ts.map +1 -0
  57. package/dist/entities/Sodax.js +29 -0
  58. package/dist/entities/Sodax.js.map +1 -0
  59. package/dist/entities/Sodax.test.d.ts +2 -0
  60. package/dist/entities/Sodax.test.d.ts.map +1 -0
  61. package/dist/entities/Sodax.test.js +376 -0
  62. package/dist/entities/Sodax.test.js.map +1 -0
  63. package/dist/entities/cosmos/CW20Token.d.ts +39 -0
  64. package/dist/entities/cosmos/CW20Token.d.ts.map +1 -0
  65. package/dist/entities/cosmos/CW20Token.js +65 -0
  66. package/dist/entities/cosmos/CW20Token.js.map +1 -0
  67. package/dist/entities/cosmos/CWSpokeProvider.d.ts +91 -0
  68. package/dist/entities/cosmos/CWSpokeProvider.d.ts.map +1 -0
  69. package/dist/entities/cosmos/CWSpokeProvider.js +143 -0
  70. package/dist/entities/cosmos/CWSpokeProvider.js.map +1 -0
  71. package/dist/entities/cosmos/CosmosWalletProvider.d.ts +28 -0
  72. package/dist/entities/cosmos/CosmosWalletProvider.d.ts.map +1 -0
  73. package/dist/entities/cosmos/CosmosWalletProvider.js +102 -0
  74. package/dist/entities/cosmos/CosmosWalletProvider.js.map +1 -0
  75. package/dist/entities/cosmos/InjectiveWalletProvider.d.ts +25 -0
  76. package/dist/entities/cosmos/InjectiveWalletProvider.d.ts.map +1 -0
  77. package/dist/entities/cosmos/InjectiveWalletProvider.js +76 -0
  78. package/dist/entities/cosmos/InjectiveWalletProvider.js.map +1 -0
  79. package/dist/entities/icon/HanaWalletConnector.d.ts +36 -0
  80. package/dist/entities/icon/HanaWalletConnector.d.ts.map +1 -0
  81. package/dist/entities/icon/HanaWalletConnector.js +92 -0
  82. package/dist/entities/icon/HanaWalletConnector.js.map +1 -0
  83. package/dist/entities/icon/IconSpokeProvider.d.ts +8 -0
  84. package/dist/entities/icon/IconSpokeProvider.d.ts.map +1 -0
  85. package/dist/entities/icon/IconSpokeProvider.js +9 -0
  86. package/dist/entities/icon/IconSpokeProvider.js.map +1 -0
  87. package/dist/entities/icon/IconWalletProvider.d.ts +12 -0
  88. package/dist/entities/icon/IconWalletProvider.d.ts.map +1 -0
  89. package/dist/entities/icon/IconWalletProvider.js +34 -0
  90. package/dist/entities/icon/IconWalletProvider.js.map +1 -0
  91. package/dist/entities/icon/index.d.ts +5 -0
  92. package/dist/entities/icon/index.d.ts.map +1 -0
  93. package/dist/entities/icon/index.js +5 -0
  94. package/dist/entities/icon/index.js.map +1 -0
  95. package/dist/entities/icon/utils.d.ts +3 -0
  96. package/dist/entities/icon/utils.d.ts.map +1 -0
  97. package/dist/entities/icon/utils.js +4 -0
  98. package/dist/entities/icon/utils.js.map +1 -0
  99. package/dist/entities/index.d.ts +8 -0
  100. package/dist/entities/index.d.ts.map +1 -0
  101. package/dist/entities/index.js +8 -0
  102. package/dist/entities/index.js.map +1 -0
  103. package/dist/entities/solana/Configs.d.ts +10 -0
  104. package/dist/entities/solana/Configs.d.ts.map +1 -0
  105. package/dist/entities/solana/Configs.js +50 -0
  106. package/dist/entities/solana/Configs.js.map +1 -0
  107. package/dist/entities/solana/SolanaSpokeProvider.d.ts +9 -0
  108. package/dist/entities/solana/SolanaSpokeProvider.d.ts.map +1 -0
  109. package/dist/entities/solana/SolanaSpokeProvider.js +9 -0
  110. package/dist/entities/solana/SolanaSpokeProvider.js.map +1 -0
  111. package/dist/entities/solana/SolanaWalletProvider.d.ts +20 -0
  112. package/dist/entities/solana/SolanaWalletProvider.d.ts.map +1 -0
  113. package/dist/entities/solana/SolanaWalletProvider.js +53 -0
  114. package/dist/entities/solana/SolanaWalletProvider.js.map +1 -0
  115. package/dist/entities/solana/index.d.ts +4 -0
  116. package/dist/entities/solana/index.d.ts.map +1 -0
  117. package/dist/entities/solana/index.js +4 -0
  118. package/dist/entities/solana/index.js.map +1 -0
  119. package/dist/entities/solana/pda/pda.d.ts +45 -0
  120. package/dist/entities/solana/pda/pda.d.ts.map +1 -0
  121. package/dist/entities/solana/pda/pda.js +44 -0
  122. package/dist/entities/solana/pda/pda.js.map +1 -0
  123. package/dist/entities/solana/types/asset_manager.d.ts +919 -0
  124. package/dist/entities/solana/types/asset_manager.d.ts.map +1 -0
  125. package/dist/entities/solana/types/asset_manager.js +2 -0
  126. package/dist/entities/solana/types/asset_manager.js.map +1 -0
  127. package/dist/entities/solana/types/connection.d.ts +446 -0
  128. package/dist/entities/solana/types/connection.d.ts.map +1 -0
  129. package/dist/entities/solana/types/connection.js +2 -0
  130. package/dist/entities/solana/types/connection.js.map +1 -0
  131. package/dist/entities/solana/types/rate_limit_contract.d.ts +348 -0
  132. package/dist/entities/solana/types/rate_limit_contract.d.ts.map +1 -0
  133. package/dist/entities/solana/types/rate_limit_contract.js +2 -0
  134. package/dist/entities/solana/types/rate_limit_contract.js.map +1 -0
  135. package/dist/entities/solana/utils/utils.d.ts +6 -0
  136. package/dist/entities/solana/utils/utils.d.ts.map +1 -0
  137. package/dist/entities/solana/utils/utils.js +17 -0
  138. package/dist/entities/solana/utils/utils.js.map +1 -0
  139. package/dist/entities/stellar/StellarSpokeProvider.d.ts +24 -0
  140. package/dist/entities/stellar/StellarSpokeProvider.d.ts.map +1 -0
  141. package/dist/entities/stellar/StellarSpokeProvider.js +129 -0
  142. package/dist/entities/stellar/StellarSpokeProvider.js.map +1 -0
  143. package/dist/entities/sui/SuiSpokeProvider.d.ts +34 -0
  144. package/dist/entities/sui/SuiSpokeProvider.d.ts.map +1 -0
  145. package/dist/entities/sui/SuiSpokeProvider.js +143 -0
  146. package/dist/entities/sui/SuiSpokeProvider.js.map +1 -0
  147. package/dist/entities/sui/SuiWalletProvider.d.ts +15 -0
  148. package/dist/entities/sui/SuiWalletProvider.d.ts.map +1 -0
  149. package/dist/entities/sui/SuiWalletProvider.js +43 -0
  150. package/dist/entities/sui/SuiWalletProvider.js.map +1 -0
  151. package/dist/errors.d.ts +2 -0
  152. package/dist/errors.d.ts.map +1 -0
  153. package/dist/errors.js +2 -0
  154. package/dist/errors.js.map +1 -0
  155. package/dist/guards.d.ts +25 -0
  156. package/dist/guards.d.ts.map +1 -0
  157. package/dist/guards.js +110 -0
  158. package/dist/guards.js.map +1 -0
  159. package/dist/index.d.ts +10 -0
  160. package/dist/index.d.ts.map +1 -0
  161. package/dist/index.js +10 -0
  162. package/dist/index.js.map +1 -0
  163. package/dist/interfaces.d.ts +8 -0
  164. package/dist/interfaces.d.ts.map +1 -0
  165. package/dist/interfaces.js +2 -0
  166. package/dist/interfaces.js.map +1 -0
  167. package/dist/services/hub/EvmAssetManagerService.d.ts +60 -0
  168. package/dist/services/hub/EvmAssetManagerService.d.ts.map +1 -0
  169. package/dist/services/hub/EvmAssetManagerService.js +103 -0
  170. package/dist/services/hub/EvmAssetManagerService.js.map +1 -0
  171. package/dist/services/hub/EvmVaultTokenService.d.ts +81 -0
  172. package/dist/services/hub/EvmVaultTokenService.d.ts.map +1 -0
  173. package/dist/services/hub/EvmVaultTokenService.js +159 -0
  174. package/dist/services/hub/EvmVaultTokenService.js.map +1 -0
  175. package/dist/services/hub/EvmWalletAbstraction.d.ts +8 -0
  176. package/dist/services/hub/EvmWalletAbstraction.d.ts.map +1 -0
  177. package/dist/services/hub/EvmWalletAbstraction.js +14 -0
  178. package/dist/services/hub/EvmWalletAbstraction.js.map +1 -0
  179. package/dist/services/hub/index.d.ts +4 -0
  180. package/dist/services/hub/index.d.ts.map +1 -0
  181. package/dist/services/hub/index.js +4 -0
  182. package/dist/services/hub/index.js.map +1 -0
  183. package/dist/services/index.d.ts +7 -0
  184. package/dist/services/index.d.ts.map +1 -0
  185. package/dist/services/index.js +7 -0
  186. package/dist/services/index.js.map +1 -0
  187. package/dist/services/intentRelay/IntentRelayApiService.d.ts +111 -0
  188. package/dist/services/intentRelay/IntentRelayApiService.d.ts.map +1 -0
  189. package/dist/services/intentRelay/IntentRelayApiService.js +160 -0
  190. package/dist/services/intentRelay/IntentRelayApiService.js.map +1 -0
  191. package/dist/services/intentRelay/IntentRelayApiService.test.d.ts +2 -0
  192. package/dist/services/intentRelay/IntentRelayApiService.test.d.ts.map +1 -0
  193. package/dist/services/intentRelay/IntentRelayApiService.test.js +134 -0
  194. package/dist/services/intentRelay/IntentRelayApiService.test.js.map +1 -0
  195. package/dist/services/intentRelay/index.d.ts +2 -0
  196. package/dist/services/intentRelay/index.d.ts.map +1 -0
  197. package/dist/services/intentRelay/index.js +2 -0
  198. package/dist/services/intentRelay/index.js.map +1 -0
  199. package/dist/services/moneyMarket/MoneyMarketService.d.ts +321 -0
  200. package/dist/services/moneyMarket/MoneyMarketService.d.ts.map +1 -0
  201. package/dist/services/moneyMarket/MoneyMarketService.js +604 -0
  202. package/dist/services/moneyMarket/MoneyMarketService.js.map +1 -0
  203. package/dist/services/moneyMarket/MoneyMarketService.test.d.ts +2 -0
  204. package/dist/services/moneyMarket/MoneyMarketService.test.d.ts.map +1 -0
  205. package/dist/services/moneyMarket/MoneyMarketService.test.js +245 -0
  206. package/dist/services/moneyMarket/MoneyMarketService.test.js.map +1 -0
  207. package/dist/services/moneyMarket/index.d.ts +2 -0
  208. package/dist/services/moneyMarket/index.d.ts.map +1 -0
  209. package/dist/services/moneyMarket/index.js +2 -0
  210. package/dist/services/moneyMarket/index.js.map +1 -0
  211. package/dist/services/shared/Erc20Service.d.ts +41 -0
  212. package/dist/services/shared/Erc20Service.d.ts.map +1 -0
  213. package/dist/services/shared/Erc20Service.js +107 -0
  214. package/dist/services/shared/Erc20Service.js.map +1 -0
  215. package/dist/services/shared/index.d.ts +2 -0
  216. package/dist/services/shared/index.d.ts.map +1 -0
  217. package/dist/services/shared/index.js +2 -0
  218. package/dist/services/shared/index.js.map +1 -0
  219. package/dist/services/solver/EvmSolverService.d.ts +125 -0
  220. package/dist/services/solver/EvmSolverService.d.ts.map +1 -0
  221. package/dist/services/solver/EvmSolverService.js +166 -0
  222. package/dist/services/solver/EvmSolverService.js.map +1 -0
  223. package/dist/services/solver/SolverApiService.d.ts +40 -0
  224. package/dist/services/solver/SolverApiService.d.ts.map +1 -0
  225. package/dist/services/solver/SolverApiService.js +157 -0
  226. package/dist/services/solver/SolverApiService.js.map +1 -0
  227. package/dist/services/solver/SolverApiService.test.d.ts +2 -0
  228. package/dist/services/solver/SolverApiService.test.d.ts.map +1 -0
  229. package/dist/services/solver/SolverApiService.test.js +180 -0
  230. package/dist/services/solver/SolverApiService.test.js.map +1 -0
  231. package/dist/services/solver/SolverService.d.ts +194 -0
  232. package/dist/services/solver/SolverService.d.ts.map +1 -0
  233. package/dist/services/solver/SolverService.js +324 -0
  234. package/dist/services/solver/SolverService.js.map +1 -0
  235. package/dist/services/solver/SolverService.test.d.ts +2 -0
  236. package/dist/services/solver/SolverService.test.d.ts.map +1 -0
  237. package/dist/services/solver/SolverService.test.js +493 -0
  238. package/dist/services/solver/SolverService.test.js.map +1 -0
  239. package/dist/services/solver/index.d.ts +3 -0
  240. package/dist/services/solver/index.d.ts.map +1 -0
  241. package/dist/services/solver/index.js +3 -0
  242. package/dist/services/solver/index.js.map +1 -0
  243. package/dist/services/spoke/CWSpokeService.d.ts +67 -0
  244. package/dist/services/spoke/CWSpokeService.d.ts.map +1 -0
  245. package/dist/services/spoke/CWSpokeService.js +75 -0
  246. package/dist/services/spoke/CWSpokeService.js.map +1 -0
  247. package/dist/services/spoke/EvmSpokeService.d.ts +61 -0
  248. package/dist/services/spoke/EvmSpokeService.d.ts.map +1 -0
  249. package/dist/services/spoke/EvmSpokeService.js +118 -0
  250. package/dist/services/spoke/EvmSpokeService.js.map +1 -0
  251. package/dist/services/spoke/IconSpokeService.d.ts +55 -0
  252. package/dist/services/spoke/IconSpokeService.d.ts.map +1 -0
  253. package/dist/services/spoke/IconSpokeService.js +111 -0
  254. package/dist/services/spoke/IconSpokeService.js.map +1 -0
  255. package/dist/services/spoke/SolanaSpokeService.d.ts +45 -0
  256. package/dist/services/spoke/SolanaSpokeService.d.ts.map +1 -0
  257. package/dist/services/spoke/SolanaSpokeService.js +170 -0
  258. package/dist/services/spoke/SolanaSpokeService.js.map +1 -0
  259. package/dist/services/spoke/SpokeService.d.ts +33 -0
  260. package/dist/services/spoke/SpokeService.d.ts.map +1 -0
  261. package/dist/services/spoke/SpokeService.js +102 -0
  262. package/dist/services/spoke/SpokeService.js.map +1 -0
  263. package/dist/services/spoke/StellarSpokeService.d.ts +35 -0
  264. package/dist/services/spoke/StellarSpokeService.d.ts.map +1 -0
  265. package/dist/services/spoke/StellarSpokeService.js +39 -0
  266. package/dist/services/spoke/StellarSpokeService.js.map +1 -0
  267. package/dist/services/spoke/SuiSpokeService.d.ts +69 -0
  268. package/dist/services/spoke/SuiSpokeService.d.ts.map +1 -0
  269. package/dist/services/spoke/SuiSpokeService.js +74 -0
  270. package/dist/services/spoke/SuiSpokeService.js.map +1 -0
  271. package/dist/services/spoke/index.d.ts +3 -0
  272. package/dist/services/spoke/index.d.ts.map +1 -0
  273. package/dist/services/spoke/index.js +3 -0
  274. package/dist/services/spoke/index.js.map +1 -0
  275. package/dist/tests/services/hub/EvmAssetManagerService.test.d.ts +2 -0
  276. package/dist/tests/services/hub/EvmAssetManagerService.test.d.ts.map +1 -0
  277. package/dist/tests/services/hub/EvmAssetManagerService.test.js +123 -0
  278. package/dist/tests/services/hub/EvmAssetManagerService.test.js.map +1 -0
  279. package/dist/tests/services/hub/EvmMoneyMarketService.test.d.ts +2 -0
  280. package/dist/tests/services/hub/EvmMoneyMarketService.test.d.ts.map +1 -0
  281. package/dist/tests/services/hub/EvmMoneyMarketService.test.js +121 -0
  282. package/dist/tests/services/hub/EvmMoneyMarketService.test.js.map +1 -0
  283. package/dist/tests/services/hub/EvmVaultTokenService.test.d.ts +2 -0
  284. package/dist/tests/services/hub/EvmVaultTokenService.test.d.ts.map +1 -0
  285. package/dist/tests/services/hub/EvmVaultTokenService.test.js +98 -0
  286. package/dist/tests/services/hub/EvmVaultTokenService.test.js.map +1 -0
  287. package/dist/tests/services/spoke/EvmSpokeService.test.d.ts +2 -0
  288. package/dist/tests/services/spoke/EvmSpokeService.test.d.ts.map +1 -0
  289. package/dist/tests/services/spoke/EvmSpokeService.test.js +197 -0
  290. package/dist/tests/services/spoke/EvmSpokeService.test.js.map +1 -0
  291. package/dist/types.d.ts +395 -0
  292. package/dist/types.d.ts.map +1 -0
  293. package/dist/types.js +30 -0
  294. package/dist/types.js.map +1 -0
  295. package/dist/utils/evm-utils.d.ts +10 -0
  296. package/dist/utils/evm-utils.d.ts.map +1 -0
  297. package/dist/utils/evm-utils.js +15 -0
  298. package/dist/utils/evm-utils.js.map +1 -0
  299. package/dist/utils/index.d.ts +3 -0
  300. package/dist/utils/index.d.ts.map +1 -0
  301. package/dist/utils/index.js +3 -0
  302. package/dist/utils/index.js.map +1 -0
  303. package/dist/utils/shared-utils.d.ts +19 -0
  304. package/dist/utils/shared-utils.d.ts.map +1 -0
  305. package/dist/utils/shared-utils.js +66 -0
  306. package/dist/utils/shared-utils.js.map +1 -0
  307. package/dist/utils/shared-utils.test.d.ts +2 -0
  308. package/dist/utils/shared-utils.test.d.ts.map +1 -0
  309. package/dist/utils/shared-utils.test.js +63 -0
  310. package/dist/utils/shared-utils.test.js.map +1 -0
  311. package/package.json +83 -0
@@ -0,0 +1,1196 @@
1
+ import { arbitrum, avalanche, base, bsc, nibiru, optimism, polygon, sonic } from 'viem/chains';
2
+ // TODO ADD DEFAULT CONTRACT ADDRESSES AND SO FORTH FROM WIKI
3
+ export const DEFAULT_MAX_RETRY = 3;
4
+ export const DEFAULT_RELAY_TX_TIMEOUT = 60000; // 60 seconds
5
+ export const DEFAULT_RETRY_DELAY_MS = 2000;
6
+ export const ICON_TX_RESULT_WAIT_MAX_RETRY = 10;
7
+ export const MAX_UINT256 = (1n << 256n) - 1n;
8
+ export const FEE_PERCENTAGE_SCALE = 10000n; // 100% = 10000
9
+ // NOTE: This is not the same as the actual chain ids (wormhole based ids), only used for intent relay
10
+ export const INTENT_RELAY_CHAIN_IDS = {
11
+ AVAX: 6n,
12
+ SUI: 21n,
13
+ SONIC: 146n,
14
+ STELLAR: 27n,
15
+ INJ: 19n,
16
+ SOL: 1n,
17
+ ICON: 1768124270n,
18
+ ARCHWAY: 1634886504n,
19
+ BASE: 30n,
20
+ BINANCE: 4n,
21
+ OPTIMISM: 24n,
22
+ POLYGON: 5n,
23
+ ARBITRUM: 23n,
24
+ NIBIRU: 7235938n,
25
+ };
26
+ // chain ids (actual for evm chains), custom for other chains not having native ids
27
+ export const AVALANCHE_MAINNET_CHAIN_ID = '0xa86a.avax';
28
+ export const ARBITRUM_MAINNET_CHAIN_ID = '0xa4b1.arbitrum';
29
+ export const BASE_MAINNET_CHAIN_ID = '0x2105.base';
30
+ export const BSC_MAINNET_CHAIN_ID = '0x38.bsc';
31
+ export const INJECTIVE_MAINNET_CHAIN_ID = 'injective-1';
32
+ export const SONIC_MAINNET_CHAIN_ID = 'sonic';
33
+ export const ICON_MAINNET_CHAIN_ID = '0x1.icon';
34
+ export const SUI_MAINNET_CHAIN_ID = 'sui';
35
+ export const OPTIMISM_MAINNET_CHAIN_ID = '0xa.optimism';
36
+ export const POLYGON_MAINNET_CHAIN_ID = '0x89.polygon';
37
+ export const SOLANA_MAINNET_CHAIN_ID = 'solana';
38
+ export const STELLAR_MAINNET_CHAIN_ID = 'stellar';
39
+ export const NIBIRU_MAINNET_CHAIN_ID = 'nibiru';
40
+ export const HUB_CHAIN_IDS = [SONIC_MAINNET_CHAIN_ID];
41
+ // currently supported spoke chains
42
+ export const SPOKE_CHAIN_IDS = [
43
+ AVALANCHE_MAINNET_CHAIN_ID,
44
+ ARBITRUM_MAINNET_CHAIN_ID,
45
+ BASE_MAINNET_CHAIN_ID,
46
+ BSC_MAINNET_CHAIN_ID,
47
+ INJECTIVE_MAINNET_CHAIN_ID,
48
+ SUI_MAINNET_CHAIN_ID,
49
+ OPTIMISM_MAINNET_CHAIN_ID,
50
+ POLYGON_MAINNET_CHAIN_ID,
51
+ SOLANA_MAINNET_CHAIN_ID,
52
+ ICON_MAINNET_CHAIN_ID,
53
+ STELLAR_MAINNET_CHAIN_ID,
54
+ NIBIRU_MAINNET_CHAIN_ID,
55
+ ];
56
+ export const CHAIN_IDS = [
57
+ AVALANCHE_MAINNET_CHAIN_ID,
58
+ ARBITRUM_MAINNET_CHAIN_ID,
59
+ BASE_MAINNET_CHAIN_ID,
60
+ BSC_MAINNET_CHAIN_ID,
61
+ INJECTIVE_MAINNET_CHAIN_ID,
62
+ SONIC_MAINNET_CHAIN_ID,
63
+ SUI_MAINNET_CHAIN_ID,
64
+ OPTIMISM_MAINNET_CHAIN_ID,
65
+ POLYGON_MAINNET_CHAIN_ID,
66
+ SOLANA_MAINNET_CHAIN_ID,
67
+ ICON_MAINNET_CHAIN_ID,
68
+ STELLAR_MAINNET_CHAIN_ID,
69
+ NIBIRU_MAINNET_CHAIN_ID,
70
+ ];
71
+ export const EVM_CHAIN_IDS = [
72
+ AVALANCHE_MAINNET_CHAIN_ID,
73
+ ARBITRUM_MAINNET_CHAIN_ID,
74
+ BASE_MAINNET_CHAIN_ID,
75
+ BSC_MAINNET_CHAIN_ID,
76
+ SONIC_MAINNET_CHAIN_ID,
77
+ OPTIMISM_MAINNET_CHAIN_ID,
78
+ POLYGON_MAINNET_CHAIN_ID,
79
+ NIBIRU_MAINNET_CHAIN_ID,
80
+ ];
81
+ export const EVM_SPOKE_CHAIN_IDS = [
82
+ AVALANCHE_MAINNET_CHAIN_ID,
83
+ ARBITRUM_MAINNET_CHAIN_ID,
84
+ BASE_MAINNET_CHAIN_ID,
85
+ BSC_MAINNET_CHAIN_ID,
86
+ OPTIMISM_MAINNET_CHAIN_ID,
87
+ POLYGON_MAINNET_CHAIN_ID,
88
+ NIBIRU_MAINNET_CHAIN_ID,
89
+ ];
90
+ const ChainIdToIntentRelayChainId = {
91
+ [AVALANCHE_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.AVAX,
92
+ [ARBITRUM_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.ARBITRUM,
93
+ [BASE_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.BASE,
94
+ [BSC_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.BINANCE,
95
+ [INJECTIVE_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.INJ,
96
+ [SONIC_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.SONIC,
97
+ [OPTIMISM_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.OPTIMISM,
98
+ [POLYGON_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.POLYGON,
99
+ [SOLANA_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.SOL,
100
+ [SUI_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.SUI,
101
+ [STELLAR_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.STELLAR,
102
+ [ICON_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.ICON,
103
+ [NIBIRU_MAINNET_CHAIN_ID]: INTENT_RELAY_CHAIN_IDS.NIBIRU,
104
+ };
105
+ export const getIntentRelayChainId = (chainId) => ChainIdToIntentRelayChainId[chainId];
106
+ export function getEvmViemChain(id) {
107
+ switch (id) {
108
+ case SONIC_MAINNET_CHAIN_ID:
109
+ return sonic;
110
+ case AVALANCHE_MAINNET_CHAIN_ID:
111
+ return avalanche;
112
+ case ARBITRUM_MAINNET_CHAIN_ID:
113
+ return arbitrum;
114
+ case BASE_MAINNET_CHAIN_ID:
115
+ return base;
116
+ case OPTIMISM_MAINNET_CHAIN_ID:
117
+ return optimism;
118
+ case BSC_MAINNET_CHAIN_ID:
119
+ return bsc;
120
+ case POLYGON_MAINNET_CHAIN_ID:
121
+ return polygon;
122
+ case NIBIRU_MAINNET_CHAIN_ID:
123
+ return nibiru;
124
+ default:
125
+ throw new Error(`Unsupported EVM chain ID: ${id}`);
126
+ }
127
+ }
128
+ const hubChainConfig = {
129
+ [SONIC_MAINNET_CHAIN_ID]: {
130
+ chain: {
131
+ name: 'Sonic',
132
+ id: SONIC_MAINNET_CHAIN_ID,
133
+ type: 'evm',
134
+ },
135
+ addresses: {
136
+ assetManager: '0x60c5681bD1DB4e50735c4cA3386005A4BA4937C0',
137
+ hubWallet: '0xA0ed3047D358648F2C0583B415CffCA571FDB544',
138
+ xTokenManager: '0x5bD2843de9D6b0e6A05d0FB742072274EA3C6CA3',
139
+ },
140
+ nativeToken: '0x0000000000000000000000000000000000000000',
141
+ supportedTokens: [],
142
+ },
143
+ };
144
+ export const getHubChainConfig = (chainId) => hubChainConfig[chainId];
145
+ export const spokeChainConfig = {
146
+ [SOLANA_MAINNET_CHAIN_ID]: {
147
+ addresses: {
148
+ assetManager: 'AnCCJjheynmGqPp6Vgat9DTirGKD4CtQzP8cwTYV8qKH',
149
+ connection: 'GxS8i6D9qQjbSeniD487CnomUxU2pXt6V8P96T6MkUXB',
150
+ rateLimit: '2Vyy3A3Teju2EMCkdnappEeWqBXyAaF5V2WsrU4hDtsk',
151
+ testToken: '3Q2HS3png7fLaYerqCun3zw8rnBZo2Ksvdg6RHTyM4Ns',
152
+ xTokenManager: '',
153
+ },
154
+ chain: { id: SOLANA_MAINNET_CHAIN_ID, name: 'Solana', type: 'solana' },
155
+ nativeToken: '11111111111111111111111111111111',
156
+ bnUSD: '3rSPCLNEF7Quw4wX8S1NyKivELoyij8eYA2gJwBgt4V5',
157
+ supportedTokens: {
158
+ bnUSD: {
159
+ symbol: 'bnUSD',
160
+ name: 'bnUSD',
161
+ decimals: 9,
162
+ address: '3rSPCLNEF7Quw4wX8S1NyKivELoyij8eYA2gJwBgt4V5',
163
+ },
164
+ SOL: {
165
+ symbol: 'SOL',
166
+ name: 'Solana',
167
+ decimals: 9,
168
+ address: '11111111111111111111111111111111',
169
+ },
170
+ },
171
+ gasPrice: '500000',
172
+ rpcUrl: 'https://api.mainnet-beta.solana.com',
173
+ wsUrl: 'https://api.mainnet-beta.solana.com',
174
+ walletAddress: '',
175
+ },
176
+ [AVALANCHE_MAINNET_CHAIN_ID]: {
177
+ chain: {
178
+ name: 'Avalanche',
179
+ id: AVALANCHE_MAINNET_CHAIN_ID,
180
+ type: 'evm',
181
+ },
182
+ addresses: {
183
+ assetManager: '0x5bDD1E1C5173F4c912cC919742FB94A55ECfaf86',
184
+ connection: '0x4555aC13D7338D9E671584C1D118c06B2a3C88eD',
185
+ },
186
+ nativeToken: '0x0000000000000000000000000000000000000000',
187
+ bnUSD: '0x6958a4CBFe11406E2a1c1d3a71A1971aD8B3b92F',
188
+ supportedTokens: {
189
+ AVAX: {
190
+ symbol: 'AVAX',
191
+ name: 'Avalanche',
192
+ decimals: 18,
193
+ address: '0x0000000000000000000000000000000000000000',
194
+ },
195
+ bnUSD: {
196
+ symbol: 'bnUSD',
197
+ name: 'bnUSD',
198
+ decimals: 18,
199
+ address: '0x6958a4CBFe11406E2a1c1d3a71A1971aD8B3b92F',
200
+ },
201
+ USDT: {
202
+ symbol: 'USDT',
203
+ name: 'Tether USD',
204
+ decimals: 6,
205
+ address: '0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7',
206
+ },
207
+ USDC: {
208
+ symbol: 'USDC',
209
+ name: 'USD Coin',
210
+ decimals: 6,
211
+ address: '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E',
212
+ },
213
+ },
214
+ },
215
+ [NIBIRU_MAINNET_CHAIN_ID]: {
216
+ chain: {
217
+ name: 'Nibiru',
218
+ id: NIBIRU_MAINNET_CHAIN_ID,
219
+ type: 'evm',
220
+ },
221
+ addresses: {
222
+ assetManager: '0x6958a4CBFe11406E2a1c1d3a71A1971aD8B3b92F',
223
+ connection: '0x772FFE538E45b2cDdFB5823041EC26C44815B9AB',
224
+ },
225
+ nativeToken: '0x0000000000000000000000000000000000000000',
226
+ bnUSD: '0x043fb7e23350Dd5b77dE5E228B528763DEcb9131',
227
+ supportedTokens: {
228
+ NIBI: {
229
+ symbol: 'NIBI',
230
+ name: 'Nibiru',
231
+ decimals: 6,
232
+ address: '0x0000000000000000000000000000000000000000',
233
+ },
234
+ bnUSD: {
235
+ symbol: 'bnUSD',
236
+ name: 'bnUSD',
237
+ decimals: 18,
238
+ address: '0x043fb7e23350Dd5b77dE5E228B528763DEcb9131',
239
+ },
240
+ },
241
+ },
242
+ [ARBITRUM_MAINNET_CHAIN_ID]: {
243
+ chain: {
244
+ name: 'Arbitrum',
245
+ id: ARBITRUM_MAINNET_CHAIN_ID,
246
+ type: 'evm',
247
+ },
248
+ addresses: {
249
+ assetManager: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
250
+ connection: '0x4555aC13D7338D9E671584C1D118c06B2a3C88eD',
251
+ },
252
+ nativeToken: '0x0000000000000000000000000000000000000000',
253
+ bnUSD: '0xA256dd181C3f6E5eC68C6869f5D50a712d47212e',
254
+ supportedTokens: {
255
+ ETH: {
256
+ symbol: 'ETH',
257
+ name: 'Ethereum',
258
+ decimals: 18,
259
+ address: '0x0000000000000000000000000000000000000000',
260
+ },
261
+ bnUSD: {
262
+ symbol: 'bnUSD',
263
+ name: 'bnUSD',
264
+ decimals: 18,
265
+ address: '0xA256dd181C3f6E5eC68C6869f5D50a712d47212e',
266
+ },
267
+ WETH: {
268
+ symbol: 'WETH',
269
+ name: 'Wrapped Ether',
270
+ decimals: 18,
271
+ address: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
272
+ },
273
+ wstETH: {
274
+ symbol: 'wstETH',
275
+ name: 'Wrapped stETH',
276
+ decimals: 18,
277
+ address: '0x5979D7b546E38E414F7E9822514be443A4800529',
278
+ },
279
+ weETH: {
280
+ symbol: 'weETH',
281
+ name: 'Wrapped eETH',
282
+ decimals: 18,
283
+ address: '0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe',
284
+ },
285
+ tBTC: {
286
+ symbol: 'tBTC',
287
+ name: 'Arbitrum tBTC v2',
288
+ decimals: 18,
289
+ address: '0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40',
290
+ },
291
+ WBTC: {
292
+ symbol: 'WBTC',
293
+ name: 'Wrapped BTC',
294
+ decimals: 8,
295
+ address: '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',
296
+ },
297
+ USDC: {
298
+ symbol: 'USDC',
299
+ name: 'USD Coin (USDC)',
300
+ decimals: 6,
301
+ address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
302
+ },
303
+ USDT: {
304
+ symbol: 'USDT',
305
+ name: 'TetherToken',
306
+ decimals: 6,
307
+ address: '0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9',
308
+ },
309
+ },
310
+ },
311
+ [BASE_MAINNET_CHAIN_ID]: {
312
+ chain: {
313
+ name: 'BASE',
314
+ id: BASE_MAINNET_CHAIN_ID,
315
+ type: 'evm',
316
+ },
317
+ addresses: {
318
+ assetManager: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
319
+ connection: '0x4555aC13D7338D9E671584C1D118c06B2a3C88eD',
320
+ },
321
+ nativeToken: '0x0000000000000000000000000000000000000000',
322
+ bnUSD: '0xAcfab3F31C0a18559D78556BBf297EC29c6cf8aa',
323
+ supportedTokens: {
324
+ ETH: {
325
+ symbol: 'ETH',
326
+ name: 'Ethereum',
327
+ decimals: 18,
328
+ address: '0x0000000000000000000000000000000000000000',
329
+ },
330
+ bnUSD: {
331
+ symbol: 'bnUSD',
332
+ name: 'bnUSD',
333
+ decimals: 18,
334
+ address: '0xAcfab3F31C0a18559D78556BBf297EC29c6cf8aa',
335
+ },
336
+ weETH: {
337
+ symbol: 'weETH',
338
+ name: 'Wrapped eETH',
339
+ decimals: 18,
340
+ address: '0x04c0599ae5a44757c0af6f9ec3b93da8976c150a',
341
+ },
342
+ USDC: {
343
+ symbol: 'USDC',
344
+ name: 'USD Coin',
345
+ decimals: 6,
346
+ address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
347
+ },
348
+ wstETH: {
349
+ symbol: 'wstETH',
350
+ name: 'Wrapped stETH',
351
+ decimals: 18,
352
+ address: '0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee452',
353
+ },
354
+ cbBTC: {
355
+ symbol: 'cbBTC',
356
+ name: 'Coinbase Wrapped BTC',
357
+ decimals: 8,
358
+ address: '0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf',
359
+ },
360
+ },
361
+ },
362
+ [OPTIMISM_MAINNET_CHAIN_ID]: {
363
+ chain: {
364
+ name: 'Optimism',
365
+ id: OPTIMISM_MAINNET_CHAIN_ID,
366
+ type: 'evm',
367
+ },
368
+ addresses: {
369
+ assetManager: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
370
+ connection: '0x4555aC13D7338D9E671584C1D118c06B2a3C88eD',
371
+ },
372
+ nativeToken: '0x0000000000000000000000000000000000000000',
373
+ bnUSD: '0xF4f7dC27c17470a26d0de9039Cf0EA5045F100E8',
374
+ supportedTokens: {
375
+ ETH: {
376
+ symbol: 'ETH',
377
+ name: 'Ethereum',
378
+ decimals: 18,
379
+ address: '0x0000000000000000000000000000000000000000',
380
+ },
381
+ bnUSD: {
382
+ symbol: 'bnUSD',
383
+ name: 'bnUSD',
384
+ decimals: 18,
385
+ address: '0xF4f7dC27c17470a26d0de9039Cf0EA5045F100E8',
386
+ },
387
+ USDC: {
388
+ symbol: 'USDC',
389
+ name: 'USD Coin',
390
+ decimals: 6,
391
+ address: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
392
+ },
393
+ wstETH: {
394
+ symbol: 'wstETH',
395
+ name: 'Wrapped stETH',
396
+ decimals: 18,
397
+ address: '0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb',
398
+ },
399
+ weETH: {
400
+ symbol: 'weETH',
401
+ name: 'Wrapped eETH',
402
+ decimals: 18,
403
+ address: '0x5A7fACB970D094B6C7FF1df0eA68D99E6e73CBFF',
404
+ },
405
+ USDT: {
406
+ symbol: 'USDT',
407
+ name: 'Tether USD',
408
+ decimals: 6,
409
+ address: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58',
410
+ },
411
+ },
412
+ },
413
+ [BSC_MAINNET_CHAIN_ID]: {
414
+ chain: {
415
+ name: 'BSC',
416
+ id: BSC_MAINNET_CHAIN_ID,
417
+ type: 'evm',
418
+ },
419
+ addresses: {
420
+ assetManager: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
421
+ connection: '0x4555aC13D7338D9E671584C1D118c06B2a3C88eD',
422
+ },
423
+ nativeToken: '0x0000000000000000000000000000000000000000',
424
+ bnUSD: '0x8428FedC020737a5A2291F46cB1B80613eD71638',
425
+ supportedTokens: {
426
+ BNB: {
427
+ symbol: 'BNB',
428
+ name: 'BNB',
429
+ decimals: 18,
430
+ address: '0x0000000000000000000000000000000000000000',
431
+ },
432
+ bnUSD: {
433
+ symbol: 'bnUSD',
434
+ name: 'bnUSD',
435
+ decimals: 18,
436
+ address: '0x8428FedC020737a5A2291F46cB1B80613eD71638',
437
+ },
438
+ ETHB: {
439
+ symbol: 'ETHB',
440
+ name: 'Ethereum BSC',
441
+ decimals: 18,
442
+ address: '0x2170Ed0880ac9A755fd29B2688956BD959F933F8',
443
+ },
444
+ BTCB: {
445
+ symbol: 'BTCB',
446
+ name: 'Bitcoin BSC',
447
+ decimals: 18,
448
+ address: '0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c',
449
+ },
450
+ },
451
+ },
452
+ [POLYGON_MAINNET_CHAIN_ID]: {
453
+ chain: {
454
+ name: 'Polygon',
455
+ id: POLYGON_MAINNET_CHAIN_ID,
456
+ type: 'evm',
457
+ },
458
+ addresses: {
459
+ assetManager: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
460
+ connection: '0x4555aC13D7338D9E671584C1D118c06B2a3C88eD',
461
+ },
462
+ nativeToken: '0x0000000000000000000000000000000000000000',
463
+ bnUSD: '0x39E77f86C1B1f3fbAb362A82b49D2E86C09659B4',
464
+ supportedTokens: {
465
+ POL: {
466
+ symbol: 'POL',
467
+ name: 'Polygon',
468
+ decimals: 18,
469
+ address: '0x0000000000000000000000000000000000000000',
470
+ },
471
+ bnUSD: {
472
+ symbol: 'bnUSD',
473
+ name: 'bnUSD',
474
+ decimals: 18,
475
+ address: '0x39E77f86C1B1f3fbAb362A82b49D2E86C09659B4',
476
+ },
477
+ USDC: {
478
+ symbol: 'USDC',
479
+ name: 'USD Coin',
480
+ decimals: 6,
481
+ address: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
482
+ },
483
+ },
484
+ },
485
+ [INJECTIVE_MAINNET_CHAIN_ID]: {
486
+ addresses: {
487
+ assetManager: 'inj1dg6tm62uup53wn2kn97caeqfwt0sukx3qjk8rw',
488
+ connection: 'inj1eexvfglsptxwfj9hft96xcnsdrvr7d7dalcm8w',
489
+ rateLimit: 'inj1x8p2h56edcdrm9tzx7a7zkwe0l334klgrxpqyk',
490
+ testToken: '',
491
+ xTokenManager: '',
492
+ },
493
+ chain: {
494
+ id: INJECTIVE_MAINNET_CHAIN_ID,
495
+ name: 'Injective',
496
+ type: 'cosmos',
497
+ },
498
+ nativeToken: 'inj',
499
+ bnUSD: 'factory/inj1d036ftaatxpkqsu9hja8r24rv3v33chz3appxp/bnUSD',
500
+ networkId: 'injective-1',
501
+ supportedTokens: {
502
+ bnUSD: {
503
+ symbol: 'bnUSD',
504
+ name: 'bnUSD',
505
+ decimals: 18,
506
+ address: 'factory/inj1d036ftaatxpkqsu9hja8r24rv3v33chz3appxp/bnUSD',
507
+ },
508
+ INJ: {
509
+ symbol: 'INJ',
510
+ name: 'Injective',
511
+ decimals: 18,
512
+ address: 'inj',
513
+ },
514
+ },
515
+ gasPrice: '500000000inj',
516
+ network: 'Mainnet',
517
+ prefix: 'inj',
518
+ isBrowser: false,
519
+ rpcUrl: 'https://injective-rpc.publicnode.com:443',
520
+ walletAddress: '',
521
+ },
522
+ [STELLAR_MAINNET_CHAIN_ID]: {
523
+ addresses: {
524
+ connection: 'CDFQDDPUPAM3XPGORHDOEFRNLMKOH3N3X6XTXNLSXJQXIU3RVCM3OPEP',
525
+ assetManager: 'CCGF33A4CO6D3BXFEKPXVCFCZBK76I3AQOZK6KIKRPAWAZR3632WHCJ3',
526
+ xTokenManager: '',
527
+ rateLimit: 'CB6G3ULISTTBPXUN3BI6ADHQGWJEN7BPQINHL45TCB6TDFM5QWU24HAY',
528
+ testToken: '',
529
+ },
530
+ supportedTokens: {
531
+ bnUSD: {
532
+ symbol: 'bnUSD',
533
+ name: 'bnUSD',
534
+ decimals: 7,
535
+ address: 'CD6YBFFWMU2UJHX2NGRJ7RN76IJVTCC7MRA46DUBXNB7E6W7H7JRJ2CX',
536
+ },
537
+ XLM: {
538
+ symbol: 'XLM',
539
+ name: 'Stellar Lumens',
540
+ decimals: 7,
541
+ address: 'CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA',
542
+ },
543
+ },
544
+ nativeToken: 'CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA',
545
+ bnUSD: 'CD6YBFFWMU2UJHX2NGRJ7RN76IJVTCC7MRA46DUBXNB7E6W7H7JRJ2CX',
546
+ rpc_url: 'https://rpc.ankr.com/stellar_soroban',
547
+ chain: {
548
+ name: 'soroban-mainnet',
549
+ id: STELLAR_MAINNET_CHAIN_ID,
550
+ type: 'stellar',
551
+ },
552
+ },
553
+ [SUI_MAINNET_CHAIN_ID]: {
554
+ addresses: {
555
+ connection: '0xf3b1e696a66d02cb776dc15aae73c68bc8f03adcb6ba0ec7f6332d9d90a6a3d2::connectionv3::0x3ee76d13909ac58ae13baab4c9be5a5142818d9a387aed641825e5d4356969bf',
556
+ assetManager: '0x897f911a4b7691870a1a2513af7e85fdee8de275615c77068fd8b90b8e78c678::asset_manager::0xcb7346339340b7f8dea40fcafb70721dc2fcfa7e8626a89fd954d46c1f928b61',
557
+ xTokenManager: '',
558
+ rateLimit: '',
559
+ testToken: '',
560
+ },
561
+ supportedTokens: {
562
+ SUI: {
563
+ symbol: 'SUI',
564
+ name: 'SUI',
565
+ decimals: 9,
566
+ address: '0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI',
567
+ },
568
+ bnUSD: {
569
+ symbol: 'bnUSD',
570
+ name: 'bnUSD',
571
+ decimals: 9,
572
+ address: '0xff4de2b2b57dd7611d2812d231a467d007b702a101fd5c7ad3b278257cddb507::bnusd::BNUSD',
573
+ },
574
+ },
575
+ nativeToken: '0x0000000000000000000000000000000000000000000000000000000000000002::sui::SUI',
576
+ bnUSD: '0xff4de2b2b57dd7611d2812d231a467d007b702a101fd5c7ad3b278257cddb507::bnusd::BNUSD',
577
+ rpc_url: 'https://fullnode.mainnet.sui.io:443',
578
+ chain: {
579
+ name: 'sui',
580
+ id: SUI_MAINNET_CHAIN_ID,
581
+ type: 'sui',
582
+ },
583
+ },
584
+ [ICON_MAINNET_CHAIN_ID]: {
585
+ addresses: {
586
+ assetManager: 'cx1be33c283c7dc7617181d1b21a6a2309e71b1ee7',
587
+ connection: 'cxe5cdf3b0f26967b0efc72d470d57bbf534268f94',
588
+ rateLimit: 'cxbbdcea9e6757023a046067ba8daa3c4c50304358',
589
+ },
590
+ chain: {
591
+ id: ICON_MAINNET_CHAIN_ID,
592
+ name: 'ICON Mainnet',
593
+ type: 'icon',
594
+ },
595
+ supportedTokens: {
596
+ ICX: {
597
+ symbol: 'ICX',
598
+ name: 'ICON',
599
+ decimals: 18,
600
+ address: 'cx0000000000000000000000000000000000000000',
601
+ },
602
+ wICX: {
603
+ symbol: 'wICX',
604
+ name: 'Wrapped ICX',
605
+ decimals: 18,
606
+ address: 'cx3975b43d260fb8ec802cef6e60c2f4d07486f11d',
607
+ },
608
+ bnUSD: {
609
+ symbol: 'bnUSD',
610
+ name: 'bnUSD',
611
+ decimals: 18,
612
+ address: 'cx88fd7df7ddff82f7cc735c871dc519838cb235bb',
613
+ },
614
+ },
615
+ nativeToken: 'cx0000000000000000000000000000000000000000',
616
+ bnUSD: 'cx88fd7df7ddff82f7cc735c871dc519838cb235bb',
617
+ nid: '0x1',
618
+ },
619
+ };
620
+ export const hubAssets = {
621
+ [AVALANCHE_MAINNET_CHAIN_ID]: {
622
+ [spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].nativeToken]: {
623
+ asset: '0xc9e4f0B6195F389D9d2b639f2878B7674eB9D8cD',
624
+ decimal: 18,
625
+ symbol: 'AVAX',
626
+ name: 'AVAX',
627
+ vault: '0x14238D267557E9d799016ad635B53CD15935d290',
628
+ },
629
+ [spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].supportedTokens.USDT.address]: {
630
+ asset: '0x41Fd5c169e014e2A657B9de3553f7a7b735Fe47A',
631
+ decimal: 6,
632
+ symbol: 'USDT',
633
+ name: 'Tether USD',
634
+ vault: '0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876',
635
+ },
636
+ [spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].supportedTokens.USDC.address]: {
637
+ asset: '0x41abF4B1559FF709Ef8150079BcB26DB1Fffd117',
638
+ decimal: 6,
639
+ symbol: 'USDC',
640
+ name: 'USD Coin',
641
+ vault: '0xAbbb91c0617090F0028BDC27597Cd0D038F3A833',
642
+ },
643
+ [spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].bnUSD]: {
644
+ asset: '0x289cDa1043b4Ce26BDCa3c12E534f56b24308A5B',
645
+ decimal: 18,
646
+ symbol: 'bnUSD',
647
+ name: 'bnUSD',
648
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
649
+ },
650
+ },
651
+ [ARBITRUM_MAINNET_CHAIN_ID]: {
652
+ [spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].nativeToken]: {
653
+ asset: '0xdcd9578b51ef55239b6e68629d822a8d97c95b86',
654
+ decimal: 18,
655
+ symbol: 'ETH',
656
+ name: 'Ethereum',
657
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
658
+ },
659
+ [spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.WBTC.address]: {
660
+ asset: '0xfB0ACB1b2720B620935F50a6dd3F7FEA52b2FCBe',
661
+ decimal: 8,
662
+ symbol: 'WBTC',
663
+ name: 'Wrapped Bitcoin',
664
+ vault: '0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d',
665
+ },
666
+ [spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.weETH.address]: {
667
+ asset: '0x08D5cf039De35627fD5C0f48B8AF4a1647a462E8',
668
+ decimal: 18,
669
+ symbol: 'weETH',
670
+ name: 'Wrapped eETH',
671
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
672
+ },
673
+ [spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.wstETH.address]: {
674
+ asset: '0x2D5A7837D68b0c2CC4b14C2af2a1F0Ef420DDDc5',
675
+ decimal: 18,
676
+ symbol: 'wstETH',
677
+ name: 'Wrapped Staked Ethereum',
678
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
679
+ },
680
+ [spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.tBTC.address]: {
681
+ asset: '0x96Fc8540736f1598b7E235e6dE8814062b3b5d3B',
682
+ decimal: 18,
683
+ symbol: 'tBTC',
684
+ name: 'Arbitrum tBTC',
685
+ vault: '0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d',
686
+ },
687
+ [spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.USDT.address]: {
688
+ asset: '0x3C0a80C6a1110fC80309382b3989eC626c135eE9',
689
+ decimal: 6,
690
+ symbol: 'USDT',
691
+ name: 'Tether USD',
692
+ vault: '0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876',
693
+ },
694
+ [spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.USDC.address]: {
695
+ asset: '0xdB7BdA65c3a1C51D64dC4444e418684677334109',
696
+ decimal: 6,
697
+ symbol: 'USDC',
698
+ name: 'USD Coin',
699
+ vault: '0xAbbb91c0617090F0028BDC27597Cd0D038F3A833',
700
+ },
701
+ [spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].bnUSD]: {
702
+ asset: '0x419cA9054E44E94ceAb52846eCdC3997439BBcA6',
703
+ decimal: 18,
704
+ symbol: 'bnUSD',
705
+ name: 'bnUSD',
706
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
707
+ },
708
+ },
709
+ [BASE_MAINNET_CHAIN_ID]: {
710
+ [spokeChainConfig[BASE_MAINNET_CHAIN_ID].nativeToken]: {
711
+ asset: '0x70178089842be7f8e4726b33f0d1569db8021faa',
712
+ decimal: 18,
713
+ symbol: 'ETH',
714
+ name: 'Ethereum',
715
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
716
+ },
717
+ [spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.cbBTC.address]: {
718
+ asset: '0x2803a23a3BA6b09e57D1c71deC0D9eFdBB00A27F',
719
+ decimal: 8,
720
+ symbol: 'cbBTC',
721
+ name: 'Coinbase Wrapped BTC',
722
+ vault: '0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d',
723
+ },
724
+ [spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.USDC.address]: {
725
+ asset: '0x72E852545B024ddCbc5b70C1bCBDAA025164259C',
726
+ decimal: 6,
727
+ symbol: 'USDC',
728
+ name: 'USD Coin',
729
+ vault: '0xAbbb91c0617090F0028BDC27597Cd0D038F3A833',
730
+ },
731
+ [spokeChainConfig[BASE_MAINNET_CHAIN_ID].bnUSD]: {
732
+ asset: '0xDF5639D91359866f266b56D60d98edE9fEEDd100',
733
+ decimal: 18,
734
+ symbol: 'bnUSD',
735
+ name: 'bnUSD',
736
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
737
+ },
738
+ [spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.weETH.address]: {
739
+ asset: '0x55e0ad45eb97493b3045eee417fb6726cb85dfd4',
740
+ decimal: 18,
741
+ symbol: 'weETH',
742
+ name: 'Wrapped eETH',
743
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
744
+ },
745
+ [spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.wstETH.address]: {
746
+ asset: '0x494aaeaefdf5964d4ed400174e8c5b98c00957aa',
747
+ decimal: 18,
748
+ symbol: 'wstETH',
749
+ name: 'Wrapped Staked Ethereum',
750
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
751
+ },
752
+ },
753
+ [OPTIMISM_MAINNET_CHAIN_ID]: {
754
+ [spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].nativeToken]: {
755
+ asset: '0xad332860dd3b6f0e63f4f66e9457900917ac78cd',
756
+ decimal: 18,
757
+ symbol: 'ETH',
758
+ name: 'Ethereum',
759
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
760
+ },
761
+ [spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].bnUSD]: {
762
+ asset: '0x238384AE2b4F0EC189ecB5031859bA306B2679c5',
763
+ decimal: 18,
764
+ symbol: 'bnUSD',
765
+ name: 'bnUSD',
766
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
767
+ },
768
+ [spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.USDC.address]: {
769
+ asset: '0xb7C213CbD24967dE9838fa014668FDDB338f724B',
770
+ decimal: 6,
771
+ symbol: 'USDC',
772
+ name: 'USD Coin',
773
+ vault: '0xAbbb91c0617090F0028BDC27597Cd0D038F3A833',
774
+ },
775
+ [spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.wstETH.address]: {
776
+ asset: '0x61e26f611090CdC6bc79A7Bf156b0fD10f1fC212',
777
+ decimal: 18,
778
+ symbol: 'wstETH',
779
+ name: 'Wrapped Staked Ethereum',
780
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
781
+ },
782
+ [spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.weETH.address]: {
783
+ asset: '0xE121c0Dc2B33c00ff31ee3D902D248cc3f19Ea50',
784
+ decimal: 18,
785
+ symbol: 'weETH',
786
+ name: 'Wrapped eETH',
787
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
788
+ },
789
+ [spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.USDT.address]: {
790
+ asset: '0xc168067d95109003805aC865ae556e8476DC69bc',
791
+ decimal: 6,
792
+ symbol: 'USDT',
793
+ name: 'Tether USD',
794
+ vault: '0xbDf1F453FCB61424011BBDDCB96cFDB30f3Fe876',
795
+ },
796
+ },
797
+ [NIBIRU_MAINNET_CHAIN_ID]: {
798
+ [spokeChainConfig[NIBIRU_MAINNET_CHAIN_ID].nativeToken]: {
799
+ asset: '0xe0064414c2c1a636a9424C7a17D86fbF7FD3f190',
800
+ decimal: 18,
801
+ symbol: 'NIBI',
802
+ name: 'Nibiru',
803
+ vault: '0xc6c85287a8b173A509C2F198bB719A8a5a2d0C68',
804
+ },
805
+ [spokeChainConfig[NIBIRU_MAINNET_CHAIN_ID].bnUSD]: {
806
+ asset: '0x11b93C162aABFfD026539bb3B9F9eC22c8b7ef8a',
807
+ decimal: 18,
808
+ symbol: 'bnUSD',
809
+ name: 'bnUSD',
810
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
811
+ },
812
+ },
813
+ [BSC_MAINNET_CHAIN_ID]: {
814
+ [spokeChainConfig[BSC_MAINNET_CHAIN_ID].nativeToken]: {
815
+ asset: '0x13b70564b1ec12876b20fab5d1bb630311312f4f',
816
+ decimal: 18,
817
+ symbol: 'BNB',
818
+ name: 'BNB',
819
+ vault: '0x40Cd41b35DB9e5109ae7E54b44De8625dB320E6b',
820
+ },
821
+ [spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.ETHB.address]: {
822
+ asset: '0x57fC2aC5701e463ae261AdBd6C99FBeB48Ce5293',
823
+ decimal: 18,
824
+ symbol: 'ETHB',
825
+ name: 'Wrapped Ethereum',
826
+ vault: '0x4effB5813271699683C25c734F4daBc45B363709',
827
+ },
828
+ [spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.BTCB.address]: {
829
+ asset: '0xD8A24c71FEa5bB81c66C01e532dE7d9B11e13905',
830
+ decimal: 18,
831
+ symbol: 'BTCB',
832
+ name: 'Wrapped Bitcoin',
833
+ vault: '0x7A1A5555842Ad2D0eD274d09b5c4406a95799D5d',
834
+ },
835
+ [spokeChainConfig[BSC_MAINNET_CHAIN_ID].bnUSD]: {
836
+ asset: '0x5Ce6C1c51ff762cF3acD21396257046f694168b6',
837
+ decimal: 18,
838
+ symbol: 'bnUSD',
839
+ name: 'bnUSD',
840
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
841
+ },
842
+ },
843
+ [POLYGON_MAINNET_CHAIN_ID]: {
844
+ [spokeChainConfig[POLYGON_MAINNET_CHAIN_ID].nativeToken]: {
845
+ asset: '0x9ee17486571917837210824b0d4cadfe3b324d12',
846
+ decimal: 18,
847
+ symbol: 'MATIC',
848
+ name: 'Polygon',
849
+ vault: '0x0000000000000000000000000000000000000000',
850
+ },
851
+ [spokeChainConfig[POLYGON_MAINNET_CHAIN_ID].bnUSD]: {
852
+ asset: '0x18f85f9E80ff9496EeBD5979a051AF16Ce751567',
853
+ decimal: 18,
854
+ symbol: 'bnUSD',
855
+ name: 'bnUSD',
856
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
857
+ },
858
+ [spokeChainConfig[POLYGON_MAINNET_CHAIN_ID].supportedTokens.USDC.address]: {
859
+ asset: '0xa36893ba308b332FDEbfa95916D1dF3a2e3CF8B3',
860
+ decimal: 6,
861
+ symbol: 'USDC',
862
+ name: 'USD Coin',
863
+ vault: '0xAbbb91c0617090F0028BDC27597Cd0D038F3A833',
864
+ },
865
+ },
866
+ [INJECTIVE_MAINNET_CHAIN_ID]: {
867
+ inj: {
868
+ asset: '0xd375590b4955f6ea5623f799153f9b787a3bd319',
869
+ decimal: 18,
870
+ symbol: 'INJ',
871
+ name: 'Injective',
872
+ vault: '0x1f22279C89B213944b7Ea41daCB0a868DdCDFd13',
873
+ },
874
+ [spokeChainConfig[INJECTIVE_MAINNET_CHAIN_ID].bnUSD]: {
875
+ asset: '0x69425FFb14704124A58d6F69d510f74A59D9a5bC',
876
+ decimal: 18,
877
+ symbol: 'bnUSD',
878
+ name: 'bnUSD',
879
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
880
+ },
881
+ },
882
+ [STELLAR_MAINNET_CHAIN_ID]: {
883
+ [spokeChainConfig[STELLAR_MAINNET_CHAIN_ID].nativeToken]: {
884
+ asset: '0x8ac68af223907fb1b893086601a3d99e00f2fa9d',
885
+ decimal: 7,
886
+ symbol: 'XLM',
887
+ name: 'Stellar Lumens',
888
+ vault: '0x6BC8C37cba91F76E68C9e6d689A9C21E4d32079B',
889
+ },
890
+ [spokeChainConfig[STELLAR_MAINNET_CHAIN_ID].bnUSD]: {
891
+ asset: '0x23225Ab8E63FCa4070296678cb46566d57E1BBe3',
892
+ decimal: 7,
893
+ symbol: 'bnUSD',
894
+ name: 'bnUSD',
895
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
896
+ },
897
+ },
898
+ [SUI_MAINNET_CHAIN_ID]: {
899
+ [spokeChainConfig[SUI_MAINNET_CHAIN_ID].nativeToken]: {
900
+ asset: '0x4676b2a551b25c04e235553c1c81019337384673',
901
+ decimal: 9,
902
+ symbol: 'SUI',
903
+ name: 'Sui',
904
+ vault: '0xdc5B4b00F98347E95b9F94911213DAB4C687e1e3',
905
+ },
906
+ [spokeChainConfig[SUI_MAINNET_CHAIN_ID].bnUSD]: {
907
+ asset: '0xDf23097B9AEb917Bf8fb70e99b6c528fffA35364',
908
+ decimal: 9,
909
+ symbol: 'bnUSD',
910
+ name: 'bnUSD',
911
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
912
+ },
913
+ },
914
+ [SOLANA_MAINNET_CHAIN_ID]: {
915
+ [spokeChainConfig[SOLANA_MAINNET_CHAIN_ID].bnUSD]: {
916
+ asset: '0x14C65b1CDc0B821569081b1F77342dA0D0CbF439',
917
+ decimal: 9,
918
+ symbol: 'bnUSD',
919
+ name: 'bnUSD',
920
+ vault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
921
+ },
922
+ '11111111111111111111111111111111': {
923
+ asset: '0x0c09e69a4528945de6d16c7e469dea6996fdf636',
924
+ decimal: 9,
925
+ symbol: 'USDC',
926
+ name: 'USD Coin',
927
+ vault: '0xdEa692287E2cE8Cb08FA52917Be0F16b1DACDC87',
928
+ },
929
+ },
930
+ [ICON_MAINNET_CHAIN_ID]: {
931
+ [spokeChainConfig[ICON_MAINNET_CHAIN_ID].nativeToken]: {
932
+ asset: '0xb66cB7D841272AF6BaA8b8119007EdEE35d2C24F',
933
+ decimal: 18,
934
+ symbol: 'ICX',
935
+ name: 'ICON',
936
+ vault: '0x0000000000000000000000000000000000000000',
937
+ },
938
+ [spokeChainConfig[ICON_MAINNET_CHAIN_ID].bnUSD]: {
939
+ asset: '0x654dddf32a9a2ac53f5fb54bf1e93f66791f8047',
940
+ decimal: 18,
941
+ symbol: 'bnUSD',
942
+ name: 'bnUSD',
943
+ vault: '0x9D4b663Eb075d2a1C7B8eaEFB9eCCC0510388B51',
944
+ },
945
+ [spokeChainConfig[ICON_MAINNET_CHAIN_ID].supportedTokens.wICX.address]: {
946
+ asset: '0xb66cB7D841272AF6BaA8b8119007EdEE35d2C24F',
947
+ decimal: 18,
948
+ symbol: 'wICX',
949
+ name: 'Wrapped ICX',
950
+ vault: '0x70CB7B199700Ae2B1FAb3d4e6FecDa156FBf8182',
951
+ },
952
+ },
953
+ };
954
+ export const DEFAULT_RELAYER_API_ENDPOINT = 'https://xcall-relay.nw.iconblockchain.xyz';
955
+ const solverConfig = {
956
+ [SONIC_MAINNET_CHAIN_ID]: {
957
+ intentsContract: '0x6382D6ccD780758C5e8A6123c33ee8F4472F96ef',
958
+ solverApiEndpoint: 'https://staging-new-world.iconblockchain.xyz', // TODO replace with mainnet
959
+ },
960
+ };
961
+ export const getSolverConfig = (chainId) => solverConfig[chainId];
962
+ // currently supported spoke chain tokens for solver
963
+ const solverSupportedTokens = {
964
+ [AVALANCHE_MAINNET_CHAIN_ID]: [
965
+ spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].supportedTokens.AVAX,
966
+ spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].supportedTokens.USDT,
967
+ spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].supportedTokens.USDC,
968
+ spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].supportedTokens.bnUSD,
969
+ ],
970
+ [ARBITRUM_MAINNET_CHAIN_ID]: [
971
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.ETH,
972
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.bnUSD,
973
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.WBTC,
974
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.weETH,
975
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.wstETH,
976
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.tBTC,
977
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.USDC,
978
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.USDT,
979
+ ],
980
+ [BASE_MAINNET_CHAIN_ID]: [
981
+ spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.ETH,
982
+ spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.bnUSD,
983
+ spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.weETH,
984
+ spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.USDC,
985
+ spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.wstETH,
986
+ spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.cbBTC,
987
+ ],
988
+ [OPTIMISM_MAINNET_CHAIN_ID]: [
989
+ spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.ETH,
990
+ spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.bnUSD,
991
+ spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.USDC,
992
+ spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.wstETH,
993
+ spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.weETH,
994
+ spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.USDT,
995
+ ],
996
+ [POLYGON_MAINNET_CHAIN_ID]: [
997
+ spokeChainConfig[POLYGON_MAINNET_CHAIN_ID].supportedTokens.POL,
998
+ spokeChainConfig[POLYGON_MAINNET_CHAIN_ID].supportedTokens.bnUSD,
999
+ spokeChainConfig[POLYGON_MAINNET_CHAIN_ID].supportedTokens.USDC,
1000
+ ],
1001
+ [BSC_MAINNET_CHAIN_ID]: [
1002
+ spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.BNB,
1003
+ spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.bnUSD,
1004
+ spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.ETHB,
1005
+ spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.BTCB,
1006
+ ],
1007
+ [SOLANA_MAINNET_CHAIN_ID]: [],
1008
+ [ICON_MAINNET_CHAIN_ID]: [],
1009
+ [STELLAR_MAINNET_CHAIN_ID]: [],
1010
+ [SUI_MAINNET_CHAIN_ID]: [],
1011
+ [INJECTIVE_MAINNET_CHAIN_ID]: [],
1012
+ [NIBIRU_MAINNET_CHAIN_ID]: [],
1013
+ };
1014
+ // get supported spoke chain tokens for solver
1015
+ export const getSupportedSolverTokens = (chainId) => solverSupportedTokens[chainId];
1016
+ // check if token address for given spoke chain id is supported
1017
+ export const isSolverSupportedToken = (chainId, token) => solverSupportedTokens[chainId].some(t => t.address.toLowerCase() === token.toLowerCase());
1018
+ const moneyMarketConfig = {
1019
+ [SONIC_MAINNET_CHAIN_ID]: {
1020
+ lendingPool: '0x553434896D39F867761859D0FE7189d2Af70514E',
1021
+ uiPoolDataProvider: '0xC04d746C38f1E51C8b3A3E2730250bbAC2F271bf',
1022
+ poolAddressesProvider: '0x036aDe0aBAA4c82445Cb7597f2d6d6130C118c7b',
1023
+ bnUSD: '0x94dC79ce9C515ba4AE4D195da8E6AB86c69BFc38',
1024
+ bnUSDVault: '0xE801CA34E19aBCbFeA12025378D19c4FBE250131',
1025
+ },
1026
+ };
1027
+ export const getMoneyMarketConfig = (chainId) => moneyMarketConfig[chainId];
1028
+ // currently supported spoke chain tokens for money market
1029
+ const moneyMarketSupportedTokens = {
1030
+ [AVALANCHE_MAINNET_CHAIN_ID]: [spokeChainConfig[AVALANCHE_MAINNET_CHAIN_ID].supportedTokens.AVAX],
1031
+ [ARBITRUM_MAINNET_CHAIN_ID]: [
1032
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.ETH,
1033
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.WBTC,
1034
+ spokeChainConfig[ARBITRUM_MAINNET_CHAIN_ID].supportedTokens.tBTC,
1035
+ ],
1036
+ [BASE_MAINNET_CHAIN_ID]: [
1037
+ spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.ETH,
1038
+ spokeChainConfig[BASE_MAINNET_CHAIN_ID].supportedTokens.cbBTC,
1039
+ ],
1040
+ [OPTIMISM_MAINNET_CHAIN_ID]: [spokeChainConfig[OPTIMISM_MAINNET_CHAIN_ID].supportedTokens.ETH],
1041
+ [POLYGON_MAINNET_CHAIN_ID]: [],
1042
+ [BSC_MAINNET_CHAIN_ID]: [
1043
+ spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.BNB,
1044
+ spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.ETHB,
1045
+ spokeChainConfig[BSC_MAINNET_CHAIN_ID].supportedTokens.BTCB,
1046
+ ],
1047
+ [SOLANA_MAINNET_CHAIN_ID]: [spokeChainConfig[SOLANA_MAINNET_CHAIN_ID].supportedTokens.SOL],
1048
+ [ICON_MAINNET_CHAIN_ID]: [],
1049
+ [STELLAR_MAINNET_CHAIN_ID]: [spokeChainConfig[STELLAR_MAINNET_CHAIN_ID].supportedTokens.XLM],
1050
+ [SUI_MAINNET_CHAIN_ID]: [spokeChainConfig[SUI_MAINNET_CHAIN_ID].supportedTokens.SUI],
1051
+ [INJECTIVE_MAINNET_CHAIN_ID]: [spokeChainConfig[INJECTIVE_MAINNET_CHAIN_ID].supportedTokens.INJ],
1052
+ [NIBIRU_MAINNET_CHAIN_ID]: [],
1053
+ };
1054
+ export const isMoneyMarketSupportedToken = (chainId, token) => moneyMarketSupportedTokens[chainId].some(t => t.address.toLowerCase() === token.toLowerCase());
1055
+ // get supported spoke chain tokens for money market
1056
+ export const getSupportedMoneyMarketTokens = (chainId) => moneyMarketSupportedTokens[chainId];
1057
+ export const HubVaultSymbols = [
1058
+ 'sodaAVAX',
1059
+ 'sodaBNB',
1060
+ 'sodaETH',
1061
+ 'sodaBTC',
1062
+ 'sodaSUI',
1063
+ 'sodaINJ',
1064
+ 'sodaXLM',
1065
+ 'sodaSOL',
1066
+ ];
1067
+ export const hubVaults = {
1068
+ sodaAVAX: {
1069
+ // SODA AVAX vault
1070
+ address: '0x14238d267557e9d799016ad635b53cd15935d290',
1071
+ reserves: [
1072
+ // hub asset addresses contained in the vault
1073
+ '0xc9e4f0b6195f389d9d2b639f2878b7674eb9d8cd', // AvalancheAVAX hub asset
1074
+ ],
1075
+ },
1076
+ sodaBNB: {
1077
+ // SODA BNB vault
1078
+ address: '0x40cd41b35db9e5109ae7e54b44de8625db320e6b',
1079
+ reserves: [
1080
+ // hub asset addresses contained in the vault
1081
+ '0x13b70564b1ec12876b20fab5d1bb630311312f4f', // BSC BNB hub asset
1082
+ ],
1083
+ },
1084
+ sodaETH: {
1085
+ // SODA ETH vault
1086
+ address: '0x4effb5813271699683c25c734f4dabc45b363709',
1087
+ reserves: [
1088
+ // hub asset addresses contained in the vault
1089
+ '0x70178089842be7f8e4726b33f0d1569db8021faa', // BASE ETH hub asset
1090
+ '0xad332860dd3b6f0e63f4f66e9457900917ac78cd', // Optimism ETH hub asset
1091
+ '0xdcd9578b51ef55239b6e68629d822a8d97c95b86', // Arbitrum ETH hub asset
1092
+ '0x57fc2ac5701e463ae261adbd6c99fbeb48ce5293', // BSC ETH hub asset
1093
+ ],
1094
+ },
1095
+ sodaBTC: {
1096
+ // SODA BTC vault
1097
+ address: '0x7a1a5555842ad2d0ed274d09b5c4406a95799d5d',
1098
+ reserves: [
1099
+ // hub asset addresses contained in the vault
1100
+ '0x2803a23a3ba6b09e57d1c71dec0d9efdbb00a27f', // BASE cbBTC hub asset,
1101
+ '0xfb0acb1b2720b620935f50a6dd3f7fea52b2fcbe', // Arbitrum wBTC hub asset
1102
+ '0x96fc8540736f1598b7e235e6de8814062b3b5d3b', // Arbitrum tBTC hub asset,
1103
+ '0xd8a24c71fea5bb81c66c01e532de7d9b11e13905', // BSC BTCB hub asset
1104
+ ],
1105
+ },
1106
+ sodaSUI: {
1107
+ // SODA SUI vault
1108
+ address: '0xdc5b4b00f98347e95b9f94911213dab4c687e1e3',
1109
+ reserves: [
1110
+ // hub asset addresses contained in the vault
1111
+ '0x4676b2a551b25c04e235553c1c81019337384673', // SUI SUI hub asset
1112
+ ],
1113
+ },
1114
+ sodaINJ: {
1115
+ // SODA INJ vault
1116
+ address: '0x1f22279c89b213944b7ea41dacb0a868ddcdfd13',
1117
+ reserves: [
1118
+ // hub asset addresses contained in the vault
1119
+ '0xd375590b4955f6ea5623f799153f9b787a3bd319', // Injective INJ hub asset
1120
+ ],
1121
+ },
1122
+ sodaXLM: {
1123
+ // SODA XLM vault
1124
+ address: '0x6bc8c37cba91f76e68c9e6d689a9c21e4d32079b',
1125
+ reserves: [
1126
+ // hub asset addresses contained in the vault
1127
+ '0x8ac68af223907fb1b893086601a3d99e00f2fa9d', // Stellar XLM hub asset
1128
+ ],
1129
+ },
1130
+ sodaSOL: {
1131
+ // SODA SOL vault
1132
+ address: '0xdea692287e2ce8cb08fa52917be0f16b1dacdc87',
1133
+ reserves: [
1134
+ // hub asset addresses contained in the vault
1135
+ '0x0c09e69a4528945de6d16c7e469dea6996fdf636', // Solana SOL hub asset
1136
+ ],
1137
+ },
1138
+ };
1139
+ export const hubVaultsAddressSet = new Set(Object.values(hubVaults).map(vault => vault.address.toLowerCase()));
1140
+ // all hub assets contained in the money market reserves (supply / borrow assets)
1141
+ export const moneyMarketReserveHubAssetsSet = new Set(Object.values(hubVaults).flatMap(vault => vault.reserves.map(reserve => reserve.toLowerCase())));
1142
+ export const isMoneyMarketReserveHubAsset = (hubAsset) => moneyMarketReserveHubAssetsSet.has(hubAsset.toLowerCase());
1143
+ export const moneyMarketReserveAssets = [
1144
+ hubVaults['sodaAVAX'].address,
1145
+ hubVaults['sodaBNB'].address,
1146
+ hubVaults['sodaETH'].address,
1147
+ hubVaults['sodaBTC'].address,
1148
+ hubVaults['sodaSUI'].address,
1149
+ hubVaults['sodaINJ'].address,
1150
+ hubVaults['sodaXLM'].address,
1151
+ hubVaults['sodaSOL'].address,
1152
+ getMoneyMarketConfig(SONIC_MAINNET_CHAIN_ID).bnUSDVault,
1153
+ ];
1154
+ export const isMoneyMarketReserveAsset = (asset) => moneyMarketReserveAssets.map(a => a.toLowerCase()).includes(asset.toLowerCase());
1155
+ export const originalAssetTohubAssetMap = new Map(Object.entries(hubAssets).map(([chainId, assets]) => [
1156
+ chainId,
1157
+ new Map(Object.entries(assets).map(([asset, info]) => [asset.toLowerCase(), info])),
1158
+ ]));
1159
+ export const hubAssetToOriginalAssetMap = new Map(Object.entries(hubAssets).map(([chainId, assets]) => [
1160
+ chainId,
1161
+ new Map(Object.entries(assets).map(([asset, info]) => [info.asset.toLowerCase(), asset])),
1162
+ ]));
1163
+ export const chainIdToHubAssetsMap = new Map(Object.entries(hubAssets).map(([chainId, assets]) => [
1164
+ chainId,
1165
+ new Map(Object.entries(assets).map(([, info]) => [info.asset.toLowerCase(), info])),
1166
+ ]));
1167
+ export const supportedHubAssets = new Set(Object.values(hubAssets).flatMap(assets => Object.values(assets).map(info => info.asset.toLowerCase())));
1168
+ export const spokeChainIdsSet = new Set(SPOKE_CHAIN_IDS);
1169
+ export const getHubAssetInfo = (chainId, asset) => originalAssetTohubAssetMap.get(chainId)?.get(asset.toLowerCase());
1170
+ export const isValidOriginalAssetAddress = (chainId, asset) => originalAssetTohubAssetMap.get(chainId)?.has(asset.toLowerCase()) ?? false;
1171
+ export const getOriginalAssetAddress = (chainId, hubAsset) => hubAssetToOriginalAssetMap.get(chainId)?.get(hubAsset.toLowerCase());
1172
+ export const isValidHubAsset = (hubAsset) => supportedHubAssets.has(hubAsset.toLowerCase());
1173
+ export const isValidChainHubAsset = (chainId, hubAsset) => chainIdToHubAssetsMap.get(chainId)?.has(hubAsset.toLowerCase()) ?? false;
1174
+ export const isValidSpokeChainId = (chainId) => spokeChainIdsSet.has(chainId);
1175
+ export const isValidIntentRelayChainId = (chainId) => Object.values(INTENT_RELAY_CHAIN_IDS).some(id => id === chainId);
1176
+ export const supportedHubChains = Object.keys(hubChainConfig);
1177
+ export const supportedSpokeChains = Object.keys(spokeChainConfig);
1178
+ export const intentRelayChainIdToSpokeChainIdMap = new Map(Object.entries(ChainIdToIntentRelayChainId).map(([chainId, intentRelayChainId]) => [
1179
+ intentRelayChainId,
1180
+ chainId,
1181
+ ]));
1182
+ export const supportedTokensPerChain = new Map(Object.entries(spokeChainConfig).map(([chainId, config]) => [
1183
+ chainId,
1184
+ Object.values(config.supportedTokens),
1185
+ ]));
1186
+ export const getSpokeChainIdFromIntentRelayChainId = (intentRelayChainId) => {
1187
+ const spokeChainId = intentRelayChainIdToSpokeChainIdMap.get(intentRelayChainId);
1188
+ if (!spokeChainId) {
1189
+ throw new Error(`Invalid intent relay chain id: ${intentRelayChainId}`);
1190
+ }
1191
+ return spokeChainId;
1192
+ };
1193
+ export const isNativeToken = (chainId, token) => {
1194
+ return token.address.toLowerCase() === spokeChainConfig[chainId].nativeToken.toLowerCase();
1195
+ };
1196
+ //# sourceMappingURL=constants.js.map