@townsq/mm-sdk 1.0.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 (390) hide show
  1. package/README.md +95 -0
  2. package/dist/chains/evm/common/constant/abi/arbitrum-node-interface-abi.d.ts +25 -0
  3. package/dist/chains/evm/common/constant/abi/arbitrum-node-interface-abi.js +18 -0
  4. package/dist/chains/evm/common/constant/abi/arbitrum-node-interface-abi.js.map +1 -0
  5. package/dist/chains/evm/common/constant/abi/bridge-router-abi.d.ts +1030 -0
  6. package/dist/chains/evm/common/constant/abi/bridge-router-abi.js +794 -0
  7. package/dist/chains/evm/common/constant/abi/bridge-router-abi.js.map +1 -0
  8. package/dist/chains/evm/common/constant/abi/ccip-data-adapter-abi.d.ts +796 -0
  9. package/dist/chains/evm/common/constant/abi/ccip-data-adapter-abi.js +622 -0
  10. package/dist/chains/evm/common/constant/abi/ccip-data-adapter-abi.js.map +1 -0
  11. package/dist/chains/evm/common/constant/abi/erc-20-abi.d.ts +235 -0
  12. package/dist/chains/evm/common/constant/abi/erc-20-abi.js +157 -0
  13. package/dist/chains/evm/common/constant/abi/erc-20-abi.js.map +1 -0
  14. package/dist/chains/evm/common/constant/abi/wormhole-data-adapter-abi.d.ts +821 -0
  15. package/dist/chains/evm/common/constant/abi/wormhole-data-adapter-abi.js +645 -0
  16. package/dist/chains/evm/common/constant/abi/wormhole-data-adapter-abi.js.map +1 -0
  17. package/dist/chains/evm/common/constant/abi/wormhole-relayer-abi.d.ts +783 -0
  18. package/dist/chains/evm/common/constant/abi/wormhole-relayer-abi.js +501 -0
  19. package/dist/chains/evm/common/constant/abi/wormhole-relayer-abi.js.map +1 -0
  20. package/dist/chains/evm/common/constant/chain.d.ts +128 -0
  21. package/dist/chains/evm/common/constant/chain.js +62 -0
  22. package/dist/chains/evm/common/constant/chain.js.map +1 -0
  23. package/dist/chains/evm/common/constant/contract.d.ts +9 -0
  24. package/dist/chains/evm/common/constant/contract.js +13 -0
  25. package/dist/chains/evm/common/constant/contract.js.map +1 -0
  26. package/dist/chains/evm/common/constant/tokens.d.ts +6 -0
  27. package/dist/chains/evm/common/constant/tokens.js +21 -0
  28. package/dist/chains/evm/common/constant/tokens.js.map +1 -0
  29. package/dist/chains/evm/common/types/chain.d.ts +9 -0
  30. package/dist/chains/evm/common/types/chain.js +2 -0
  31. package/dist/chains/evm/common/types/chain.js.map +1 -0
  32. package/dist/chains/evm/common/types/contract.d.ts +8 -0
  33. package/dist/chains/evm/common/types/contract.js +2 -0
  34. package/dist/chains/evm/common/types/contract.js.map +1 -0
  35. package/dist/chains/evm/common/types/gmp.d.ts +37 -0
  36. package/dist/chains/evm/common/types/gmp.js +2 -0
  37. package/dist/chains/evm/common/types/gmp.js.map +1 -0
  38. package/dist/chains/evm/common/types/module.d.ts +90 -0
  39. package/dist/chains/evm/common/types/module.js +2 -0
  40. package/dist/chains/evm/common/types/module.js.map +1 -0
  41. package/dist/chains/evm/common/types/token.d.ts +28 -0
  42. package/dist/chains/evm/common/types/token.js +2 -0
  43. package/dist/chains/evm/common/types/token.js.map +1 -0
  44. package/dist/chains/evm/common/utils/chain.d.ts +7 -0
  45. package/dist/chains/evm/common/utils/chain.js +24 -0
  46. package/dist/chains/evm/common/utils/chain.js.map +1 -0
  47. package/dist/chains/evm/common/utils/contract.d.ts +7387 -0
  48. package/dist/chains/evm/common/utils/contract.js +67 -0
  49. package/dist/chains/evm/common/utils/contract.js.map +1 -0
  50. package/dist/chains/evm/common/utils/gmp.d.ts +7 -0
  51. package/dist/chains/evm/common/utils/gmp.js +32 -0
  52. package/dist/chains/evm/common/utils/gmp.js.map +1 -0
  53. package/dist/chains/evm/common/utils/message.d.ts +21 -0
  54. package/dist/chains/evm/common/utils/message.js +426 -0
  55. package/dist/chains/evm/common/utils/message.js.map +1 -0
  56. package/dist/chains/evm/common/utils/provider.d.ts +5 -0
  57. package/dist/chains/evm/common/utils/provider.js +24 -0
  58. package/dist/chains/evm/common/utils/provider.js.map +1 -0
  59. package/dist/chains/evm/common/utils/tokens.d.ts +11 -0
  60. package/dist/chains/evm/common/utils/tokens.js +58 -0
  61. package/dist/chains/evm/common/utils/tokens.js.map +1 -0
  62. package/dist/chains/evm/hub/constants/abi/account-manager-abi.d.ts +945 -0
  63. package/dist/chains/evm/hub/constants/abi/account-manager-abi.js +709 -0
  64. package/dist/chains/evm/hub/constants/abi/account-manager-abi.js.map +1 -0
  65. package/dist/chains/evm/hub/constants/abi/bridge-router-hub-abi.d.ts +1062 -0
  66. package/dist/chains/evm/hub/constants/abi/bridge-router-hub-abi.js +816 -0
  67. package/dist/chains/evm/hub/constants/abi/bridge-router-hub-abi.js.map +1 -0
  68. package/dist/chains/evm/hub/constants/abi/hub-abi.d.ts +344 -0
  69. package/dist/chains/evm/hub/constants/abi/hub-abi.js +229 -0
  70. package/dist/chains/evm/hub/constants/abi/hub-abi.js.map +1 -0
  71. package/dist/chains/evm/hub/constants/abi/hub-pool-abi.d.ts +1999 -0
  72. package/dist/chains/evm/hub/constants/abi/hub-pool-abi.js +1558 -0
  73. package/dist/chains/evm/hub/constants/abi/hub-pool-abi.js.map +1 -0
  74. package/dist/chains/evm/hub/constants/abi/hub-rewards-v1-abi.d.ts +850 -0
  75. package/dist/chains/evm/hub/constants/abi/hub-rewards-v1-abi.js +649 -0
  76. package/dist/chains/evm/hub/constants/abi/hub-rewards-v1-abi.js.map +1 -0
  77. package/dist/chains/evm/hub/constants/abi/hub-rewards-v2-abi.d.ts +1213 -0
  78. package/dist/chains/evm/hub/constants/abi/hub-rewards-v2-abi.js +890 -0
  79. package/dist/chains/evm/hub/constants/abi/hub-rewards-v2-abi.js.map +1 -0
  80. package/dist/chains/evm/hub/constants/abi/loan-manager-abi.d.ts +1573 -0
  81. package/dist/chains/evm/hub/constants/abi/loan-manager-abi.js +1055 -0
  82. package/dist/chains/evm/hub/constants/abi/loan-manager-abi.js.map +1 -0
  83. package/dist/chains/evm/hub/constants/abi/node-manager-abi.d.ts +269 -0
  84. package/dist/chains/evm/hub/constants/abi/node-manager-abi.js +228 -0
  85. package/dist/chains/evm/hub/constants/abi/node-manager-abi.js.map +1 -0
  86. package/dist/chains/evm/hub/constants/abi/oracle-manager-abi.d.ts +495 -0
  87. package/dist/chains/evm/hub/constants/abi/oracle-manager-abi.js +391 -0
  88. package/dist/chains/evm/hub/constants/abi/oracle-manager-abi.js.map +1 -0
  89. package/dist/chains/evm/hub/constants/chain.d.ts +3 -0
  90. package/dist/chains/evm/hub/constants/chain.js +242 -0
  91. package/dist/chains/evm/hub/constants/chain.js.map +1 -0
  92. package/dist/chains/evm/hub/modules/index.d.ts +5 -0
  93. package/dist/chains/evm/hub/modules/index.js +6 -0
  94. package/dist/chains/evm/hub/modules/index.js.map +1 -0
  95. package/dist/chains/evm/hub/modules/ts-hub-account.d.ts +8 -0
  96. package/dist/chains/evm/hub/modules/ts-hub-account.js +75 -0
  97. package/dist/chains/evm/hub/modules/ts-hub-account.js.map +1 -0
  98. package/dist/chains/evm/hub/modules/ts-hub-gmp.d.ts +18 -0
  99. package/dist/chains/evm/hub/modules/ts-hub-gmp.js +98 -0
  100. package/dist/chains/evm/hub/modules/ts-hub-gmp.js.map +1 -0
  101. package/dist/chains/evm/hub/modules/ts-hub-loan.d.ts +27 -0
  102. package/dist/chains/evm/hub/modules/ts-hub-loan.js +484 -0
  103. package/dist/chains/evm/hub/modules/ts-hub-loan.js.map +1 -0
  104. package/dist/chains/evm/hub/modules/ts-hub-oracle.d.ts +8 -0
  105. package/dist/chains/evm/hub/modules/ts-hub-oracle.js +58 -0
  106. package/dist/chains/evm/hub/modules/ts-hub-oracle.js.map +1 -0
  107. package/dist/chains/evm/hub/modules/ts-hub-pool.d.ts +5 -0
  108. package/dist/chains/evm/hub/modules/ts-hub-pool.js +138 -0
  109. package/dist/chains/evm/hub/modules/ts-hub-pool.js.map +1 -0
  110. package/dist/chains/evm/hub/types/account.d.ts +23 -0
  111. package/dist/chains/evm/hub/types/account.js +2 -0
  112. package/dist/chains/evm/hub/types/account.js.map +1 -0
  113. package/dist/chains/evm/hub/types/chain.d.ts +20 -0
  114. package/dist/chains/evm/hub/types/chain.js +2 -0
  115. package/dist/chains/evm/hub/types/chain.js.map +1 -0
  116. package/dist/chains/evm/hub/types/loan.d.ts +148 -0
  117. package/dist/chains/evm/hub/types/loan.js +9 -0
  118. package/dist/chains/evm/hub/types/loan.js.map +1 -0
  119. package/dist/chains/evm/hub/types/oracle.d.ts +19 -0
  120. package/dist/chains/evm/hub/types/oracle.js +2 -0
  121. package/dist/chains/evm/hub/types/oracle.js.map +1 -0
  122. package/dist/chains/evm/hub/types/pool.d.ts +66 -0
  123. package/dist/chains/evm/hub/types/pool.js +2 -0
  124. package/dist/chains/evm/hub/types/pool.js.map +1 -0
  125. package/dist/chains/evm/hub/types/token.d.ts +9 -0
  126. package/dist/chains/evm/hub/types/token.js +2 -0
  127. package/dist/chains/evm/hub/types/token.js.map +1 -0
  128. package/dist/chains/evm/hub/utils/chain.d.ts +15 -0
  129. package/dist/chains/evm/hub/utils/chain.js +37 -0
  130. package/dist/chains/evm/hub/utils/chain.js.map +1 -0
  131. package/dist/chains/evm/hub/utils/contract.d.ts +26 -0
  132. package/dist/chains/evm/hub/utils/contract.js +76 -0
  133. package/dist/chains/evm/hub/utils/contract.js.map +1 -0
  134. package/dist/chains/evm/hub/utils/events.d.ts +23 -0
  135. package/dist/chains/evm/hub/utils/events.js +100 -0
  136. package/dist/chains/evm/hub/utils/events.js.map +1 -0
  137. package/dist/chains/evm/hub/utils/loan.d.ts +4 -0
  138. package/dist/chains/evm/hub/utils/loan.js +37 -0
  139. package/dist/chains/evm/hub/utils/loan.js.map +1 -0
  140. package/dist/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.d.ts +1044 -0
  141. package/dist/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.js +806 -0
  142. package/dist/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.js.map +1 -0
  143. package/dist/chains/evm/spoke/constants/abi/spoke-common-abi.d.ts +1152 -0
  144. package/dist/chains/evm/spoke/constants/abi/spoke-common-abi.js +735 -0
  145. package/dist/chains/evm/spoke/constants/abi/spoke-common-abi.js.map +1 -0
  146. package/dist/chains/evm/spoke/constants/abi/spoke-rewards-v2-common-abi.d.ts +697 -0
  147. package/dist/chains/evm/spoke/constants/abi/spoke-rewards-v2-common-abi.js +501 -0
  148. package/dist/chains/evm/spoke/constants/abi/spoke-rewards-v2-common-abi.js.map +1 -0
  149. package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.d.ts +986 -0
  150. package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.js +705 -0
  151. package/dist/chains/evm/spoke/constants/abi/spoke-token-abi.js.map +1 -0
  152. package/dist/chains/evm/spoke/modules/index.d.ts +3 -0
  153. package/dist/chains/evm/spoke/modules/index.js +4 -0
  154. package/dist/chains/evm/spoke/modules/index.js.map +1 -0
  155. package/dist/chains/evm/spoke/modules/ts-evm-account.d.ts +18 -0
  156. package/dist/chains/evm/spoke/modules/ts-evm-account.js +141 -0
  157. package/dist/chains/evm/spoke/modules/ts-evm-account.js.map +1 -0
  158. package/dist/chains/evm/spoke/modules/ts-evm-gmp.d.ts +20 -0
  159. package/dist/chains/evm/spoke/modules/ts-evm-gmp.js +163 -0
  160. package/dist/chains/evm/spoke/modules/ts-evm-gmp.js.map +1 -0
  161. package/dist/chains/evm/spoke/modules/ts-evm-loan.d.ts +38 -0
  162. package/dist/chains/evm/spoke/modules/ts-evm-loan.js +461 -0
  163. package/dist/chains/evm/spoke/modules/ts-evm-loan.js.map +1 -0
  164. package/dist/chains/evm/spoke/types/pool.d.ts +7 -0
  165. package/dist/chains/evm/spoke/types/pool.js +2 -0
  166. package/dist/chains/evm/spoke/types/pool.js.map +1 -0
  167. package/dist/chains/evm/spoke/utils/contract.d.ts +18 -0
  168. package/dist/chains/evm/spoke/utils/contract.js +46 -0
  169. package/dist/chains/evm/spoke/utils/contract.js.map +1 -0
  170. package/dist/common/constants/adapter.d.ts +2 -0
  171. package/dist/common/constants/adapter.js +6 -0
  172. package/dist/common/constants/adapter.js.map +1 -0
  173. package/dist/common/constants/byte.d.ts +6 -0
  174. package/dist/common/constants/byte.js +7 -0
  175. package/dist/common/constants/byte.js.map +1 -0
  176. package/dist/common/constants/chain.d.ts +10 -0
  177. package/dist/common/constants/chain.js +224 -0
  178. package/dist/common/constants/chain.js.map +1 -0
  179. package/dist/common/constants/gmp.d.ts +3 -0
  180. package/dist/common/constants/gmp.js +10 -0
  181. package/dist/common/constants/gmp.js.map +1 -0
  182. package/dist/common/constants/lending.d.ts +2 -0
  183. package/dist/common/constants/lending.js +4 -0
  184. package/dist/common/constants/lending.js.map +1 -0
  185. package/dist/common/constants/message.d.ts +9 -0
  186. package/dist/common/constants/message.js +23 -0
  187. package/dist/common/constants/message.js.map +1 -0
  188. package/dist/common/constants/pool.d.ts +14 -0
  189. package/dist/common/constants/pool.js +24 -0
  190. package/dist/common/constants/pool.js.map +1 -0
  191. package/dist/common/types/adapter.d.ts +30 -0
  192. package/dist/common/types/adapter.js +7 -0
  193. package/dist/common/types/adapter.js.map +1 -0
  194. package/dist/common/types/address.d.ts +9 -0
  195. package/dist/common/types/address.js +2 -0
  196. package/dist/common/types/address.js.map +1 -0
  197. package/dist/common/types/brand.d.ts +6 -0
  198. package/dist/common/types/brand.js +2 -0
  199. package/dist/common/types/brand.js.map +1 -0
  200. package/dist/common/types/chain.d.ts +29 -0
  201. package/dist/common/types/chain.js +9 -0
  202. package/dist/common/types/chain.js.map +1 -0
  203. package/dist/common/types/core.d.ts +28 -0
  204. package/dist/common/types/core.js +2 -0
  205. package/dist/common/types/core.js.map +1 -0
  206. package/dist/common/types/gmp.d.ts +15 -0
  207. package/dist/common/types/gmp.js +6 -0
  208. package/dist/common/types/gmp.js.map +1 -0
  209. package/dist/common/types/lending.d.ts +20 -0
  210. package/dist/common/types/lending.js +13 -0
  211. package/dist/common/types/lending.js.map +1 -0
  212. package/dist/common/types/message.d.ts +280 -0
  213. package/dist/common/types/message.js +32 -0
  214. package/dist/common/types/message.js.map +1 -0
  215. package/dist/common/types/module.d.ts +20 -0
  216. package/dist/common/types/module.js +2 -0
  217. package/dist/common/types/module.js.map +1 -0
  218. package/dist/common/types/token.d.ts +49 -0
  219. package/dist/common/types/token.js +24 -0
  220. package/dist/common/types/token.js.map +1 -0
  221. package/dist/common/utils/adapter.d.ts +17 -0
  222. package/dist/common/utils/adapter.js +98 -0
  223. package/dist/common/utils/adapter.js.map +1 -0
  224. package/dist/common/utils/address.d.ts +6 -0
  225. package/dist/common/utils/address.js +32 -0
  226. package/dist/common/utils/address.js.map +1 -0
  227. package/dist/common/utils/bytes.d.ts +6 -0
  228. package/dist/common/utils/bytes.js +25 -0
  229. package/dist/common/utils/bytes.js.map +1 -0
  230. package/dist/common/utils/chain.d.ts +20 -0
  231. package/dist/common/utils/chain.js +79 -0
  232. package/dist/common/utils/chain.js.map +1 -0
  233. package/dist/common/utils/formulae.d.ts +19 -0
  234. package/dist/common/utils/formulae.js +118 -0
  235. package/dist/common/utils/formulae.js.map +1 -0
  236. package/dist/common/utils/gmp.d.ts +3 -0
  237. package/dist/common/utils/gmp.js +5 -0
  238. package/dist/common/utils/gmp.js.map +1 -0
  239. package/dist/common/utils/lending.d.ts +7 -0
  240. package/dist/common/utils/lending.js +16 -0
  241. package/dist/common/utils/lending.js.map +1 -0
  242. package/dist/common/utils/math-lib.d.ts +10 -0
  243. package/dist/common/utils/math-lib.js +41 -0
  244. package/dist/common/utils/math-lib.js.map +1 -0
  245. package/dist/common/utils/messages.d.ts +16 -0
  246. package/dist/common/utils/messages.js +124 -0
  247. package/dist/common/utils/messages.js.map +1 -0
  248. package/dist/common/utils/token.d.ts +3 -0
  249. package/dist/common/utils/token.js +8 -0
  250. package/dist/common/utils/token.js.map +1 -0
  251. package/dist/common/utils/transaction.d.ts +4 -0
  252. package/dist/common/utils/transaction.js +18 -0
  253. package/dist/common/utils/transaction.js.map +1 -0
  254. package/dist/index.d.ts +38 -0
  255. package/dist/index.js +50 -0
  256. package/dist/index.js.map +1 -0
  257. package/dist/lifeline/core/ts-core.d.ts +24 -0
  258. package/dist/lifeline/core/ts-core.js +101 -0
  259. package/dist/lifeline/core/ts-core.js.map +1 -0
  260. package/dist/lifeline/modules/index.d.ts +5 -0
  261. package/dist/lifeline/modules/index.js +6 -0
  262. package/dist/lifeline/modules/index.js.map +1 -0
  263. package/dist/lifeline/modules/ts-account.d.ts +23 -0
  264. package/dist/lifeline/modules/ts-account.js +205 -0
  265. package/dist/lifeline/modules/ts-account.js.map +1 -0
  266. package/dist/lifeline/modules/ts-gmp.d.ts +3 -0
  267. package/dist/lifeline/modules/ts-gmp.js +4 -0
  268. package/dist/lifeline/modules/ts-gmp.js.map +1 -0
  269. package/dist/lifeline/modules/ts-loan.d.ts +48 -0
  270. package/dist/lifeline/modules/ts-loan.js +580 -0
  271. package/dist/lifeline/modules/ts-loan.js.map +1 -0
  272. package/dist/lifeline/modules/ts-oracle.d.ts +8 -0
  273. package/dist/lifeline/modules/ts-oracle.js +27 -0
  274. package/dist/lifeline/modules/ts-oracle.js.map +1 -0
  275. package/dist/lifeline/modules/ts-pool.d.ts +5 -0
  276. package/dist/lifeline/modules/ts-pool.js +8 -0
  277. package/dist/lifeline/modules/ts-pool.js.map +1 -0
  278. package/dist/types/generics.d.ts +1 -0
  279. package/dist/types/generics.js +2 -0
  280. package/dist/types/generics.js.map +1 -0
  281. package/dist/utils/address.d.ts +1 -0
  282. package/dist/utils/address.js +2 -0
  283. package/dist/utils/address.js.map +1 -0
  284. package/dist/utils/array.d.ts +3 -0
  285. package/dist/utils/array.js +7 -0
  286. package/dist/utils/array.js.map +1 -0
  287. package/dist/utils/exhaustive-check.d.ts +1 -0
  288. package/dist/utils/exhaustive-check.js +4 -0
  289. package/dist/utils/exhaustive-check.js.map +1 -0
  290. package/dist/utils/random.d.ts +1 -0
  291. package/dist/utils/random.js +4 -0
  292. package/dist/utils/random.js.map +1 -0
  293. package/package.json +56 -0
  294. package/src/chains/evm/common/constant/abi/arbitrum-node-interface-abi.ts +17 -0
  295. package/src/chains/evm/common/constant/abi/bridge-router-abi.ts +793 -0
  296. package/src/chains/evm/common/constant/abi/ccip-data-adapter-abi.ts +621 -0
  297. package/src/chains/evm/common/constant/abi/erc-20-abi.ts +156 -0
  298. package/src/chains/evm/common/constant/abi/wormhole-data-adapter-abi.ts +644 -0
  299. package/src/chains/evm/common/constant/abi/wormhole-relayer-abi.ts +500 -0
  300. package/src/chains/evm/common/constant/chain.ts +88 -0
  301. package/src/chains/evm/common/constant/contract.ts +15 -0
  302. package/src/chains/evm/common/constant/tokens.ts +33 -0
  303. package/src/chains/evm/common/types/chain.ts +26 -0
  304. package/src/chains/evm/common/types/contract.ts +17 -0
  305. package/src/chains/evm/common/types/gmp.ts +43 -0
  306. package/src/chains/evm/common/types/module.ts +115 -0
  307. package/src/chains/evm/common/types/token.ts +35 -0
  308. package/src/chains/evm/common/utils/chain.ts +33 -0
  309. package/src/chains/evm/common/utils/contract.ts +120 -0
  310. package/src/chains/evm/common/utils/gmp.ts +54 -0
  311. package/src/chains/evm/common/utils/message.ts +648 -0
  312. package/src/chains/evm/common/utils/provider.ts +38 -0
  313. package/src/chains/evm/common/utils/tokens.ts +102 -0
  314. package/src/chains/evm/hub/constants/abi/account-manager-abi.ts +708 -0
  315. package/src/chains/evm/hub/constants/abi/bridge-router-hub-abi.ts +815 -0
  316. package/src/chains/evm/hub/constants/abi/hub-abi.ts +228 -0
  317. package/src/chains/evm/hub/constants/abi/hub-pool-abi.ts +1557 -0
  318. package/src/chains/evm/hub/constants/abi/hub-rewards-v1-abi.ts +648 -0
  319. package/src/chains/evm/hub/constants/abi/hub-rewards-v2-abi.ts +889 -0
  320. package/src/chains/evm/hub/constants/abi/loan-manager-abi.ts +1054 -0
  321. package/src/chains/evm/hub/constants/abi/node-manager-abi.ts +227 -0
  322. package/src/chains/evm/hub/constants/abi/oracle-manager-abi.ts +390 -0
  323. package/src/chains/evm/hub/constants/chain.ts +305 -0
  324. package/src/chains/evm/hub/modules/index.ts +5 -0
  325. package/src/chains/evm/hub/modules/ts-hub-account.ts +117 -0
  326. package/src/chains/evm/hub/modules/ts-hub-gmp.ts +231 -0
  327. package/src/chains/evm/hub/modules/ts-hub-loan.ts +915 -0
  328. package/src/chains/evm/hub/modules/ts-hub-oracle.ts +131 -0
  329. package/src/chains/evm/hub/modules/ts-hub-pool.ts +241 -0
  330. package/src/chains/evm/hub/types/account.ts +30 -0
  331. package/src/chains/evm/hub/types/chain.ts +22 -0
  332. package/src/chains/evm/hub/types/loan.ts +188 -0
  333. package/src/chains/evm/hub/types/oracle.ts +25 -0
  334. package/src/chains/evm/hub/types/pool.ts +75 -0
  335. package/src/chains/evm/hub/types/token.ts +10 -0
  336. package/src/chains/evm/hub/utils/chain.ts +78 -0
  337. package/src/chains/evm/hub/utils/contract.ts +178 -0
  338. package/src/chains/evm/hub/utils/events.ts +160 -0
  339. package/src/chains/evm/hub/utils/loan.ts +72 -0
  340. package/src/chains/evm/spoke/constants/abi/bridge-router-spoke-abi.ts +805 -0
  341. package/src/chains/evm/spoke/constants/abi/spoke-common-abi.ts +734 -0
  342. package/src/chains/evm/spoke/constants/abi/spoke-rewards-v2-common-abi.ts +500 -0
  343. package/src/chains/evm/spoke/constants/abi/spoke-token-abi.ts +704 -0
  344. package/src/chains/evm/spoke/modules/index.ts +3 -0
  345. package/src/chains/evm/spoke/modules/ts-evm-account.ts +341 -0
  346. package/src/chains/evm/spoke/modules/ts-evm-gmp.ts +353 -0
  347. package/src/chains/evm/spoke/modules/ts-evm-loan.ts +1032 -0
  348. package/src/chains/evm/spoke/types/pool.ts +7 -0
  349. package/src/chains/evm/spoke/utils/contract.ts +123 -0
  350. package/src/common/constants/adapter.ts +6 -0
  351. package/src/common/constants/byte.ts +7 -0
  352. package/src/common/constants/chain.ts +319 -0
  353. package/src/common/constants/gmp.ts +19 -0
  354. package/src/common/constants/lending.ts +9 -0
  355. package/src/common/constants/message.ts +25 -0
  356. package/src/common/constants/pool.ts +30 -0
  357. package/src/common/types/adapter.ts +44 -0
  358. package/src/common/types/address.ts +11 -0
  359. package/src/common/types/brand.ts +3 -0
  360. package/src/common/types/chain.ts +42 -0
  361. package/src/common/types/core.ts +31 -0
  362. package/src/common/types/gmp.ts +19 -0
  363. package/src/common/types/lending.ts +26 -0
  364. package/src/common/types/message.ts +401 -0
  365. package/src/common/types/module.ts +46 -0
  366. package/src/common/types/token.ts +72 -0
  367. package/src/common/utils/adapter.ts +197 -0
  368. package/src/common/utils/address.ts +50 -0
  369. package/src/common/utils/bytes.ts +36 -0
  370. package/src/common/utils/chain.ts +163 -0
  371. package/src/common/utils/formulae.ts +270 -0
  372. package/src/common/utils/gmp.ts +8 -0
  373. package/src/common/utils/lending.ts +31 -0
  374. package/src/common/utils/math-lib.ts +50 -0
  375. package/src/common/utils/messages.ts +283 -0
  376. package/src/common/utils/token.ts +13 -0
  377. package/src/common/utils/transaction.ts +27 -0
  378. package/src/index.ts +73 -0
  379. package/src/lifeline/core/ts-core.ts +136 -0
  380. package/src/lifeline/modules/index.ts +5 -0
  381. package/src/lifeline/modules/ts-account.ts +420 -0
  382. package/src/lifeline/modules/ts-gmp.ts +5 -0
  383. package/src/lifeline/modules/ts-loan.ts +1268 -0
  384. package/src/lifeline/modules/ts-oracle.ts +68 -0
  385. package/src/lifeline/modules/ts-pool.ts +19 -0
  386. package/src/types/generics.ts +1 -0
  387. package/src/utils/address.ts +0 -0
  388. package/src/utils/array.ts +11 -0
  389. package/src/utils/exhaustive-check.ts +3 -0
  390. package/src/utils/random.ts +3 -0
