@sodax/sdk 0.0.1-rc.1 → 0.0.1-rc.11

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 (315) hide show
  1. package/README.md +84 -9
  2. package/dist/index.cjs +12073 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.cts +7078 -0
  5. package/dist/index.d.ts +7078 -10
  6. package/dist/index.mjs +11915 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/package.json +21 -6
  9. package/dist/abis/asset-manager.abi.d.ts +0 -418
  10. package/dist/abis/asset-manager.abi.d.ts.map +0 -1
  11. package/dist/abis/asset-manager.abi.js +0 -542
  12. package/dist/abis/asset-manager.abi.js.map +0 -1
  13. package/dist/abis/connection.abi.d.ts +0 -72
  14. package/dist/abis/connection.abi.d.ts.map +0 -1
  15. package/dist/abis/connection.abi.js +0 -92
  16. package/dist/abis/connection.abi.js.map +0 -1
  17. package/dist/abis/erc20.abi.d.ts +0 -236
  18. package/dist/abis/erc20.abi.d.ts.map +0 -1
  19. package/dist/abis/erc20.abi.js +0 -311
  20. package/dist/abis/erc20.abi.js.map +0 -1
  21. package/dist/abis/index.d.ts +0 -10
  22. package/dist/abis/index.d.ts.map +0 -1
  23. package/dist/abis/index.js +0 -10
  24. package/dist/abis/index.js.map +0 -1
  25. package/dist/abis/intents.abi.d.ts +0 -901
  26. package/dist/abis/intents.abi.d.ts.map +0 -1
  27. package/dist/abis/intents.abi.js +0 -1158
  28. package/dist/abis/intents.abi.js.map +0 -1
  29. package/dist/abis/pool.abi.d.ts +0 -626
  30. package/dist/abis/pool.abi.d.ts.map +0 -1
  31. package/dist/abis/pool.abi.js +0 -812
  32. package/dist/abis/pool.abi.js.map +0 -1
  33. package/dist/abis/spokeAssetManager.abi.d.ts +0 -169
  34. package/dist/abis/spokeAssetManager.abi.d.ts.map +0 -1
  35. package/dist/abis/spokeAssetManager.abi.js +0 -217
  36. package/dist/abis/spokeAssetManager.abi.js.map +0 -1
  37. package/dist/abis/uiPoolData.abi.d.ts +0 -369
  38. package/dist/abis/uiPoolData.abi.d.ts.map +0 -1
  39. package/dist/abis/uiPoolData.abi.js +0 -476
  40. package/dist/abis/uiPoolData.abi.js.map +0 -1
  41. package/dist/abis/vaultToken.abi.d.ts +0 -816
  42. package/dist/abis/vaultToken.abi.d.ts.map +0 -1
  43. package/dist/abis/vaultToken.abi.js +0 -1062
  44. package/dist/abis/vaultToken.abi.js.map +0 -1
  45. package/dist/abis/walletFactory.abi.d.ts +0 -20
  46. package/dist/abis/walletFactory.abi.d.ts.map +0 -1
  47. package/dist/abis/walletFactory.abi.js +0 -27
  48. package/dist/abis/walletFactory.abi.js.map +0 -1
  49. package/dist/constants.d.ts +0 -565
  50. package/dist/constants.d.ts.map +0 -1
  51. package/dist/constants.js +0 -1196
  52. package/dist/constants.js.map +0 -1
  53. package/dist/constants.test.d.ts +0 -2
  54. package/dist/constants.test.d.ts.map +0 -1
  55. package/dist/constants.test.js +0 -128
  56. package/dist/constants.test.js.map +0 -1
  57. package/dist/entities/Providers.d.ts +0 -61
  58. package/dist/entities/Providers.d.ts.map +0 -1
  59. package/dist/entities/Providers.js +0 -51
  60. package/dist/entities/Providers.js.map +0 -1
  61. package/dist/entities/Sodax.d.ts +0 -23
  62. package/dist/entities/Sodax.d.ts.map +0 -1
  63. package/dist/entities/Sodax.js +0 -29
  64. package/dist/entities/Sodax.js.map +0 -1
  65. package/dist/entities/Sodax.test.d.ts +0 -2
  66. package/dist/entities/Sodax.test.d.ts.map +0 -1
  67. package/dist/entities/Sodax.test.js +0 -376
  68. package/dist/entities/Sodax.test.js.map +0 -1
  69. package/dist/entities/cosmos/CW20Token.d.ts +0 -39
  70. package/dist/entities/cosmos/CW20Token.d.ts.map +0 -1
  71. package/dist/entities/cosmos/CW20Token.js +0 -65
  72. package/dist/entities/cosmos/CW20Token.js.map +0 -1
  73. package/dist/entities/cosmos/CWSpokeProvider.d.ts +0 -91
  74. package/dist/entities/cosmos/CWSpokeProvider.d.ts.map +0 -1
  75. package/dist/entities/cosmos/CWSpokeProvider.js +0 -143
  76. package/dist/entities/cosmos/CWSpokeProvider.js.map +0 -1
  77. package/dist/entities/cosmos/CosmosWalletProvider.d.ts +0 -28
  78. package/dist/entities/cosmos/CosmosWalletProvider.d.ts.map +0 -1
  79. package/dist/entities/cosmos/CosmosWalletProvider.js +0 -102
  80. package/dist/entities/cosmos/CosmosWalletProvider.js.map +0 -1
  81. package/dist/entities/cosmos/InjectiveWalletProvider.d.ts +0 -25
  82. package/dist/entities/cosmos/InjectiveWalletProvider.d.ts.map +0 -1
  83. package/dist/entities/cosmos/InjectiveWalletProvider.js +0 -76
  84. package/dist/entities/cosmos/InjectiveWalletProvider.js.map +0 -1
  85. package/dist/entities/icon/HanaWalletConnector.d.ts +0 -36
  86. package/dist/entities/icon/HanaWalletConnector.d.ts.map +0 -1
  87. package/dist/entities/icon/HanaWalletConnector.js +0 -92
  88. package/dist/entities/icon/HanaWalletConnector.js.map +0 -1
  89. package/dist/entities/icon/IconSpokeProvider.d.ts +0 -8
  90. package/dist/entities/icon/IconSpokeProvider.d.ts.map +0 -1
  91. package/dist/entities/icon/IconSpokeProvider.js +0 -9
  92. package/dist/entities/icon/IconSpokeProvider.js.map +0 -1
  93. package/dist/entities/icon/IconWalletProvider.d.ts +0 -12
  94. package/dist/entities/icon/IconWalletProvider.d.ts.map +0 -1
  95. package/dist/entities/icon/IconWalletProvider.js +0 -34
  96. package/dist/entities/icon/IconWalletProvider.js.map +0 -1
  97. package/dist/entities/icon/index.d.ts +0 -5
  98. package/dist/entities/icon/index.d.ts.map +0 -1
  99. package/dist/entities/icon/index.js +0 -5
  100. package/dist/entities/icon/index.js.map +0 -1
  101. package/dist/entities/icon/utils.d.ts +0 -3
  102. package/dist/entities/icon/utils.d.ts.map +0 -1
  103. package/dist/entities/icon/utils.js +0 -4
  104. package/dist/entities/icon/utils.js.map +0 -1
  105. package/dist/entities/index.d.ts +0 -8
  106. package/dist/entities/index.d.ts.map +0 -1
  107. package/dist/entities/index.js +0 -8
  108. package/dist/entities/index.js.map +0 -1
  109. package/dist/entities/solana/Configs.d.ts +0 -10
  110. package/dist/entities/solana/Configs.d.ts.map +0 -1
  111. package/dist/entities/solana/Configs.js +0 -50
  112. package/dist/entities/solana/Configs.js.map +0 -1
  113. package/dist/entities/solana/SolanaSpokeProvider.d.ts +0 -9
  114. package/dist/entities/solana/SolanaSpokeProvider.d.ts.map +0 -1
  115. package/dist/entities/solana/SolanaSpokeProvider.js +0 -9
  116. package/dist/entities/solana/SolanaSpokeProvider.js.map +0 -1
  117. package/dist/entities/solana/SolanaWalletProvider.d.ts +0 -20
  118. package/dist/entities/solana/SolanaWalletProvider.d.ts.map +0 -1
  119. package/dist/entities/solana/SolanaWalletProvider.js +0 -53
  120. package/dist/entities/solana/SolanaWalletProvider.js.map +0 -1
  121. package/dist/entities/solana/index.d.ts +0 -4
  122. package/dist/entities/solana/index.d.ts.map +0 -1
  123. package/dist/entities/solana/index.js +0 -4
  124. package/dist/entities/solana/index.js.map +0 -1
  125. package/dist/entities/solana/pda/pda.d.ts +0 -45
  126. package/dist/entities/solana/pda/pda.d.ts.map +0 -1
  127. package/dist/entities/solana/pda/pda.js +0 -44
  128. package/dist/entities/solana/pda/pda.js.map +0 -1
  129. package/dist/entities/solana/types/asset_manager.d.ts +0 -919
  130. package/dist/entities/solana/types/asset_manager.d.ts.map +0 -1
  131. package/dist/entities/solana/types/asset_manager.js +0 -2
  132. package/dist/entities/solana/types/asset_manager.js.map +0 -1
  133. package/dist/entities/solana/types/connection.d.ts +0 -446
  134. package/dist/entities/solana/types/connection.d.ts.map +0 -1
  135. package/dist/entities/solana/types/connection.js +0 -2
  136. package/dist/entities/solana/types/connection.js.map +0 -1
  137. package/dist/entities/solana/types/rate_limit_contract.d.ts +0 -348
  138. package/dist/entities/solana/types/rate_limit_contract.d.ts.map +0 -1
  139. package/dist/entities/solana/types/rate_limit_contract.js +0 -2
  140. package/dist/entities/solana/types/rate_limit_contract.js.map +0 -1
  141. package/dist/entities/solana/utils/utils.d.ts +0 -6
  142. package/dist/entities/solana/utils/utils.d.ts.map +0 -1
  143. package/dist/entities/solana/utils/utils.js +0 -17
  144. package/dist/entities/solana/utils/utils.js.map +0 -1
  145. package/dist/entities/stellar/StellarSpokeProvider.d.ts +0 -24
  146. package/dist/entities/stellar/StellarSpokeProvider.d.ts.map +0 -1
  147. package/dist/entities/stellar/StellarSpokeProvider.js +0 -129
  148. package/dist/entities/stellar/StellarSpokeProvider.js.map +0 -1
  149. package/dist/entities/sui/SuiSpokeProvider.d.ts +0 -34
  150. package/dist/entities/sui/SuiSpokeProvider.d.ts.map +0 -1
  151. package/dist/entities/sui/SuiSpokeProvider.js +0 -143
  152. package/dist/entities/sui/SuiSpokeProvider.js.map +0 -1
  153. package/dist/entities/sui/SuiWalletProvider.d.ts +0 -15
  154. package/dist/entities/sui/SuiWalletProvider.d.ts.map +0 -1
  155. package/dist/entities/sui/SuiWalletProvider.js +0 -43
  156. package/dist/entities/sui/SuiWalletProvider.js.map +0 -1
  157. package/dist/errors.d.ts +0 -2
  158. package/dist/errors.d.ts.map +0 -1
  159. package/dist/errors.js +0 -2
  160. package/dist/errors.js.map +0 -1
  161. package/dist/guards.d.ts +0 -25
  162. package/dist/guards.d.ts.map +0 -1
  163. package/dist/guards.js +0 -110
  164. package/dist/guards.js.map +0 -1
  165. package/dist/index.d.ts.map +0 -1
  166. package/dist/index.js +0 -10
  167. package/dist/index.js.map +0 -1
  168. package/dist/interfaces.d.ts +0 -8
  169. package/dist/interfaces.d.ts.map +0 -1
  170. package/dist/interfaces.js +0 -2
  171. package/dist/interfaces.js.map +0 -1
  172. package/dist/services/hub/EvmAssetManagerService.d.ts +0 -60
  173. package/dist/services/hub/EvmAssetManagerService.d.ts.map +0 -1
  174. package/dist/services/hub/EvmAssetManagerService.js +0 -103
  175. package/dist/services/hub/EvmAssetManagerService.js.map +0 -1
  176. package/dist/services/hub/EvmVaultTokenService.d.ts +0 -81
  177. package/dist/services/hub/EvmVaultTokenService.d.ts.map +0 -1
  178. package/dist/services/hub/EvmVaultTokenService.js +0 -159
  179. package/dist/services/hub/EvmVaultTokenService.js.map +0 -1
  180. package/dist/services/hub/EvmWalletAbstraction.d.ts +0 -8
  181. package/dist/services/hub/EvmWalletAbstraction.d.ts.map +0 -1
  182. package/dist/services/hub/EvmWalletAbstraction.js +0 -14
  183. package/dist/services/hub/EvmWalletAbstraction.js.map +0 -1
  184. package/dist/services/hub/index.d.ts +0 -4
  185. package/dist/services/hub/index.d.ts.map +0 -1
  186. package/dist/services/hub/index.js +0 -4
  187. package/dist/services/hub/index.js.map +0 -1
  188. package/dist/services/index.d.ts +0 -7
  189. package/dist/services/index.d.ts.map +0 -1
  190. package/dist/services/index.js +0 -7
  191. package/dist/services/index.js.map +0 -1
  192. package/dist/services/intentRelay/IntentRelayApiService.d.ts +0 -111
  193. package/dist/services/intentRelay/IntentRelayApiService.d.ts.map +0 -1
  194. package/dist/services/intentRelay/IntentRelayApiService.js +0 -160
  195. package/dist/services/intentRelay/IntentRelayApiService.js.map +0 -1
  196. package/dist/services/intentRelay/IntentRelayApiService.test.d.ts +0 -2
  197. package/dist/services/intentRelay/IntentRelayApiService.test.d.ts.map +0 -1
  198. package/dist/services/intentRelay/IntentRelayApiService.test.js +0 -134
  199. package/dist/services/intentRelay/IntentRelayApiService.test.js.map +0 -1
  200. package/dist/services/intentRelay/index.d.ts +0 -2
  201. package/dist/services/intentRelay/index.d.ts.map +0 -1
  202. package/dist/services/intentRelay/index.js +0 -2
  203. package/dist/services/intentRelay/index.js.map +0 -1
  204. package/dist/services/moneyMarket/MoneyMarketService.d.ts +0 -321
  205. package/dist/services/moneyMarket/MoneyMarketService.d.ts.map +0 -1
  206. package/dist/services/moneyMarket/MoneyMarketService.js +0 -604
  207. package/dist/services/moneyMarket/MoneyMarketService.js.map +0 -1
  208. package/dist/services/moneyMarket/MoneyMarketService.test.d.ts +0 -2
  209. package/dist/services/moneyMarket/MoneyMarketService.test.d.ts.map +0 -1
  210. package/dist/services/moneyMarket/MoneyMarketService.test.js +0 -245
  211. package/dist/services/moneyMarket/MoneyMarketService.test.js.map +0 -1
  212. package/dist/services/moneyMarket/index.d.ts +0 -2
  213. package/dist/services/moneyMarket/index.d.ts.map +0 -1
  214. package/dist/services/moneyMarket/index.js +0 -2
  215. package/dist/services/moneyMarket/index.js.map +0 -1
  216. package/dist/services/shared/Erc20Service.d.ts +0 -41
  217. package/dist/services/shared/Erc20Service.d.ts.map +0 -1
  218. package/dist/services/shared/Erc20Service.js +0 -107
  219. package/dist/services/shared/Erc20Service.js.map +0 -1
  220. package/dist/services/shared/index.d.ts +0 -2
  221. package/dist/services/shared/index.d.ts.map +0 -1
  222. package/dist/services/shared/index.js +0 -2
  223. package/dist/services/shared/index.js.map +0 -1
  224. package/dist/services/solver/EvmSolverService.d.ts +0 -125
  225. package/dist/services/solver/EvmSolverService.d.ts.map +0 -1
  226. package/dist/services/solver/EvmSolverService.js +0 -166
  227. package/dist/services/solver/EvmSolverService.js.map +0 -1
  228. package/dist/services/solver/SolverApiService.d.ts +0 -40
  229. package/dist/services/solver/SolverApiService.d.ts.map +0 -1
  230. package/dist/services/solver/SolverApiService.js +0 -157
  231. package/dist/services/solver/SolverApiService.js.map +0 -1
  232. package/dist/services/solver/SolverApiService.test.d.ts +0 -2
  233. package/dist/services/solver/SolverApiService.test.d.ts.map +0 -1
  234. package/dist/services/solver/SolverApiService.test.js +0 -180
  235. package/dist/services/solver/SolverApiService.test.js.map +0 -1
  236. package/dist/services/solver/SolverService.d.ts +0 -194
  237. package/dist/services/solver/SolverService.d.ts.map +0 -1
  238. package/dist/services/solver/SolverService.js +0 -324
  239. package/dist/services/solver/SolverService.js.map +0 -1
  240. package/dist/services/solver/SolverService.test.d.ts +0 -2
  241. package/dist/services/solver/SolverService.test.d.ts.map +0 -1
  242. package/dist/services/solver/SolverService.test.js +0 -493
  243. package/dist/services/solver/SolverService.test.js.map +0 -1
  244. package/dist/services/solver/index.d.ts +0 -3
  245. package/dist/services/solver/index.d.ts.map +0 -1
  246. package/dist/services/solver/index.js +0 -3
  247. package/dist/services/solver/index.js.map +0 -1
  248. package/dist/services/spoke/CWSpokeService.d.ts +0 -67
  249. package/dist/services/spoke/CWSpokeService.d.ts.map +0 -1
  250. package/dist/services/spoke/CWSpokeService.js +0 -75
  251. package/dist/services/spoke/CWSpokeService.js.map +0 -1
  252. package/dist/services/spoke/EvmSpokeService.d.ts +0 -61
  253. package/dist/services/spoke/EvmSpokeService.d.ts.map +0 -1
  254. package/dist/services/spoke/EvmSpokeService.js +0 -118
  255. package/dist/services/spoke/EvmSpokeService.js.map +0 -1
  256. package/dist/services/spoke/IconSpokeService.d.ts +0 -55
  257. package/dist/services/spoke/IconSpokeService.d.ts.map +0 -1
  258. package/dist/services/spoke/IconSpokeService.js +0 -111
  259. package/dist/services/spoke/IconSpokeService.js.map +0 -1
  260. package/dist/services/spoke/SolanaSpokeService.d.ts +0 -45
  261. package/dist/services/spoke/SolanaSpokeService.d.ts.map +0 -1
  262. package/dist/services/spoke/SolanaSpokeService.js +0 -170
  263. package/dist/services/spoke/SolanaSpokeService.js.map +0 -1
  264. package/dist/services/spoke/SpokeService.d.ts +0 -33
  265. package/dist/services/spoke/SpokeService.d.ts.map +0 -1
  266. package/dist/services/spoke/SpokeService.js +0 -102
  267. package/dist/services/spoke/SpokeService.js.map +0 -1
  268. package/dist/services/spoke/StellarSpokeService.d.ts +0 -35
  269. package/dist/services/spoke/StellarSpokeService.d.ts.map +0 -1
  270. package/dist/services/spoke/StellarSpokeService.js +0 -39
  271. package/dist/services/spoke/StellarSpokeService.js.map +0 -1
  272. package/dist/services/spoke/SuiSpokeService.d.ts +0 -69
  273. package/dist/services/spoke/SuiSpokeService.d.ts.map +0 -1
  274. package/dist/services/spoke/SuiSpokeService.js +0 -74
  275. package/dist/services/spoke/SuiSpokeService.js.map +0 -1
  276. package/dist/services/spoke/index.d.ts +0 -3
  277. package/dist/services/spoke/index.d.ts.map +0 -1
  278. package/dist/services/spoke/index.js +0 -3
  279. package/dist/services/spoke/index.js.map +0 -1
  280. package/dist/tests/services/hub/EvmAssetManagerService.test.d.ts +0 -2
  281. package/dist/tests/services/hub/EvmAssetManagerService.test.d.ts.map +0 -1
  282. package/dist/tests/services/hub/EvmAssetManagerService.test.js +0 -123
  283. package/dist/tests/services/hub/EvmAssetManagerService.test.js.map +0 -1
  284. package/dist/tests/services/hub/EvmMoneyMarketService.test.d.ts +0 -2
  285. package/dist/tests/services/hub/EvmMoneyMarketService.test.d.ts.map +0 -1
  286. package/dist/tests/services/hub/EvmMoneyMarketService.test.js +0 -121
  287. package/dist/tests/services/hub/EvmMoneyMarketService.test.js.map +0 -1
  288. package/dist/tests/services/hub/EvmVaultTokenService.test.d.ts +0 -2
  289. package/dist/tests/services/hub/EvmVaultTokenService.test.d.ts.map +0 -1
  290. package/dist/tests/services/hub/EvmVaultTokenService.test.js +0 -98
  291. package/dist/tests/services/hub/EvmVaultTokenService.test.js.map +0 -1
  292. package/dist/tests/services/spoke/EvmSpokeService.test.d.ts +0 -2
  293. package/dist/tests/services/spoke/EvmSpokeService.test.d.ts.map +0 -1
  294. package/dist/tests/services/spoke/EvmSpokeService.test.js +0 -197
  295. package/dist/tests/services/spoke/EvmSpokeService.test.js.map +0 -1
  296. package/dist/types.d.ts +0 -395
  297. package/dist/types.d.ts.map +0 -1
  298. package/dist/types.js +0 -30
  299. package/dist/types.js.map +0 -1
  300. package/dist/utils/evm-utils.d.ts +0 -10
  301. package/dist/utils/evm-utils.d.ts.map +0 -1
  302. package/dist/utils/evm-utils.js +0 -15
  303. package/dist/utils/evm-utils.js.map +0 -1
  304. package/dist/utils/index.d.ts +0 -3
  305. package/dist/utils/index.d.ts.map +0 -1
  306. package/dist/utils/index.js +0 -3
  307. package/dist/utils/index.js.map +0 -1
  308. package/dist/utils/shared-utils.d.ts +0 -19
  309. package/dist/utils/shared-utils.d.ts.map +0 -1
  310. package/dist/utils/shared-utils.js +0 -66
  311. package/dist/utils/shared-utils.js.map +0 -1
  312. package/dist/utils/shared-utils.test.d.ts +0 -2
  313. package/dist/utils/shared-utils.test.d.ts.map +0 -1
  314. package/dist/utils/shared-utils.test.js +0 -63
  315. package/dist/utils/shared-utils.test.js.map +0 -1
