@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,7 @@
1
+ export type TokenRateLimit = {
2
+ periodLength: bigint;
3
+ periodOffset: bigint;
4
+ periodLimit: bigint;
5
+ currentCapacity: bigint;
6
+ nextPeriodReset: bigint;
7
+ };
@@ -0,0 +1,123 @@
1
+ import { getContract } from 'viem';
2
+
3
+ import { SPOKE_CHAIN } from '../../../../common/constants/chain.js';
4
+ import { ChainType } from '../../../../common/types/chain.js';
5
+ import { TokenType } from '../../../../common/types/token.js';
6
+ import { convertFromGenericAddress } from '../../../../common/utils/address.js';
7
+ import { SpokeMessageDispatcherAbi } from '../constants/abi/bridge-router-spoke-abi.js';
8
+ import { SpokeOperationAbi } from '../constants/abi/spoke-common-abi.js';
9
+ import { SpokeRewardsV2CommonAbi } from '../constants/abi/spoke-rewards-v2-common-abi.js';
10
+ import { SpokeTokenAbi } from '../constants/abi/spoke-token-abi.js';
11
+
12
+ import type { GenericAddress } from '../../../../common/types/address.js';
13
+ import type { TSChainId, NetworkType } from '../../../../common/types/chain.js';
14
+ import type { TSTokenId } from '../../../../common/types/token.js';
15
+ import type { GetReadContractReturnType } from '../../common/types/contract.js';
16
+ import type { Client, GetContractReturnType, WalletClient } from 'viem';
17
+
18
+ export function getSpokeOperationContract(
19
+ provider: Client,
20
+ address: GenericAddress
21
+ ): GetReadContractReturnType<typeof SpokeOperationAbi>;
22
+ export function getSpokeOperationContract(
23
+ provider: Client,
24
+ address: GenericAddress,
25
+ signer: WalletClient
26
+ ): GetContractReturnType<typeof SpokeOperationAbi, Client>;
27
+ export function getSpokeOperationContract(
28
+ provider: Client,
29
+ address: GenericAddress,
30
+ signer?: WalletClient
31
+ ):
32
+ | GetReadContractReturnType<typeof SpokeOperationAbi>
33
+ | GetContractReturnType<typeof SpokeOperationAbi, Client> {
34
+ return getContract({
35
+ abi: SpokeOperationAbi,
36
+ address: convertFromGenericAddress<ChainType.EVM>(address, ChainType.EVM),
37
+ client: { wallet: signer, public: provider },
38
+ });
39
+ }
40
+
41
+ export function getSpokeMessageDispatcherContract(
42
+ provider: Client,
43
+ address: GenericAddress
44
+ ): GetReadContractReturnType<typeof SpokeMessageDispatcherAbi>;
45
+ export function getSpokeMessageDispatcherContract(
46
+ provider: Client,
47
+ address: GenericAddress,
48
+ signer: WalletClient
49
+ ): GetContractReturnType<typeof SpokeMessageDispatcherAbi, Client>;
50
+ export function getSpokeMessageDispatcherContract(
51
+ provider: Client,
52
+ address: GenericAddress,
53
+ signer?: WalletClient
54
+ ): GetReadContractReturnType<typeof SpokeMessageDispatcherAbi> {
55
+ return getContract({
56
+ abi: SpokeMessageDispatcherAbi,
57
+ address: convertFromGenericAddress<ChainType.EVM>(address, ChainType.EVM),
58
+ client: { wallet: signer, public: provider },
59
+ });
60
+ }
61
+
62
+ export function getSpokeTokenContract(
63
+ provider: Client,
64
+ address: GenericAddress
65
+ ): GetReadContractReturnType<typeof SpokeTokenAbi>;
66
+ export function getSpokeTokenContract(
67
+ provider: Client,
68
+ address: GenericAddress,
69
+ signer: WalletClient
70
+ ): GetContractReturnType<typeof SpokeTokenAbi, Client>;
71
+ export function getSpokeTokenContract(
72
+ provider: Client,
73
+ address: GenericAddress,
74
+ signer?: WalletClient
75
+ ):
76
+ | GetReadContractReturnType<typeof SpokeTokenAbi>
77
+ | GetContractReturnType<typeof SpokeTokenAbi, Client> {
78
+ return getContract({
79
+ abi: SpokeTokenAbi,
80
+ address: convertFromGenericAddress<ChainType.EVM>(address, ChainType.EVM),
81
+ client: { wallet: signer, public: provider },
82
+ });
83
+ }
84
+
85
+ export function getSpokeRewardsV2CommonContract(
86
+ provider: Client,
87
+ address: GenericAddress
88
+ ): GetReadContractReturnType<typeof SpokeRewardsV2CommonAbi>;
89
+ export function getSpokeRewardsV2CommonContract(
90
+ provider: Client,
91
+ address: GenericAddress,
92
+ signer: WalletClient
93
+ ): GetContractReturnType<typeof SpokeRewardsV2CommonAbi, Client>;
94
+ export function getSpokeRewardsV2CommonContract(
95
+ provider: Client,
96
+ address: GenericAddress,
97
+ signer?: WalletClient
98
+ ):
99
+ | GetReadContractReturnType<typeof SpokeRewardsV2CommonAbi>
100
+ | GetContractReturnType<typeof SpokeRewardsV2CommonAbi, Client> {
101
+ return getContract({
102
+ abi: SpokeRewardsV2CommonAbi,
103
+ address: convertFromGenericAddress<ChainType.EVM>(address, ChainType.EVM),
104
+ client: { wallet: signer, public: provider },
105
+ });
106
+ }
107
+
108
+ export function getSpokeEvmTokenAddress(
109
+ network: NetworkType,
110
+ tsChainId: TSChainId,
111
+ tsTokenId: TSTokenId
112
+ ) {
113
+ const spokeToken = SPOKE_CHAIN[network][tsChainId]?.tokens[tsTokenId]?.token;
114
+ if (!spokeToken)
115
+ throw new Error(
116
+ `Spoke token not found for network: ${network}, tsChainId: ${tsChainId}, tsTokenId: ${tsTokenId}`
117
+ );
118
+ if (spokeToken.type === TokenType.NATIVE)
119
+ throw new Error(
120
+ `Spoke token is native for network: ${network}, tsChainId: ${tsChainId}, tsTokenId: ${tsTokenId}`
121
+ );
122
+ return convertFromGenericAddress(spokeToken.address, ChainType.EVM);
123
+ }
@@ -0,0 +1,6 @@
1
+ import { AdapterType } from '../types/message.js';
2
+
3
+ export const DATA_ADAPTERS = [
4
+ AdapterType.HUB,
5
+ // AdapterType.WORMHOLE_DATA,
6
+ ] as const;
@@ -0,0 +1,7 @@
1
+ export const UINT8_LENGTH = 1;
2
+ export const UINT16_LENGTH = 2;
3
+ export const UINT256_LENGTH = 32;
4
+ export const BYTES4_LENGTH = 4;
5
+ export const BYTES32_LENGTH = 32;
6
+
7
+ export const EVM_ADDRESS_BYTES_LENGTH = 20;
@@ -0,0 +1,319 @@
1
+ import {
2
+ arbitrum,
3
+ arbitrumSepolia,
4
+ avalanche,
5
+ avalancheFuji,
6
+ base,
7
+ baseSepolia,
8
+ bsc,
9
+ bscTestnet,
10
+ mainnet,
11
+ polygon,
12
+ sepolia,
13
+ } from 'viem/chains';
14
+ import { monadMainnet } from '../../chains/evm/common/constant/chain.js';
15
+ import {
16
+ MAINNET_EVM_TS_CHAIN_ID,
17
+ TESTNET_EVM_TS_CHAIN_ID,
18
+ } from '../../chains/evm/common/constant/chain.js';
19
+ import { NetworkType, ChainType } from '../types/chain.js';
20
+ import { AdapterType } from '../types/message.js';
21
+ import { MAINNET_TS_TOKEN_ID, TokenType } from '../types/token.js';
22
+ import { convertToGenericAddress } from '../utils/address.js';
23
+
24
+ import { MAINNET_POOLS } from './pool.js';
25
+
26
+ import type { EvmAddress } from '../types/address.js';
27
+ import type {
28
+ TSChainId,
29
+ TSChain,
30
+ SpokeChain,
31
+ TSChainName,
32
+ MainnetTsChainId,
33
+ } from '../types/chain.js';
34
+
35
+ export const MAINNET_TS_CHAIN_ID = {
36
+ ...MAINNET_EVM_TS_CHAIN_ID,
37
+ } as const;
38
+
39
+ export const TS_CHAIN_ID = {
40
+ ...MAINNET_TS_CHAIN_ID,
41
+ };
42
+
43
+ export const TS_CHAIN: Record<
44
+ NetworkType,
45
+ Partial<Record<TSChainId, TSChain>>
46
+ > = {
47
+ [NetworkType.MAINNET]: {
48
+ [TS_CHAIN_ID.MONAD]: {
49
+ chainType: ChainType.EVM,
50
+ tsChainId: TS_CHAIN_ID.MONAD,
51
+ chainName: monadMainnet.name,
52
+ chainId: monadMainnet.id,
53
+ network: NetworkType.MAINNET,
54
+ },
55
+ } satisfies Record<MainnetTsChainId, TSChain>,
56
+ } as const;
57
+
58
+ export const SPOKE_CHAIN: Record<
59
+ NetworkType,
60
+ Partial<Record<TSChainId, SpokeChain>>
61
+ > = {
62
+ [NetworkType.MAINNET]: {
63
+ [TS_CHAIN_ID.MONAD]: {
64
+ tsChainId: TS_CHAIN_ID.MONAD,
65
+ spokeOperationAddress: convertToGenericAddress(
66
+ '0x63cb1cf5accbcc57e0cca047be9673ea5022b8db' as EvmAddress,
67
+ ChainType.EVM
68
+ ),
69
+ messageDispatcherAddress: convertToGenericAddress(
70
+ '0xb4a545a183bd072548ddfe9ddadc2c6f962ac14f' as EvmAddress,
71
+ ChainType.EVM
72
+ ),
73
+ adapters: {
74
+ [AdapterType.HUB]: convertToGenericAddress(
75
+ '0x2970fde6064178d51d961689cb5b64226ab11fc2' as EvmAddress,
76
+ ChainType.EVM
77
+ ),
78
+ },
79
+ tokens: {
80
+ [MAINNET_TS_TOKEN_ID.MON]: {
81
+ token: {
82
+ type: TokenType.NATIVE,
83
+ decimals: 18,
84
+ },
85
+ TsTokenId: MAINNET_TS_TOKEN_ID.MON,
86
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.MON],
87
+ spokeAddress: convertToGenericAddress(
88
+ '0x0392354326960f891926835eedab127766b21668' as EvmAddress,
89
+ ChainType.EVM
90
+ ),
91
+ },
92
+ [MAINNET_TS_TOKEN_ID.wMON]: {
93
+ token: {
94
+ type: TokenType.ERC20,
95
+ address: convertToGenericAddress(
96
+ '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A' as EvmAddress,
97
+ ChainType.EVM
98
+ ),
99
+ decimals: 18,
100
+ },
101
+ TsTokenId: MAINNET_TS_TOKEN_ID.wMON,
102
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.wMON],
103
+ spokeAddress: convertToGenericAddress(
104
+ '0xa2B1AC2Bb0a6Ad5E74D74F8809A2F935813d273a' as EvmAddress,
105
+ ChainType.EVM
106
+ ),
107
+ },
108
+ [MAINNET_TS_TOKEN_ID.USDC]: {
109
+ token: {
110
+ type: TokenType.ERC20,
111
+ address: convertToGenericAddress(
112
+ '0x754704Bc059F8C67012fEd69BC8A327a5aafb603' as EvmAddress,
113
+ ChainType.EVM
114
+ ),
115
+ decimals: 6,
116
+ },
117
+ TsTokenId: MAINNET_TS_TOKEN_ID.USDC,
118
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.USDC],
119
+ spokeAddress: convertToGenericAddress(
120
+ '0xa457235b68606a7921b7c525d92e9592e793b4c0' as EvmAddress,
121
+ ChainType.EVM
122
+ ),
123
+ },
124
+ [MAINNET_TS_TOKEN_ID.AZND]: {
125
+ token: {
126
+ type: TokenType.ERC20,
127
+ address: convertToGenericAddress(
128
+ '0x4917a5ec9fCb5e10f47CBB197aBe6aB63be81fE8' as EvmAddress,
129
+ ChainType.EVM
130
+ ),
131
+ decimals: 18,
132
+ },
133
+ TsTokenId: MAINNET_TS_TOKEN_ID.AZND,
134
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.AZND],
135
+ spokeAddress: convertToGenericAddress(
136
+ '0x21883c045311fc211dcb102280857cacd6cd11a0' as EvmAddress,
137
+ ChainType.EVM
138
+ ),
139
+ },
140
+ [MAINNET_TS_TOKEN_ID.muBOND]: {
141
+ token: {
142
+ type: TokenType.ERC20,
143
+ address: convertToGenericAddress(
144
+ '0x336D414754967C6682B5A665C7DAF6F1409E63e8' as EvmAddress,
145
+ ChainType.EVM
146
+ ),
147
+ decimals: 18,
148
+ },
149
+ TsTokenId: MAINNET_TS_TOKEN_ID.muBOND,
150
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.muBOND],
151
+ spokeAddress: convertToGenericAddress(
152
+ '0x65602dbA7c8C8bC9c64a0Dea9aC80d173998fEaa' as EvmAddress,
153
+ ChainType.EVM
154
+ ),
155
+ },
156
+ [MAINNET_TS_TOKEN_ID.AUSD]: {
157
+ token: {
158
+ type: TokenType.ERC20,
159
+ address: convertToGenericAddress(
160
+ '0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a' as EvmAddress,
161
+ ChainType.EVM
162
+ ),
163
+ decimals: 6,
164
+ },
165
+ TsTokenId: MAINNET_TS_TOKEN_ID.AUSD,
166
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.AUSD],
167
+ spokeAddress: convertToGenericAddress(
168
+ '0xbf97097a38af76416c1e67fa072bdfde080241cd' as EvmAddress,
169
+ ChainType.EVM
170
+ ),
171
+ },
172
+ // [MAINNET_TS_TOKEN_ID.earnAUSD]: {
173
+ // token: {
174
+ // type: TokenType.ERC20,
175
+ // address: convertToGenericAddress(
176
+ // '0x103222f020e98Bba0AD9809A011FDF8e6F067496' as EvmAddress,
177
+ // ChainType.EVM
178
+ // ),
179
+ // decimals: 6,
180
+ // },
181
+ // TsTokenId: MAINNET_TS_TOKEN_ID.earnAUSD,
182
+ // poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.earnAUSD],
183
+ // spokeAddress: convertToGenericAddress(
184
+ // '0x184da9d07f5301eeb62b87b5f4f4e65f8114f0fd' as EvmAddress,
185
+ // ChainType.EVM
186
+ // ),
187
+ // },
188
+ // [MAINNET_TS_TOKEN_ID.IoAZND]: {
189
+ // token: {
190
+ // type: TokenType.ERC20,
191
+ // address: convertToGenericAddress(
192
+ // '0x9c82eB49B51F7Dc61e22Ff347931CA32aDc6cd90' as EvmAddress,
193
+ // ChainType.EVM
194
+ // ),
195
+ // decimals: 18,
196
+ // },
197
+ // TsTokenId: MAINNET_TS_TOKEN_ID.IoAZND,
198
+ // poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.IoAZND],
199
+ // spokeAddress: convertToGenericAddress(
200
+ // '0x1defe62f5455538ec89b80ccd9c55f9e5df29d31' as EvmAddress,
201
+ // ChainType.EVM
202
+ // ),
203
+ // },
204
+ [MAINNET_TS_TOKEN_ID.USD1]: {
205
+ token: {
206
+ type: TokenType.ERC20,
207
+ address: convertToGenericAddress(
208
+ '0x111111d2bf19e43C34263401e0CAd979eD1cdb61' as EvmAddress,
209
+ ChainType.EVM
210
+ ),
211
+ decimals: 6,
212
+ },
213
+ TsTokenId: MAINNET_TS_TOKEN_ID.USD1,
214
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.USD1],
215
+ spokeAddress: convertToGenericAddress(
216
+ '0x2d8bbbd148fb36ec7802fb5b3aa5e12c1611026a' as EvmAddress,
217
+ ChainType.EVM
218
+ ),
219
+ },
220
+ [MAINNET_TS_TOKEN_ID.WETH]: {
221
+ token: {
222
+ type: TokenType.ERC20,
223
+ address: convertToGenericAddress(
224
+ '0xEE8c0E9f1BFFb4Eb878d8f15f368A02a35481242' as EvmAddress,
225
+ ChainType.EVM
226
+ ),
227
+ decimals: 18,
228
+ },
229
+ TsTokenId: MAINNET_TS_TOKEN_ID.WETH,
230
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.WETH],
231
+ spokeAddress: convertToGenericAddress(
232
+ '0xd75c4342d1f5bfd3eaaf4c7b39cda9aa8f64ab9c' as EvmAddress,
233
+ ChainType.EVM
234
+ ),
235
+ },
236
+ [MAINNET_TS_TOKEN_ID.WBTC]: {
237
+ token: {
238
+ type: TokenType.ERC20,
239
+ address: convertToGenericAddress(
240
+ '0x0555E30da8f98308EdB960aa94C0Db47230d2B9c' as EvmAddress,
241
+ ChainType.EVM
242
+ ),
243
+ decimals: 8,
244
+ },
245
+ TsTokenId: MAINNET_TS_TOKEN_ID.WBTC,
246
+ poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.WBTC],
247
+ spokeAddress: convertToGenericAddress(
248
+ '0x9f9524c49330d23e088953842c34759f795fd4e9' as EvmAddress,
249
+ ChainType.EVM
250
+ ),
251
+ },
252
+ // [MAINNET_TS_TOKEN_ID.sMON]: {
253
+ // token: {
254
+ // type: TokenType.ERC20,
255
+ // address: convertToGenericAddress(
256
+ // '0xA3227C5969757783154C60bF0bC1944180ed81B9' as EvmAddress,
257
+ // ChainType.EVM
258
+ // ),
259
+ // decimals: 18,
260
+ // },
261
+ // TsTokenId: MAINNET_TS_TOKEN_ID.sMON,
262
+ // poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.sMON],
263
+ // spokeAddress: convertToGenericAddress(
264
+ // '0x4461d789d599fe1f89936ecbcb9ae11bf1ee6440' as EvmAddress,
265
+ // ChainType.EVM
266
+ // ),
267
+ // },
268
+ // [MAINNET_TS_TOKEN_ID.shMON]: {
269
+ // token: {
270
+ // type: TokenType.ERC20,
271
+ // address: convertToGenericAddress(
272
+ // '0x1B68626dCa36c7fE922fD2d55E4f631d962dE19c' as EvmAddress,
273
+ // ChainType.EVM
274
+ // ),
275
+ // decimals: 18,
276
+ // },
277
+ // TsTokenId: MAINNET_TS_TOKEN_ID.shMON,
278
+ // poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.shMON],
279
+ // spokeAddress: convertToGenericAddress(
280
+ // '0x359c20164d7b64310e376de609ee511ab49185cf' as EvmAddress,
281
+ // ChainType.EVM
282
+ // ),
283
+ // },
284
+ // [MAINNET_TS_TOKEN_ID.gMON]: {
285
+ // token: {
286
+ // type: TokenType.ERC20,
287
+ // address: convertToGenericAddress(
288
+ // '0x8498312A6B3CbD158bf0c93AbdCF29E6e4F55081' as EvmAddress,
289
+ // ChainType.EVM
290
+ // ),
291
+ // decimals: 18,
292
+ // },
293
+ // TsTokenId: MAINNET_TS_TOKEN_ID.gMON,
294
+ // poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.gMON],
295
+ // spokeAddress: convertToGenericAddress(
296
+ // '0xc4bcdf95ad95ed26258e167c95c87c73efdfb2aa' as EvmAddress,
297
+ // ChainType.EVM
298
+ // ),
299
+ // },
300
+ // [MAINNET_TS_TOKEN_ID.aprMON]: {
301
+ // token: {
302
+ // type: TokenType.ERC20,
303
+ // address: convertToGenericAddress(
304
+ // '0x0c65A0BC65a5D819235B71F554D210D3F80E0852' as EvmAddress,
305
+ // ChainType.EVM
306
+ // ),
307
+ // decimals: 18,
308
+ // },
309
+ // TsTokenId: MAINNET_TS_TOKEN_ID.aprMON,
310
+ // poolId: MAINNET_POOLS[MAINNET_TS_TOKEN_ID.aprMON],
311
+ // spokeAddress: convertToGenericAddress(
312
+ // '0xb1a54ea5f0c700454bce454144fb8e6e6254a3c7' as EvmAddress,
313
+ // ChainType.EVM
314
+ // ),
315
+ // },
316
+ },
317
+ },
318
+ } satisfies Record<MainnetTsChainId, SpokeChain>,
319
+ };
@@ -0,0 +1,19 @@
1
+ import { ChainType } from '../types/chain.js';
2
+ import { convertToGenericAddress } from '../utils/address.js';
3
+
4
+ import { TS_CHAIN_ID } from './chain.js';
5
+
6
+ import type { EvmAddress } from '../types/address.js';
7
+ import type { TSChainId } from '../types/chain.js';
8
+ import type { CCIPData, WormholeData } from '../types/gmp.js';
9
+
10
+ export const WORMHOLE_DATA: Record<TSChainId, WormholeData> = {
11
+ [TS_CHAIN_ID.MONAD]: {
12
+ wormholeChainId: 48,
13
+ wormholeRelayer: convertToGenericAddress(
14
+ '0x362fca37E45fe1096b42021b543f462D49a5C8df' as EvmAddress,
15
+ ChainType.EVM
16
+ ),
17
+ },
18
+ };
19
+
@@ -0,0 +1,9 @@
1
+ import { getEmptyBytes } from '../utils/bytes.js';
2
+
3
+ import { BYTES32_LENGTH } from './byte.js';
4
+
5
+ import type { AccountId } from '../types/lending.js';
6
+
7
+ export const NULL_ACCOUNT_ID: AccountId = getEmptyBytes(
8
+ BYTES32_LENGTH
9
+ ) as AccountId;
@@ -0,0 +1,25 @@
1
+ import { Action } from '../types/message.js';
2
+
3
+ export const FINALITY = {
4
+ IMMEDIATE: BigInt(0),
5
+ FINALISED: BigInt(1),
6
+ } as const;
7
+
8
+ export const REVERSIBLE_HUB_ACTIONS = [
9
+ Action.InitiateLoanAccountWithDeposit,
10
+ Action.Deposit,
11
+ Action.Repay,
12
+ ] as const;
13
+
14
+ export const SEND_TOKEN_ACTIONS = [
15
+ Action.InitiateLoanAccountWithDeposit,
16
+ Action.Deposit,
17
+ Action.Repay,
18
+ ] as const;
19
+ export const RECEIVE_TOKEN_ACTIONS = [Action.Withdraw, Action.Borrow] as const;
20
+ export const HUB_ACTIONS = [
21
+ Action.DepositTsToken,
22
+ Action.WithdrawTsToken,
23
+ Action.Liquidate,
24
+ Action.SendToken,
25
+ ] as const;
@@ -0,0 +1,30 @@
1
+ import { NetworkType } from '../types/chain.js';
2
+ import { MAINNET_TS_TOKEN_ID } from '../types/token.js';
3
+
4
+ import type { MainnetTsTokenId, TSTokenId } from '../types/token.js';
5
+
6
+ export const MAINNET_POOLS = {
7
+ [MAINNET_TS_TOKEN_ID.MON]: 2,
8
+ [MAINNET_TS_TOKEN_ID.wMON]: 4,
9
+ [MAINNET_TS_TOKEN_ID.USDC]: 10,
10
+ [MAINNET_TS_TOKEN_ID.AZND]: 5,
11
+ [MAINNET_TS_TOKEN_ID.muBOND]: 6,
12
+ [MAINNET_TS_TOKEN_ID.AUSD]: 7,
13
+ // [MAINNET_TS_TOKEN_ID.earnAUSD]: 11,
14
+ // [MAINNET_TS_TOKEN_ID.IoAZND]: 17,
15
+ [MAINNET_TS_TOKEN_ID.USD1]: 18,
16
+ [MAINNET_TS_TOKEN_ID.WETH]: 15,
17
+ [MAINNET_TS_TOKEN_ID.WBTC]: 16,
18
+ // [MAINNET_TS_TOKEN_ID.shMON]: 14,
19
+ // [MAINNET_TS_TOKEN_ID.aprMON]: 13,
20
+ // [MAINNET_TS_TOKEN_ID.gMON]: 12,
21
+ // [MAINNET_TS_TOKEN_ID.sMON]: 8,
22
+ } as const satisfies Record<MainnetTsTokenId, number>;
23
+
24
+ const MAINNET_TS_TOKEN_IDS_FROM_POOL = Object.fromEntries(
25
+ Object.entries(MAINNET_POOLS).map(([token, poolId]) => [poolId, token])
26
+ ) as Partial<Record<number, TSTokenId>>;
27
+
28
+ export const TS_TOKEN_IDS_FROM_POOL_BY_NETWORK = {
29
+ [NetworkType.MAINNET]: MAINNET_TS_TOKEN_IDS_FROM_POOL,
30
+ } as Record<NetworkType, Partial<Record<number, TSTokenId>>>;
@@ -0,0 +1,44 @@
1
+ import type { TSChainId, NetworkType } from './chain.js';
2
+ import type {
3
+ ClaimRewardAction,
4
+ DataAction,
5
+ ReceiveTokenAction,
6
+ SendTokenAction,
7
+ } from './message.js';
8
+
9
+ import type { TSTokenId } from './token.js';
10
+
11
+ export enum MessageAdapterParamsType {
12
+ SendToken,
13
+ ReceiveToken,
14
+ Data,
15
+ }
16
+
17
+ export type SendTokenMessageAdapterParams = {
18
+ messageAdapterParamType: MessageAdapterParamsType.SendToken;
19
+ action: SendTokenAction;
20
+ network: NetworkType;
21
+ sourceTsChainId: TSChainId;
22
+ tsTokenId: TSTokenId;
23
+ };
24
+
25
+ export type ReceiveTokenMessageAdapterParams = {
26
+ messageAdapterParamType: MessageAdapterParamsType.ReceiveToken;
27
+ action: ReceiveTokenAction;
28
+ network: NetworkType;
29
+ sourceTsChainId: TSChainId;
30
+ destTsChainId: TSChainId;
31
+ tsTokenId: TSTokenId;
32
+ };
33
+
34
+ export type DataMessageAdapterParams = {
35
+ messageAdapterParamType: MessageAdapterParamsType.Data;
36
+ action: DataAction;
37
+ network: NetworkType;
38
+ sourceTsChainId: TSChainId;
39
+ };
40
+
41
+ export type MessageAdapterParams =
42
+ | SendTokenMessageAdapterParams
43
+ | ReceiveTokenMessageAdapterParams
44
+ | DataMessageAdapterParams;
@@ -0,0 +1,11 @@
1
+ import type { Branded } from './brand.js';
2
+ import { ChainType } from './chain.js';
3
+
4
+ export type GenericAddress = Branded<`0x${string}`, 'GenericAddress'>;
5
+ export type EvmAddress = Branded<`0x${string}`, 'EvmAddress'>;
6
+
7
+ type AddressTypeMap = {
8
+ [ChainType.EVM]: EvmAddress;
9
+ };
10
+
11
+ export type AddressType<T extends ChainType> = AddressTypeMap[T];
@@ -0,0 +1,3 @@
1
+ declare const __brand: unique symbol;
2
+ type Brand<B> = { [__brand]: B };
3
+ export type Branded<T, B> = T & Brand<B>;
@@ -0,0 +1,42 @@
1
+ import type { GenericAddress } from './address.js';
2
+ import type { AdapterType } from './message.js';
3
+
4
+ import type { TSTokenId, SpokeTokenData } from './token.js';
5
+ import type { EvmChainName } from '../../chains/evm/common/types/chain.js';
6
+ import type {
7
+ TS_CHAIN_ID,
8
+ MAINNET_TS_CHAIN_ID,
9
+
10
+ } from '../constants/chain.js';
11
+
12
+ export enum ChainType {
13
+ EVM = 'EVM',
14
+ }
15
+
16
+ export enum NetworkType {
17
+ MAINNET = 'MAINNET',
18
+ }
19
+
20
+ export type TSChainName = EvmChainName;
21
+ export type MainnetTsChainId =
22
+ (typeof MAINNET_TS_CHAIN_ID)[keyof typeof MAINNET_TS_CHAIN_ID];
23
+
24
+ export type TSChainId = (typeof TS_CHAIN_ID)[keyof typeof TS_CHAIN_ID];
25
+
26
+ export type ITSChain = {
27
+ tsChainId: TSChainId;
28
+ };
29
+
30
+ export type TSChain = {
31
+ chainName: string;
32
+ chainType: ChainType;
33
+ chainId: number | string | undefined;
34
+ network: NetworkType;
35
+ } & ITSChain;
36
+
37
+ export type SpokeChain = {
38
+ spokeOperationAddress: GenericAddress;
39
+ messageDispatcherAddress: GenericAddress;
40
+ adapters: Partial<Record<AdapterType, GenericAddress>>;
41
+ tokens: Partial<Record<TSTokenId, SpokeTokenData>>;
42
+ } & ITSChain;
@@ -0,0 +1,31 @@
1
+ import type { ChainType, NetworkType, TSChainId } from './chain.js';
2
+ import type { Client as EVMProvider, WalletClient as EVMSigner } from 'viem';
3
+
4
+ type TSProviderTypeMap = {
5
+ [ChainType.EVM]: EVMProvider;
6
+ };
7
+
8
+ type TSSignerTypeMap = {
9
+ [ChainType.EVM]: EVMSigner;
10
+ };
11
+
12
+ export type TSProviderType<T extends ChainType> = TSProviderTypeMap[T];
13
+ export type TSSignerType<T extends ChainType> = TSSignerTypeMap[T];
14
+
15
+ export type TSProvider = EVMProvider | null;
16
+ export type TSSigner = { signer: EVMSigner; tsChainId: TSChainId };
17
+
18
+ export type TSCoreProvider = {
19
+ evm: Partial<Record<TSChainId, EVMProvider>>;
20
+ };
21
+ export type TSCoreConfig = {
22
+ network: NetworkType;
23
+ provider: TSCoreProvider;
24
+ };
25
+
26
+ export type TSEvmSigner = {
27
+ signer: EVMSigner;
28
+ chainType: ChainType.EVM;
29
+ };
30
+
31
+ export type TSChainSigner = TSEvmSigner;