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