@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 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../../../src/common/utils/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAQvD,MAAM,UAAU,aAAa,CAAC,YAA0B,EAAE,OAAoB;IAC5E,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,YAAY,EAAE,CAAC,CAAC;IAE5F,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAoB;IAC1D,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,WAAwB;IAChE,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,YAA0B,EAAE,OAAoB;IACpF,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,YAA0B,EAAE,OAAoB;IACxF,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,kDAAkD,YAAY,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAA0B,EAAE,OAAoB;IAC5E,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,YAAY,EAAE,CAAC,CAAC;IAE5F,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAAsB,EAAE,YAA0B;IAC3F,OAAO,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAsB,EAAE,YAA0B;IAClF,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,YAAY,EAAE,CAAC,CAAC;IAE3F,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,YAA0B,EAC1B,YAA0B,EAC1B,OAAoB;IAEpB,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACxD,OAAO,0BAA0B,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,YAA0B,EAC1B,YAA0B,EAC1B,OAAoB;IAEpB,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,OAAO,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,eAAe,YAAY,oCAAoC,YAAY,EAAE,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,YAA0B,EAC1B,OAAoB,EACpB,WAAwB;IAExB,MAAM,UAAU,GAAG,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxD,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAC1C,MAAM,IAAI,KAAK,CAAC,WAAW,WAAW,8BAA8B,YAAY,EAAE,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,YAA0B,EAAE,OAAoB,EAAE,WAAwB;IAC1G,IAAI,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC;QAAE,OAAO,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9F,OAAO,2BAA2B,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,gBAAkC;IACxE,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC;IAC7C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,GAAG;YAChB,OAAO,uBAAuB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QAC1F;YACE,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,YAA0B,EAAE,OAAoB;IACrF,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAY,sBAAsB,CAAC,CAAC;AACvH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Dnum } from "dnum";
2
+ export declare function calcPeriodNumber(offset: bigint, length: bigint): bigint;
3
+ export declare function calcNextPeriodReset(periodNumber: bigint, offset: bigint, length: bigint): bigint;
4
+ export declare function calcDepositInterestIndex(dirt1: Dnum, diit1: Dnum, latestUpdate: bigint): Dnum;
5
+ export declare function calcBorrowInterestIndex(birt1: Dnum, biit1: Dnum, latestUpdate: bigint): Dnum;
6
+ export declare function calcRewardIndex(used: bigint, ma: bigint, rit1: Dnum, rs: Dnum, latestUpdate: bigint): Dnum;
7
+ export declare function toFAmount(underlyingAmount: bigint, diit: Dnum): bigint;
8
+ export declare function toUnderlyingAmount(fAmount: bigint, diit: Dnum): bigint;
9
+ export declare function calcCollateralAssetLoanValue(amount: bigint, tokenPrice: Dnum, tokenDecimals: number, collateralFactor: Dnum): Dnum;
10
+ export declare function calcBorrowAssetLoanValue(amount: bigint, tokenPrice: Dnum, tokenDecimals: number, borrowFactor: Dnum): Dnum;
11
+ export declare function calcBorrowBalance(bbtn1: bigint, biit: Dnum, biitn1: Dnum): bigint;
12
+ export declare function calcStableInterestRate(bbt: bigint, amount: bigint, sbirtn1: Dnum, sbirt1: Dnum): Dnum;
13
+ export declare function calcLtvRatio(totalBorrowBalanceValue: Dnum, totalCollateralBalanceValue: Dnum): Dnum;
14
+ export declare function calcBorrowUtilisationRatio(totalEffectiveBorrowBalanceValue: Dnum, totalEffectiveCollateralBalanceValue: Dnum): Dnum;
15
+ export declare function calcLiquidationMargin(totalEffectiveBorrowBalanceValue: Dnum, totalEffectiveCollateralBalanceValue: Dnum): Dnum;
@@ -0,0 +1,77 @@
1
+ import * as dn from "dnum";
2
+ import { SECONDS_IN_YEAR, expBySquaring, unixTime } from "./math-lib.js";
3
+ export function calcPeriodNumber(offset, length) {
4
+ return (BigInt(unixTime()) + offset) / length;
5
+ }
6
+ export function calcNextPeriodReset(periodNumber, offset, length) {
7
+ return (periodNumber + BigInt(1)) * length - offset;
8
+ }
9
+ export function calcDepositInterestIndex(dirt1, diit1, latestUpdate) {
10
+ const dt = BigInt(unixTime()) - latestUpdate;
11
+ return dn.mul(diit1, dn.add(dn.from(1, 18), dn.div(dn.mul(dirt1, dt, { rounding: "ROUND_DOWN" }), SECONDS_IN_YEAR, {
12
+ rounding: "ROUND_DOWN",
13
+ })), { rounding: "ROUND_DOWN" });
14
+ }
15
+ export function calcBorrowInterestIndex(birt1, biit1, latestUpdate) {
16
+ const dt = BigInt(unixTime()) - latestUpdate;
17
+ return dn.mul(biit1, expBySquaring(dn.add(dn.from(1, 18), dn.div(birt1, SECONDS_IN_YEAR, { rounding: "ROUND_DOWN" })), dt), { rounding: "ROUND_DOWN" });
18
+ }
19
+ export function calcRewardIndex(used, ma, rit1, rs, latestUpdate) {
20
+ if (used <= ma)
21
+ return rit1;
22
+ const dt = BigInt(unixTime()) - latestUpdate;
23
+ return dn.add(rit1, dn.div(dn.mul(rs, dt, { rounding: "ROUND_DOWN" }), used, {
24
+ rounding: "ROUND_DOWN",
25
+ }));
26
+ }
27
+ export function toFAmount(underlyingAmount, diit) {
28
+ const [fAmount] = dn.div([underlyingAmount, 0], diit, { rounding: "ROUND_DOWN" });
29
+ return fAmount;
30
+ }
31
+ export function toUnderlyingAmount(fAmount, diit) {
32
+ const [underlyingAmount] = dn.mul([fAmount, 0], diit, { rounding: "ROUND_DOWN" });
33
+ return underlyingAmount;
34
+ }
35
+ function calcAssetDollarValue(amount, tokenPrice, tokenDecimals) {
36
+ return dn.mul([amount, tokenDecimals], tokenPrice, {
37
+ rounding: "ROUND_DOWN",
38
+ });
39
+ }
40
+ export function calcCollateralAssetLoanValue(amount, tokenPrice, tokenDecimals, collateralFactor) {
41
+ return dn.mul(calcAssetDollarValue(amount, tokenPrice, tokenDecimals), collateralFactor, { rounding: "ROUND_DOWN" });
42
+ }
43
+ export function calcBorrowAssetLoanValue(amount, tokenPrice, tokenDecimals, borrowFactor) {
44
+ return dn.mul(calcAssetDollarValue(amount, tokenPrice, tokenDecimals), borrowFactor, { rounding: "ROUND_UP" });
45
+ }
46
+ export function calcBorrowBalance(bbtn1, biit, biitn1) {
47
+ const [borrowBalance] = dn.mul([bbtn1, 0], dn.div(biit, biitn1, { rounding: "ROUND_UP" }), {
48
+ rounding: "ROUND_UP",
49
+ });
50
+ return borrowBalance;
51
+ }
52
+ export function calcStableInterestRate(bbt, amount, sbirtn1, sbirt1) {
53
+ return dn.div(dn.add(dn.mul(sbirtn1, [bbt, 0]), dn.mul(sbirt1, [amount, 0])), dn.add([bbt, 0], [amount, 0]));
54
+ }
55
+ export function calcLtvRatio(totalBorrowBalanceValue, totalCollateralBalanceValue) {
56
+ const [, decimals] = totalBorrowBalanceValue;
57
+ if (dn.equal(totalCollateralBalanceValue, 0))
58
+ return dn.from(0, decimals);
59
+ return dn.div(totalBorrowBalanceValue, totalCollateralBalanceValue, {
60
+ rounding: "ROUND_UP",
61
+ });
62
+ }
63
+ export function calcBorrowUtilisationRatio(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue) {
64
+ const [, decimals] = totalEffectiveBorrowBalanceValue;
65
+ if (dn.equal(totalEffectiveCollateralBalanceValue, 0))
66
+ return dn.from(0, decimals);
67
+ return dn.div(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue, { rounding: "ROUND_UP" });
68
+ }
69
+ export function calcLiquidationMargin(totalEffectiveBorrowBalanceValue, totalEffectiveCollateralBalanceValue) {
70
+ const [, decimals] = totalEffectiveBorrowBalanceValue;
71
+ if (dn.equal(totalEffectiveCollateralBalanceValue, 0))
72
+ return dn.from(0, decimals);
73
+ return dn.div(dn.sub(totalEffectiveCollateralBalanceValue, totalEffectiveBorrowBalanceValue), totalEffectiveCollateralBalanceValue, {
74
+ rounding: "ROUND_DOWN",
75
+ });
76
+ }
77
+ //# sourceMappingURL=formulae.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formulae.js","sourceRoot":"","sources":["../../../src/common/utils/formulae.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { FolksChainId } from "../types/chain.js";
2
+ import type { CCIPData, WormholeData } from "../types/gmp.js";
3
+ export declare function getWormholeData(folksChainId: FolksChainId): WormholeData;
4
+ export declare function getCcipData(folksChainId: FolksChainId): CCIPData;
@@ -0,0 +1,14 @@
1
+ import { CCIP_DATA, WORMHOLE_DATA } from "../constants/gmp.js";
2
+ export function getWormholeData(folksChainId) {
3
+ const wormholeData = WORMHOLE_DATA[folksChainId];
4
+ if (wormholeData)
5
+ return wormholeData;
6
+ throw new Error(`Wormhole data not found for folksChainId: ${folksChainId}`);
7
+ }
8
+ export function getCcipData(folksChainId) {
9
+ const ccipData = CCIP_DATA[folksChainId];
10
+ if (ccipData)
11
+ return ccipData;
12
+ throw new Error(`CCIP data not found for folksChainId: ${folksChainId}`);
13
+ }
14
+ //# sourceMappingURL=gmp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gmp.js","sourceRoot":"","sources":["../../../src/common/utils/gmp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAK/D,MAAM,UAAU,eAAe,CAAC,YAA0B;IACxD,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;IACjD,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,MAAM,IAAI,KAAK,CAAC,6CAA6C,YAAY,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,YAA0B;IACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,IAAI,KAAK,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Dnum } from "dnum";
2
+ export declare const SECONDS_IN_YEAR: bigint;
3
+ export declare const HOURS_IN_YEAR: bigint;
4
+ export declare function unixTime(): number;
5
+ export declare function expBySquaring(x: Dnum, n: bigint): Dnum;
6
+ export declare function compoundEverySecond(rate: Dnum): Dnum;
7
+ export declare function compoundEveryHour(rate: Dnum): Dnum;
8
+ export declare const bigIntMax: (...args: Array<bigint>) => bigint;
9
+ export declare const bigIntMin: (...args: Array<bigint>) => bigint;
@@ -0,0 +1,38 @@
1
+ import * as dn from "dnum";
2
+ export const SECONDS_IN_YEAR = BigInt(365 * 24 * 60 * 60);
3
+ export const HOURS_IN_YEAR = BigInt(365 * 24);
4
+ export function unixTime() {
5
+ return Math.floor(Date.now() / 1000);
6
+ }
7
+ export function expBySquaring(x, n) {
8
+ const [, decimals] = x;
9
+ const one = dn.from(1, decimals);
10
+ if (n === BigInt(0))
11
+ return one;
12
+ let y = one;
13
+ while (n > BigInt(1)) {
14
+ if (n % BigInt(2)) {
15
+ y = dn.mul(x, y, { rounding: "ROUND_DOWN" });
16
+ n = (n - BigInt(1)) / BigInt(2);
17
+ }
18
+ else {
19
+ n = n / BigInt(2);
20
+ }
21
+ x = dn.mul(x, x, { rounding: "ROUND_DOWN" });
22
+ }
23
+ return dn.mul(x, y, { rounding: "ROUND_DOWN" });
24
+ }
25
+ function compound(rate, period) {
26
+ const [, decimals] = rate;
27
+ const one = dn.from(1, decimals);
28
+ return dn.sub(expBySquaring(dn.add(one, dn.div(rate, period)), period), one);
29
+ }
30
+ export function compoundEverySecond(rate) {
31
+ return compound(rate, SECONDS_IN_YEAR);
32
+ }
33
+ export function compoundEveryHour(rate) {
34
+ return compound(rate, HOURS_IN_YEAR);
35
+ }
36
+ export const bigIntMax = (...args) => args.reduce((m, e) => (e > m ? e : m));
37
+ export const bigIntMin = (...args) => args.reduce((m, e) => (e < m ? e : m));
38
+ //# sourceMappingURL=math-lib.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-lib.js","sourceRoot":"","sources":["../../../src/common/utils/math-lib.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC;AAI3B,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;AAE9C,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAO,EAAE,CAAS;IAC9C,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEjC,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC;IAEhC,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YAC7C,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,MAAc;IAC1C,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjC,OAAO,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAU;IAC5C,OAAO,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,OAAO,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAmB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ChainType } from "../types/chain.js";
2
+ import { MessageDirection } from "../types/gmp.js";
3
+ import type { FolksChainId, NetworkType } from "../types/chain.js";
4
+ import type { FolksProvider } from "../types/core.js";
5
+ import type { MessageBuilderParams, MessageToSend, OptionalFeeParams } from "../types/message.js";
6
+ export declare function buildMessageToSend(chainType: ChainType, messageToSendBuilderParams: MessageBuilderParams, feeParams?: OptionalFeeParams): MessageToSend;
7
+ export declare function estimateAdapterReceiveGasLimit(sourceFolksChainId: FolksChainId, destFolksChainId: FolksChainId, destFolksChainProvider: FolksProvider, network: NetworkType, messageDirection: MessageDirection, messageBuilderParams: MessageBuilderParams, receiverValue?: bigint, returnGasLimit?: bigint): Promise<bigint>;
@@ -0,0 +1,93 @@
1
+ import { buildEvmMessageToSend, estimateEvmCcipDataGasLimit, estimateEvmWormholeDataGasLimit, getSendTokenStateOverride, } from "../../chains/evm/common/utils/message.js";
2
+ import { getHubChainAdapterAddress } from "../../chains/evm/hub/utils/chain.js";
3
+ import { exhaustiveCheck } from "../../utils/exhaustive-check.js";
4
+ import { ChainType } from "../types/chain.js";
5
+ import { MessageDirection } from "../types/gmp.js";
6
+ import { Action, AdapterType } from "../types/message.js";
7
+ import { convertFromGenericAddress } from "./address.js";
8
+ import { getFolksChain, getSpokeChainAdapterAddress } from "./chain.js";
9
+ import { getCcipData, getWormholeData } from "./gmp.js";
10
+ export function buildMessageToSend(chainType, messageToSendBuilderParams, feeParams = {}) {
11
+ switch (chainType) {
12
+ case ChainType.EVM: {
13
+ return buildEvmMessageToSend(messageToSendBuilderParams, feeParams);
14
+ }
15
+ default:
16
+ return exhaustiveCheck(chainType);
17
+ }
18
+ }
19
+ function getAdapterId(messageDirection, adapters) {
20
+ if (messageDirection === MessageDirection.SpokeToHub)
21
+ return adapters.adapterId;
22
+ return adapters.returnAdapterId;
23
+ }
24
+ function getAdaptersAddresses(messageDirection, sourceFolksChainId, destFolksChainId, network, adapterId) {
25
+ if (messageDirection === MessageDirection.SpokeToHub)
26
+ return {
27
+ sourceAdapterAddress: getSpokeChainAdapterAddress(sourceFolksChainId, network, adapterId),
28
+ destAdapterAddress: getHubChainAdapterAddress(network, adapterId),
29
+ };
30
+ return {
31
+ sourceAdapterAddress: getHubChainAdapterAddress(network, adapterId),
32
+ destAdapterAddress: getSpokeChainAdapterAddress(destFolksChainId, network, adapterId),
33
+ };
34
+ }
35
+ export async function estimateAdapterReceiveGasLimit(sourceFolksChainId, destFolksChainId, destFolksChainProvider, network, messageDirection, messageBuilderParams, receiverValue = BigInt(0), returnGasLimit = BigInt(0)) {
36
+ const destFolksChain = getFolksChain(destFolksChainId, network);
37
+ const adapterId = getAdapterId(messageDirection, messageBuilderParams.adapters);
38
+ const { sourceAdapterAddress, destAdapterAddress } = getAdaptersAddresses(messageDirection, sourceFolksChainId, destFolksChainId, network, adapterId);
39
+ switch (destFolksChain.chainType) {
40
+ case ChainType.EVM: {
41
+ let stateOverride = [];
42
+ if (messageBuilderParams.action === Action.SendToken) {
43
+ stateOverride = stateOverride.concat(getSendTokenStateOverride(destFolksChainId, messageBuilderParams.data.folksTokenId, messageBuilderParams.extraArgs));
44
+ }
45
+ switch (adapterId) {
46
+ case AdapterType.WORMHOLE_DATA: {
47
+ const sourceWormholeChainId = getWormholeData(sourceFolksChainId).wormholeChainId;
48
+ const wormholeRelayer = convertFromGenericAddress(getWormholeData(destFolksChainId).wormholeRelayer, ChainType.EVM);
49
+ return await estimateEvmWormholeDataGasLimit(
50
+ // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style
51
+ destFolksChainProvider, messageBuilderParams, receiverValue, returnGasLimit, sourceWormholeChainId, wormholeRelayer, destAdapterAddress, sourceAdapterAddress, stateOverride);
52
+ }
53
+ case AdapterType.WORMHOLE_CCTP: {
54
+ const { sourceAdapterAddress, destAdapterAddress } = getAdaptersAddresses(messageDirection, sourceFolksChainId, destFolksChainId, network, AdapterType.WORMHOLE_DATA);
55
+ const sourceWormholeChainId = getWormholeData(sourceFolksChainId).wormholeChainId;
56
+ const wormholeRelayer = convertFromGenericAddress(getWormholeData(destFolksChainId).wormholeRelayer, ChainType.EVM);
57
+ // Due to ERC20 transfer and additional checks in the Wormhole CCTP Adapter
58
+ const increaseGasLimit = BigInt(150000);
59
+ const gasLimitEstimation = await estimateEvmWormholeDataGasLimit(
60
+ // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style
61
+ destFolksChainProvider, messageBuilderParams, receiverValue, returnGasLimit, sourceWormholeChainId, wormholeRelayer, destAdapterAddress, sourceAdapterAddress, stateOverride);
62
+ return gasLimitEstimation + increaseGasLimit;
63
+ }
64
+ case AdapterType.HUB: {
65
+ return 0n;
66
+ }
67
+ case AdapterType.CCIP_DATA: {
68
+ const sourceCcipChainId = getCcipData(sourceFolksChainId).ccipChainId;
69
+ const ccipRouter = convertFromGenericAddress(getCcipData(destFolksChainId).ccipRouter, ChainType.EVM);
70
+ return await estimateEvmCcipDataGasLimit(
71
+ // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style
72
+ destFolksChainProvider, messageBuilderParams, returnGasLimit, sourceCcipChainId, ccipRouter, destAdapterAddress, sourceAdapterAddress);
73
+ }
74
+ case AdapterType.CCIP_TOKEN: {
75
+ const { sourceAdapterAddress, destAdapterAddress } = getAdaptersAddresses(messageDirection, sourceFolksChainId, destFolksChainId, network, AdapterType.CCIP_DATA);
76
+ const sourceCcipChainId = getCcipData(sourceFolksChainId).ccipChainId;
77
+ const ccipRouter = convertFromGenericAddress(getCcipData(destFolksChainId).ccipRouter, ChainType.EVM);
78
+ // Due to ERC20 transfer and additional checks in the CCIP Token Adapter
79
+ const increaseGasLimit = BigInt(150000);
80
+ const gasLimitEstimation = await estimateEvmCcipDataGasLimit(
81
+ // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style
82
+ destFolksChainProvider, messageBuilderParams, returnGasLimit, sourceCcipChainId, ccipRouter, destAdapterAddress, sourceAdapterAddress);
83
+ return gasLimitEstimation + increaseGasLimit;
84
+ }
85
+ default:
86
+ return exhaustiveCheck(adapterId);
87
+ }
88
+ }
89
+ default:
90
+ return exhaustiveCheck(destFolksChain.chainType);
91
+ }
92
+ }
93
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/common/utils/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { FolksTokenId } from "../types/token.js";
2
+ export declare function isCircleToken(folksTokenId: FolksTokenId): boolean;
@@ -0,0 +1,5 @@
1
+ import { CIRCLE_FOLKS_TOKEN_ID } from "../constants/token.js";
2
+ export function isCircleToken(folksTokenId) {
3
+ return CIRCLE_FOLKS_TOKEN_ID.includes(folksTokenId);
4
+ }
5
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/common/utils/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAI9D,MAAM,UAAU,aAAa,CAAC,YAA0B;IACtD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,30 @@
1
+ export { FolksCore } from "./xchain/core/folks-core.js";
2
+ export { FolksAccount, FolksLoan, FolksOracle, FolksPool } from "./xchain/modules/index.js";
3
+ export * from "./common/types/adapter.js";
4
+ export * from "./common/types/address.js";
5
+ export * from "./common/types/chain.js";
6
+ export * from "./common/types/core.js";
7
+ export * from "./common/types/gmp.js";
8
+ export * from "./common/types/lending.js";
9
+ export * from "./common/types/message.js";
10
+ export * from "./common/types/module.js";
11
+ export * from "./common/types/token.js";
12
+ export * from "./common/constants/bytes.js";
13
+ export * from "./common/constants/chain.js";
14
+ export * from "./common/constants/gmp.js";
15
+ export * from "./common/constants/message.js";
16
+ export { getSupportedMessageAdapters } from "./common/utils/adapter.js";
17
+ export { convertFromGenericAddress, convertToGenericAddress } from "./common/utils/address.js";
18
+ export { generateLoanId } from "./common/utils/bytes.js";
19
+ export { getAdapterAddress } from "./common/utils/chain.js";
20
+ export { getCcipData, getWormholeData } from "./common/utils/gmp.js";
21
+ export { isHubChain } from "./chains/evm/hub/utils/chain.js";
22
+ export * from "./chains/evm/common/constants/chain.js";
23
+ export * from "./chains/evm/common/types/chain.js";
24
+ export { isEvmChainId } from "./chains/evm/common/utils/chain.js";
25
+ export * from "./chains/evm/hub/types/account.js";
26
+ export * from "./chains/evm/hub/types/chain.js";
27
+ export * from "./chains/evm/hub/types/loan.js";
28
+ export * from "./chains/evm/hub/types/oracle.js";
29
+ export * from "./chains/evm/hub/types/pool.js";
30
+ export * from "./chains/evm/hub/types/token.js";
package/dist/index.js ADDED
@@ -0,0 +1,38 @@
1
+ // === CORE ===
2
+ export { FolksCore } from "./xchain/core/folks-core.js";
3
+ // === MODULES ===
4
+ export { FolksAccount, FolksLoan, FolksOracle, FolksPool } from "./xchain/modules/index.js";
5
+ // === COMMON ===
6
+ export * from "./common/types/adapter.js";
7
+ export * from "./common/types/address.js";
8
+ export * from "./common/types/chain.js";
9
+ export * from "./common/types/core.js";
10
+ export * from "./common/types/gmp.js";
11
+ export * from "./common/types/lending.js";
12
+ export * from "./common/types/message.js";
13
+ export * from "./common/types/module.js";
14
+ export * from "./common/types/token.js";
15
+ export * from "./common/constants/bytes.js";
16
+ export * from "./common/constants/chain.js";
17
+ export * from "./common/constants/gmp.js";
18
+ export * from "./common/constants/message.js";
19
+ export { getSupportedMessageAdapters } from "./common/utils/adapter.js";
20
+ export { convertFromGenericAddress, convertToGenericAddress } from "./common/utils/address.js";
21
+ export { generateLoanId } from "./common/utils/bytes.js";
22
+ export { getAdapterAddress } from "./common/utils/chain.js";
23
+ export { getCcipData, getWormholeData } from "./common/utils/gmp.js";
24
+ // === HUB ===
25
+ export { isHubChain } from "./chains/evm/hub/utils/chain.js";
26
+ // === CHAINS ===
27
+ // - EVM
28
+ export * from "./chains/evm/common/constants/chain.js";
29
+ export * from "./chains/evm/common/types/chain.js";
30
+ export { isEvmChainId } from "./chains/evm/common/utils/chain.js";
31
+ // - EVM: HUB
32
+ export * from "./chains/evm/hub/types/account.js";
33
+ export * from "./chains/evm/hub/types/chain.js";
34
+ export * from "./chains/evm/hub/types/loan.js";
35
+ export * from "./chains/evm/hub/types/oracle.js";
36
+ export * from "./chains/evm/hub/types/pool.js";
37
+ export * from "./chains/evm/hub/types/token.js";
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE5F,iBAAiB;AACjB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AAExC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAErE,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,iBAAiB;AAEjB,QAAQ;AACR,cAAc,wCAAwC,CAAC;AAEvD,cAAc,oCAAoC,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,aAAa;AACb,cAAc,mCAAmC,CAAC;AAClD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const exhaustiveCheck: (value: never) => never;
@@ -0,0 +1,4 @@
1
+ export const exhaustiveCheck = (value) => {
2
+ throw new Error(`ERROR! Reached forbidden guard function with unexpected value: ${JSON.stringify(value)}`);
3
+ };
4
+ //# sourceMappingURL=exhaustive-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exhaustive-check.js","sourceRoot":"","sources":["../../src/utils/exhaustive-check.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAY,EAAS,EAAE;IACrD,MAAM,IAAI,KAAK,CAAC,kEAAkE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7G,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ChainType } from "../../common/types/chain.js";
2
+ import type { FolksChainId, FolksChain, NetworkType } from "../../common/types/chain.js";
3
+ import type { FolksSigner, FolksCoreConfig, FolksProviderType, FolksSignerType, FolksProvider } from "../../common/types/core.js";
4
+ import type { Client as EVMProvider } from "viem";
5
+ export declare class FolksCore {
6
+ private static instance;
7
+ private folksCoreProvider;
8
+ private selectedNetwork;
9
+ private folksSigner?;
10
+ private constructor();
11
+ static init(folksCoreConfig: FolksCoreConfig): FolksCore;
12
+ static isInitialized(): boolean;
13
+ static getInstance(): FolksCore;
14
+ static getProvider<T extends ChainType>(folksChainId: FolksChainId): FolksProviderType<T>;
15
+ static getFolksSigner(): FolksSigner;
16
+ static getSigner<T extends ChainType>(): FolksSignerType<T>;
17
+ static getSelectedFolksChain(): FolksChain;
18
+ static getSelectedNetwork(): NetworkType;
19
+ static getHubProvider(): EVMProvider;
20
+ static setProvider(folksChainId: FolksChainId, provider: FolksProvider): undefined;
21
+ static setNetwork(network: NetworkType): void;
22
+ static setFolksSigner(folksSigner: FolksSigner): undefined;
23
+ static getEVMProvider(folksChainId: FolksChainId): EVMProvider;
24
+ }
@@ -0,0 +1,100 @@
1
+ import { initProviders } from "../../chains/evm/common/utils/provider.js";
2
+ import { getHubChain } from "../../chains/evm/hub/utils/chain.js";
3
+ import { ChainType } from "../../common/types/chain.js";
4
+ import { getFolksChain } from "../../common/utils/chain.js";
5
+ import { exhaustiveCheck } from "../../utils/exhaustive-check.js";
6
+ export class FolksCore {
7
+ static instance;
8
+ folksCoreProvider;
9
+ selectedNetwork;
10
+ folksSigner;
11
+ constructor(folksCoreConfig) {
12
+ this.selectedNetwork = folksCoreConfig.network;
13
+ this.folksCoreProvider = { evm: {} };
14
+ this.folksCoreProvider.evm = initProviders(folksCoreConfig.provider.evm);
15
+ }
16
+ static init(folksCoreConfig) {
17
+ if (FolksCore.instance)
18
+ throw new Error("FolksCore is already initialized");
19
+ FolksCore.instance = new FolksCore(folksCoreConfig);
20
+ return FolksCore.instance;
21
+ }
22
+ static isInitialized() {
23
+ return !!FolksCore.instance;
24
+ }
25
+ static getInstance() {
26
+ if (FolksCore.instance)
27
+ return FolksCore.instance;
28
+ throw new Error("FolksCore is not initialized");
29
+ }
30
+ static getProvider(folksChainId) {
31
+ const folksChain = getFolksChain(folksChainId, this.getSelectedNetwork());
32
+ switch (folksChain.chainType) {
33
+ case ChainType.EVM:
34
+ return FolksCore.getEVMProvider(folksChainId);
35
+ default:
36
+ return exhaustiveCheck(folksChain.chainType);
37
+ }
38
+ }
39
+ static getFolksSigner() {
40
+ const instance = this.getInstance();
41
+ if (!instance.folksSigner)
42
+ throw new Error("FolksSigner is not initialized");
43
+ return instance.folksSigner;
44
+ }
45
+ static getSigner() {
46
+ const { signer } = this.getFolksSigner();
47
+ return signer;
48
+ }
49
+ static getSelectedFolksChain() {
50
+ const { folksChainId } = this.getFolksSigner();
51
+ return getFolksChain(folksChainId, this.getSelectedNetwork());
52
+ }
53
+ static getSelectedNetwork() {
54
+ const instance = this.getInstance();
55
+ return instance.selectedNetwork;
56
+ }
57
+ static getHubProvider() {
58
+ const instance = this.getInstance();
59
+ const hubFolksChainId = getHubChain(instance.selectedNetwork).folksChainId;
60
+ const hubProvider = instance.folksCoreProvider.evm[hubFolksChainId];
61
+ if (!hubProvider)
62
+ throw new Error(`Hub Provider has not been initialized`);
63
+ return hubProvider;
64
+ }
65
+ static setProvider(folksChainId, provider) {
66
+ const instance = this.getInstance();
67
+ const folksChain = getFolksChain(folksChainId, this.getSelectedNetwork());
68
+ switch (folksChain.chainType) {
69
+ case ChainType.EVM:
70
+ // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style -- in the future FolksProvider will contain more than just EVMProvider
71
+ instance.folksCoreProvider.evm[folksChainId] = provider;
72
+ break;
73
+ default:
74
+ return exhaustiveCheck(folksChain.chainType);
75
+ }
76
+ }
77
+ static setNetwork(network) {
78
+ const instance = this.getInstance();
79
+ instance.selectedNetwork = network;
80
+ }
81
+ static setFolksSigner(folksSigner) {
82
+ const instance = this.getInstance();
83
+ const folksChain = getFolksChain(folksSigner.folksChainId, this.getSelectedNetwork());
84
+ switch (folksChain.chainType) {
85
+ case ChainType.EVM:
86
+ instance.folksSigner = folksSigner;
87
+ break;
88
+ default:
89
+ return exhaustiveCheck(folksChain.chainType);
90
+ }
91
+ }
92
+ static getEVMProvider(folksChainId) {
93
+ const instance = this.getInstance();
94
+ const evmProvider = instance.folksCoreProvider.evm[folksChainId];
95
+ if (!evmProvider)
96
+ throw new Error(`EVM Provider not found for folksChainId: ${folksChainId}`);
97
+ return evmProvider;
98
+ }
99
+ }
100
+ //# sourceMappingURL=folks-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folks-core.js","sourceRoot":"","sources":["../../../src/xchain/core/folks-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { AccountIdByAddress, AccountInfo } from "../../chains/evm/hub/types/account.js";
2
+ import type { GenericAddress } from "../../common/types/address.js";
3
+ import type { FolksChainId } from "../../common/types/chain.js";
4
+ import type { AccountId } from "../../common/types/lending.js";
5
+ import type { MessageAdapters } from "../../common/types/message.js";
6
+ import type { PrepareAcceptInviteAddressCall, PrepareCreateAccountCall, PrepareInviteAddressCall, PrepareUnregisterAddressCall } from "../../common/types/module.js";
7
+ export declare const prepare: {
8
+ createAccount(accountId: AccountId, adapters: MessageAdapters, refAccountId?: AccountId): Promise<import("../../chains/evm/common/types/module.js").PrepareCreateAccountCall>;
9
+ inviteAddress(accountId: AccountId, folksChainIdToInvite: FolksChainId, addressToInvite: GenericAddress, adapters: MessageAdapters, refAccountId?: AccountId): Promise<import("../../chains/evm/common/types/module.js").PrepareInviteAddressCall>;
10
+ acceptInvite(accountId: AccountId, adapters: MessageAdapters): Promise<import("../../chains/evm/common/types/module.js").PrepareAcceptInviteAddressCall>;
11
+ unregisterAddress(accountId: AccountId, folksChainIdToUnregister: FolksChainId, adapters: MessageAdapters): Promise<import("../../chains/evm/common/types/module.js").PrepareUnregisterAddressCall>;
12
+ };
13
+ export declare const write: {
14
+ createAccount(accountId: AccountId, prepareCall: PrepareCreateAccountCall, refAccountId?: AccountId): Promise<`0x${string}`>;
15
+ inviteAddress(accountId: AccountId, folksChainIdToInvite: FolksChainId, addressToInvite: GenericAddress, prepareCall: PrepareInviteAddressCall, refAccountId?: AccountId): Promise<`0x${string}`>;
16
+ acceptInvite(accountId: AccountId, prepareCall: PrepareAcceptInviteAddressCall): Promise<`0x${string}`>;
17
+ unregisterAddress(accountId: AccountId, folksChainIdToUnregister: FolksChainId, prepareCall: PrepareUnregisterAddressCall): Promise<`0x${string}`>;
18
+ };
19
+ export declare const read: {
20
+ accountInfo(accountId: AccountId, folksChainIds?: Array<FolksChainId>): Promise<AccountInfo>;
21
+ accountIdByAddress(address: GenericAddress): Promise<AccountIdByAddress>;
22
+ accountIdByAddressOnChain(address: GenericAddress, folksChainId: FolksChainId): Promise<AccountId | null>;
23
+ invitationByAddress(address: GenericAddress, folksChainId?: FolksChainId): Promise<{
24
+ address: GenericAddress;
25
+ invitations: {
26
+ accountId: AccountId;
27
+ folksChainId: FolksChainId;
28
+ }[];
29
+ }>;
30
+ };