@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,131 @@
1
+ import { multicall } from 'viem/actions';
2
+
3
+ import { getHubChain } from '../utils/chain.js';
4
+ import {
5
+ getNodeManagerContract,
6
+ getPriceFeedControllerContract,
7
+ } from '../utils/contract.js';
8
+
9
+ import type { NetworkType } from '../../../../common/types/chain.js';
10
+ import type { NodeManagerAbi } from '../constants/abi/node-manager-abi.js';
11
+ import type { PriceFeedControllerAbi } from '../constants/abi/oracle-manager-abi.js';
12
+ import type {
13
+ OracleNode,
14
+ OracleNodePrice,
15
+ OracleNodePrices,
16
+ OraclePrice,
17
+ OraclePrices,
18
+ } from '../types/oracle.js';
19
+ import type { HubTokenData } from '../types/token.js';
20
+ import type {
21
+ Client,
22
+ ContractFunctionParameters,
23
+ ReadContractReturnType,
24
+ } from 'viem';
25
+
26
+ export async function getOraclePrice(
27
+ provider: Client,
28
+ network: NetworkType,
29
+ poolId: number,
30
+ blockNumber?: bigint
31
+ ): Promise<OraclePrice> {
32
+ const hubChain = getHubChain(network);
33
+
34
+ const priceFeedController = getPriceFeedControllerContract(
35
+ provider,
36
+ hubChain.priceFeedControllerAddress
37
+ );
38
+
39
+ const { price, decimals } = await priceFeedController.read.processPriceFeed(
40
+ [poolId],
41
+ { blockNumber }
42
+ );
43
+ return { price: [price, 18], decimals };
44
+ }
45
+
46
+ export async function getOraclePrices(
47
+ provider: Client,
48
+ network: NetworkType,
49
+ tokens: Array<HubTokenData>,
50
+ blockNumber?: bigint
51
+ ): Promise<OraclePrices> {
52
+ const hubChain = getHubChain(network);
53
+ const priceFeedController = getPriceFeedControllerContract(
54
+ provider,
55
+ hubChain.priceFeedControllerAddress
56
+ );
57
+
58
+ const processPriceFeeds: Array<ContractFunctionParameters> = tokens.map(
59
+ ({ poolId }) => ({
60
+ address: priceFeedController.address,
61
+ abi: priceFeedController.abi,
62
+ functionName: 'processPriceFeed',
63
+ args: [poolId],
64
+ })
65
+ );
66
+
67
+ const priceFeeds = (await multicall(provider, {
68
+ contracts: processPriceFeeds,
69
+ allowFailure: false,
70
+ blockNumber,
71
+ })) as Array<
72
+ ReadContractReturnType<typeof PriceFeedControllerAbi, 'processPriceFeed'>
73
+ >;
74
+
75
+ const oraclePrices: OraclePrices = {};
76
+ for (const [i, { price, decimals }] of priceFeeds.entries()) {
77
+ const { TsTokenId } = tokens[i];
78
+ oraclePrices[TsTokenId] = { price: [price, 18], decimals };
79
+ }
80
+ return oraclePrices;
81
+ }
82
+
83
+ export async function getNodePrice(
84
+ provider: Client,
85
+ network: NetworkType,
86
+ oracleNode: OracleNode
87
+ ): Promise<OracleNodePrice> {
88
+ const hubChain = getHubChain(network);
89
+
90
+ const nodeManager = getNodeManagerContract(
91
+ provider,
92
+ hubChain.nodeManagerAddress
93
+ );
94
+
95
+ const { nodeId, decimals } = oracleNode;
96
+ const { price, timestamp } = await nodeManager.read.process([nodeId]);
97
+ return { price: [price, 18], decimals, timestamp };
98
+ }
99
+
100
+ export async function getNodePrices(
101
+ provider: Client,
102
+ network: NetworkType,
103
+ oracleNodes: Array<OracleNode>
104
+ ): Promise<OracleNodePrices> {
105
+ const hubChain = getHubChain(network);
106
+ const nodeManager = getNodeManagerContract(
107
+ provider,
108
+ hubChain.nodeManagerAddress
109
+ );
110
+
111
+ const processPriceFeeds: Array<ContractFunctionParameters> = oracleNodes.map(
112
+ ({ nodeId }) => ({
113
+ address: nodeManager.address,
114
+ abi: nodeManager.abi,
115
+ functionName: 'process',
116
+ args: [nodeId],
117
+ })
118
+ );
119
+
120
+ const priceFeeds = (await multicall(provider, {
121
+ contracts: processPriceFeeds,
122
+ allowFailure: false,
123
+ })) as Array<ReadContractReturnType<typeof NodeManagerAbi, 'process'>>;
124
+
125
+ const oracleNodePrices: OracleNodePrices = {};
126
+ for (const [i, { price, timestamp }] of priceFeeds.entries()) {
127
+ const { nodeId, decimals } = oracleNodes[i];
128
+ oracleNodePrices[nodeId] = { price: [price, 18], decimals, timestamp };
129
+ }
130
+ return oracleNodePrices;
131
+ }
@@ -0,0 +1,241 @@
1
+ import { multicall } from 'viem/actions';
2
+
3
+ import {
4
+ calcBorrowInterestIndex,
5
+ calcDepositInterestIndex,
6
+ calcOverallBorrowInterestRate,
7
+ calcRetention,
8
+ } from '../../../../common/utils/formulae.js';
9
+ import {
10
+ compoundEveryHour,
11
+ compoundEverySecond,
12
+ unixTime,
13
+ } from '../../../../common/utils/math-lib.js';
14
+ import { getBlockTimestamp } from '../../common/utils/chain.js';
15
+ import { getHubTokenData } from '../utils/chain.js';
16
+ import { getHubPoolContract } from '../utils/contract.js';
17
+
18
+ import type {
19
+ EvmAddress,
20
+ GenericAddress,
21
+ } from '../../../../common/types/address.js';
22
+ import type { NetworkType } from '../../../../common/types/chain.js';
23
+ import type { TSTokenId } from '../../../../common/types/token.js';
24
+ import type { PoolInfo } from '../types/pool.js';
25
+ import type { Client } from 'viem';
26
+
27
+ export async function getPoolInfo(
28
+ provider: Client,
29
+ network: NetworkType,
30
+ tsTokenId: TSTokenId,
31
+ blockNumber?: bigint
32
+ ): Promise<PoolInfo> {
33
+ const {
34
+ poolAddress,
35
+ token: { decimals: tokenDecimals },
36
+ } = getHubTokenData(tsTokenId, network);
37
+ const hubPool = getHubPoolContract(provider, poolAddress);
38
+
39
+ // get pool data
40
+ const [
41
+ poolId,
42
+ lastUpdateTimestamp,
43
+ feeData,
44
+ depositData,
45
+ variableBorrowData,
46
+ stableBorrowData,
47
+ capsData,
48
+ configData,
49
+ tsTokenCirculatingSupply,
50
+ ] = await multicall(provider, {
51
+ contracts: [
52
+ {
53
+ address: hubPool.address,
54
+ abi: hubPool.abi,
55
+ functionName: 'getPoolId',
56
+ },
57
+ {
58
+ address: hubPool.address,
59
+ abi: hubPool.abi,
60
+ functionName: 'getLastUpdateTimestamp',
61
+ },
62
+ {
63
+ address: hubPool.address,
64
+ abi: hubPool.abi,
65
+ functionName: 'getFeeData',
66
+ },
67
+ {
68
+ address: hubPool.address,
69
+ abi: hubPool.abi,
70
+ functionName: 'getDepositData',
71
+ },
72
+ {
73
+ address: hubPool.address,
74
+ abi: hubPool.abi,
75
+ functionName: 'getVariableBorrowData',
76
+ },
77
+ {
78
+ address: hubPool.address,
79
+ abi: hubPool.abi,
80
+ functionName: 'getStableBorrowData',
81
+ },
82
+ {
83
+ address: hubPool.address,
84
+ abi: hubPool.abi,
85
+ functionName: 'getCapsData',
86
+ },
87
+ {
88
+ address: hubPool.address,
89
+ abi: hubPool.abi,
90
+ functionName: 'getConfigData',
91
+ },
92
+ {
93
+ address: hubPool.address,
94
+ abi: hubPool.abi,
95
+ functionName: 'totalSupply',
96
+ },
97
+ ],
98
+ allowFailure: false,
99
+ blockNumber,
100
+ });
101
+
102
+ const lastTimestamp = blockNumber
103
+ ? await getBlockTimestamp(provider, blockNumber)
104
+ : BigInt(unixTime());
105
+
106
+ const {
107
+ flashLoanFee,
108
+ retentionRate,
109
+ tsTokenFeeRecipient,
110
+ tokenFeeClaimer,
111
+ totalRetainedAmount: actualRetained,
112
+ tokenFeeRecipient,
113
+ } = feeData;
114
+ const {
115
+ optimalUtilisationRatio,
116
+ totalAmount: depositTotalAmount,
117
+ interestRate: depositInterestRate,
118
+ interestIndex: oldDepositInterestIndex,
119
+ } = depositData;
120
+ const {
121
+ vr0,
122
+ vr1,
123
+ vr2,
124
+ totalAmount: variableBorrowTotalAmount,
125
+ interestRate: variableBorrowInterestRate,
126
+ interestIndex: oldVariableBorrowInterestsIndex,
127
+ } = variableBorrowData;
128
+ const {
129
+ sr0,
130
+ sr1,
131
+ sr2,
132
+ sr3,
133
+ optimalStableToTotalDebtRatio,
134
+ increaseBorrowBalanceUtilisationRatio,
135
+ increaseBorrowBalanceDepositInterestRate,
136
+ decreaseBorrowBalanceDelta,
137
+ totalAmount: stableBorrowTotalAmount,
138
+ interestRate: stableBorrowInterestRate,
139
+ averageInterestRate: stableBorrowAverageInterestRate,
140
+ } = stableBorrowData;
141
+ const {
142
+ deposit: depositCap,
143
+ borrow: borrowCap,
144
+ stableBorrowPercentage: stableBorrowPercentageCap,
145
+ } = capsData;
146
+ const {
147
+ deprecated,
148
+ stableBorrowSupported,
149
+ canMintTsToken,
150
+ flashLoanSupported,
151
+ } = configData;
152
+
153
+ // build pool info
154
+ return {
155
+ tsTokenId,
156
+ poolId,
157
+ tokenDecimals,
158
+ feeData: {
159
+ flashLoanFee: [BigInt(flashLoanFee), 6],
160
+ retentionRate: [BigInt(retentionRate), 6],
161
+ totalRetainedAmount: calcRetention(
162
+ actualRetained,
163
+ variableBorrowTotalAmount + stableBorrowTotalAmount,
164
+ calcOverallBorrowInterestRate(
165
+ variableBorrowTotalAmount,
166
+ stableBorrowTotalAmount,
167
+ [variableBorrowInterestRate, 18],
168
+ [stableBorrowAverageInterestRate, 18]
169
+ ),
170
+ [BigInt(retentionRate), 6],
171
+ lastUpdateTimestamp,
172
+ lastTimestamp
173
+ ),
174
+ tsTokenFeeRecipient: tsTokenFeeRecipient as EvmAddress,
175
+ tokenFeeClaimer: tokenFeeClaimer as EvmAddress,
176
+ tokenFeeRecipient: tokenFeeRecipient as GenericAddress,
177
+ },
178
+ depositData: {
179
+ optimalUtilisationRatio: [BigInt(optimalUtilisationRatio), 4],
180
+ totalAmount: depositTotalAmount,
181
+ interestRate: [depositInterestRate, 18],
182
+ interestYield: compoundEveryHour([depositInterestRate, 18]),
183
+ interestIndex: calcDepositInterestIndex(
184
+ [depositInterestRate, 18],
185
+ [oldDepositInterestIndex, 18],
186
+ lastUpdateTimestamp,
187
+ lastTimestamp
188
+ ),
189
+ },
190
+ variableBorrowData: {
191
+ vr0: [BigInt(vr0), 6],
192
+ vr1: [BigInt(vr1), 6],
193
+ vr2: [BigInt(vr2), 6],
194
+ totalAmount: variableBorrowTotalAmount,
195
+ interestRate: [variableBorrowInterestRate, 18],
196
+ interestYield: compoundEverySecond([variableBorrowInterestRate, 18]),
197
+ interestIndex: calcBorrowInterestIndex(
198
+ [variableBorrowInterestRate, 18],
199
+ [oldVariableBorrowInterestsIndex, 18],
200
+ lastUpdateTimestamp,
201
+ lastTimestamp
202
+ ),
203
+ },
204
+ stableBorrowData: {
205
+ sr0: [BigInt(sr0), 6],
206
+ sr1: [BigInt(sr1), 6],
207
+ sr2: [BigInt(sr2), 6],
208
+ sr3: [BigInt(sr3), 6],
209
+ optimalStableToTotalDebtRatio: [BigInt(optimalStableToTotalDebtRatio), 4],
210
+ increaseBorrowBalanceUtilisationRatio: [
211
+ BigInt(increaseBorrowBalanceUtilisationRatio),
212
+ 4,
213
+ ],
214
+ increaseBorrowBalanceDepositInterestRate: [
215
+ BigInt(increaseBorrowBalanceDepositInterestRate),
216
+ 4,
217
+ ],
218
+ decreaseBorrowBalanceDelta: [BigInt(decreaseBorrowBalanceDelta), 4],
219
+ totalAmount: stableBorrowTotalAmount,
220
+ interestRate: [stableBorrowInterestRate, 18],
221
+ interestYield: compoundEverySecond([stableBorrowInterestRate, 18]),
222
+ averageInterestRate: [stableBorrowAverageInterestRate, 18],
223
+ averageInterestYield: compoundEverySecond([
224
+ stableBorrowAverageInterestRate,
225
+ 18,
226
+ ]),
227
+ },
228
+ capsData: {
229
+ deposit: BigInt(depositCap),
230
+ borrow: BigInt(borrowCap),
231
+ stableBorrowPercentage: [BigInt(stableBorrowPercentageCap), 18],
232
+ },
233
+ configData: {
234
+ deprecated,
235
+ stableBorrowSupported,
236
+ canMintTsToken,
237
+ flashLoanSupported,
238
+ },
239
+ tsTokenCirculatingSupply,
240
+ };
241
+ }
@@ -0,0 +1,30 @@
1
+ import type { GenericAddress } from '../../../../common/types/address.js';
2
+ import type { TSChainId } from '../../../../common/types/chain.js';
3
+ import type { AccountId } from '../../../../common/types/lending.js';
4
+ import type {
5
+ GetEventParams,
6
+ GetReadContractReturnType,
7
+ } from '../../common/types/contract.js';
8
+ import type { AccountControllerAbi } from '../constants/abi/account-manager-abi.js';
9
+
10
+ export type AccountInfo = {
11
+ registered: Map<TSChainId, GenericAddress>;
12
+ invited: Map<TSChainId, GenericAddress>;
13
+ };
14
+
15
+ export type AccountIdByAddress = Array<{
16
+ accountId: AccountId;
17
+ tsChainId: TSChainId;
18
+ }>;
19
+
20
+ export type InviteAddressEventParams = GetEventParams & {
21
+ accountController: GetReadContractReturnType<typeof AccountControllerAbi>;
22
+ address: GenericAddress;
23
+ tsChainId?: TSChainId;
24
+ };
25
+
26
+ export type AcceptInviteAddressEventParams = GetEventParams & {
27
+ accountController: GetReadContractReturnType<typeof AccountControllerAbi>;
28
+ address: GenericAddress;
29
+ tsChainId?: TSChainId;
30
+ };
@@ -0,0 +1,22 @@
1
+ import type { HubTokenData } from './token.js';
2
+ import type { GenericAddress } from '../../../../common/types/address.js';
3
+ import type { ITSChain } from '../../../../common/types/chain.js';
4
+ import type { AdapterType } from '../../../../common/types/message.js';
5
+ import type { TSTokenId } from '../../../../common/types/token.js';
6
+
7
+ export type HubRewardsMap = {
8
+ bridgeRouterAddress: GenericAddress;
9
+ adapters: Partial<Record<AdapterType, GenericAddress>>;
10
+ };
11
+
12
+ export type HubChain = {
13
+ hubAddress: GenericAddress;
14
+ hubMessageDispatcher: GenericAddress;
15
+ adapters: Record<AdapterType, GenericAddress>;
16
+ nodeManagerAddress: GenericAddress;
17
+ priceFeedControllerAddress: GenericAddress;
18
+ spokeControllerAddress: GenericAddress;
19
+ accountControllerAddress: GenericAddress;
20
+ loanControllerAddress: GenericAddress;
21
+ tokens: Partial<Record<TSTokenId, HubTokenData>>;
22
+ } & ITSChain;
@@ -0,0 +1,188 @@
1
+ import type { OraclePrice } from './oracle.js';
2
+ import type { PoolInfo } from './pool.js';
3
+ import type {
4
+ AccountId,
5
+ LoanId,
6
+ LoanTypeId,
7
+ } from '../../../../common/types/lending.js';
8
+ import type { TSTokenId } from '../../../../common/types/token.js';
9
+ import type {
10
+ GetEventParams,
11
+ GetReadContractReturnType,
12
+ } from '../../common/types/contract.js';
13
+ import type { LoanControllerAbi } from '../constants/abi/loan-manager-abi.js';
14
+ import type { Dnum } from 'dnum';
15
+ import type { ReadContractReturnType } from 'viem';
16
+
17
+ export type LoanPoolInfo = {
18
+ tsTokenId: TSTokenId;
19
+ poolId: number;
20
+ collateralUsed: bigint; // in f token
21
+ borrowUsed: bigint; // in token
22
+ collateralCap: bigint; // $ amount
23
+ borrowCap: bigint; // $ amount
24
+ collateralFactor: Dnum;
25
+ borrowFactor: Dnum;
26
+ liquidationBonus: Dnum;
27
+ liquidationFee: Dnum;
28
+ isDeprecated: boolean;
29
+ reward: {
30
+ minimumAmount: bigint; // in token
31
+ collateralSpeed: Dnum;
32
+ borrowSpeed: Dnum;
33
+ collateralRewardIndex: Dnum;
34
+ borrowRewardIndex: Dnum;
35
+ };
36
+ };
37
+
38
+ export type LoanTypeInfo = {
39
+ loanTypeId: LoanTypeId;
40
+ deprecated: boolean;
41
+ loanTargetHealth: Dnum;
42
+ pools: Partial<Record<TSTokenId, LoanPoolInfo>>;
43
+ };
44
+
45
+ export type PoolsPoints = {
46
+ collateral: bigint;
47
+ borrow: bigint;
48
+ interestPaid: bigint;
49
+ };
50
+
51
+ export type UserPoints = {
52
+ accountId: AccountId;
53
+ poolsPoints: Partial<Record<TSTokenId, PoolsPoints>>;
54
+ };
55
+
56
+ export type UserLoanInfoCollateral = {
57
+ tsTokenId: TSTokenId;
58
+ poolId: number;
59
+ tokenDecimals: number;
60
+ oraclePrice: OraclePrice;
61
+ collateralFactor: Dnum;
62
+ fTokenBalance: bigint;
63
+ tokenBalance: bigint;
64
+ balanceValue: Dnum;
65
+ effectiveBalanceValue: Dnum;
66
+ interestRate: Dnum;
67
+ interestYield: Dnum;
68
+ };
69
+
70
+ export type UserLoanInfoBorrow = {
71
+ tsTokenId: TSTokenId;
72
+ poolId: number;
73
+ tokenDecimals: number;
74
+ oraclePrice: OraclePrice;
75
+ isStable: boolean;
76
+ borrowFactor: Dnum;
77
+ borrowedAmount: bigint;
78
+ borrowedAmountValue: Dnum;
79
+ borrowBalance: bigint;
80
+ borrowBalanceValue: Dnum;
81
+ effectiveBorrowBalanceValue: Dnum;
82
+ accruedInterest: bigint;
83
+ accruedInterestValue: Dnum;
84
+ interestRate: Dnum;
85
+ interestYield: Dnum;
86
+ };
87
+
88
+ export type UserLoanInfo = {
89
+ loanId: LoanId;
90
+ loanTypeId: LoanTypeId;
91
+ accountId: AccountId;
92
+ collaterals: Partial<Record<TSTokenId, UserLoanInfoCollateral>>;
93
+ borrows: Partial<Record<TSTokenId, UserLoanInfoBorrow>>;
94
+ netRate: Dnum;
95
+ netYield: Dnum;
96
+ totalCollateralBalanceValue: Dnum;
97
+ totalBorrowedAmountValue: Dnum;
98
+ totalBorrowBalanceValue: Dnum;
99
+ totalEffectiveCollateralBalanceValue: Dnum;
100
+ totalEffectiveBorrowBalanceValue: Dnum;
101
+ loanToValueRatio: Dnum;
102
+ borrowUtilisationRatio: Dnum;
103
+ liquidationMargin: Dnum;
104
+ };
105
+
106
+ export type AssetsAdditionalInterest = Partial<
107
+ Record<
108
+ TSTokenId,
109
+ {
110
+ additionalRate: Dnum;
111
+ additionalYield: Dnum;
112
+ }
113
+ >
114
+ >;
115
+
116
+ export type CreateUserLoanEventParams = GetEventParams & {
117
+ loanController: GetReadContractReturnType<typeof LoanControllerAbi>;
118
+ accountId: AccountId;
119
+ loanTypeIds?: Array<LoanTypeId>;
120
+ };
121
+
122
+ export type DeleteUserLoanEventParams = GetEventParams & {
123
+ loanController: GetReadContractReturnType<typeof LoanControllerAbi>;
124
+ accountId: AccountId;
125
+ };
126
+
127
+ export type LoanControllerUserLoanAbi = ReadContractReturnType<
128
+ typeof LoanControllerAbi,
129
+ 'retrieveUserLoan'
130
+ >;
131
+
132
+ export type LoanControllerUserLoanCollateral = LoanControllerUserLoanAbi[4][0];
133
+ export type LoanControllerUserLoanBorrow = LoanControllerUserLoanAbi[5][0];
134
+
135
+ export type LoanControllerUserLoan = {
136
+ accountId: AccountId;
137
+ loanTypeId: LoanTypeId;
138
+ colPools: Array<number>;
139
+ borPools: Array<number>;
140
+ userLoanCollateral: Array<LoanControllerUserLoanCollateral>;
141
+ userLoanBorrow: Array<LoanControllerUserLoanBorrow>;
142
+ };
143
+
144
+ export enum LoanChangeType {
145
+ AddCollateral,
146
+ ReduceCollateral,
147
+ Borrow,
148
+ Repay,
149
+ SwitchBorrowType,
150
+ }
151
+
152
+ type LoanBaseChange = {
153
+ type: LoanChangeType;
154
+ poolInfo: PoolInfo;
155
+ };
156
+
157
+ type LoanAddCollateralChange = LoanBaseChange & {
158
+ type: LoanChangeType.AddCollateral;
159
+ tsTokenAmount: bigint;
160
+ };
161
+
162
+ type LoanReduceCollateralChange = LoanBaseChange & {
163
+ type: LoanChangeType.ReduceCollateral;
164
+ tsTokenAmount: bigint;
165
+ };
166
+
167
+ type LoanBorrowChange = LoanBaseChange & {
168
+ type: LoanChangeType.Borrow;
169
+ tokenAmount: bigint;
170
+ isStable: boolean;
171
+ };
172
+
173
+ type LoanRepayChange = LoanBaseChange & {
174
+ type: LoanChangeType.Repay;
175
+ tokenAmount: bigint;
176
+ };
177
+
178
+ type LoanSwitchBorrowTypeChange = LoanBaseChange & {
179
+ type: LoanChangeType.SwitchBorrowType;
180
+ isSwitchingToStable: boolean;
181
+ };
182
+
183
+ export type LoanChange =
184
+ | LoanAddCollateralChange
185
+ | LoanReduceCollateralChange
186
+ | LoanBorrowChange
187
+ | LoanRepayChange
188
+ | LoanSwitchBorrowTypeChange;
@@ -0,0 +1,25 @@
1
+ import type { Branded } from "../../../../common/types/brand.js";
2
+ import type { TSTokenId } from "../../../../common/types/token.js";
3
+ import type { Dnum } from "dnum";
4
+
5
+ export type NodeId = Branded<`0x${string}`, "NodeId">;
6
+
7
+ export type OracleNode = {
8
+ nodeId: NodeId;
9
+ decimals: number;
10
+ };
11
+
12
+ export type OracleNodePrice = {
13
+ price: Dnum;
14
+ decimals: number;
15
+ timestamp: bigint;
16
+ };
17
+
18
+ export type OracleNodePrices = Partial<Record<NodeId, OracleNodePrice>>;
19
+
20
+ export type OraclePrice = {
21
+ price: Dnum;
22
+ decimals: number;
23
+ };
24
+
25
+ export type OraclePrices = Partial<Record<TSTokenId, OraclePrice>>;
@@ -0,0 +1,75 @@
1
+ import type {
2
+ EvmAddress,
3
+ GenericAddress,
4
+ } from '../../../../common/types/address.js';
5
+ import type { TSTokenId } from '../../../../common/types/token.js';
6
+ import type { Dnum } from 'dnum';
7
+
8
+ type FeeData = {
9
+ flashLoanFee: Dnum;
10
+ retentionRate: Dnum;
11
+ tsTokenFeeRecipient: EvmAddress;
12
+ tokenFeeClaimer: EvmAddress;
13
+ totalRetainedAmount: bigint;
14
+ tokenFeeRecipient: GenericAddress;
15
+ };
16
+
17
+ type DepositData = {
18
+ optimalUtilisationRatio: Dnum;
19
+ totalAmount: bigint;
20
+ interestRate: Dnum;
21
+ interestYield: Dnum;
22
+ interestIndex: Dnum;
23
+ };
24
+
25
+ type VariableBorrowData = {
26
+ vr0: Dnum;
27
+ vr1: Dnum;
28
+ vr2: Dnum;
29
+ totalAmount: bigint;
30
+ interestRate: Dnum;
31
+ interestYield: Dnum;
32
+ interestIndex: Dnum;
33
+ };
34
+
35
+ type StableBorrowData = {
36
+ sr0: Dnum;
37
+ sr1: Dnum;
38
+ sr2: Dnum;
39
+ sr3: Dnum;
40
+ optimalStableToTotalDebtRatio: Dnum;
41
+ increaseBorrowBalanceUtilisationRatio: Dnum;
42
+ increaseBorrowBalanceDepositInterestRate: Dnum;
43
+ decreaseBorrowBalanceDelta: Dnum;
44
+ totalAmount: bigint;
45
+ interestRate: Dnum;
46
+ interestYield: Dnum;
47
+ averageInterestRate: Dnum;
48
+ averageInterestYield: Dnum;
49
+ };
50
+
51
+ type CapsData = {
52
+ deposit: bigint; // $ amount
53
+ borrow: bigint; // $ amount
54
+ stableBorrowPercentage: Dnum;
55
+ };
56
+
57
+ type ConfigData = {
58
+ deprecated: boolean;
59
+ stableBorrowSupported: boolean;
60
+ canMintTsToken: boolean;
61
+ flashLoanSupported: boolean;
62
+ };
63
+
64
+ export type PoolInfo = {
65
+ tsTokenId: TSTokenId;
66
+ poolId: number;
67
+ tokenDecimals: number;
68
+ feeData: FeeData;
69
+ depositData: DepositData;
70
+ variableBorrowData: VariableBorrowData;
71
+ stableBorrowData: StableBorrowData;
72
+ capsData: CapsData;
73
+ configData: ConfigData;
74
+ tsTokenCirculatingSupply: bigint;
75
+ };