@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,420 @@
1
+ import { EvmAddress, GenericAddress } from '../../common/types/address.js';
2
+ import { ChainType, TSChainId } from '../../common/types/chain.js';
3
+ import {
4
+ convertFromGenericAddress,
5
+ convertToGenericAddress,
6
+ } from '../../common/utils/address.js';
7
+ import { TSHubAccount } from '../../chains/evm/hub/modules/index.js';
8
+ import { TSCore } from '../core/ts-core.js';
9
+ import { AccountId, Nonce } from '../../common/types/lending.js';
10
+ import { AccountInfo } from '../../chains/evm/hub/types/account.js';
11
+ import { MessageAdapterParams } from '../../common/types/adapter.js';
12
+ import {
13
+ Action,
14
+ CreateAccountMessageData,
15
+ InviteAddressMessageData,
16
+ MessageAdapters,
17
+ MessageBuilderParams,
18
+ OptionalFeeParams,
19
+ UnregisterAddressMessageData,
20
+ } from '../../common/types/message.js';
21
+ import { NULL_ACCOUNT_ID } from '../../common/constants/lending.js';
22
+ import { assertAdapterSupportsDataMessage } from '../../common/utils/adapter.js';
23
+ import {
24
+ assertSpokeChainSupported,
25
+ getSignerGenericAddress,
26
+ getSpokeChain,
27
+ } from '../../common/utils/chain.js';
28
+ import { getHubChain } from '../../chains/evm/hub/utils/chain.js';
29
+ import { buildAccountId } from '../../common/utils/lending.js';
30
+ import {
31
+ buildMessageToSend,
32
+ estimateAdapterReceiveGasLimit,
33
+ } from '../../common/utils/messages.js';
34
+ import { MessageDirection } from '../../common/types/gmp.js';
35
+ import { TSEvmAccount } from '../../chains/evm/spoke/modules/index.js';
36
+ import { exhaustiveCheck } from '../../utils/exhaustive-check.js';
37
+ import {
38
+ PrepareAcceptInviteAddressCall,
39
+ PrepareCreateAccountCall,
40
+ PrepareInviteAddressCall,
41
+ PrepareUnregisterAddressCall,
42
+ } from '../../common/types/module.js';
43
+ export const prepare = {
44
+ async createAccount(
45
+ nonce: Nonce,
46
+ adapters: MessageAdapters,
47
+ refAccountId: AccountId = NULL_ACCOUNT_ID
48
+ ) {
49
+ const tsChain = TSCore.getSelectedTsChain();
50
+
51
+ // check adapters are compatible
52
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
53
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
54
+ const hubChain = getHubChain(tsChain.network);
55
+
56
+ const userAddress = getSignerGenericAddress({
57
+ signer: TSCore.getTSSigner().signer,
58
+ chainType: tsChain.chainType,
59
+ });
60
+
61
+ const accountId = buildAccountId(userAddress, tsChain.tsChainId, nonce);
62
+
63
+ const data: CreateAccountMessageData = { nonce, refAccountId };
64
+ const messageBuilderParams: MessageBuilderParams = {
65
+ userAddress,
66
+ accountId,
67
+ adapters,
68
+ action: Action.CreateAccount,
69
+ sender: spokeChain.spokeOperationAddress,
70
+ destinationChainId: hubChain.tsChainId,
71
+ handler: hubChain.hubAddress,
72
+ data,
73
+ extraArgs: '0x',
74
+ };
75
+ const feeParams: OptionalFeeParams = {};
76
+
77
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(
78
+ tsChain.tsChainId,
79
+ hubChain.tsChainId,
80
+ TSCore.getHubProvider(),
81
+ tsChain.network,
82
+ MessageDirection.SpokeToHub,
83
+ messageBuilderParams
84
+ );
85
+
86
+ const messageToSend = buildMessageToSend(
87
+ tsChain.chainType,
88
+ messageBuilderParams,
89
+ feeParams
90
+ );
91
+
92
+ switch (tsChain.chainType) {
93
+ case ChainType.EVM:
94
+ return await TSEvmAccount.prepare.createAccount(
95
+ TSCore.getProvider<ChainType.EVM>(tsChain.tsChainId),
96
+ convertFromGenericAddress(userAddress, tsChain.chainType),
97
+ messageToSend,
98
+ accountId,
99
+ nonce,
100
+ refAccountId,
101
+ spokeChain
102
+ );
103
+ default:
104
+ return exhaustiveCheck(tsChain.chainType);
105
+ }
106
+ },
107
+
108
+ async inviteAddress(
109
+ accountId: AccountId,
110
+ tsChainIdToInvite: TSChainId,
111
+ addressToInvite: GenericAddress,
112
+ adapters: MessageAdapters,
113
+ refAccountId: AccountId = NULL_ACCOUNT_ID
114
+ ) {
115
+ const tsChain = TSCore.getSelectedTsChain();
116
+
117
+ // check adapters are compatible
118
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
119
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
120
+ const hubChain = getHubChain(tsChain.network);
121
+
122
+ const userAddress = getSignerGenericAddress({
123
+ signer: TSCore.getTSSigner().signer,
124
+ chainType: tsChain.chainType,
125
+ });
126
+
127
+ const data: InviteAddressMessageData = {
128
+ tsChainIdToInvite,
129
+ addressToInvite,
130
+ refAccountId,
131
+ };
132
+ const messageBuilderParams: MessageBuilderParams = {
133
+ userAddress,
134
+ accountId,
135
+ adapters,
136
+ action: Action.InviteAddress,
137
+ sender: spokeChain.spokeOperationAddress,
138
+ destinationChainId: hubChain.tsChainId,
139
+ handler: hubChain.hubAddress,
140
+ data,
141
+ extraArgs: '0x',
142
+ };
143
+ const feeParams: OptionalFeeParams = {};
144
+
145
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(
146
+ tsChain.tsChainId,
147
+ hubChain.tsChainId,
148
+ TSCore.getHubProvider(),
149
+ tsChain.network,
150
+ MessageDirection.SpokeToHub,
151
+ messageBuilderParams
152
+ );
153
+
154
+ const messageToSend = buildMessageToSend(
155
+ tsChain.chainType,
156
+ messageBuilderParams,
157
+ feeParams
158
+ );
159
+
160
+ switch (tsChain.chainType) {
161
+ case ChainType.EVM:
162
+ return await TSEvmAccount.prepare.inviteAddress(
163
+ TSCore.getProvider<ChainType.EVM>(tsChain.tsChainId),
164
+ convertFromGenericAddress(userAddress, tsChain.chainType),
165
+ messageToSend,
166
+ accountId,
167
+ tsChainIdToInvite,
168
+ addressToInvite,
169
+ refAccountId,
170
+ spokeChain
171
+ );
172
+ default:
173
+ return exhaustiveCheck(tsChain.chainType);
174
+ }
175
+ },
176
+
177
+ async acceptInvite(accountId: AccountId, adapters: MessageAdapters) {
178
+ const tsChain = TSCore.getSelectedTsChain();
179
+
180
+ // check adapters are compatible
181
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
182
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
183
+ const hubChain = getHubChain(tsChain.network);
184
+
185
+ const userAddress = getSignerGenericAddress({
186
+ signer: TSCore.getTSSigner().signer,
187
+ chainType: tsChain.chainType,
188
+ });
189
+
190
+ const messageBuilderParams: MessageBuilderParams = {
191
+ userAddress,
192
+ accountId,
193
+ adapters,
194
+ action: Action.AcceptInviteAddress,
195
+ sender: spokeChain.spokeOperationAddress,
196
+ destinationChainId: hubChain.tsChainId,
197
+ handler: hubChain.hubAddress,
198
+ data: '0x',
199
+ extraArgs: '0x',
200
+ };
201
+ const feeParams: OptionalFeeParams = {};
202
+
203
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(
204
+ tsChain.tsChainId,
205
+ hubChain.tsChainId,
206
+ TSCore.getHubProvider(),
207
+ tsChain.network,
208
+ MessageDirection.SpokeToHub,
209
+ messageBuilderParams
210
+ );
211
+
212
+ const messageToSend = buildMessageToSend(
213
+ tsChain.chainType,
214
+ messageBuilderParams,
215
+ feeParams
216
+ );
217
+
218
+ switch (tsChain.chainType) {
219
+ case ChainType.EVM:
220
+ return await TSEvmAccount.prepare.acceptInvite(
221
+ TSCore.getProvider<ChainType.EVM>(tsChain.tsChainId),
222
+ convertFromGenericAddress(userAddress, tsChain.chainType),
223
+ messageToSend,
224
+ accountId,
225
+ spokeChain
226
+ );
227
+ default:
228
+ return exhaustiveCheck(tsChain.chainType);
229
+ }
230
+ },
231
+
232
+ async unregisterAddress(
233
+ accountId: AccountId,
234
+ tsChainIdToUnregister: TSChainId,
235
+ adapters: MessageAdapters
236
+ ) {
237
+ const tsChain = TSCore.getSelectedTsChain();
238
+
239
+ // check adapters are compatible
240
+ assertAdapterSupportsDataMessage(tsChain.tsChainId, adapters.adapterId);
241
+ const spokeChain = getSpokeChain(tsChain.tsChainId, tsChain.network);
242
+ const hubChain = getHubChain(tsChain.network);
243
+
244
+ const userAddress = getSignerGenericAddress({
245
+ signer: TSCore.getTSSigner().signer,
246
+ chainType: tsChain.chainType,
247
+ });
248
+
249
+ const data: UnregisterAddressMessageData = {
250
+ tsChainIdToUnregister,
251
+ };
252
+
253
+ const messageBuilderParams: MessageBuilderParams = {
254
+ userAddress,
255
+ accountId,
256
+ adapters,
257
+ action: Action.UnregisterAddress,
258
+ sender: spokeChain.spokeOperationAddress,
259
+ destinationChainId: hubChain.tsChainId,
260
+ handler: hubChain.hubAddress,
261
+ data,
262
+ extraArgs: '0x',
263
+ };
264
+ const feeParams: OptionalFeeParams = {};
265
+
266
+ feeParams.gasLimit = await estimateAdapterReceiveGasLimit(
267
+ tsChain.tsChainId,
268
+ hubChain.tsChainId,
269
+ TSCore.getHubProvider(),
270
+ tsChain.network,
271
+ MessageDirection.SpokeToHub,
272
+ messageBuilderParams
273
+ );
274
+
275
+ const messageToSend = buildMessageToSend(
276
+ tsChain.chainType,
277
+ messageBuilderParams,
278
+ feeParams
279
+ );
280
+
281
+ switch (tsChain.chainType) {
282
+ case ChainType.EVM:
283
+ return await TSEvmAccount.prepare.unregisterAddress(
284
+ TSCore.getProvider<ChainType.EVM>(tsChain.tsChainId),
285
+ convertFromGenericAddress(userAddress, tsChain.chainType),
286
+ messageToSend,
287
+ accountId,
288
+ tsChainIdToUnregister,
289
+ spokeChain
290
+ );
291
+ default:
292
+ return exhaustiveCheck(tsChain.chainType);
293
+ }
294
+ },
295
+ };
296
+
297
+ export const write = {
298
+ async createAccount(
299
+ nonce: Nonce,
300
+ prepareCall: PrepareCreateAccountCall,
301
+ refAccountId: AccountId = NULL_ACCOUNT_ID
302
+ ) {
303
+ const tsChain = TSCore.getSelectedTsChain();
304
+
305
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
306
+
307
+ switch (tsChain.chainType) {
308
+ case ChainType.EVM:
309
+ return await TSEvmAccount.write.createAccount(
310
+ TSCore.getProvider<ChainType.EVM>(tsChain.tsChainId),
311
+ TSCore.getSigner<ChainType.EVM>(),
312
+ nonce,
313
+ refAccountId,
314
+ prepareCall
315
+ );
316
+ default:
317
+ return exhaustiveCheck(tsChain.chainType);
318
+ }
319
+ },
320
+
321
+ async inviteAddress(
322
+ accountId: AccountId,
323
+ tsChainIdToInvite: TSChainId,
324
+ addressToInvite: GenericAddress,
325
+ prepareCall: PrepareInviteAddressCall,
326
+ refAccountId: AccountId = NULL_ACCOUNT_ID
327
+ ) {
328
+ const tsChain = TSCore.getSelectedTsChain();
329
+
330
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
331
+
332
+ switch (tsChain.chainType) {
333
+ case ChainType.EVM:
334
+ return await TSEvmAccount.write.inviteAddress(
335
+ TSCore.getProvider<ChainType.EVM>(tsChain.tsChainId),
336
+ TSCore.getSigner<ChainType.EVM>(),
337
+ accountId,
338
+ tsChainIdToInvite,
339
+ addressToInvite,
340
+ refAccountId,
341
+ prepareCall
342
+ );
343
+ default:
344
+ return exhaustiveCheck(tsChain.chainType);
345
+ }
346
+ },
347
+
348
+ async acceptInvite(
349
+ accountId: AccountId,
350
+ prepareCall: PrepareAcceptInviteAddressCall
351
+ ) {
352
+ const tsChain = TSCore.getSelectedTsChain();
353
+
354
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
355
+
356
+ switch (tsChain.chainType) {
357
+ case ChainType.EVM:
358
+ return await TSEvmAccount.write.acceptInvite(
359
+ TSCore.getProvider<ChainType.EVM>(tsChain.tsChainId),
360
+ TSCore.getSigner<ChainType.EVM>(),
361
+ accountId,
362
+ prepareCall
363
+ );
364
+ default:
365
+ return exhaustiveCheck(tsChain.chainType);
366
+ }
367
+ },
368
+
369
+ async unregisterAddress(
370
+ accountId: AccountId,
371
+ tsChainIdToUnregister: TSChainId,
372
+ prepareCall: PrepareUnregisterAddressCall
373
+ ) {
374
+ const tsChain = TSCore.getSelectedTsChain();
375
+
376
+ assertSpokeChainSupported(tsChain.tsChainId, tsChain.network);
377
+
378
+ switch (tsChain.chainType) {
379
+ case ChainType.EVM:
380
+ return await TSEvmAccount.write.unregisterAddress(
381
+ TSCore.getProvider<ChainType.EVM>(tsChain.tsChainId),
382
+ TSCore.getSigner<ChainType.EVM>(),
383
+ accountId,
384
+ tsChainIdToUnregister,
385
+ prepareCall
386
+ );
387
+ default:
388
+ return exhaustiveCheck(tsChain.chainType);
389
+ }
390
+ },
391
+ };
392
+
393
+ export const read = {
394
+ getAccountIdOfAddressOnChain: async (address: EvmAddress) => {
395
+ const addressBytes = convertToGenericAddress(address, ChainType.EVM);
396
+ return TSHubAccount.getAccountIdByAddress(
397
+ TSCore.getHubProvider(),
398
+ TSCore.getSelectedNetwork(),
399
+ addressBytes
400
+ );
401
+ },
402
+ async isAccountCreated(accountId: AccountId) {
403
+ return TSHubAccount.isAccountCreated(
404
+ TSCore.getHubProvider(),
405
+ TSCore.getSelectedNetwork(),
406
+ accountId
407
+ );
408
+ },
409
+ async accountInfo(
410
+ accountId: AccountId,
411
+ tsChainIds?: Array<TSChainId>
412
+ ): Promise<AccountInfo> {
413
+ return TSHubAccount.getAccountInfo(
414
+ TSCore.getHubProvider(),
415
+ TSCore.getSelectedNetwork(),
416
+ accountId,
417
+ tsChainIds
418
+ );
419
+ },
420
+ };
@@ -0,0 +1,5 @@
1
+ export const prepare = {};
2
+
3
+ export const write = {};
4
+
5
+ export const util = {};