@@ -1,493 +0,0 @@
1
- import { afterEach, describe, expect, it, vi } from 'vitest';
2
- import { ARBITRUM_MAINNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, EvmHubProvider, EvmSpokeProvider, IntentErrorCode, SONIC_MAINNET_CHAIN_ID, SolverService, getHubAssetInfo, getHubChainConfig, getIntentRelayChainId, spokeChainConfig, } from '../../index.js';
3
- import * as IntentRelayApiService from '../intentRelay/IntentRelayApiService.js';
4
- import { EvmWalletAbstraction } from '../hub/EvmWalletAbstraction.js';
5
- import { EvmSolverService } from './EvmSolverService.js';
6
- describe('SolverService', () => {
7
- const mockIntentsContract = '0x0987654321098765432109876543210987654321';
8
- const bscEthToken = '0x2170Ed0880ac9A755fd29B2688956BD959F933F8';
9
- const arbWbtcToken = '0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f';
10
- const mockSolverConfig = {
11
- intentsContract: mockIntentsContract,
12
- solverApiEndpoint: 'https://staging-new-world.iconblockchain.xyz',
13
- };
14
- const mockHubConfig = {
15
- hubRpcUrl: 'https://rpc.soniclabs.com',
16
- chainConfig: getHubChainConfig(SONIC_MAINNET_CHAIN_ID),
17
- };
18
- const mockHubProvider = new EvmHubProvider(mockHubConfig);
19
- const mockQuoteRequest = {
20
- token_src: bscEthToken,
21
- token_dst: arbWbtcToken,
22
- token_src_blockchain_id: BSC_MAINNET_CHAIN_ID,
23
- token_dst_blockchain_id: ARBITRUM_MAINNET_CHAIN_ID,
24
- amount: 1000n,
25
- quote_type: 'exact_input',
26
- };
27
- const mockExecutionRequest = {
28
- intent_tx_hash: '0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af',
29
- };
30
- const mockStatusRequest = {
31
- intent_tx_hash: '0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af',
32
- };
33
- const feeAmount = 1000n; // 1000 of input token
34
- const feePercentage = 100; // 1% fee
35
- const solverService = new SolverService(mockSolverConfig, mockHubProvider);
36
- const solverServiceWithPercentageFee = new SolverService({
37
- ...mockSolverConfig,
38
- partnerFee: {
39
- address: '0x0000000000000000000000000000000000000000',
40
- percentage: feePercentage,
41
- },
42
- }, mockHubProvider);
43
- const solverServiceWithAmountFee = new SolverService({
44
- ...mockSolverConfig,
45
- partnerFee: {
46
- address: '0x0000000000000000000000000000000000000000',
47
- amount: feeAmount,
48
- },
49
- }, mockHubProvider);
50
- const mockEvmWalletProvider = {
51
- sendTransaction: vi.fn(),
52
- getWalletAddress: vi.fn().mockReturnValue('0x9999999999999999999999999999999999999999'),
53
- getWalletAddressBytes: vi.fn().mockReturnValue('0x9999999999999999999999999999999999999999'),
54
- waitForTransactionReceipt: vi.fn(),
55
- };
56
- const mockFee = {
57
- address: '0x0000000000000000000000000000000000000000',
58
- amount: feeAmount,
59
- };
60
- const mockBscSpokeProvider = new EvmSpokeProvider(mockEvmWalletProvider, spokeChainConfig[BSC_MAINNET_CHAIN_ID]);
61
- const mockIntentConfig = {
62
- intentsContract: mockIntentsContract,
63
- solverApiEndpoint: 'https://staging-new-world.iconblockchain.xyz',
64
- };
65
- const mockCreatorHubWalletAddress = '0x1234567890123456789012345678901234567890';
66
- afterEach(() => {
67
- vi.clearAllMocks();
68
- vi.restoreAllMocks();
69
- });
70
- describe('getQuote', () => {
71
- it('should return a successful quote response', async () => {
72
- // Mock fetch response
73
- global.fetch = vi.fn().mockResolvedValueOnce({
74
- ok: true,
75
- json: async () => ({
76
- quoted_amount: '950',
77
- uuid: 'a0dd7652-b360-4123-ab2d-78cfbcd20c6b',
78
- }),
79
- });
80
- const result = await solverService.getQuote(mockQuoteRequest);
81
- expect(result.ok).toBe(true);
82
- if (result.ok) {
83
- expect(result.value).toBeDefined();
84
- expect(result.value.quoted_amount).toBe(950n);
85
- }
86
- expect(fetch).toHaveBeenCalledWith(`${mockSolverConfig.solverApiEndpoint}/quote`, expect.objectContaining({
87
- method: 'POST',
88
- headers: { 'Content-Type': 'application/json' },
89
- body: expect.any(String),
90
- }));
91
- });
92
- it('should handle API error responses', async () => {
93
- // Mock fetch error response
94
- global.fetch = vi.fn().mockResolvedValueOnce({
95
- ok: false,
96
- json: async () => ({
97
- detail: {
98
- code: IntentErrorCode.NO_PATH_FOUND,
99
- message: 'Invalid request parameters',
100
- },
101
- }),
102
- });
103
- const result = await solverService.getQuote(mockQuoteRequest);
104
- expect(result.ok).toBe(false);
105
- if (!result.ok) {
106
- expect(result.error).toBeDefined();
107
- }
108
- });
109
- it('should handle network errors', async () => {
110
- // Mock fetch throwing an error
111
- global.fetch = vi.fn().mockRejectedValueOnce(new Error('Network error'));
112
- const result = await solverService.getQuote(mockQuoteRequest);
113
- expect(result.ok).toBe(false);
114
- if (!result.ok) {
115
- expect(result.error).toBeDefined();
116
- expect(result.error.detail.code).toBe(IntentErrorCode.UNKNOWN);
117
- }
118
- });
119
- });
120
- describe('getFee', () => {
121
- it('should calculate fee correctly for given input amount', async () => {
122
- const inputAmount = 1000n;
123
- const expectedFee = 10n; // Assuming 1% fee
124
- const result = await solverServiceWithPercentageFee.getFee(inputAmount);
125
- expect(result).toBe(expectedFee);
126
- });
127
- it('should handle zero input amount', async () => {
128
- const inputAmount = 0n;
129
- await expect(solverServiceWithPercentageFee.getFee(inputAmount)).rejects.toThrow();
130
- });
131
- it('should handle very large input amount', async () => {
132
- const inputAmount = 2n ** 128n - 1n;
133
- const result = await solverServiceWithPercentageFee.getFee(inputAmount);
134
- expect(result).toBeDefined();
135
- expect(typeof result).toBe('bigint');
136
- expect(result).toBeGreaterThan(0n);
137
- });
138
- it('should handle negative input amount', async () => {
139
- const inputAmount = -1000n;
140
- await expect(solverServiceWithPercentageFee.getFee(inputAmount)).rejects.toThrow();
141
- });
142
- it('should handle undefined input amount', async () => {
143
- // @ts-expect-error Testing invalid input
144
- await expect(solverServiceWithPercentageFee.getFee(undefined)).rejects.toThrow();
145
- });
146
- it('should handle null input amount', async () => {
147
- // @ts-expect-error Testing invalid input
148
- await expect(solverServiceWithPercentageFee.getFee(null)).rejects.toThrow();
149
- });
150
- it('should handle fee amount', async () => {
151
- const inputAmount = 1000n;
152
- const result = await solverServiceWithAmountFee.getFee(inputAmount);
153
- expect(result).toBe(feeAmount);
154
- });
155
- it('should handle undefined input amount', async () => {
156
- // @ts-expect-error Testing invalid input
157
- await expect(solverServiceWithAmountFee.getFee(undefined)).rejects.toThrow();
158
- });
159
- it('should handle null input amount', async () => {
160
- // @ts-expect-error Testing invalid input
161
- await expect(solverServiceWithAmountFee.getFee(null)).rejects.toThrow();
162
- });
163
- });
164
- describe('postExecution', () => {
165
- it('should return a successful post execution response', async () => {
166
- // Mock fetch response
167
- global.fetch = vi.fn().mockResolvedValueOnce({
168
- ok: true,
169
- json: async () => ({
170
- answer: 'OK',
171
- intent_hash: '0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af',
172
- }),
173
- });
174
- const result = await solverService.postExecution(mockExecutionRequest);
175
- expect(result.ok).toBe(true);
176
- if (result.ok) {
177
- expect(result.value).toBeDefined();
178
- expect(result.value.intent_hash).toBeDefined();
179
- expect(result.value.answer).toBe('OK');
180
- }
181
- expect(fetch).toHaveBeenCalledWith(`${mockSolverConfig.solverApiEndpoint}/execute`, expect.objectContaining({
182
- method: 'POST',
183
- headers: { 'Content-Type': 'application/json' },
184
- body: expect.any(String),
185
- }));
186
- });
187
- it('should handle API error responses', async () => {
188
- // Mock fetch error response
189
- global.fetch = vi.fn().mockResolvedValueOnce({
190
- ok: false,
191
- json: async () => ({
192
- detail: {
193
- code: IntentErrorCode.QUOTE_NOT_FOUND,
194
- message: 'Execution failed',
195
- },
196
- }),
197
- });
198
- const result = await solverService.postExecution(mockExecutionRequest);
199
- expect(result.ok).toBe(false);
200
- if (!result.ok) {
201
- expect(result.error).toBeDefined();
202
- }
203
- });
204
- });
205
- describe('getStatus', () => {
206
- it('should return a successful status response', async () => {
207
- // Mock fetch response
208
- global.fetch = vi.fn().mockResolvedValueOnce({
209
- ok: true,
210
- json: async () => ({
211
- status: 3,
212
- intent_hash: '0xba3dce19347264db32ced212ff1a2036f20d9d2c7493d06af15027970be061af',
213
- }),
214
- });
215
- const result = await solverService.getStatus(mockStatusRequest);
216
- expect(result.ok).toBe(true);
217
- if (result.ok) {
218
- expect(result.value).toBeDefined();
219
- expect(result.value.status).toBe(3);
220
- }
221
- expect(fetch).toHaveBeenCalledWith(`${mockSolverConfig.solverApiEndpoint}/status`, expect.objectContaining({
222
- method: 'POST',
223
- headers: { 'Content-Type': 'application/json' },
224
- body: expect.any(String),
225
- }));
226
- });
227
- it('should handle API error responses', async () => {
228
- // Mock fetch error response
229
- global.fetch = vi.fn().mockResolvedValueOnce({
230
- ok: false,
231
- json: async () => ({
232
- detail: {
233
- code: IntentErrorCode.NO_PATH_FOUND,
234
- message: 'Intent not found',
235
- },
236
- }),
237
- });
238
- const result = await solverService.getStatus(mockStatusRequest);
239
- expect(result.ok).toBe(false);
240
- if (!result.ok) {
241
- expect(result.error).toBeDefined();
242
- }
243
- });
244
- });
245
- describe('createAndSubmitIntent', () => {
246
- const mockCreateIntentParams = {
247
- inputToken: bscEthToken,
248
- outputToken: arbWbtcToken,
249
- inputAmount: BigInt(1000000),
250
- minOutputAmount: BigInt(900000),
251
- deadline: BigInt(0),
252
- allowPartialFill: false,
253
- srcChain: BSC_MAINNET_CHAIN_ID,
254
- dstChain: ARBITRUM_MAINNET_CHAIN_ID,
255
- srcAddress: mockEvmWalletProvider.getWalletAddressBytes(),
256
- dstAddress: mockEvmWalletProvider.getWalletAddressBytes(),
257
- solver: '0x0000000000000000000000000000000000000000',
258
- data: '0x',
259
- };
260
- const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
261
- const mockIntent = {
262
- intentId: BigInt(1),
263
- creator: mockBscSpokeProvider.walletProvider.getWalletAddress(),
264
- inputToken: getHubAssetInfo(mockCreateIntentParams.srcChain, mockCreateIntentParams.inputToken)?.asset ?? '0x',
265
- outputToken: getHubAssetInfo(mockCreateIntentParams.dstChain, mockCreateIntentParams.outputToken)?.asset ?? '0x',
266
- inputAmount: mockCreateIntentParams.inputAmount,
267
- minOutputAmount: mockCreateIntentParams.minOutputAmount,
268
- deadline: mockCreateIntentParams.deadline,
269
- allowPartialFill: mockCreateIntentParams.allowPartialFill,
270
- srcChain: getIntentRelayChainId(mockCreateIntentParams.srcChain),
271
- dstChain: getIntentRelayChainId(mockCreateIntentParams.dstChain),
272
- srcAddress: mockCreateIntentParams.srcAddress,
273
- dstAddress: mockCreateIntentParams.dstAddress,
274
- solver: mockCreateIntentParams.solver,
275
- data: mockCreateIntentParams.data,
276
- feeAmount: feeAmount,
277
- };
278
- const mockPacketData = {
279
- src_chain_id: Number(getIntentRelayChainId(BSC_MAINNET_CHAIN_ID)), // BSC chain ID
280
- src_tx_hash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
281
- src_address: '0x1234567890123456789012345678901234567890',
282
- status: 'executed',
283
- dst_chain_id: Number(getIntentRelayChainId(ARBITRUM_MAINNET_CHAIN_ID)), // Arbitrum chain ID
284
- conn_sn: 1,
285
- dst_address: '0x1234567890123456789012345678901234567890',
286
- dst_tx_hash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
287
- signatures: ['0x1234567890123456789012345678901234567890'],
288
- payload: '0x',
289
- };
290
- it('should successfully create and submit an intent', async () => {
291
- vi.spyOn(solverService, 'createIntent').mockResolvedValueOnce({
292
- ok: true,
293
- value: [mockTxHash, { ...mockIntent, feeAmount: feeAmount }],
294
- });
295
- vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
296
- vi.spyOn(IntentRelayApiService, 'submitTransaction').mockResolvedValueOnce({
297
- success: true,
298
- message: 'Transaction submitted successfully',
299
- });
300
- vi.spyOn(IntentRelayApiService, 'waitUntilIntentExecuted').mockResolvedValueOnce({
301
- ok: true,
302
- value: mockPacketData,
303
- });
304
- vi.spyOn(solverService, 'postExecution').mockResolvedValueOnce({
305
- ok: true,
306
- value: {
307
- answer: 'OK',
308
- intent_hash: mockTxHash,
309
- },
310
- });
311
- const result = await solverService.createAndSubmitIntent(mockCreateIntentParams, mockBscSpokeProvider, mockFee);
312
- expect(result.ok).toBe(true);
313
- if (result.ok) {
314
- expect(result.value).toBeDefined();
315
- expect(result.value[0]).toBeDefined();
316
- expect(result.value[1]).toEqual(mockIntent);
317
- }
318
- expect(solverService['createIntent']).toHaveBeenCalledWith(mockCreateIntentParams, mockBscSpokeProvider, mockFee, false);
319
- expect(solverService['postExecution']).toHaveBeenCalledWith({
320
- intent_tx_hash: mockTxHash,
321
- });
322
- expect(IntentRelayApiService.submitTransaction).toHaveBeenCalled();
323
- });
324
- it('should handle postExecution error', async () => {
325
- vi.spyOn(solverService, 'postExecution').mockResolvedValueOnce({
326
- ok: false,
327
- error: {
328
- detail: {
329
- code: IntentErrorCode.UNKNOWN,
330
- message: 'Post execution failed',
331
- },
332
- },
333
- });
334
- const result = await solverService.createAndSubmitIntent(mockCreateIntentParams, mockBscSpokeProvider, mockFee);
335
- expect(result.ok).toBe(false);
336
- if (!result.ok) {
337
- expect(result.error).toBeDefined();
338
- }
339
- });
340
- it('should handle submitTransaction error', async () => {
341
- vi.spyOn(solverService, 'createIntent').mockResolvedValueOnce({
342
- ok: true,
343
- value: [mockTxHash, { ...mockIntent, feeAmount: feeAmount }],
344
- });
345
- vi.spyOn(IntentRelayApiService, 'submitTransaction').mockResolvedValueOnce({
346
- success: false,
347
- message: 'Transaction submission failed',
348
- });
349
- vi.spyOn(solverService, 'postExecution').mockResolvedValueOnce({
350
- ok: true,
351
- value: {
352
- answer: 'OK',
353
- intent_hash: mockTxHash,
354
- },
355
- });
356
- const result = await solverService.createAndSubmitIntent(mockCreateIntentParams, mockBscSpokeProvider, mockFee);
357
- expect(result.ok).toBe(false);
358
- if (!result.ok) {
359
- expect(result.error).toEqual({
360
- code: 'SUBMIT_TX_FAILED',
361
- data: {
362
- apiUrl: 'https://xcall-relay.nw.iconblockchain.xyz',
363
- payload: {
364
- action: 'submit',
365
- params: {
366
- chain_id: '4',
367
- tx_hash: '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890',
368
- },
369
- },
370
- },
371
- });
372
- }
373
- });
374
- });
375
- describe('createIntent', () => {
376
- const mockCreateIntentParams = {
377
- inputToken: bscEthToken,
378
- outputToken: arbWbtcToken,
379
- inputAmount: BigInt(1000000),
380
- minOutputAmount: BigInt(900000),
381
- deadline: BigInt(0),
382
- allowPartialFill: false,
383
- srcChain: BSC_MAINNET_CHAIN_ID,
384
- dstChain: ARBITRUM_MAINNET_CHAIN_ID,
385
- srcAddress: mockEvmWalletProvider.getWalletAddressBytes(),
386
- dstAddress: mockEvmWalletProvider.getWalletAddressBytes(),
387
- solver: '0x0000000000000000000000000000000000000000',
388
- data: '0x',
389
- };
390
- const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
391
- const [, intent, feeAmount] = EvmSolverService.constructCreateIntentData(mockCreateIntentParams, mockCreatorHubWalletAddress, mockIntentConfig, mockFee);
392
- it('should successfully create an intent for EVM chain', async () => {
393
- vi.spyOn(solverService, 'createIntent').mockResolvedValueOnce({
394
- ok: true,
395
- value: [mockTxHash, { ...intent, feeAmount: feeAmount }],
396
- });
397
- vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockCreatorHubWalletAddress);
398
- const result = await solverService.createIntent(mockCreateIntentParams, mockBscSpokeProvider, mockFee, false);
399
- if (!result.ok) {
400
- throw new Error('Failed to create intent');
401
- }
402
- const [txHash, resultingIntent] = result.value;
403
- expect(txHash).toBeDefined();
404
- expect(txHash).toBe(mockTxHash);
405
- resultingIntent.intentId = intent.intentId;
406
- expect(resultingIntent).toEqual({ ...intent, feeAmount });
407
- });
408
- });
409
- describe('cancelIntent', () => {
410
- const mockCreateIntentParams = {
411
- inputToken: bscEthToken,
412
- outputToken: arbWbtcToken,
413
- inputAmount: BigInt(1000000),
414
- minOutputAmount: BigInt(900000),
415
- deadline: BigInt(0),
416
- allowPartialFill: false,
417
- srcChain: BSC_MAINNET_CHAIN_ID,
418
- dstChain: ARBITRUM_MAINNET_CHAIN_ID,
419
- srcAddress: mockEvmWalletProvider.getWalletAddressBytes(),
420
- dstAddress: mockEvmWalletProvider.getWalletAddressBytes(),
421
- solver: '0x0000000000000000000000000000000000000000',
422
- data: '0x',
423
- };
424
- const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
425
- const [, intent] = EvmSolverService.constructCreateIntentData(mockCreateIntentParams, mockCreatorHubWalletAddress, mockIntentConfig, mockFee);
426
- it('should successfully cancel an intent for EVM chain', async () => {
427
- vi.spyOn(solverService, 'cancelIntent').mockResolvedValueOnce(mockTxHash);
428
- const result = await solverService.cancelIntent(intent, mockBscSpokeProvider, false);
429
- expect(result).toBe(mockTxHash);
430
- });
431
- });
432
- describe('getIntent', () => {
433
- const mockCreateIntentParams = {
434
- inputToken: bscEthToken,
435
- outputToken: arbWbtcToken,
436
- inputAmount: BigInt(1000000),
437
- minOutputAmount: BigInt(900000),
438
- deadline: BigInt(0),
439
- allowPartialFill: false,
440
- srcChain: BSC_MAINNET_CHAIN_ID,
441
- dstChain: ARBITRUM_MAINNET_CHAIN_ID,
442
- srcAddress: mockEvmWalletProvider.getWalletAddressBytes(),
443
- dstAddress: mockEvmWalletProvider.getWalletAddressBytes(),
444
- solver: '0x0000000000000000000000000000000000000000',
445
- data: '0x',
446
- };
447
- const mockTxHash = '0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890';
448
- const mockIntent = {
449
- intentId: BigInt(1),
450
- creator: mockBscSpokeProvider.walletProvider.getWalletAddress(),
451
- inputToken: getHubAssetInfo(mockCreateIntentParams.srcChain, mockCreateIntentParams.inputToken)?.asset ?? '0x',
452
- outputToken: getHubAssetInfo(mockCreateIntentParams.dstChain, mockCreateIntentParams.outputToken)?.asset ?? '0x',
453
- inputAmount: mockCreateIntentParams.inputAmount,
454
- minOutputAmount: mockCreateIntentParams.minOutputAmount,
455
- deadline: mockCreateIntentParams.deadline,
456
- allowPartialFill: mockCreateIntentParams.allowPartialFill,
457
- srcChain: getIntentRelayChainId(mockCreateIntentParams.srcChain),
458
- dstChain: getIntentRelayChainId(mockCreateIntentParams.dstChain),
459
- srcAddress: mockCreateIntentParams.srcAddress,
460
- dstAddress: mockCreateIntentParams.dstAddress,
461
- solver: mockCreateIntentParams.solver,
462
- data: mockCreateIntentParams.data,
463
- };
464
- it('should successfully get an intent for EVM chain', async () => {
465
- vi.spyOn(EvmSolverService, 'getIntent').mockResolvedValueOnce(mockIntent);
466
- const result = await solverService.getIntent(mockTxHash);
467
- expect(result).toEqual(mockIntent);
468
- });
469
- });
470
- describe('getIntentHash', () => {
471
- const mockCreateIntentParams = {
472
- inputToken: bscEthToken,
473
- outputToken: arbWbtcToken,
474
- inputAmount: BigInt(1000000),
475
- minOutputAmount: BigInt(900000),
476
- deadline: BigInt(0),
477
- allowPartialFill: false,
478
- srcChain: BSC_MAINNET_CHAIN_ID,
479
- dstChain: ARBITRUM_MAINNET_CHAIN_ID,
480
- srcAddress: mockEvmWalletProvider.getWalletAddressBytes(),
481
- dstAddress: mockEvmWalletProvider.getWalletAddressBytes(),
482
- solver: '0x0000000000000000000000000000000000000000',
483
- data: '0x',
484
- };
485
- const [, intent] = EvmSolverService.constructCreateIntentData(mockCreateIntentParams, mockCreatorHubWalletAddress, mockIntentConfig, mockFee);
486
- it('should successfully get an intent hash', () => {
487
- vi.spyOn(solverService, 'getIntentHash').mockReturnValueOnce('0x8196c6646c0d811b2ff19ffdf61533ad2d73d724fcd69c77ec243a908364a35e');
488
- const result = solverService.getIntentHash(intent);
489
- expect(result).toBe('0x8196c6646c0d811b2ff19ffdf61533ad2d73d724fcd69c77ec243a908364a35e');
490
- });
491
- });
492
- });
493
- //# sourceMappingURL=SolverService.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolverService.test.js","sourceRoot":"","sources":["../../../src/services/solver/SolverService.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './EvmSolverService.js';
2
- export * from './SolverService.js';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/solver/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './EvmSolverService.js';
2
- export * from './SolverService.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/solver/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -1,67 +0,0 @@
1
- import { type Address, type Hex } from 'viem';
2
- import { CWSpokeProvider } from '../../entities/cosmos/CWSpokeProvider.js';
3
- import type { EvmHubProvider } from '../../entities/index.js';
4
- import { type HubAddress, type PromiseCWTxReturnType } from '../../index.js';
5
- export type CWSpokeDepositParams = {
6
- from: string;
7
- to?: Hex;
8
- token: string;
9
- amount: bigint;
10
- data: Hex;
11
- };
12
- export type TransferToHubParams = {
13
- token: string;
14
- recipient: Address;
15
- amount: string;
16
- data: Hex;
17
- };
18
- export declare class CWSpokeService {
19
- private constructor();
20
- /**
21
- * Deposit tokens to the spoke chain.
22
- * @param {CWSpokeDepositParams} params - The parameters for the deposit, including the user's address, token address, amount, and additional data.
23
- * @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
24
- * @param {EvmHubProvider} hubProvider - The provider for the hub chain.
25
- * @param {boolean} raw - The return type raw or just transaction hash
26
- * @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
27
- */
28
- static deposit<R extends boolean = false>(params: CWSpokeDepositParams, spokeProvider: CWSpokeProvider, hubProvider: EvmHubProvider, raw?: R): PromiseCWTxReturnType<R>;
29
- /**
30
- * Get the balance of the token in the spoke chain.
31
- * @param {Address} token - The address of the token to get the balance of.
32
- * @param {CWSpokeProvider} spokeProvider - The spoke provider.
33
- * @returns {Promise<bigint>} The balance of the token.
34
- */
35
- static getDeposit(token: String, spokeProvider: CWSpokeProvider): Promise<bigint>;
36
- /**
37
- * Calls a contract on the spoke chain using the user's wallet.
38
- * @param {HubAddress} from - The address of the user on the hub chain.
39
- * @param {Hex} payload - The payload to send to the contract.
40
- * @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
41
- * @param {EvmHubProvider} hubProvider - The provider for the hub chain.
42
- * @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
43
- */
44
- static callWallet<R extends boolean = false>(from: HubAddress, payload: Hex, spokeProvider: CWSpokeProvider, hubProvider: EvmHubProvider, raw?: R): PromiseCWTxReturnType<R>;
45
- /**
46
- * Transfers tokens to the hub chain.
47
- * @param {TransferToHubParams} params - The parameters for the transfer, including:
48
- * - {string} token: The address of the token to transfer (use address(0) for native token).
49
- * - {Uint8Array} recipient: The recipient address on the hub chain.
50
- * - {string} amount: The amount to transfer.
51
- * - {Uint8Array} [data=new Uint8Array([])]: Additional data for the transfer.
52
- * @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
53
- * @param {boolean} raw - The return type raw or just transaction hash
54
- * @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
55
- */
56
- private static transfer;
57
- /**
58
- * Sends a message to the hub chain.
59
- * @param {bigint} dstChainId - The chain ID of the hub chain.
60
- * @param {Address} dstAddress - The address on the hub chain.
61
- * @param {Hex} payload - The payload to send.
62
- * @param {CWSpokeProvider} spokeProvider - The provider for the spoke chain.
63
- * @returns {PromiseCWTxReturnType<R>} A promise that resolves to the transaction hash.
64
- */
65
- private static call;
66
- }
67
- //# sourceMappingURL=CWSpokeService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CWSpokeService.d.ts","sourceRoot":"","sources":["../../../src/services/spoke/CWSpokeService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAS,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,qBAAqB,EAAyB,MAAM,gBAAgB,CAAC;AAGpG,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO;IAEP;;;;;;;OAOG;WACiB,OAAO,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EACnD,MAAM,EAAE,oBAAoB,EAC5B,aAAa,EAAE,eAAe,EAC9B,WAAW,EAAE,cAAc,EAC3B,GAAG,CAAC,EAAE,CAAC,GACN,qBAAqB,CAAC,CAAC,CAAC;IAqB3B;;;;;OAKG;WACiB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9F;;;;;;;OAOG;WACiB,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,KAAK,EACtD,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,EACZ,aAAa,EAAE,eAAe,EAC9B,WAAW,EAAE,cAAc,EAC3B,GAAG,CAAC,EAAE,CAAC,GACN,qBAAqB,CAAC,CAAC,CAAC;IAK3B;;;;;;;;;;OAUG;mBACkB,QAAQ;IAS7B;;;;;;;OAOG;mBACkB,IAAI;CAU1B"}