@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,79 @@
1
+ import { getEvmSignerAddress } from '../../chains/evm/common/utils/chain.js';
2
+ import { getHubChainAdapterAddress, isHubChain, } from '../../chains/evm/hub/utils/chain.js';
3
+ import { exhaustiveCheck } from '../../utils/exhaustive-check.js';
4
+ import { TS_CHAIN, SPOKE_CHAIN } from '../constants/chain.js';
5
+ import { ChainType } from '../types/chain.js';
6
+ import { convertToGenericAddress } from './address.js';
7
+ export function getTsChain(tsChainId, network) {
8
+ const tsChain = TS_CHAIN[network][tsChainId];
9
+ if (!tsChain)
10
+ throw new Error(`Townsq Chain not found for tsChainId: ${tsChainId}`);
11
+ return tsChain;
12
+ }
13
+ export function getTsChainsByNetwork(network) {
14
+ return Object.values(TS_CHAIN[network]);
15
+ }
16
+ export function getTsChainIdsByNetwork(networkType) {
17
+ return getTsChainsByNetwork(networkType).map((tsChain) => tsChain.tsChainId);
18
+ }
19
+ export function isSpokeChainSupported(tsChainId, network) {
20
+ return SPOKE_CHAIN[network][tsChainId] !== undefined;
21
+ }
22
+ export function assertSpokeChainSupported(tsChainId, network) {
23
+ if (!isSpokeChainSupported(tsChainId, network))
24
+ throw new Error(`Spoke chain is not supported for tsChainId: ${tsChainId}`);
25
+ }
26
+ export function getSpokeChain(tsChainId, network) {
27
+ const spokeChain = SPOKE_CHAIN[network][tsChainId];
28
+ if (!spokeChain)
29
+ throw new Error(`Spoke chain not found for tsChainId: ${tsChainId}`);
30
+ return spokeChain;
31
+ }
32
+ export function doesSpokeSupportTsToken(spokeChain, tsTokenId) {
33
+ return spokeChain.tokens[tsTokenId] !== undefined;
34
+ }
35
+ export function getSpokeTokenData(spokeChain, tsTokenId) {
36
+ const tokenData = spokeChain.tokens[tsTokenId];
37
+ if (!tokenData)
38
+ throw new Error(`Spoke Token not found for tsTokenId: ${tsTokenId}`);
39
+ return tokenData;
40
+ }
41
+ export function isTsTokenSupported(tsTokenId, tsChainId, network) {
42
+ const spokeChain = getSpokeChain(tsChainId, network);
43
+ return doesSpokeSupportTsToken(spokeChain, tsTokenId);
44
+ }
45
+ export function assertSpokeChainSupportTsToken(tsChainId, tsTokenId, network) {
46
+ if (!isTsTokenSupported(tsTokenId, tsChainId, network))
47
+ throw new Error(`Townsq Token ${tsTokenId} is not supported on Townsq Chain ${tsChainId}`);
48
+ }
49
+ export function getSpokeChainAdapterAddress(tsChainId, network, adapterType) {
50
+ const spokeChain = getSpokeChain(tsChainId, network);
51
+ const { adapters } = spokeChain;
52
+ const adapterAddress = adapters[adapterType];
53
+ if (adapterAddress)
54
+ return adapterAddress;
55
+ throw new Error(`Adapter ${adapterType} not found for spoke chain ${tsChainId}`);
56
+ }
57
+ export function getAdapterAddress(tsChainId, network, adapterType) {
58
+ if (isHubChain(tsChainId, network))
59
+ return getHubChainAdapterAddress(network, adapterType);
60
+ return getSpokeChainAdapterAddress(tsChainId, network, adapterType);
61
+ }
62
+ export function getSpokeChainBridgeRouterAddress(spokeChain) {
63
+ const { messageDispatcherAddress } = spokeChain;
64
+ return messageDispatcherAddress;
65
+ }
66
+ export function getSignerGenericAddress(tsChainSigner) {
67
+ const chainType = tsChainSigner.chainType;
68
+ switch (chainType) {
69
+ case ChainType.EVM:
70
+ return convertToGenericAddress(getEvmSignerAddress(tsChainSigner.signer), chainType);
71
+ default:
72
+ return exhaustiveCheck(chainType);
73
+ }
74
+ }
75
+ export function assertHubChainSelected(tsChainId, network) {
76
+ if (!isHubChain(tsChainId, network))
77
+ throw new Error(`Wrong chain selected: ${tsChainId}. Expected Hub chain`);
78
+ }
79
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/common/utils/chain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Dnum } from 'dnum';
2
+ export declare function calcPeriodNumber(offset: bigint, length: bigint): bigint;
3
+ export declare function calcNextPeriodReset(periodNumber: bigint, offset: bigint, length: bigint): bigint;
4
+ export declare function calcOverallBorrowInterestRate(totalVarDebt: bigint, totalStableDebt: bigint, variableBorInterestRate: Dnum, avgStableBorInterestRate: Dnum): Dnum;
5
+ export declare function calcDepositInterestIndex(dirt1: Dnum, diit1: Dnum, latestUpdate: bigint, lastTimestamp?: bigint): Dnum;
6
+ export declare function calcBorrowInterestIndex(birt1: Dnum, biit1: Dnum, latestUpdate: bigint, lastTimestamp?: bigint): Dnum;
7
+ export declare function calcRetention(actualRetained: bigint, totalDebt: bigint, overallBorrowInterestRate: Dnum, retentionRate: Dnum, latestUpdate: bigint, lastTimestamp?: bigint): bigint;
8
+ export declare function calcRewardIndex(used: bigint, ma: bigint, rit1: Dnum, rs: Dnum, latestUpdate: bigint): Dnum;
9
+ export declare function calcAccruedRewards(amount: bigint, rit: Dnum, ritn1: Dnum): bigint;
10
+ export declare function toFAmount(underlyingAmount: bigint, diit: Dnum): bigint;
11
+ export declare function toUnderlyingAmount(fAmount: bigint, diit: Dnum): bigint;
12
+ export declare function calcAssetDollarValue(amount: bigint, tokenPrice: Dnum, tokenDecimals: number): Dnum;
13
+ export declare function calcCollateralAssetLoanValue(amount: bigint, tokenPrice: Dnum, tokenDecimals: number, collateralFactor: Dnum): Dnum;
14
+ export declare function calcBorrowAssetLoanValue(amount: bigint, tokenPrice: Dnum, tokenDecimals: number, borrowFactor: Dnum): Dnum;
15
+ export declare function calcBorrowBalance(bbtn1: bigint, biit: Dnum, biitn1: Dnum): bigint;
16
+ export declare function calcStableInterestRate(bbt: bigint, amount: bigint, sbirtn1: Dnum, sbirt1: Dnum): Dnum;
17
+ export declare function calcLtvRatio(totalBorrowBalanceValue: Dnum, totalCollateralBalanceValue: Dnum): Dnum;
18
+ export declare function calcBorrowUtilisationRatio(totalEffectiveBorrowBalanceValue: Dnum, totalEffectiveCollateralBalanceValue: Dnum): Dnum;
19
+ export declare function calcLiquidationMargin(totalEffectiveBorrowBalanceValue: Dnum, totalEffectiveCollateralBalanceValue: Dnum): Dnum;
@@ -0,0 +1,118 @@
1
+ import * as dn from 'dnum';
2
+ import { SECONDS_IN_YEAR, expBySquaring, unixTime } from './math-lib.js';
3
+ export function calcPeriodNumber(offset, length) {
4
+ return (BigInt(unixTime()) + offset) / length;
5
+ }
6
+ export function calcNextPeriodReset(periodNumber, offset, length) {
7
+ return (periodNumber + BigInt(1)) * length - offset;
8
+ }
9
+ export function calcOverallBorrowInterestRate(totalVarDebt, totalStableDebt, variableBorInterestRate, avgStableBorInterestRate) {
10
+ const totalDebt = totalVarDebt + totalStableDebt;
11
+ if (totalDebt === 0n)
12
+ return dn.from(0, 18);
13
+ return dn.div(dn.add(dn.mul(totalVarDebt, variableBorInterestRate, {
14
+ rounding: 'ROUND_DOWN',
15
+ decimals: 0,
16
+ }), dn.mul(totalStableDebt, avgStableBorInterestRate, {
17
+ rounding: 'ROUND_DOWN',
18
+ decimals: 0,
19
+ })), totalDebt, { rounding: 'ROUND_DOWN', decimals: 18 });
20
+ }
21
+ export function calcDepositInterestIndex(dirt1, diit1, latestUpdate, lastTimestamp = BigInt(unixTime())) {
22
+ const dt = lastTimestamp - latestUpdate;
23
+ return dn.mul(diit1, dn.add(dn.from(1, 18), dn.div(dn.mul(dirt1, dt, { rounding: 'ROUND_DOWN' }), SECONDS_IN_YEAR, {
24
+ rounding: 'ROUND_DOWN',
25
+ })), { rounding: 'ROUND_DOWN' });
26
+ }
27
+ export function calcBorrowInterestIndex(birt1, biit1, latestUpdate, lastTimestamp = BigInt(unixTime())) {
28
+ const dt = lastTimestamp - latestUpdate;
29
+ return dn.mul(biit1, expBySquaring(dn.add(dn.from(1, 18), dn.div(birt1, SECONDS_IN_YEAR, { rounding: 'ROUND_DOWN' })), dt), { rounding: 'ROUND_DOWN' });
30
+ }
31
+ export function calcRetention(actualRetained, totalDebt, overallBorrowInterestRate, retentionRate, latestUpdate, lastTimestamp = BigInt(unixTime())) {
32
+ const dt = lastTimestamp - latestUpdate;
33
+ const [retainedDelta] = dn.div(dn.mul(dn.mul(dn.mul(totalDebt, overallBorrowInterestRate, {
34
+ rounding: 'ROUND_DOWN',
35
+ decimals: 0,
36
+ }), retentionRate, {
37
+ rounding: 'ROUND_DOWN',
38
+ decimals: 0,
39
+ }), dt, { rounding: 'ROUND_DOWN' }), SECONDS_IN_YEAR, {
40
+ rounding: 'ROUND_DOWN',
41
+ });
42
+ return actualRetained + retainedDelta;
43
+ }
44
+ export function calcRewardIndex(used, ma, rit1, rs, latestUpdate) {
45
+ if (used <= ma)
46
+ return rit1;
47
+ const dt = BigInt(unixTime()) - latestUpdate;
48
+ return dn.add(rit1, dn.div(dn.mul(rs, dt, { rounding: 'ROUND_DOWN' }), used, {
49
+ rounding: 'ROUND_DOWN',
50
+ }));
51
+ }
52
+ export function calcAccruedRewards(amount, rit, ritn1) {
53
+ const [accruedRewards] = dn.mul([amount, 0], dn.sub(rit, ritn1), {
54
+ rounding: 'ROUND_DOWN',
55
+ });
56
+ return accruedRewards;
57
+ }
58
+ export function toFAmount(underlyingAmount, diit) {
59
+ const [fAmount] = dn.div([underlyingAmount, 0], diit, {
60
+ rounding: 'ROUND_DOWN',
61
+ });
62
+ return fAmount;
63
+ }
64
+ export function toUnderlyingAmount(fAmount, diit) {
65
+ const [underlyingAmount] = dn.mul([fAmount, 0], diit, {
66
+ rounding: 'ROUND_DOWN',
67
+ });
68
+ return underlyingAmount;
69
+ }
70
+ export function calcAssetDollarValue(amount, tokenPrice, tokenDecimals) {
71
+ return dn.mul(tokenPrice, [amount, tokenDecimals], {
72
+ rounding: 'ROUND_DOWN',
73
+ });
74
+ }
75
+ export function calcCollateralAssetLoanValue(amount, tokenPrice, tokenDecimals, collateralFactor) {
76
+ return dn.mul(calcAssetDollarValue(amount, tokenPrice, tokenDecimals), collateralFactor, {
77
+ rounding: 'ROUND_DOWN',
78
+ decimals: 8,
79
+ });
80
+ }
81
+ export function calcBorrowAssetLoanValue(amount, tokenPrice, tokenDecimals, borrowFactor) {
82
+ return dn.mul(calcAssetDollarValue(amount, tokenPrice, tokenDecimals), borrowFactor, {
83
+ rounding: 'ROUND_UP',
84
+ decimals: 8,
85
+ });
86
+ }
87
+ export function calcBorrowBalance(bbtn1, biit, biitn1) {
88
+ const [borrowBalance] = dn.mul([bbtn1, 0], dn.div(biit, biitn1, { rounding: 'ROUND_UP' }), {
89
+ rounding: 'ROUND_UP',
90
+ });
91
+ return borrowBalance;
92
+ }
93
+ export function calcStableInterestRate(bbt, amount, sbirtn1, sbirt1) {
94
+ return dn.div(dn.add(dn.mul(sbirtn1, [bbt, 0]), dn.mul(sbirt1, [amount, 0])), dn.add([bbt, 0], [amount, 0]));
95
+ }
96
+ export function calcLtvRatio(totalBorrowBalanceValue, totalCollateralBalanceValue) {
97
+ const [, decimals] = totalBorrowBalanceValue;
98
+ if (dn.equal(totalCollateralBalanceValue, 0))
99
+ return dn.from(0, decimals);
100
+ return dn.div(totalBorrowBalanceValue, totalCollateralBalanceValue, {
101
+ rounding: 'ROUND_UP',
102
+ });
103
+ }
104
+ export function calcBorrowUtilisationRatio(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue) {
105
+ const [, decimals] = totalEffectiveBorrowBalanceValue;
106
+ if (dn.equal(totalEffectiveCollateralBalanceValue, 0))
107
+ return dn.from(0, decimals);
108
+ return dn.div(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue, { rounding: 'ROUND_UP' });
109
+ }
110
+ export function calcLiquidationMargin(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue) {
111
+ const [, decimals] = totalEffectiveBorrowBalanceValue;
112
+ if (dn.equal(totalEffectiveCollateralBalanceValue, 0))
113
+ return dn.from(0, decimals);
114
+ return dn.div(dn.sub(totalEffectiveCollateralBalanceValue, totalEffectiveBorrowBalanceValue), totalEffectiveCollateralBalanceValue, {
115
+ rounding: 'ROUND_DOWN',
116
+ });
117
+ }
118
+ //# sourceMappingURL=formulae.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formulae.js","sourceRoot":"","sources":["../../../src/common/utils/formulae.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { TSChainId } from '../types/chain.js';
2
+ import type { WormholeData } from '../types/gmp.js';
3
+ export declare function getWormholeData(tsChainId: TSChainId): WormholeData;
@@ -0,0 +1,5 @@
1
+ import { WORMHOLE_DATA } from '../constants/gmp.js';
2
+ export function getWormholeData(tsChainId) {
3
+ return WORMHOLE_DATA[tsChainId];
4
+ }
5
+ //# sourceMappingURL=gmp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmp.js","sourceRoot":"","sources":["../../../src/common/utils/gmp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { GenericAddress } from '../types/address.js';
2
+ import type { TSChainId } from '../types/chain.js';
3
+ import type { AccountId, LoanId, LoanName, Nonce } from '../types/lending.js';
4
+ export declare function isAccountId(accountId: AccountId): boolean;
5
+ export declare function buildAccountId(addr: GenericAddress, chainId: TSChainId, nonce: Nonce): AccountId;
6
+ export declare function buildLoanId(accountId: AccountId, nonce: Nonce): LoanId;
7
+ export declare function convertStringToLoanName(name: string): LoanName;
@@ -0,0 +1,16 @@
1
+ import { concat, keccak256, pad, toHex } from 'viem';
2
+ import { BYTES32_LENGTH, UINT16_LENGTH } from '../constants/byte.js';
3
+ import { convertNumberToBytes } from './bytes.js';
4
+ export function isAccountId(accountId) {
5
+ return accountId.length === 64 + 2;
6
+ }
7
+ export function buildAccountId(addr, chainId, nonce) {
8
+ return keccak256(concat([addr, convertNumberToBytes(chainId, UINT16_LENGTH), nonce]));
9
+ }
10
+ export function buildLoanId(accountId, nonce) {
11
+ return keccak256(concat([accountId, nonce]));
12
+ }
13
+ export function convertStringToLoanName(name) {
14
+ return pad(toHex(name), { size: BYTES32_LENGTH });
15
+ }
16
+ //# sourceMappingURL=lending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lending.js","sourceRoot":"","sources":["../../../src/common/utils/lending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAMlD,MAAM,UAAU,WAAW,CAAC,SAAoB;IAC9C,OAAO,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAoB,EACpB,OAAkB,EAClB,KAAY;IAEZ,OAAO,SAAS,CACd,MAAM,CAAC,CAAC,IAAI,EAAE,oBAAoB,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC,CACvD,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAoB,EAAE,KAAY;IAC5D,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAW,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAa,CAAC;AAChE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Dnum } from "dnum";
2
+ export declare const SECONDS_IN_YEAR: bigint;
3
+ export declare const HOURS_IN_YEAR: bigint;
4
+ export declare function unixTime(): number;
5
+ export declare function expBySquaring(x: Dnum, n: bigint): Dnum;
6
+ export declare function compoundEverySecond(rate: Dnum): Dnum;
7
+ export declare function compoundEveryHour(rate: Dnum): Dnum;
8
+ export declare const bigIntMax: (...args: Array<bigint>) => bigint;
9
+ export declare const bigIntMin: (...args: Array<bigint>) => bigint;
10
+ export declare const increaseByPercent: (value: bigint, percent: number) => bigint;
@@ -0,0 +1,41 @@
1
+ import * as dn from "dnum";
2
+ export const SECONDS_IN_YEAR = BigInt(365 * 24 * 60 * 60);
3
+ export const HOURS_IN_YEAR = BigInt(365 * 24);
4
+ export function unixTime() {
5
+ return Math.floor(Date.now() / 1000);
6
+ }
7
+ export function expBySquaring(x, n) {
8
+ const [, decimals] = x;
9
+ const one = dn.from(1, decimals);
10
+ if (n === BigInt(0))
11
+ return one;
12
+ let y = one;
13
+ while (n > BigInt(1)) {
14
+ if (n % BigInt(2)) {
15
+ y = dn.mul(x, y, { rounding: "ROUND_DOWN" });
16
+ n = (n - BigInt(1)) / BigInt(2);
17
+ }
18
+ else {
19
+ n = n / BigInt(2);
20
+ }
21
+ x = dn.mul(x, x, { rounding: "ROUND_DOWN" });
22
+ }
23
+ return dn.mul(x, y, { rounding: "ROUND_DOWN" });
24
+ }
25
+ function compound(rate, period) {
26
+ const [, decimals] = rate;
27
+ const one = dn.from(1, decimals);
28
+ return dn.sub(expBySquaring(dn.add(one, dn.div(rate, period)), period), one);
29
+ }
30
+ export function compoundEverySecond(rate) {
31
+ return compound(rate, SECONDS_IN_YEAR);
32
+ }
33
+ export function compoundEveryHour(rate) {
34
+ return compound(rate, HOURS_IN_YEAR);
35
+ }
36
+ export const bigIntMax = (...args) => args.reduce((m, e) => (e > m ? e : m));
37
+ export const bigIntMin = (...args) => args.reduce((m, e) => (e < m ? e : m));
38
+ export const increaseByPercent = (value, percent) => {
39
+ return value + (value * BigInt(10_000 * percent)) / BigInt(10_000);
40
+ };
41
+ //# sourceMappingURL=math-lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-lib.js","sourceRoot":"","sources":["../../../src/common/utils/math-lib.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ChainType } from '../types/chain.js';
2
+ import { MessageDirection } from '../types/gmp.js';
3
+ import { Action } from '../types/message.js';
4
+ import type { TSChainId, NetworkType } from '../types/chain.js';
5
+ import type { TSProvider } from '../types/core.js';
6
+ import type { MessageBuilderParams, MessageToSend, OptionalFeeParams, Payload } from '../types/message.js';
7
+ import type { Hex } from 'viem';
8
+ export declare function buildMessageToSend(chainType: ChainType, messageToSendBuilderParams: MessageBuilderParams, feeParams?: OptionalFeeParams): MessageToSend;
9
+ export declare function estimateAdapterReceiveGasLimit(sourceTSChainId: TSChainId, destTSChainId: TSChainId, destTSChainProvider: TSProvider, network: NetworkType, messageDirection: MessageDirection, messageBuilderParams: MessageBuilderParams, receiverValue?: bigint, returnGasLimit?: bigint, isRewards?: boolean): Promise<bigint>;
10
+ export declare function getOperationIdsByTransaction(chainType: ChainType, tsProvider: TSProvider, txnHash: Hex): Promise<`0x${string}`[]>;
11
+ export declare function waitOperationIds(chainType: ChainType, tsProvider: TSProvider, txnHash: Hex, confirmations?: number): Promise<`0x${string}`[]>;
12
+ export declare function isReversibleAction(action: Action, messageDirection: MessageDirection): boolean;
13
+ export declare function assertReversibleAction(action: Action, messageDirection: MessageDirection): void;
14
+ export declare function isRetryableAction(action: Action, messageDirection: MessageDirection): boolean;
15
+ export declare function assertRetryableAction(action: Action, messageDirection: MessageDirection): void;
16
+ export declare function decodeMessagePayload(payload: Hex): Payload;
@@ -0,0 +1,124 @@
1
+ import { hexToNumber, parseEventLogs, sliceHex, } from 'viem';
2
+ import { getTransactionReceipt } from 'viem/actions';
3
+ import { WormholeDataAdapterAbi } from '../../chains/evm/common/constant/abi/wormhole-data-adapter-abi.js';
4
+ import { GAS_LIMIT_ESTIMATE_INCREASE } from '../../chains/evm/common/constant/contract.js';
5
+ import { buildEvmMessageToSend, estimateEvmWormholeDataGasLimit, getSendTokenStateOverride, } from '../../chains/evm/common/utils/message.js';
6
+ import { getHubChainAdapterAddress } from '../../chains/evm/hub/utils/chain.js';
7
+ import { exhaustiveCheck } from '../../utils/exhaustive-check.js';
8
+ import { BYTES32_LENGTH, UINT16_LENGTH, } from '../constants/byte.js';
9
+ import { REVERSIBLE_HUB_ACTIONS, SEND_TOKEN_ACTIONS, } from '../constants/message.js';
10
+ import { ChainType } from '../types/chain.js';
11
+ import { MessageDirection } from '../types/gmp.js';
12
+ import { Action, AdapterType } from '../types/message.js';
13
+ import { convertFromGenericAddress } from './address.js';
14
+ import { getTsChain, getSpokeChainAdapterAddress } from './chain.js';
15
+ import { getWormholeData } from './gmp.js';
16
+ import { waitTransaction } from './transaction.js';
17
+ export function buildMessageToSend(chainType, messageToSendBuilderParams, feeParams = {}) {
18
+ switch (chainType) {
19
+ case ChainType.EVM: {
20
+ return buildEvmMessageToSend(messageToSendBuilderParams, feeParams);
21
+ }
22
+ default:
23
+ return exhaustiveCheck(chainType);
24
+ }
25
+ }
26
+ function getAdapterId(messageDirection, adapters) {
27
+ if (messageDirection === MessageDirection.SpokeToHub)
28
+ return adapters.adapterId;
29
+ return adapters.returnAdapterId;
30
+ }
31
+ function getAdaptersAddresses(messageDirection, sourceTSChainId, destTSChainId, network, adapterId, isRewards = false) {
32
+ if (messageDirection === MessageDirection.SpokeToHub)
33
+ return {
34
+ sourceAdapterAddress: getSpokeChainAdapterAddress(sourceTSChainId, network, adapterId),
35
+ destAdapterAddress: getHubChainAdapterAddress(network, adapterId),
36
+ };
37
+ return {
38
+ sourceAdapterAddress: getHubChainAdapterAddress(network, adapterId),
39
+ destAdapterAddress: getSpokeChainAdapterAddress(destTSChainId, network, adapterId),
40
+ };
41
+ }
42
+ export async function estimateAdapterReceiveGasLimit(sourceTSChainId, destTSChainId, destTSChainProvider, network, messageDirection, messageBuilderParams, receiverValue = BigInt(0), returnGasLimit = BigInt(0), isRewards = false) {
43
+ const destTsChain = getTsChain(destTSChainId, network);
44
+ const adapterId = getAdapterId(messageDirection, messageBuilderParams.adapters);
45
+ const { sourceAdapterAddress, destAdapterAddress } = getAdaptersAddresses(messageDirection, sourceTSChainId, destTSChainId, network, adapterId, isRewards);
46
+ switch (destTsChain.chainType) {
47
+ case ChainType.EVM: {
48
+ let stateOverride = [];
49
+ if (messageBuilderParams.action === Action.SendToken) {
50
+ stateOverride = stateOverride.concat(getSendTokenStateOverride(destTSChainId, messageBuilderParams.overrideData));
51
+ }
52
+ switch (adapterId) {
53
+ case AdapterType.HUB: {
54
+ return 500000n;
55
+ }
56
+ case AdapterType.WORMHOLE_DATA: {
57
+ const sourceWormholeChainId = getWormholeData(sourceTSChainId).wormholeChainId;
58
+ const wormholeRelayer = convertFromGenericAddress(getWormholeData(destTSChainId).wormholeRelayer, ChainType.EVM);
59
+ const gasLimitEstimation = await estimateEvmWormholeDataGasLimit(
60
+ // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style
61
+ destTSChainProvider, messageBuilderParams, receiverValue, returnGasLimit, sourceWormholeChainId, wormholeRelayer, destAdapterAddress, sourceAdapterAddress, stateOverride);
62
+ return gasLimitEstimation + GAS_LIMIT_ESTIMATE_INCREASE;
63
+ }
64
+ default:
65
+ return exhaustiveCheck(adapterId);
66
+ }
67
+ }
68
+ default:
69
+ return exhaustiveCheck(destTsChain.chainType);
70
+ }
71
+ }
72
+ export async function getOperationIdsByTransaction(chainType, tsProvider, txnHash) {
73
+ switch (chainType) {
74
+ case ChainType.EVM: {
75
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
76
+ const receipt = await getTransactionReceipt(tsProvider, {
77
+ hash: txnHash,
78
+ });
79
+ const logs = parseEventLogs({
80
+ abi: WormholeDataAdapterAbi,
81
+ logs: receipt.logs,
82
+ eventName: 'SendMessage',
83
+ });
84
+ return logs.map((log) => log.args.operationId);
85
+ }
86
+ default:
87
+ return exhaustiveCheck(chainType);
88
+ }
89
+ }
90
+ export async function waitOperationIds(chainType, tsProvider, txnHash, confirmations = 1) {
91
+ switch (chainType) {
92
+ case ChainType.EVM: {
93
+ const receipt = await waitTransaction(chainType, tsProvider, txnHash, confirmations);
94
+ return await getOperationIdsByTransaction(chainType, tsProvider, receipt.transactionHash);
95
+ }
96
+ default:
97
+ return exhaustiveCheck(chainType);
98
+ }
99
+ }
100
+ export function isReversibleAction(action, messageDirection) {
101
+ return (messageDirection === MessageDirection.HubToSpoke &&
102
+ REVERSIBLE_HUB_ACTIONS.includes(action));
103
+ }
104
+ export function assertReversibleAction(action, messageDirection) {
105
+ if (!isReversibleAction(action, messageDirection))
106
+ throw new Error(`Action ${action} is not reversible for message direction ${messageDirection}`);
107
+ }
108
+ export function isRetryableAction(action, messageDirection) {
109
+ return (messageDirection === MessageDirection.HubToSpoke ||
110
+ SEND_TOKEN_ACTIONS.includes(action));
111
+ }
112
+ export function assertRetryableAction(action, messageDirection) {
113
+ if (!isRetryableAction(action, messageDirection))
114
+ throw new Error(`Action ${action} is not retryable for message direction ${messageDirection}`);
115
+ }
116
+ export function decodeMessagePayload(payload) {
117
+ return {
118
+ action: hexToNumber(sliceHex(payload, 0, UINT16_LENGTH)),
119
+ accountId: sliceHex(payload, UINT16_LENGTH, UINT16_LENGTH + BYTES32_LENGTH),
120
+ userAddr: sliceHex(payload, UINT16_LENGTH + BYTES32_LENGTH, UINT16_LENGTH + BYTES32_LENGTH + BYTES32_LENGTH),
121
+ data: sliceHex(payload, UINT16_LENGTH + BYTES32_LENGTH + BYTES32_LENGTH),
122
+ };
123
+ }
124
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/common/utils/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { NetworkType } from '../types/chain.js';
2
+ import type { TSTokenId } from '../types/token.js';
3
+ export declare function getTSTokenIdFromPool(poolId: number, network: NetworkType): TSTokenId;
@@ -0,0 +1,8 @@
1
+ import { TS_TOKEN_IDS_FROM_POOL_BY_NETWORK } from '../constants/pool.js';
2
+ export function getTSTokenIdFromPool(poolId, network) {
3
+ const tsTokenId = TS_TOKEN_IDS_FROM_POOL_BY_NETWORK[network][poolId];
4
+ if (!tsTokenId)
5
+ throw new Error(`Unknown poolId: ${poolId}`);
6
+ return tsTokenId;
7
+ }
8
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/common/utils/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iCAAiC,EAAE,MAAM,sBAAsB,CAAC;AAKzE,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,OAAoB;IAEpB,MAAM,SAAS,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC7D,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ChainType } from '../types/chain.js';
2
+ import type { TSProvider } from '../types/core.js';
3
+ import type { Hex, TransactionReceipt } from 'viem';
4
+ export declare function waitTransaction(chainType: ChainType, tsProvider: TSProvider, txnHash: Hex, confirmations?: number): Promise<TransactionReceipt>;
@@ -0,0 +1,18 @@
1
+ import { waitForTransactionReceipt } from 'viem/actions';
2
+ import { exhaustiveCheck } from '../../utils/exhaustive-check.js';
3
+ import { ChainType } from '../types/chain.js';
4
+ export async function waitTransaction(chainType, tsProvider, txnHash, confirmations = 1) {
5
+ switch (chainType) {
6
+ case ChainType.EVM: {
7
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
8
+ const receipt = await waitForTransactionReceipt(tsProvider, {
9
+ hash: txnHash,
10
+ confirmations,
11
+ });
12
+ return receipt;
13
+ }
14
+ default:
15
+ return exhaustiveCheck(chainType);
16
+ }
17
+ }
18
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../src/common/utils/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAK9C,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAoB,EACpB,UAAsB,EACtB,OAAY,EACZ,aAAa,GAAG,CAAC;IAEjB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,oEAAoE;YACpE,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,UAAW,EAAE;gBAC3D,IAAI,EAAE,OAAO;gBACb,aAAa;aACd,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC;QACD;YACE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
@@ -0,0 +1,38 @@
1
+ export { TSCore } from './lifeline/core/ts-core.js';
2
+ export { TSAccount, TSLoan, //
3
+ TSOracle, //
4
+ TSPool, //
5
+ TSGmp, } from './lifeline/modules/index.js';
6
+ export * from './common/types/adapter.js';
7
+ export * from './common/types/address.js';
8
+ export * from './common/types/chain.js';
9
+ export * from './common/types/core.js';
10
+ export * from './common/types/lending.js';
11
+ export * from './common/types/message.js';
12
+ export * from './common/types/module.js';
13
+ export * from './common/types/token.js';
14
+ export * from './common/constants/byte.js';
15
+ export * from './common/constants/chain.js';
16
+ export * from './common/constants/gmp.js';
17
+ export * from './common/constants/message.js';
18
+ export * from './common/constants/pool.js';
19
+ export { getSupportedMessageAdapters } from './common/utils/adapter.js';
20
+ export { convertFromGenericAddress, convertToGenericAddress, } from './common/utils/address.js';
21
+ export { getRandomBytes } from './common/utils/bytes.js';
22
+ export { getAdapterAddress } from './common/utils/chain.js';
23
+ export { toFAmount, toUnderlyingAmount, calcAssetDollarValue, } from './common/utils/formulae.js';
24
+ export { getWormholeData } from './common/utils/gmp.js';
25
+ export { buildAccountId, buildLoanId } from './common/utils/lending.js';
26
+ export { waitTransaction } from './common/utils/transaction.js';
27
+ export { isHubChain } from './chains/evm/hub/utils/chain.js';
28
+ export { HUB_CHAIN } from './chains/evm/hub/constants/chain.js';
29
+ export * from './chains/evm/common/constant/chain.js';
30
+ export * from './chains/evm/common/types/chain.js';
31
+ export { isEvmChainId } from './chains/evm/common/utils/chain.js';
32
+ export * from './chains/evm/hub/types/account.js';
33
+ export * from './chains/evm/hub/types/chain.js';
34
+ export * from './chains/evm/hub/types/loan.js';
35
+ export * from './chains/evm/hub/types/oracle.js';
36
+ export * from './chains/evm/hub/types/pool.js';
37
+ export * from './chains/evm/hub/types/token.js';
38
+ export * from './chains/evm/spoke/types/pool.js';