@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,245 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { isMoneyMarketReserveAsset, MoneyMarketService, moneyMarketReserveAssets, EvmHubProvider, getHubChainConfig, SONIC_MAINNET_CHAIN_ID, BSC_MAINNET_CHAIN_ID, EvmSpokeProvider, spokeChainConfig, getSupportedMoneyMarketTokens, EvmWalletAbstraction, SpokeService, } from '../../index.js';
3
+ import * as IntentRelayApiService from '../intentRelay/IntentRelayApiService.js';
4
+ describe('MoneyMarketService', () => {
5
+ const mockEvmWalletProvider = {
6
+ sendTransaction: vi.fn(),
7
+ getWalletAddress: vi.fn().mockReturnValue('0x9999999999999999999999999999999999999999'),
8
+ getWalletAddressBytes: vi.fn().mockReturnValue('0x9999999999999999999999999999999999999999'),
9
+ waitForTransactionReceipt: vi.fn(),
10
+ };
11
+ const mockBscSpokeProvider = new EvmSpokeProvider(mockEvmWalletProvider, spokeChainConfig[BSC_MAINNET_CHAIN_ID]);
12
+ const supportedTokens = getSupportedMoneyMarketTokens(BSC_MAINNET_CHAIN_ID);
13
+ const hubConfig = {
14
+ hubRpcUrl: 'https://rpc.soniclabs.com',
15
+ chainConfig: getHubChainConfig(SONIC_MAINNET_CHAIN_ID),
16
+ };
17
+ const moneyMarket = new MoneyMarketService({
18
+ partnerFee: {
19
+ address: '0x9999999999999999999999999999999999999999',
20
+ percentage: 100,
21
+ },
22
+ }, new EvmHubProvider(hubConfig));
23
+ it('should have supported tokens', () => {
24
+ expect(supportedTokens.length).toBeGreaterThan(0);
25
+ });
26
+ it('should supply a token', async () => {
27
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
28
+ vi.spyOn(moneyMarket, 'supplyData').mockReturnValueOnce('0x');
29
+ vi.spyOn(SpokeService, 'deposit').mockResolvedValueOnce('0x');
30
+ const result = await moneyMarket.supply({
31
+ token: supportedTokens[0]?.address,
32
+ amount: 1000000000000000000n,
33
+ }, mockBscSpokeProvider, false);
34
+ expect(result.ok).toBe(true);
35
+ if (result.ok) {
36
+ expect(result.value).toBe('0x');
37
+ }
38
+ });
39
+ it('should supply a token raw', async () => {
40
+ const rawEvmTx = {
41
+ from: mockEvmWalletProvider.getWalletAddressBytes(),
42
+ to: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
43
+ value: 1000000000000000000n,
44
+ data: '0xc6b4180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001499999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
45
+ };
46
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
47
+ vi.spyOn(moneyMarket, 'supplyData').mockReturnValueOnce('0x');
48
+ const result = await moneyMarket.supply({
49
+ token: supportedTokens[0]?.address,
50
+ amount: rawEvmTx.value,
51
+ }, mockBscSpokeProvider, true);
52
+ expect(result.ok).toBe(true);
53
+ if (result.ok) {
54
+ expect(result.value).toEqual(rawEvmTx);
55
+ }
56
+ });
57
+ it('should supply a token and submit', async () => {
58
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
59
+ vi.spyOn(moneyMarket, 'supply').mockReturnValueOnce({
60
+ ok: true,
61
+ value: '0x',
62
+ });
63
+ vi.spyOn(IntentRelayApiService, 'relayTxAndWaitPacket').mockResolvedValueOnce({
64
+ ok: true,
65
+ value: {
66
+ dst_tx_hash: '0x',
67
+ },
68
+ });
69
+ const result = await moneyMarket.supplyAndSubmit({
70
+ token: supportedTokens[0]?.address,
71
+ amount: 1000000000000000000n,
72
+ }, mockBscSpokeProvider);
73
+ expect(result.ok).toBe(true);
74
+ if (result.ok) {
75
+ expect(result.value).toEqual(['0x', '0x']);
76
+ }
77
+ });
78
+ it('should borrow a token', async () => {
79
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
80
+ vi.spyOn(moneyMarket, 'borrowData').mockReturnValueOnce('0x');
81
+ vi.spyOn(SpokeService, 'callWallet').mockResolvedValueOnce('0x');
82
+ const result = await moneyMarket.borrow({
83
+ token: supportedTokens[0]?.address,
84
+ amount: 1000000000000000000n,
85
+ }, mockBscSpokeProvider, false);
86
+ expect(result.ok).toBe(true);
87
+ if (result.ok) {
88
+ expect(result.value).toBe('0x');
89
+ }
90
+ });
91
+ it('should borrow a token raw', async () => {
92
+ const rawEvmTx = {
93
+ from: mockEvmWalletProvider.getWalletAddressBytes(),
94
+ to: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
95
+ value: 1000000000000000000n,
96
+ data: '0xc6b4180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001499999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
97
+ };
98
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
99
+ vi.spyOn(moneyMarket, 'borrowData').mockReturnValueOnce('0x');
100
+ vi.spyOn(SpokeService, 'callWallet').mockResolvedValueOnce(rawEvmTx);
101
+ const result = await moneyMarket.borrow({
102
+ token: supportedTokens[0]?.address,
103
+ amount: rawEvmTx.value,
104
+ }, mockBscSpokeProvider, true);
105
+ expect(result.ok).toBe(true);
106
+ if (result.ok) {
107
+ expect(result.value).toEqual(rawEvmTx);
108
+ }
109
+ });
110
+ it('should borrow a token and submit', async () => {
111
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
112
+ vi.spyOn(moneyMarket, 'borrow').mockReturnValueOnce({
113
+ ok: true,
114
+ value: '0x',
115
+ });
116
+ vi.spyOn(IntentRelayApiService, 'relayTxAndWaitPacket').mockResolvedValueOnce({
117
+ ok: true,
118
+ value: {
119
+ dst_tx_hash: '0x',
120
+ },
121
+ });
122
+ const result = await moneyMarket.borrowAndSubmit({
123
+ token: supportedTokens[0]?.address,
124
+ amount: 1000000000000000000n,
125
+ }, mockBscSpokeProvider);
126
+ expect(result.ok).toBe(true);
127
+ if (result.ok) {
128
+ expect(result.value).toEqual(['0x', '0x']);
129
+ }
130
+ });
131
+ it('should withdraw a token', async () => {
132
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
133
+ vi.spyOn(moneyMarket, 'withdrawData').mockReturnValueOnce('0x');
134
+ vi.spyOn(SpokeService, 'callWallet').mockResolvedValueOnce('0x');
135
+ const result = await moneyMarket.withdraw({
136
+ token: supportedTokens[0]?.address,
137
+ amount: 1000000000000000000n,
138
+ }, mockBscSpokeProvider, false);
139
+ expect(result.ok).toBe(true);
140
+ if (result.ok) {
141
+ expect(result.value).toBe('0x');
142
+ }
143
+ });
144
+ it('should withdraw a token raw', async () => {
145
+ const rawEvmTx = {
146
+ from: mockEvmWalletProvider.getWalletAddressBytes(),
147
+ to: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
148
+ value: 1000000000000000000n,
149
+ data: '0xc6b4180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001499999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
150
+ };
151
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
152
+ vi.spyOn(moneyMarket, 'withdrawData').mockReturnValueOnce('0x');
153
+ vi.spyOn(SpokeService, 'callWallet').mockResolvedValueOnce(rawEvmTx);
154
+ const result = await moneyMarket.withdraw({
155
+ token: supportedTokens[0]?.address,
156
+ amount: rawEvmTx.value,
157
+ }, mockBscSpokeProvider, true);
158
+ expect(result.ok).toBe(true);
159
+ if (result.ok) {
160
+ expect(result.value).toEqual(rawEvmTx);
161
+ }
162
+ });
163
+ it('should withdraw a token and submit', async () => {
164
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
165
+ vi.spyOn(moneyMarket, 'withdraw').mockReturnValueOnce({
166
+ ok: true,
167
+ value: '0x',
168
+ });
169
+ vi.spyOn(IntentRelayApiService, 'relayTxAndWaitPacket').mockResolvedValueOnce({
170
+ ok: true,
171
+ value: {
172
+ dst_tx_hash: '0x',
173
+ },
174
+ });
175
+ const result = await moneyMarket.withdrawAndSubmit({
176
+ token: supportedTokens[0]?.address,
177
+ amount: 1000000000000000000n,
178
+ }, mockBscSpokeProvider);
179
+ expect(result.ok).toBe(true);
180
+ if (result.ok) {
181
+ expect(result.value).toEqual(['0x', '0x']);
182
+ }
183
+ });
184
+ it('should repay a token', async () => {
185
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
186
+ vi.spyOn(moneyMarket, 'repayData').mockReturnValueOnce('0x');
187
+ vi.spyOn(SpokeService, 'deposit').mockResolvedValueOnce('0x');
188
+ const result = await moneyMarket.repay({
189
+ token: supportedTokens[0]?.address,
190
+ amount: 1000000000000000000n,
191
+ }, mockBscSpokeProvider, false);
192
+ expect(result.ok).toBe(true);
193
+ if (result.ok) {
194
+ expect(result.value).toBe('0x');
195
+ }
196
+ });
197
+ it('should repay a token raw', async () => {
198
+ const rawEvmTx = {
199
+ from: mockEvmWalletProvider.getWalletAddressBytes(),
200
+ to: '0x348BE44F63A458be9C1b13D6fD8e99048F297Bc3',
201
+ value: 1000000000000000000n,
202
+ data: '0xc6b4180b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001499999999999999999999999999999999999999990000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
203
+ };
204
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
205
+ vi.spyOn(moneyMarket, 'repayData').mockReturnValueOnce('0x');
206
+ vi.spyOn(SpokeService, 'deposit').mockResolvedValueOnce(rawEvmTx);
207
+ const result = await moneyMarket.repay({
208
+ token: supportedTokens[0]?.address,
209
+ amount: rawEvmTx.value,
210
+ }, mockBscSpokeProvider, true);
211
+ expect(result.ok).toBe(true);
212
+ if (result.ok) {
213
+ expect(result.value).toEqual(rawEvmTx);
214
+ }
215
+ });
216
+ it('should repay a token and submit', async () => {
217
+ vi.spyOn(EvmWalletAbstraction, 'getUserHubWalletAddress').mockResolvedValueOnce(mockEvmWalletProvider.getWalletAddressBytes());
218
+ vi.spyOn(moneyMarket, 'repay').mockReturnValueOnce({
219
+ ok: true,
220
+ value: '0x',
221
+ });
222
+ vi.spyOn(IntentRelayApiService, 'relayTxAndWaitPacket').mockResolvedValueOnce({
223
+ ok: true,
224
+ value: {
225
+ dst_tx_hash: '0x',
226
+ },
227
+ });
228
+ const result = await moneyMarket.repayAndSubmit({
229
+ token: supportedTokens[0]?.address,
230
+ amount: 1000000000000000000n,
231
+ }, mockBscSpokeProvider);
232
+ expect(result.ok).toBe(true);
233
+ if (result.ok) {
234
+ expect(result.value).toEqual(['0x', '0x']);
235
+ }
236
+ });
237
+ it('should be defined', () => {
238
+ expect(MoneyMarketService).toBeDefined();
239
+ const testAsset = moneyMarketReserveAssets[0];
240
+ const wrongAsset = '0x0000000000000000000000000000000000000000';
241
+ expect(isMoneyMarketReserveAsset(testAsset)).toBe(true);
242
+ expect(isMoneyMarketReserveAsset(wrongAsset)).toBe(false);
243
+ });
244
+ });
245
+ //# sourceMappingURL=MoneyMarketService.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoneyMarketService.test.js","sourceRoot":"","sources":["../../../src/services/moneyMarket/MoneyMarketService.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EAEd,iBAAiB,EACjB,sBAAsB,EAEtB,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,6BAA6B,EAC7B,oBAAoB,EACpB,YAAY,GAIb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,qBAAqB,MAAM,yCAAyC,CAAC;AAEjF,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,qBAAqB,GAAG;QAC5B,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,gBAAgB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,4CAA4C,CAAC;QACvF,qBAAqB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,4CAA4C,CAAC;QAC5F,yBAAyB,EAAE,EAAE,CAAC,EAAE,EAAE;KACF,CAAC;IAEnC,MAAM,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAEjH,MAAM,eAAe,GAAG,6BAA6B,CAAC,oBAAoB,CAAC,CAAC;IAE5E,MAAM,SAAS,GAAG;QAChB,SAAS,EAAE,2BAA2B;QACtC,WAAW,EAAE,iBAAiB,CAAC,sBAAsB,CAAC;KACxB,CAAC;IAEjC,MAAM,WAAW,GAAG,IAAI,kBAAkB,CACxC;QACE,UAAU,EAAE;YACV,OAAO,EAAE,4CAA4C;YACrD,UAAU,EAAE,GAAG;SAChB;KACF,EACD,IAAI,cAAc,CAAC,SAAS,CAAC,CAC9B,CAAC;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9D,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CACrC;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,oBAAoB;SAC7B,EACD,oBAAoB,EACpB,KAAK,CACN,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,qBAAqB,CAAC,qBAAqB,EAAE;YACnD,EAAE,EAAE,4CAA4C;YAChD,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,4cAA4c;SACvb,CAAC;QAE9B,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CACrC;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,QAAQ,CAAC,KAAK;SACvB,EACD,oBAAoB,EACpB,IAAI,CACL,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,mBAAmB,CAAC;YAClD,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,qBAAqB,CAAC;YAC5E,EAAE,EAAE,IAAI;YACR,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;aACJ;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,eAAe,CAC9C;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,oBAAoB;SAC7B,EACD,oBAAoB,CACrB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;QACrC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9D,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CACrC;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,oBAAoB;SAC7B,EACD,oBAAoB,EACpB,KAAK,CACN,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,qBAAqB,CAAC,qBAAqB,EAAE;YACnD,EAAE,EAAE,4CAA4C;YAChD,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,4cAA4c;SACvb,CAAC;QAE9B,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9D,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,CACrC;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,QAAQ,CAAC,KAAK;SACvB,EACD,oBAAoB,EACpB,IAAI,CACL,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,mBAAmB,CAAC;YAClD,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,qBAAqB,CAAC;YAC5E,EAAE,EAAE,IAAI;YACR,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;aACJ;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,eAAe,CAC9C;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,oBAAoB;SAC7B,EACD,oBAAoB,CACrB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CACvC;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,oBAAoB;SAC7B,EACD,oBAAoB,EACpB,KAAK,CACN,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,qBAAqB,CAAC,qBAAqB,EAAE;YACnD,EAAE,EAAE,4CAA4C;YAChD,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,4cAA4c;SACvb,CAAC;QAE9B,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAChE,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAErE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CACvC;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,QAAQ,CAAC,KAAK;SACvB,EACD,oBAAoB,EACpB,IAAI,CACL,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,mBAAmB,CAAC;YACpD,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,qBAAqB,CAAC;YAC5E,EAAE,EAAE,IAAI;YACR,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;aACJ;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,iBAAiB,CAChD;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,oBAAoB;SAC7B,EACD,oBAAoB,CACrB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7D,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CACpC;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,oBAAoB;SAC7B,EACD,oBAAoB,EACpB,KAAK,CACN,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,qBAAqB,CAAC,qBAAqB,EAAE;YACnD,EAAE,EAAE,4CAA4C;YAChD,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,4cAA4c;SACvb,CAAC;QAE9B,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7D,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CACpC;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,QAAQ,CAAC,KAAK;SACvB,EACD,oBAAoB,EACpB,IAAI,CACL,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC,qBAAqB,CAC7E,qBAAqB,CAAC,qBAAqB,EAAE,CAC9C,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,mBAAmB,CAAC;YACjD,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC,qBAAqB,CAAC;YAC5E,EAAE,EAAE,IAAI;YACR,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;aACJ;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,CAC7C;YACE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,OAAkB;YAC7C,MAAM,EAAE,oBAAoB;SAC7B,EACD,oBAAoB,CACrB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,4CAA4C,CAAC;QAEhE,MAAM,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './MoneyMarketService.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/moneyMarket/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './MoneyMarketService.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/moneyMarket/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { type Address } from 'viem';
2
+ import type { EvmContractCall, EvmRawTransactionReceipt, Result } from '../../types.js';
3
+ import type { EvmSpokeProvider } from '../../entities/Providers.js';
4
+ export declare class Erc20Service {
5
+ private constructor();
6
+ /**
7
+ * Check if spender has enough ERC20 allowance for given amount
8
+ * @param token - ERC20 token address
9
+ * @param amount - Amount to check allowance for
10
+ * @param from - User wallet address
11
+ * @param to - Address to check allowance for
12
+ * @param spokeProvider - EVM Spoke provider
13
+ * @return - True if spender is allowed to spend amount on behalf of owner
14
+ */
15
+ static isAllowanceValid(token: Address, amount: bigint, owner: Address, spender: Address, spokeProvider: EvmSpokeProvider): Promise<Result<boolean>>;
16
+ /**
17
+ * Approve ERC20 amount spending
18
+ * @param token - ERC20 token address
19
+ * @param amount - Amount to approve
20
+ * @param address - Address to approve spending for
21
+ * @param provider - EVM Provider
22
+ */
23
+ static approve(token: Address, amount: bigint, address: Address, spokeProvider: EvmSpokeProvider): Promise<Result<EvmRawTransactionReceipt>>;
24
+ /**
25
+ * Encodes a transfer transaction for a token.
26
+ * @param token - The address of the token.
27
+ * @param to - The address to transfer the token to.
28
+ * @param amount - The amount of the token to transfer.
29
+ * @returns The encoded contract call.
30
+ */
31
+ static encodeTansfer(token: Address, to: Address, amount: bigint): EvmContractCall;
32
+ /**
33
+ * Encodes an approval transaction for a token.
34
+ * @param token - The address of the token.
35
+ * @param to - The address to approve the token to.
36
+ * @param amount - The amount of the token to approve.
37
+ * @returns The encoded contract call.
38
+ */
39
+ static encodeApprove(token: Address, to: Address, amount: bigint): EvmContractCall;
40
+ }
41
+ //# sourceMappingURL=Erc20Service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Erc20Service.d.ts","sourceRoot":"","sources":["../../../src/services/shared/Erc20Service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,qBAAa,YAAY;IACvB,OAAO;IAEP;;;;;;;;OAQG;WACU,gBAAgB,CAC3B,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IA4B3B;;;;;;OAMG;WACU,OAAO,CAClB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,gBAAgB,GAC9B,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAyB5C;;;;;;OAMG;WACW,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe;IAYzF;;;;;;OAMG;WACW,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe;CAW1F"}
@@ -0,0 +1,107 @@
1
+ import { encodeFunctionData, erc20Abi } from 'viem';
2
+ export class Erc20Service {
3
+ constructor() { }
4
+ /**
5
+ * Check if spender has enough ERC20 allowance for given amount
6
+ * @param token - ERC20 token address
7
+ * @param amount - Amount to check allowance for
8
+ * @param from - User wallet address
9
+ * @param to - Address to check allowance for
10
+ * @param spokeProvider - EVM Spoke provider
11
+ * @return - True if spender is allowed to spend amount on behalf of owner
12
+ */
13
+ static async isAllowanceValid(token, amount, owner, spender, spokeProvider) {
14
+ try {
15
+ if (token.toLowerCase() === spokeProvider.chainConfig.nativeToken.toLowerCase()) {
16
+ return {
17
+ ok: true,
18
+ value: true,
19
+ };
20
+ }
21
+ const allowedAmount = await spokeProvider.publicClient.readContract({
22
+ address: token,
23
+ abi: erc20Abi,
24
+ functionName: 'allowance',
25
+ args: [owner, spender],
26
+ });
27
+ return {
28
+ ok: true,
29
+ value: allowedAmount >= amount,
30
+ };
31
+ }
32
+ catch (e) {
33
+ return {
34
+ ok: false,
35
+ error: e,
36
+ };
37
+ }
38
+ }
39
+ /**
40
+ * Approve ERC20 amount spending
41
+ * @param token - ERC20 token address
42
+ * @param amount - Amount to approve
43
+ * @param address - Address to approve spending for
44
+ * @param provider - EVM Provider
45
+ */
46
+ static async approve(token, amount, address, spokeProvider) {
47
+ try {
48
+ const hash = await spokeProvider.walletProvider.sendTransaction({
49
+ from: spokeProvider.walletProvider.getWalletAddress(),
50
+ to: token,
51
+ value: 0n,
52
+ data: encodeFunctionData({
53
+ abi: erc20Abi,
54
+ functionName: 'approve',
55
+ args: [address, amount],
56
+ }),
57
+ });
58
+ return {
59
+ ok: true,
60
+ value: await spokeProvider.walletProvider.waitForTransactionReceipt(hash),
61
+ };
62
+ }
63
+ catch (e) {
64
+ return {
65
+ ok: false,
66
+ error: e,
67
+ };
68
+ }
69
+ }
70
+ /**
71
+ * Encodes a transfer transaction for a token.
72
+ * @param token - The address of the token.
73
+ * @param to - The address to transfer the token to.
74
+ * @param amount - The amount of the token to transfer.
75
+ * @returns The encoded contract call.
76
+ */
77
+ static encodeTansfer(token, to, amount) {
78
+ return {
79
+ address: token,
80
+ value: 0n,
81
+ data: encodeFunctionData({
82
+ abi: erc20Abi,
83
+ functionName: 'transfer',
84
+ args: [to, amount],
85
+ }),
86
+ };
87
+ }
88
+ /**
89
+ * Encodes an approval transaction for a token.
90
+ * @param token - The address of the token.
91
+ * @param to - The address to approve the token to.
92
+ * @param amount - The amount of the token to approve.
93
+ * @returns The encoded contract call.
94
+ */
95
+ static encodeApprove(token, to, amount) {
96
+ return {
97
+ address: token,
98
+ value: 0n,
99
+ data: encodeFunctionData({
100
+ abi: erc20Abi,
101
+ functionName: 'approve',
102
+ args: [to, amount],
103
+ }),
104
+ };
105
+ }
106
+ }
107
+ //# sourceMappingURL=Erc20Service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Erc20Service.js","sourceRoot":"","sources":["../../../src/services/shared/Erc20Service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAgB,MAAM,MAAM,CAAC;AAIlE,MAAM,OAAO,YAAY;IACvB,gBAAuB,CAAC;IAExB;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,KAAc,EACd,MAAc,EACd,KAAc,EACd,OAAgB,EAChB,aAA+B;QAE/B,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChF,OAAO;oBACL,EAAE,EAAE,IAAI;oBACR,KAAK,EAAE,IAAI;iBACZ,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,YAAY,CAAC;gBAClE,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;aACvB,CAAC,CAAC;YAEH,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,aAAa,IAAI,MAAM;aAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAClB,KAAc,EACd,MAAc,EACd,OAAgB,EAChB,aAA+B;QAE/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,cAAc,CAAC,eAAe,CAAC;gBAC9D,IAAI,EAAE,aAAa,CAAC,cAAc,CAAC,gBAAgB,EAAE;gBACrD,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,EAAE;gBACT,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;iBACxB,CAAC;aACH,CAAC,CAAC;YAEH,OAAO;gBACL,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,MAAM,aAAa,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC;aAC1E,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,aAAa,CAAC,KAAc,EAAE,EAAW,EAAE,MAAc;QACrE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,kBAAkB,CAAC;gBACvB,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,aAAa,CAAC,KAAc,EAAE,EAAW,EAAE,MAAc;QACrE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,kBAAkB,CAAC;gBACvB,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC;aACnB,CAAC;SACH,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './Erc20Service.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './Erc20Service.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,125 @@
1
+ import { type Address, type GetLogsReturnType } from 'viem';
2
+ import { type EvmContractCall, type EvmHubProvider, type Hash, type Hex, type PartnerFee, type SolverConfig } from '../../index.js';
3
+ import { type CreateIntentParams, type Intent } from '../index.js';
4
+ export declare const IntentCreatedEventAbi: {
5
+ readonly type: "event";
6
+ readonly name: "IntentCreated";
7
+ readonly inputs: readonly [{
8
+ readonly name: "intentHash";
9
+ readonly type: "bytes32";
10
+ readonly indexed: false;
11
+ readonly internalType: "bytes32";
12
+ }, {
13
+ readonly name: "intent";
14
+ readonly type: "tuple";
15
+ readonly indexed: false;
16
+ readonly internalType: "struct Intents.Intent";
17
+ readonly components: readonly [{
18
+ readonly name: "intentId";
19
+ readonly type: "uint256";
20
+ readonly internalType: "uint256";
21
+ }, {
22
+ readonly name: "creator";
23
+ readonly type: "address";
24
+ readonly internalType: "address";
25
+ }, {
26
+ readonly name: "inputToken";
27
+ readonly type: "address";
28
+ readonly internalType: "address";
29
+ }, {
30
+ readonly name: "outputToken";
31
+ readonly type: "address";
32
+ readonly internalType: "address";
33
+ }, {
34
+ readonly name: "inputAmount";
35
+ readonly type: "uint256";
36
+ readonly internalType: "uint256";
37
+ }, {
38
+ readonly name: "minOutputAmount";
39
+ readonly type: "uint256";
40
+ readonly internalType: "uint256";
41
+ }, {
42
+ readonly name: "deadline";
43
+ readonly type: "uint256";
44
+ readonly internalType: "uint256";
45
+ }, {
46
+ readonly name: "allowPartialFill";
47
+ readonly type: "bool";
48
+ readonly internalType: "bool";
49
+ }, {
50
+ readonly name: "srcChain";
51
+ readonly type: "uint256";
52
+ readonly internalType: "uint256";
53
+ }, {
54
+ readonly name: "dstChain";
55
+ readonly type: "uint256";
56
+ readonly internalType: "uint256";
57
+ }, {
58
+ readonly name: "srcAddress";
59
+ readonly type: "bytes";
60
+ readonly internalType: "bytes";
61
+ }, {
62
+ readonly name: "dstAddress";
63
+ readonly type: "bytes";
64
+ readonly internalType: "bytes";
65
+ }, {
66
+ readonly name: "solver";
67
+ readonly type: "address";
68
+ readonly internalType: "address";
69
+ }, {
70
+ readonly name: "data";
71
+ readonly type: "bytes";
72
+ readonly internalType: "bytes";
73
+ }];
74
+ }];
75
+ readonly anonymous: false;
76
+ };
77
+ export type IntentCreatedEventLog = GetLogsReturnType<typeof IntentCreatedEventAbi>[number];
78
+ export declare class EvmSolverService {
79
+ private constructor();
80
+ /**
81
+ * Constructs the create intent data for EVM Hub chain
82
+ * @param {CreateIntentParams} createIntentParams - The create intent parameters
83
+ * @param {Address} creatorHubWalletAddress - The creator hub wallet address
84
+ * @param {SolverConfig} solverConfig - The intent configuration
85
+ * @param {PartnerFee} fee - The partner fee configuration
86
+ * @returns {Promise<[Hex, Intent, bigint]>} The encoded contract call, intent and fee amount
87
+ */
88
+ static constructCreateIntentData(createIntentParams: CreateIntentParams, creatorHubWalletAddress: Address, solverConfig: SolverConfig, fee: PartnerFee | undefined): [Hex, Intent, bigint];
89
+ /**
90
+ * Creates encoded fee data for an intent
91
+ * @param fee The partner fee configuration
92
+ * @param inputAmount The input amount to calculate percentage-based fee from
93
+ * @returns A tuple containing [encoded fee data, fee amount]. Fee amount will be 0n if no fee.
94
+ */
95
+ static createIntentFeeData(fee: PartnerFee | undefined, inputAmount: bigint): [Hex, bigint];
96
+ /**
97
+ * Gets an intent from a transaction hash
98
+ * @param {Hash} txHash - The transaction hash
99
+ * @param {SolverConfig} solverConfig - The solver configuration
100
+ * @param {EvmHubProvider} hubProvider - The EVM hub provider
101
+ * @returns {Promise<Intent>} The intent
102
+ */
103
+ static getIntent(txHash: Hash, solverConfig: SolverConfig, hubProvider: EvmHubProvider): Promise<Intent>;
104
+ /**
105
+ * Gets the keccak256 hash of an intent. Hash serves as the intent id on Hub chain.
106
+ * @param {Intent} intent - The intent
107
+ * @returns {Hex} The keccak256 hash of the intent
108
+ */
109
+ static getIntentHash(intent: Intent): Hex;
110
+ /**
111
+ * Encodes a createIntent transaction
112
+ * @param {Intent} intent - The intent to create
113
+ * @param {Address} intentsContract - The address of the intents contract
114
+ * @returns {EvmContractCall} The encoded contract call
115
+ */
116
+ static encodeCreateIntent(intent: Intent, intentsContract: Address): EvmContractCall;
117
+ /**
118
+ * Encodes a cancelIntent transaction
119
+ * @param {Intent} intent - The intent to cancel
120
+ * @param {Address} intentsContract - The address of the intents contract
121
+ * @returns {EvmContractCall} The encoded contract call
122
+ */
123
+ static encodeCancelIntent(intent: Intent, intentsContract: Address): EvmContractCall;
124
+ }
125
+ //# sourceMappingURL=EvmSolverService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EvmSolverService.d.ts","sourceRoot":"","sources":["../../../src/services/solver/EvmSolverService.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAOvB,MAAM,MAAM,CAAC;AACd,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,IAAI,EACT,KAAK,GAAG,EAER,KAAK,UAAU,EACf,KAAK,YAAY,EASlB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,kBAAkB,EAGvB,KAAK,MAAM,EAGZ,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAyD,CAAC;AAC5F,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5F,qBAAa,gBAAgB;IAC3B,OAAO;IAEP;;;;;;;OAOG;WACW,yBAAyB,CACrC,kBAAkB,EAAE,kBAAkB,EACtC,uBAAuB,EAAE,OAAO,EAChC,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,UAAU,GAAG,SAAS,GAC1B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC;IAmCxB;;;;;OAKG;WACW,mBAAmB,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;IA6ClG;;;;;;OAMG;WACiB,SAAS,CAC3B,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,MAAM,CAAC;IAyClB;;;;OAIG;WACW,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG;IAIhD;;;;;OAKG;WACW,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,eAAe;IAY3F;;;;;OAKG;WACW,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,eAAe;CAW5F"}