@@ -0,0 +1,580 @@
1
+ import { SEND_TOKEN_ACTION_RETURN_GAS_LIMIT } from '../../chains/evm/common/constant/contract.js';
2
+ import { TsHubLoan } from '../../chains/evm/hub/modules/index.js';
3
+ import { assertLoanTypeSupported, getHubChain, getHubTokenData, getHubTokensData, } from '../../chains/evm/hub/utils/chain.js';
4
+ import { TSEvmLoan } from '../../chains/evm/spoke/modules/index.js';
5
+ import { ChainType } from '../../common/types/chain.js';
6
+ import { MessageDirection } from '../../common/types/gmp.js';
7
+ import { Action } from '../../common/types/message.js';
8
+ import { TokenType } from '../../common/types/token.js';
9
+ import { assertAdapterSupportsCrossChainToken, assertAdapterSupportsDataMessage, } from '../../common/utils/adapter.js';
10
+ import { convertFromGenericAddress } from '../../common/utils/address.js';
11
+ import { assertHubChainSelected, assertSpokeChainSupportTsToken, assertSpokeChainSupported, getTsChain, getSignerGenericAddress, getSpokeChain, getSpokeTokenData, } from '../../common/utils/chain.js';
12
+ import { buildMessageToSend, estimateAdapterReceiveGasLimit, } from '../../common/utils/messages.js';
13
+ import { exhaustiveCheck } from '../../utils/exhaustive-check.js';
14
+ import { TSCore } from '../core/ts-core.js';
15
+ export const prepare = {
16
+ async createLoan(accountId, nonce, loanTypeId, loanName, adapters) {
17
+ const tsChain = TSCore.getSelectedTsChain();
18
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
19
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
20
+ const hubChain = getHubChain(tsChain.network);
21
+ const userAddress = getSignerGenericAddress({
22
+ signer: TSCore.getTSSigner().signer,
23
+ chainType: tsChain.chainType,
24
+ });
25
+ const data = {
26
+ nonce,
27
+ loanTypeId,
28
+ loanName,
29
+ };
30
+ const messageBuilderParams = {
31
+ userAddress,
32
+ accountId,
33
+ adapters,
34
+ action: Action.CreateLoan,
35
+ sender: spokeChain.spokeOperationAddress,
36
+ destinationChainId: hubChain.tsChainId,
37
+ handler: hubChain.hubAddress,
38
+ data,
39
+ extraArgs: '0x',
40
+ };
41
+ const feeParams = {};
42
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(tsChain.tsChainId, hubChain.tsChainId, TSCore.getHubProvider(), tsChain.network, MessageDirection.SpokeToHub, messageBuilderParams);
43
+ const messageToSend = buildMessageToSend(tsChain.chainType, messageBuilderParams, feeParams);
44
+ switch (tsChain.chainType) {
45
+ case ChainType.EVM:
46
+ return await TSEvmLoan.prepare.createLoan(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(userAddress, tsChain.chainType), messageToSend, accountId, nonce, loanTypeId, loanName, spokeChain);
47
+ default:
48
+ return exhaustiveCheck(tsChain.chainType);
49
+ }
50
+ },
51
+ async liquidate(accountId, liquidatorLoanId, violatorLoanId, tsTokenIdToLiq, tsTokenIdToSeize, repayingAmount, minSeizedAmount, liquidatorAddress) {
52
+ const tsChain = TSCore.getSelectedTsChain();
53
+ assertHubChainSelected(tsChain.tsChainId, tsChain.network);
54
+ const hubChain = getHubChain(tsChain.network);
55
+ const hubTokenToLiquidateData = getHubTokenData(tsTokenIdToLiq, tsChain.network);
56
+ const hubTokenToSeizeData = getHubTokenData(tsTokenIdToSeize, tsChain.network);
57
+ // const userAddress = getSignerGenericAddress({
58
+ // signer: TSCore.getTSSigner().signer,
59
+ // chainType: tsChain.chainType,
60
+ // });
61
+ const data = {
62
+ liquidatorLoanId,
63
+ violatorLoanId,
64
+ colPoolId: hubTokenToSeizeData.poolId,
65
+ borPoolId: hubTokenToLiquidateData.poolId,
66
+ repayingAmount,
67
+ minSeizedAmount,
68
+ };
69
+ return await TsHubLoan.prepare.liquidate(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(liquidatorAddress, tsChain.chainType), data, accountId, hubChain);
70
+ },
71
+ async repayWithCollateral(accountId, loanId, tsTokenId, amount, adapters) {
72
+ const tsChain = TSCore.getSelectedTsChain();
73
+ const network = tsChain.network;
74
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
75
+ const hubChain = getHubChain(network);
76
+ const hubTokenData = getHubTokenData(tsTokenId, network);
77
+ const spokeChain = getSpokeChain(tsChain.tsChainId, network);
78
+ const userAddress = getSignerGenericAddress({
79
+ signer: TSCore.getTSSigner().signer,
80
+ chainType: tsChain.chainType,
81
+ });
82
+ const data = {
83
+ loanId,
84
+ poolId: hubTokenData.poolId,
85
+ amount,
86
+ };
87
+ const messageBuilderParams = {
88
+ userAddress,
89
+ accountId,
90
+ adapters,
91
+ action: Action.RepayWithCollateral,
92
+ sender: spokeChain.spokeOperationAddress,
93
+ destinationChainId: hubChain.tsChainId,
94
+ handler: hubChain.hubAddress,
95
+ data,
96
+ extraArgs: '0x',
97
+ };
98
+ const feeParams = {
99
+ returnGasLimit: 0n,
100
+ gasLimit: 0n,
101
+ };
102
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(tsChain.tsChainId, hubChain.tsChainId, TSCore.getHubProvider(), tsChain.network, MessageDirection.SpokeToHub, messageBuilderParams);
103
+ const messageToSend = buildMessageToSend(tsChain.chainType, messageBuilderParams, feeParams);
104
+ switch (tsChain.chainType) {
105
+ case ChainType.EVM:
106
+ return await TSEvmLoan.prepare.repayWithCollateral(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(userAddress, tsChain.chainType), messageToSend, network, accountId, loanId, tsTokenId, amount, spokeChain);
107
+ default:
108
+ return exhaustiveCheck(tsChain.chainType);
109
+ }
110
+ },
111
+ async deleteLoan(accountId, loanId, adapters) {
112
+ const tsChain = TSCore.getSelectedTsChain();
113
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
114
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
115
+ const hubChain = getHubChain(tsChain.network);
116
+ const userAddress = getSignerGenericAddress({
117
+ signer: TSCore.getTSSigner().signer,
118
+ chainType: tsChain.chainType,
119
+ });
120
+ const data = {
121
+ accountId,
122
+ loanId,
123
+ };
124
+ const messageBuilderParams = {
125
+ userAddress,
126
+ accountId,
127
+ adapters,
128
+ action: Action.DeleteLoan,
129
+ sender: spokeChain.spokeOperationAddress,
130
+ destinationChainId: hubChain.tsChainId,
131
+ handler: hubChain.hubAddress,
132
+ data,
133
+ extraArgs: '0x',
134
+ };
135
+ const feeParams = {};
136
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(tsChain.tsChainId, hubChain.tsChainId, TSCore.getHubProvider(), tsChain.network, MessageDirection.SpokeToHub, messageBuilderParams);
137
+ const messageToSend = buildMessageToSend(tsChain.chainType, messageBuilderParams, feeParams);
138
+ switch (tsChain.chainType) {
139
+ case ChainType.EVM:
140
+ return await TSEvmLoan.prepare.deleteLoan(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(userAddress, tsChain.chainType), messageToSend, accountId, loanId, spokeChain);
141
+ default:
142
+ return exhaustiveCheck(tsChain.chainType);
143
+ }
144
+ },
145
+ async createLoanAndDeposit(accountId, nonce, loanTypeId, loanName, tsTokenId, amount, adapters) {
146
+ const tsChain = TSCore.getSelectedTsChain();
147
+ assertSpokeChainSupportTsToken(tsChain.tsChainId, tsTokenId, tsChain.network);
148
+ assertLoanTypeSupported(loanTypeId, tsTokenId, tsChain.network);
149
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
150
+ const hubChain = getHubChain(tsChain.network);
151
+ const spokeTokenData = getSpokeTokenData(spokeChain, tsTokenId);
152
+ const hubTokenData = getHubTokenData(tsTokenId, tsChain.network);
153
+ if (spokeTokenData.token.type === TokenType.CROSS_CHAIN)
154
+ assertAdapterSupportsCrossChainToken(tsChain.tsChainId, spokeTokenData.token, adapters.adapterId);
155
+ else
156
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
157
+ const userAddress = getSignerGenericAddress({
158
+ signer: TSCore.getTSSigner().signer,
159
+ chainType: tsChain.chainType,
160
+ });
161
+ const data = {
162
+ nonce,
163
+ poolId: hubTokenData.poolId,
164
+ amount,
165
+ loanTypeId,
166
+ loanName,
167
+ };
168
+ const extraArgs = {
169
+ token: spokeTokenData.token,
170
+ recipient: hubTokenData.poolAddress,
171
+ amount,
172
+ };
173
+ const messageBuilderParams = {
174
+ userAddress,
175
+ accountId,
176
+ adapters,
177
+ action: Action.InitiateLoanAccountWithDeposit,
178
+ sender: getSpokeTokenData(spokeChain, tsTokenId).spokeAddress,
179
+ destinationChainId: hubChain.tsChainId,
180
+ handler: hubChain.hubAddress,
181
+ data,
182
+ extraArgs,
183
+ };
184
+ const feeParams = {};
185
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(tsChain.tsChainId, hubChain.tsChainId, TSCore.getHubProvider(), tsChain.network, MessageDirection.SpokeToHub, messageBuilderParams);
186
+ feeParams.returnGasLimit = SEND_TOKEN_ACTION_RETURN_GAS_LIMIT;
187
+ const messageToSend = buildMessageToSend(tsChain.chainType, messageBuilderParams, feeParams);
188
+ switch (tsChain.chainType) {
189
+ case ChainType.EVM:
190
+ return await TSEvmLoan.prepare.createLoanAndDeposit(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(userAddress, tsChain.chainType), messageToSend, accountId, nonce, loanTypeId, loanName, amount, spokeChain, spokeTokenData);
191
+ default:
192
+ return exhaustiveCheck(tsChain.chainType);
193
+ }
194
+ },
195
+ async deposit(accountId, loanId, loanTypeId, tsTokenId, amount, adapters) {
196
+ const tsChain = TSCore.getSelectedTsChain();
197
+ assertSpokeChainSupportTsToken(tsChain.tsChainId, tsTokenId, tsChain.network);
198
+ assertLoanTypeSupported(loanTypeId, tsTokenId, tsChain.network);
199
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
200
+ const hubChain = getHubChain(tsChain.network);
201
+ const spokeTokenData = getSpokeTokenData(spokeChain, tsTokenId);
202
+ const hubTokenData = getHubTokenData(tsTokenId, tsChain.network);
203
+ if (spokeTokenData.token.type === TokenType.CROSS_CHAIN)
204
+ assertAdapterSupportsCrossChainToken(tsChain.tsChainId, spokeTokenData.token, adapters.adapterId);
205
+ else
206
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
207
+ const userAddress = getSignerGenericAddress({
208
+ signer: TSCore.getTSSigner().signer,
209
+ chainType: tsChain.chainType,
210
+ });
211
+ const data = {
212
+ loanId,
213
+ poolId: hubTokenData.poolId,
214
+ amount,
215
+ };
216
+ const extraArgs = {
217
+ token: spokeTokenData.token,
218
+ recipient: hubTokenData.poolAddress,
219
+ amount,
220
+ };
221
+ const messageBuilderParams = {
222
+ userAddress,
223
+ accountId,
224
+ adapters,
225
+ action: Action.Deposit,
226
+ sender: getSpokeTokenData(spokeChain, tsTokenId).spokeAddress,
227
+ destinationChainId: hubChain.tsChainId,
228
+ handler: hubChain.hubAddress,
229
+ data,
230
+ extraArgs,
231
+ };
232
+ const feeParams = {};
233
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(tsChain.tsChainId, hubChain.tsChainId, TSCore.getHubProvider(), tsChain.network, MessageDirection.SpokeToHub, messageBuilderParams);
234
+ feeParams.returnGasLimit = SEND_TOKEN_ACTION_RETURN_GAS_LIMIT;
235
+ const messageToSend = buildMessageToSend(tsChain.chainType, messageBuilderParams, feeParams);
236
+ switch (tsChain.chainType) {
237
+ case ChainType.EVM:
238
+ return await TSEvmLoan.prepare.deposit(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(userAddress, tsChain.chainType), messageToSend, accountId, loanId, amount, spokeChain, spokeTokenData);
239
+ default:
240
+ return exhaustiveCheck(tsChain.chainType);
241
+ }
242
+ },
243
+ async withdraw(accountId, loanId, tsTokenId, amount, isTAmount, receiverTsChainId, adapters) {
244
+ const tsChain = TSCore.getSelectedTsChain();
245
+ const network = tsChain.network;
246
+ const receiverTsChain = getTsChain(receiverTsChainId, network);
247
+ const spokeChain = getSpokeChain(tsChain.tsChainId, network);
248
+ const receiverSpokeChain = getSpokeChain(receiverTsChainId, network);
249
+ const receiverSpokeTokenData = getSpokeTokenData(receiverSpokeChain, tsTokenId);
250
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
251
+ if (receiverSpokeTokenData.token.type === TokenType.CROSS_CHAIN)
252
+ assertAdapterSupportsCrossChainToken(receiverTsChainId, receiverSpokeTokenData.token, adapters.returnAdapterId);
253
+ else
254
+ assertAdapterSupportsDataMessage(receiverTsChainId, adapters.returnAdapterId);
255
+ assertSpokeChainSupportTsToken(receiverTsChainId, tsTokenId, network);
256
+ const hubChain = getHubChain(network);
257
+ const hubTokenData = getHubTokenData(tsTokenId, network);
258
+ const userAddress = getSignerGenericAddress({
259
+ signer: TSCore.getTSSigner().signer,
260
+ chainType: tsChain.chainType,
261
+ });
262
+ const feeParams = {};
263
+ const returnData = {
264
+ amount,
265
+ };
266
+ const returnExtraArgs = {
267
+ tsTokenId,
268
+ token: hubTokenData.token,
269
+ recipient: receiverSpokeTokenData.spokeAddress,
270
+ amount,
271
+ };
272
+ const overrideData = {
273
+ tsTokenId,
274
+ token: receiverSpokeTokenData.token,
275
+ address: receiverSpokeTokenData.spokeAddress,
276
+ amount,
277
+ };
278
+ const returnMessageBuilderParams = {
279
+ userAddress,
280
+ accountId,
281
+ adapters,
282
+ action: Action.SendToken,
283
+ sender: hubChain.hubAddress,
284
+ destinationChainId: receiverTsChainId,
285
+ handler: receiverSpokeTokenData.spokeAddress,
286
+ data: returnData,
287
+ extraArgs: returnExtraArgs,
288
+ overrideData,
289
+ };
290
+ feeParams.returnGasLimit = await estimateAdapterReceiveGasLimit(hubChain.tsChainId, receiverTsChain.tsChainId, TSCore.getEVMProvider(receiverTsChain.tsChainId), tsChain.network, MessageDirection.HubToSpoke, returnMessageBuilderParams);
291
+ const data = {
292
+ loanId,
293
+ poolId: hubTokenData.poolId,
294
+ receiverTsChainId,
295
+ amount,
296
+ isFAmount: isTAmount,
297
+ };
298
+ const messageBuilderParams = {
299
+ userAddress,
300
+ accountId,
301
+ adapters,
302
+ action: Action.Withdraw,
303
+ sender: spokeChain.spokeOperationAddress,
304
+ destinationChainId: hubChain.tsChainId,
305
+ handler: hubChain.hubAddress,
306
+ data,
307
+ extraArgs: '0x',
308
+ };
309
+ feeParams.receiverValue = await TsHubLoan.getSendTokenAdapterFees(TSCore.getHubProvider(), network, accountId, tsTokenId, amount, receiverTsChainId, adapters, feeParams);
310
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(tsChain.tsChainId, hubChain.tsChainId, TSCore.getHubProvider(), tsChain.network, MessageDirection.SpokeToHub, messageBuilderParams, feeParams.receiverValue);
311
+ const messageToSend = buildMessageToSend(tsChain.chainType, messageBuilderParams, feeParams);
312
+ switch (tsChain.chainType) {
313
+ case ChainType.EVM:
314
+ return await TSEvmLoan.prepare.withdraw(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(userAddress, tsChain.chainType), messageToSend, network, accountId, loanId, tsTokenId, amount, isTAmount, receiverTsChainId, spokeChain);
315
+ default:
316
+ return exhaustiveCheck(tsChain.chainType);
317
+ }
318
+ },
319
+ async borrow(accountId, loanId, tsTokenId, amount, maxStableRate, receiverTsChainId, adapters) {
320
+ const tsChain = TSCore.getSelectedTsChain();
321
+ const network = tsChain.network;
322
+ const receiverTsChain = getTsChain(receiverTsChainId, network);
323
+ const spokeChain = getSpokeChain(tsChain.tsChainId, network);
324
+ const receiverSpokeChain = getSpokeChain(receiverTsChainId, network);
325
+ const receiverSpokeTokenData = getSpokeTokenData(receiverSpokeChain, tsTokenId);
326
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
327
+ if (receiverSpokeTokenData.token.type === TokenType.CROSS_CHAIN)
328
+ assertAdapterSupportsCrossChainToken(receiverTsChainId, receiverSpokeTokenData.token, adapters.returnAdapterId);
329
+ else
330
+ assertAdapterSupportsDataMessage(receiverTsChainId, adapters.returnAdapterId);
331
+ assertSpokeChainSupportTsToken(receiverTsChainId, tsTokenId, network);
332
+ const hubChain = getHubChain(network);
333
+ const hubTokenData = getHubTokenData(tsTokenId, network);
334
+ const userAddress = getSignerGenericAddress({
335
+ signer: TSCore.getTSSigner().signer,
336
+ chainType: tsChain.chainType,
337
+ });
338
+ const feeParams = {};
339
+ const returnData = {
340
+ amount,
341
+ };
342
+ const returnExtraArgs = {
343
+ tsTokenId,
344
+ token: hubTokenData.token,
345
+ recipient: receiverSpokeTokenData.spokeAddress,
346
+ amount,
347
+ };
348
+ const overrideData = {
349
+ tsTokenId,
350
+ token: receiverSpokeTokenData.token,
351
+ address: receiverSpokeTokenData.spokeAddress,
352
+ amount,
353
+ };
354
+ const returnMessageBuilderParams = {
355
+ userAddress,
356
+ accountId,
357
+ adapters,
358
+ action: Action.SendToken,
359
+ sender: hubChain.hubAddress,
360
+ destinationChainId: receiverTsChainId,
361
+ handler: receiverSpokeTokenData.spokeAddress,
362
+ data: returnData,
363
+ extraArgs: returnExtraArgs,
364
+ overrideData,
365
+ };
366
+ feeParams.returnGasLimit = await estimateAdapterReceiveGasLimit(hubChain.tsChainId, receiverTsChain.tsChainId, TSCore.getEVMProvider(receiverTsChain.tsChainId), tsChain.network, MessageDirection.HubToSpoke, returnMessageBuilderParams);
367
+ const data = {
368
+ loanId,
369
+ poolId: hubTokenData.poolId,
370
+ receiverTsChainId,
371
+ amount,
372
+ maxStableRate,
373
+ };
374
+ const messageBuilderParams = {
375
+ userAddress,
376
+ accountId,
377
+ adapters,
378
+ action: Action.Borrow,
379
+ sender: spokeChain.spokeOperationAddress,
380
+ destinationChainId: hubChain.tsChainId,
381
+ handler: hubChain.hubAddress,
382
+ data,
383
+ extraArgs: '0x',
384
+ };
385
+ feeParams.receiverValue = await TsHubLoan.getSendTokenAdapterFees(TSCore.getHubProvider(), network, accountId, tsTokenId, amount, receiverTsChainId, adapters, feeParams);
386
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(tsChain.tsChainId, hubChain.tsChainId, TSCore.getHubProvider(), tsChain.network, MessageDirection.SpokeToHub, messageBuilderParams, feeParams.receiverValue);
387
+ const messageToSend = buildMessageToSend(tsChain.chainType, messageBuilderParams, feeParams);
388
+ switch (tsChain.chainType) {
389
+ case ChainType.EVM:
390
+ return await TSEvmLoan.prepare.borrow(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(userAddress, tsChain.chainType), messageToSend, network, accountId, loanId, tsTokenId, amount, maxStableRate, receiverTsChainId, spokeChain);
391
+ default:
392
+ return exhaustiveCheck(tsChain.chainType);
393
+ }
394
+ },
395
+ async repay(accountId, loanId, loanTypeId, tsTokenId, amount, maxOverRepayment, adapters) {
396
+ const tsChain = TSCore.getSelectedTsChain();
397
+ assertSpokeChainSupportTsToken(tsChain.tsChainId, tsTokenId, tsChain.network);
398
+ assertLoanTypeSupported(loanTypeId, tsTokenId, tsChain.network);
399
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
400
+ const hubChain = getHubChain(tsChain.network);
401
+ const spokeTokenData = getSpokeTokenData(spokeChain, tsTokenId);
402
+ const hubTokenData = getHubTokenData(tsTokenId, tsChain.network);
403
+ if (spokeTokenData.token.type === TokenType.CROSS_CHAIN)
404
+ assertAdapterSupportsCrossChainToken(tsChain.tsChainId, spokeTokenData.token, adapters.adapterId);
405
+ else
406
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
407
+ const userAddress = getSignerGenericAddress({
408
+ signer: TSCore.getTSSigner().signer,
409
+ chainType: tsChain.chainType,
410
+ });
411
+ const data = {
412
+ loanId,
413
+ poolId: hubTokenData.poolId,
414
+ amount,
415
+ maxOverRepayment,
416
+ };
417
+ const extraArgs = {
418
+ token: spokeTokenData.token,
419
+ recipient: hubTokenData.poolAddress,
420
+ amount,
421
+ };
422
+ const messageBuilderParams = {
423
+ userAddress,
424
+ accountId,
425
+ adapters,
426
+ action: Action.Repay,
427
+ sender: getSpokeTokenData(spokeChain, tsTokenId).spokeAddress,
428
+ destinationChainId: hubChain.tsChainId,
429
+ handler: hubChain.hubAddress,
430
+ data,
431
+ extraArgs,
432
+ };
433
+ const feeParams = {};
434
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(tsChain.tsChainId, hubChain.tsChainId, TSCore.getHubProvider(), tsChain.network, MessageDirection.SpokeToHub, messageBuilderParams);
435
+ feeParams.returnGasLimit = SEND_TOKEN_ACTION_RETURN_GAS_LIMIT;
436
+ const messageToSend = buildMessageToSend(tsChain.chainType, messageBuilderParams, feeParams);
437
+ switch (tsChain.chainType) {
438
+ case ChainType.EVM:
439
+ return await TSEvmLoan.prepare.repay(TSCore.getProvider(tsChain.tsChainId), convertFromGenericAddress(userAddress, tsChain.chainType), messageToSend, accountId, loanId, amount, maxOverRepayment, spokeChain, spokeTokenData);
440
+ default:
441
+ return exhaustiveCheck(tsChain.chainType);
442
+ }
443
+ },
444
+ };
445
+ export const write = {
446
+ async createLoan(accountId, nonce, loanTypeId, loanName, prepareCall) {
447
+ const tsChain = TSCore.getSelectedTsChain();
448
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
449
+ switch (tsChain.chainType) {
450
+ case ChainType.EVM:
451
+ return await TSEvmLoan.write.createLoan(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, nonce, loanTypeId, loanName, prepareCall);
452
+ default:
453
+ return exhaustiveCheck(tsChain.chainType);
454
+ }
455
+ },
456
+ async deleteLoan(accountId, loanId, prepareCall) {
457
+ const tsChain = TSCore.getSelectedTsChain();
458
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
459
+ switch (tsChain.chainType) {
460
+ case ChainType.EVM:
461
+ return await TSEvmLoan.write.deleteLoan(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, loanId, prepareCall);
462
+ default:
463
+ return exhaustiveCheck(tsChain.chainType);
464
+ }
465
+ },
466
+ async createLoanAndDeposit(accountId, nonce, loanTypeId, loanName, amount, includeApproval, prepareCall) {
467
+ const tsChain = TSCore.getSelectedTsChain();
468
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
469
+ switch (tsChain.chainType) {
470
+ case ChainType.EVM:
471
+ return await TSEvmLoan.write.createLoanAndDeposit(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, nonce, loanTypeId, loanName, amount, includeApproval, prepareCall);
472
+ default:
473
+ return exhaustiveCheck(tsChain.chainType);
474
+ }
475
+ },
476
+ async deposit(accountId, loanId, amount, includeApproval, prepareCall) {
477
+ const tsChain = TSCore.getSelectedTsChain();
478
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
479
+ switch (tsChain.chainType) {
480
+ case ChainType.EVM:
481
+ return await TSEvmLoan.write.deposit(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, loanId, amount, includeApproval, prepareCall);
482
+ default:
483
+ return exhaustiveCheck(tsChain.chainType);
484
+ }
485
+ },
486
+ async withdraw(accountId, loanId, tsTokenId, amount, isTAmount, receiverTsChainId, prepareCall) {
487
+ const tsChain = TSCore.getSelectedTsChain();
488
+ const { poolId } = getHubTokenData(tsTokenId, tsChain.network);
489
+ switch (tsChain.chainType) {
490
+ case ChainType.EVM:
491
+ return await TSEvmLoan.write.withdraw(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, loanId, poolId, amount, isTAmount, receiverTsChainId, prepareCall);
492
+ default:
493
+ return exhaustiveCheck(tsChain.chainType);
494
+ }
495
+ },
496
+ async borrow(accountId, loanId, tsTokenId, amount, maxStableRate, receiverTsChainId, prepareCall) {
497
+ const tsChain = TSCore.getSelectedTsChain();
498
+ const { poolId } = getHubTokenData(tsTokenId, tsChain.network);
499
+ switch (tsChain.chainType) {
500
+ case ChainType.EVM:
501
+ return await TSEvmLoan.write.borrow(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, loanId, poolId, amount, maxStableRate, receiverTsChainId, prepareCall);
502
+ default:
503
+ return exhaustiveCheck(tsChain.chainType);
504
+ }
505
+ },
506
+ async repay(accountId, loanId, amount, maxOverRepayment, includeApproval, prepareCall) {
507
+ const tsChain = TSCore.getSelectedTsChain();
508
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
509
+ switch (tsChain.chainType) {
510
+ case ChainType.EVM:
511
+ return await TSEvmLoan.write.repay(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, loanId, amount, maxOverRepayment, includeApproval, prepareCall);
512
+ default:
513
+ return exhaustiveCheck(tsChain.chainType);
514
+ }
515
+ },
516
+ async liquidate(accountId, prepareCall) {
517
+ const tsChain = TSCore.getSelectedTsChain();
518
+ assertHubChainSelected(tsChain.tsChainId, tsChain.network);
519
+ return await TsHubLoan.write.liquidate(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, prepareCall);
520
+ },
521
+ async repayWithCollateral(accountId, loanId, tsTokenId, amount, prepareCall) {
522
+ const tsChain = TSCore.getSelectedTsChain();
523
+ const { poolId } = getHubTokenData(tsTokenId, tsChain.network);
524
+ switch (tsChain.chainType) {
525
+ case ChainType.EVM:
526
+ return await TSEvmLoan.write.repayWithCollateral(TSCore.getProvider(tsChain.tsChainId), TSCore.getSigner(), accountId, loanId, poolId, amount, prepareCall);
527
+ default:
528
+ return exhaustiveCheck(tsChain.chainType);
529
+ }
530
+ },
531
+ };
532
+ export const read = {
533
+ async rateLimit(tsTokenId, tsChainId) {
534
+ const network = TSCore.getSelectedNetwork();
535
+ const tsChain = getTsChain(tsChainId, network);
536
+ assertSpokeChainSupportTsToken(tsChain.tsChainId, tsTokenId, tsChain.network);
537
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
538
+ const spokeTokenData = getSpokeTokenData(spokeChain, tsTokenId);
539
+ switch (tsChain.chainType) {
540
+ case ChainType.EVM:
541
+ return await TSEvmLoan.read.rateLimitInfo(TSCore.getProvider(tsChain.tsChainId), spokeTokenData);
542
+ default:
543
+ return exhaustiveCheck(tsChain.chainType);
544
+ }
545
+ },
546
+ async loanTypeInfo(loanTypeId) {
547
+ const network = TSCore.getSelectedNetwork();
548
+ // filter for all tokens supported in loan type
549
+ const tokensData = Object.values(getHubTokensData(network)).filter((tokenData) => tokenData.supportedLoanTypes.has(loanTypeId));
550
+ return await TsHubLoan.getLoanTypeInfo(TSCore.getHubProvider(), network, loanTypeId, tokensData);
551
+ },
552
+ async userLoansIds(accountId, loanTypeIdsFilter) {
553
+ const network = TSCore.getSelectedNetwork();
554
+ return await TsHubLoan.getUserLoanIds(TSCore.getHubProvider(), network, accountId, loanTypeIdsFilter);
555
+ },
556
+ async userLoans(loanIds, throwErrorOnInactiveLoan = true) {
557
+ const network = TSCore.getSelectedNetwork();
558
+ return await TsHubLoan.getUserLoans(TSCore.getHubProvider(), network, loanIds, throwErrorOnInactiveLoan);
559
+ },
560
+ };
561
+ export const util = {
562
+ userLoansInfo(userLoansMap, poolsInfo, loanTypesInfo, oraclePrices, additionalInterests) {
563
+ // get info of each user loan
564
+ return TsHubLoan.getUserLoansInfo(userLoansMap, poolsInfo, loanTypesInfo, oraclePrices, additionalInterests);
565
+ },
566
+ emptyLoanForSimulate(accountId, loanTypeId) {
567
+ return {
568
+ accountId,
569
+ loanTypeId,
570
+ colPools: [],
571
+ borPools: [],
572
+ userLoanCollateral: [],
573
+ userLoanBorrow: [],
574
+ };
575
+ },
576
+ simulateLoanChanges(loan, changes) {
577
+ return TsHubLoan.simulateLoanChanges(loan, changes);
578
+ },
579
+ };
580
+ //# sourceMappingURL=ts-loan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-loan.js","sourceRoot":"","sources":["../../../src/lifeline/modules/ts-loan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { OraclePrice, OraclePrices, OracleNodePrice, OracleNodePrices, OracleNode } from '../../chains/evm/hub/types/oracle.js';
2
+ import type { TSTokenId } from '../../common/types/token.js';
3
+ export declare const read: {
4
+ oraclePrice(tsTokenId: TSTokenId, blockNumber?: bigint): Promise<OraclePrice>;
5
+ oraclePrices(tsTokenIds?: Array<TSTokenId>, blockNumber?: bigint): Promise<OraclePrices>;
6
+ oracleNodePrice(oracleNode: OracleNode): Promise<OracleNodePrice>;
7
+ oracleNodePrices(oracleNodes: Array<OracleNode>): Promise<OracleNodePrices>;
8
+ };