levr-sdk 0.3.1 → 0.5.0-alpha.2

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 (740) hide show
  1. package/dist/esm/packages/clanker-sdk/src/abi/uniswap/UniswapV3Factory.js +136 -0
  2. package/dist/esm/packages/clanker-sdk/src/abi/uniswap/UniswapV3Factory.js.map +1 -0
  3. package/dist/esm/packages/clanker-sdk/src/abi/uniswap/UniswapV3NonfungiblePositionManager.js +603 -0
  4. package/dist/esm/packages/clanker-sdk/src/abi/uniswap/UniswapV3NonfungiblePositionManager.js.map +1 -0
  5. package/dist/esm/packages/clanker-sdk/src/abi/v0/Clanker.js +312 -0
  6. package/dist/esm/packages/clanker-sdk/src/abi/v0/Clanker.js.map +1 -0
  7. package/dist/esm/packages/clanker-sdk/src/abi/v1/Clanker.js +323 -0
  8. package/dist/esm/packages/clanker-sdk/src/abi/v1/Clanker.js.map +1 -0
  9. package/dist/esm/packages/clanker-sdk/src/abi/v2/Clanker.js +315 -0
  10. package/dist/esm/packages/clanker-sdk/src/abi/v2/Clanker.js.map +1 -0
  11. package/dist/esm/packages/clanker-sdk/src/abi/v2/LpLockerv2.js +321 -0
  12. package/dist/esm/packages/clanker-sdk/src/abi/v2/LpLockerv2.js.map +1 -0
  13. package/dist/esm/packages/clanker-sdk/src/abi/v3/Clanker.js +323 -0
  14. package/dist/esm/packages/clanker-sdk/src/abi/v3/Clanker.js.map +1 -0
  15. package/dist/esm/packages/clanker-sdk/src/abi/v3/ClankerToken.js +548 -0
  16. package/dist/esm/packages/clanker-sdk/src/abi/v3/ClankerToken.js.map +1 -0
  17. package/dist/esm/packages/clanker-sdk/src/abi/v3.1/Clanker.js +689 -0
  18. package/dist/esm/packages/clanker-sdk/src/abi/v3.1/Clanker.js.map +1 -0
  19. package/dist/esm/packages/clanker-sdk/src/abi/v3.1/ClankerToken.js +1794 -0
  20. package/dist/esm/packages/clanker-sdk/src/abi/v3.1/ClankerToken.js.map +1 -0
  21. package/dist/esm/packages/clanker-sdk/src/abi/v3.1/ClankerVault.js +234 -0
  22. package/dist/esm/packages/clanker-sdk/src/abi/v3.1/ClankerVault.js.map +1 -0
  23. package/dist/esm/packages/clanker-sdk/src/abi/v3.1/LpLockerv2.js +571 -0
  24. package/dist/esm/packages/clanker-sdk/src/abi/v3.1/LpLockerv2.js.map +1 -0
  25. package/dist/esm/packages/clanker-sdk/src/abi/v4/Clanker.js +437 -0
  26. package/dist/esm/packages/clanker-sdk/src/abi/v4/Clanker.js.map +1 -0
  27. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerAirdrop.js +198 -0
  28. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerAirdrop.js.map +1 -0
  29. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerAirdropV2.js +290 -0
  30. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerAirdropV2.js.map +1 -0
  31. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerFeeLocker.js +160 -0
  32. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerFeeLocker.js.map +1 -0
  33. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHook.js +1476 -0
  34. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHook.js.map +1 -0
  35. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHookDynamicFee.js +758 -0
  36. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHookDynamicFee.js.map +1 -0
  37. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHookStaticFee.js +636 -0
  38. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHookStaticFee.js.map +1 -0
  39. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerLocker.js +459 -0
  40. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerLocker.js.map +1 -0
  41. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerMevBlockDelay.js +84 -0
  42. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerMevBlockDelay.js.map +1 -0
  43. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerSniperAuction.js +342 -0
  44. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerSniperAuction.js.map +1 -0
  45. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerSniperUtil.js +80 -0
  46. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerSniperUtil.js.map +1 -0
  47. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerToken.js +554 -0
  48. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerToken.js.map +1 -0
  49. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerUniV4EthDevBuy.js +170 -0
  50. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerUniV4EthDevBuy.js.map +1 -0
  51. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerUniv3EthDevBuy.js +172 -0
  52. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerUniv3EthDevBuy.js.map +1 -0
  53. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerVault.js +221 -0
  54. package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerVault.js.map +1 -0
  55. package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerHookDynamicFee.js +829 -0
  56. package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerHookDynamicFee.js.map +1 -0
  57. package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerHookStaticFee.js +717 -0
  58. package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerHookStaticFee.js.map +1 -0
  59. package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerMevSniperAuction.js +415 -0
  60. package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerMevSniperAuction.js.map +1 -0
  61. package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerPool.js +11 -0
  62. package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerPool.js.map +1 -0
  63. package/dist/esm/packages/clanker-sdk/src/config/clankerTokenV3.js +272 -0
  64. package/dist/esm/packages/clanker-sdk/src/config/clankerTokenV3.js.map +1 -0
  65. package/dist/esm/packages/clanker-sdk/src/config/clankerTokenV4.js +508 -0
  66. package/dist/esm/packages/clanker-sdk/src/config/clankerTokenV4.js.map +1 -0
  67. package/dist/esm/packages/clanker-sdk/src/config/clankerTokens.js +2 -0
  68. package/dist/esm/packages/clanker-sdk/src/config/clankerTokens.js.map +1 -0
  69. package/dist/esm/packages/clanker-sdk/src/constants.js +95 -0
  70. package/dist/esm/packages/clanker-sdk/src/constants.js.map +1 -0
  71. package/dist/esm/packages/clanker-sdk/src/deployment/deploy.js +53 -0
  72. package/dist/esm/packages/clanker-sdk/src/deployment/deploy.js.map +1 -0
  73. package/dist/esm/packages/clanker-sdk/src/extensions/DevBuyExtension.js +89 -0
  74. package/dist/esm/packages/clanker-sdk/src/extensions/DevBuyExtension.js.map +1 -0
  75. package/dist/esm/packages/clanker-sdk/src/extensions/IClankerExtension.js +2 -0
  76. package/dist/esm/packages/clanker-sdk/src/extensions/IClankerExtension.js.map +1 -0
  77. package/dist/esm/packages/clanker-sdk/src/extensions/VaultExtension.js +26 -0
  78. package/dist/esm/packages/clanker-sdk/src/extensions/VaultExtension.js.map +1 -0
  79. package/dist/esm/packages/clanker-sdk/src/extensions/index.js +4 -0
  80. package/dist/esm/packages/clanker-sdk/src/extensions/index.js.map +1 -0
  81. package/dist/esm/packages/clanker-sdk/src/index.js +6 -0
  82. package/dist/esm/packages/clanker-sdk/src/index.js.map +1 -0
  83. package/dist/esm/packages/clanker-sdk/src/services/vanityAddress.js +40 -0
  84. package/dist/esm/packages/clanker-sdk/src/services/vanityAddress.js.map +1 -0
  85. package/dist/esm/packages/clanker-sdk/src/utils/clanker-contracts.js +2 -0
  86. package/dist/esm/packages/clanker-sdk/src/utils/clanker-contracts.js.map +1 -0
  87. package/dist/esm/packages/clanker-sdk/src/utils/clankers.js +212 -0
  88. package/dist/esm/packages/clanker-sdk/src/utils/clankers.js.map +1 -0
  89. package/dist/esm/packages/clanker-sdk/src/utils/errors.js +80 -0
  90. package/dist/esm/packages/clanker-sdk/src/utils/errors.js.map +1 -0
  91. package/dist/esm/packages/clanker-sdk/src/utils/market-cap.js +19 -0
  92. package/dist/esm/packages/clanker-sdk/src/utils/market-cap.js.map +1 -0
  93. package/dist/esm/packages/clanker-sdk/src/utils/merkleTree.js +37 -0
  94. package/dist/esm/packages/clanker-sdk/src/utils/merkleTree.js.map +1 -0
  95. package/dist/esm/packages/clanker-sdk/src/utils/meta.js +9 -0
  96. package/dist/esm/packages/clanker-sdk/src/utils/meta.js.map +1 -0
  97. package/dist/esm/packages/clanker-sdk/src/utils/write-clanker-contracts.js +70 -0
  98. package/dist/esm/packages/clanker-sdk/src/utils/write-clanker-contracts.js.map +1 -0
  99. package/dist/esm/packages/clanker-sdk/src/utils/zod-onchain.js +39 -0
  100. package/dist/esm/packages/clanker-sdk/src/utils/zod-onchain.js.map +1 -0
  101. package/dist/esm/packages/clanker-sdk/src/v3/index.js +151 -0
  102. package/dist/esm/packages/clanker-sdk/src/v3/index.js.map +1 -0
  103. package/dist/esm/packages/clanker-sdk/src/v4/extensions/airdrop.js +144 -0
  104. package/dist/esm/packages/clanker-sdk/src/v4/extensions/airdrop.js.map +1 -0
  105. package/dist/esm/packages/clanker-sdk/src/v4/extensions/index.js +2 -0
  106. package/dist/esm/packages/clanker-sdk/src/v4/extensions/index.js.map +1 -0
  107. package/dist/esm/packages/clanker-sdk/src/v4/index.js +383 -0
  108. package/dist/esm/packages/clanker-sdk/src/v4/index.js.map +1 -0
  109. package/dist/esm/{abis → src/abis}/ClankerAirdropV2.js +1 -0
  110. package/dist/esm/src/abis/ClankerAirdropV2.js.map +1 -0
  111. package/dist/esm/{abis → src/abis}/ClankerVault.js +1 -0
  112. package/dist/esm/src/abis/ClankerVault.js.map +1 -0
  113. package/dist/esm/{abis → src/abis}/IClankerAirdrop.js +1 -0
  114. package/dist/esm/src/abis/IClankerAirdrop.js.map +1 -0
  115. package/dist/esm/src/abis/IClankerFeeLocker.js +216 -0
  116. package/dist/esm/src/abis/IClankerFeeLocker.js.map +1 -0
  117. package/dist/esm/{abis → src/abis}/IClankerHookDynamicFee.js +1 -0
  118. package/dist/esm/src/abis/IClankerHookDynamicFee.js.map +1 -0
  119. package/dist/esm/{abis → src/abis}/IClankerHookStaticFee.js +1 -0
  120. package/dist/esm/src/abis/IClankerHookStaticFee.js.map +1 -0
  121. package/dist/esm/{abis → src/abis}/IClankerLPLocker.js +1 -0
  122. package/dist/esm/src/abis/IClankerLPLocker.js.map +1 -0
  123. package/dist/esm/src/abis/IClankerLpLockerFeeConversion.js +27 -0
  124. package/dist/esm/src/abis/IClankerLpLockerFeeConversion.js.map +1 -0
  125. package/dist/esm/{abis → src/abis}/IClankerLpLockerMultiple.js +1 -0
  126. package/dist/esm/src/abis/IClankerLpLockerMultiple.js.map +1 -0
  127. package/dist/esm/{abis → src/abis}/IClankerToken.js +1 -0
  128. package/dist/esm/src/abis/IClankerToken.js.map +1 -0
  129. package/dist/esm/src/abis/LevrDeployer_v1.js +87 -0
  130. package/dist/esm/src/abis/LevrDeployer_v1.js.map +1 -0
  131. package/dist/esm/{abis → src/abis}/LevrFactory_v1.js +604 -66
  132. package/dist/esm/src/abis/LevrFactory_v1.js.map +1 -0
  133. package/dist/esm/{abis → src/abis}/LevrFeeSplitterFactory_v1.js +1 -0
  134. package/dist/esm/src/abis/LevrFeeSplitterFactory_v1.js.map +1 -0
  135. package/dist/esm/{abis → src/abis}/LevrFeeSplitter_v1.js +6 -58
  136. package/dist/esm/src/abis/LevrFeeSplitter_v1.js.map +1 -0
  137. package/dist/esm/{abis → src/abis}/LevrForwarder_v1.js +1 -0
  138. package/dist/esm/src/abis/LevrForwarder_v1.js.map +1 -0
  139. package/dist/esm/{abis → src/abis}/LevrGovernor_v1.js +216 -14
  140. package/dist/esm/src/abis/LevrGovernor_v1.js.map +1 -0
  141. package/dist/esm/{abis → src/abis}/LevrStakedToken_v1.js +16 -0
  142. package/dist/esm/src/abis/LevrStakedToken_v1.js.map +1 -0
  143. package/dist/esm/{abis → src/abis}/LevrStaking_v1.js +319 -63
  144. package/dist/esm/src/abis/LevrStaking_v1.js.map +1 -0
  145. package/dist/esm/{abis → src/abis}/LevrTreasury_v1.js +35 -38
  146. package/dist/esm/src/abis/LevrTreasury_v1.js.map +1 -0
  147. package/dist/esm/{abis → src/abis}/Permit2.js +1 -0
  148. package/dist/esm/src/abis/Permit2.js.map +1 -0
  149. package/dist/esm/{abis → src/abis}/StateView.js +1 -0
  150. package/dist/esm/src/abis/StateView.js.map +1 -0
  151. package/dist/esm/src/abis/V3Pool.js +36 -0
  152. package/dist/esm/src/abis/V3Pool.js.map +1 -0
  153. package/dist/esm/{abis → src/abis}/V3QuoterV2.js +1 -0
  154. package/dist/esm/src/abis/V3QuoterV2.js.map +1 -0
  155. package/dist/esm/{abis → src/abis}/V4Quoter.js +1 -0
  156. package/dist/esm/src/abis/V4Quoter.js.map +1 -0
  157. package/dist/esm/{abis → src/abis}/WETH9.js +1 -0
  158. package/dist/esm/src/abis/WETH9.js.map +1 -0
  159. package/dist/esm/{abis → src/abis}/index.js +4 -0
  160. package/dist/esm/src/abis/index.js.map +1 -0
  161. package/dist/esm/{airdrop.js → src/airdrop.js} +29 -14
  162. package/dist/esm/src/airdrop.js.map +1 -0
  163. package/dist/esm/{balance.js → src/balance.js} +3 -3
  164. package/dist/esm/src/balance.js.map +1 -0
  165. package/dist/esm/{build-calldatas-v4.js → src/build-calldatas-v4.js} +4 -10
  166. package/dist/esm/src/build-calldatas-v4.js.map +1 -0
  167. package/dist/esm/{build-clanker-v4.js → src/build-clanker-v4.js} +118 -10
  168. package/dist/esm/src/build-clanker-v4.js.map +1 -0
  169. package/dist/esm/{client → src/client}/hook/index.js +6 -5
  170. package/dist/esm/src/client/hook/index.js.map +1 -0
  171. package/dist/esm/src/client/hook/use-airdrop.js.map +1 -0
  172. package/dist/esm/{client → src/client}/hook/use-clanker.js +1 -1
  173. package/dist/esm/src/client/hook/use-clanker.js.map +1 -0
  174. package/dist/esm/src/client/hook/use-configure-splits.js.map +1 -0
  175. package/dist/esm/src/client/hook/use-deploy.js.map +1 -0
  176. package/dist/esm/{client → src/client}/hook/use-factory.js +5 -11
  177. package/dist/esm/src/client/hook/use-factory.js.map +1 -0
  178. package/dist/esm/src/client/hook/use-fee-receivers.js.map +1 -0
  179. package/dist/esm/src/client/hook/use-governance.js.map +1 -0
  180. package/dist/esm/src/client/hook/use-metrics.js +63 -0
  181. package/dist/esm/src/client/hook/use-metrics.js.map +1 -0
  182. package/dist/esm/src/client/hook/use-prepare.js.map +1 -0
  183. package/dist/esm/src/client/hook/use-project.js +133 -0
  184. package/dist/esm/src/client/hook/use-project.js.map +1 -0
  185. package/dist/esm/{client → src/client}/hook/use-proposal.js +6 -5
  186. package/dist/esm/src/client/hook/use-proposal.js.map +1 -0
  187. package/dist/esm/{client → src/client}/hook/use-register.js +1 -1
  188. package/dist/esm/src/client/hook/use-register.js.map +1 -0
  189. package/dist/esm/{client → src/client}/hook/use-stake.js +4 -10
  190. package/dist/esm/src/client/hook/use-stake.js.map +1 -0
  191. package/dist/esm/src/client/hook/use-subscription.js +98 -0
  192. package/dist/esm/src/client/hook/use-subscription.js.map +1 -0
  193. package/dist/esm/{client → src/client}/hook/use-swap.js +5 -4
  194. package/dist/esm/src/client/hook/use-swap.js.map +1 -0
  195. package/dist/esm/src/client/hook/use-user.js.map +1 -0
  196. package/dist/esm/src/client/hook/use-vault.js.map +1 -0
  197. package/dist/esm/src/client/index.js.map +1 -0
  198. package/dist/esm/src/client/levr-provider.js +136 -0
  199. package/dist/esm/src/client/levr-provider.js.map +1 -0
  200. package/dist/esm/{client → src/client}/query-keys.js +16 -6
  201. package/dist/esm/src/client/query-keys.js.map +1 -0
  202. package/dist/esm/src/constants/chain.js +248 -0
  203. package/dist/esm/src/constants/chain.js.map +1 -0
  204. package/dist/esm/src/constants/clanker.js +89 -0
  205. package/dist/esm/src/constants/clanker.js.map +1 -0
  206. package/dist/esm/src/constants/config.js +71 -0
  207. package/dist/esm/src/constants/config.js.map +1 -0
  208. package/dist/esm/src/constants/index.js +24 -0
  209. package/dist/esm/src/constants/index.js.map +1 -0
  210. package/dist/esm/src/constants/levr.js +41 -0
  211. package/dist/esm/src/constants/levr.js.map +1 -0
  212. package/dist/esm/src/constants/uniswap.js +123 -0
  213. package/dist/esm/src/constants/uniswap.js.map +1 -0
  214. package/dist/esm/{deploy-v4.js → src/deploy-v4.js} +1 -1
  215. package/dist/esm/src/deploy-v4.js.map +1 -0
  216. package/dist/esm/src/factory.js +40 -0
  217. package/dist/esm/src/factory.js.map +1 -0
  218. package/dist/esm/{fee-receivers.js → src/fee-receivers.js} +6 -6
  219. package/dist/esm/src/fee-receivers.js.map +1 -0
  220. package/dist/esm/{fee-splitter.js → src/fee-splitter.js} +1 -1
  221. package/dist/esm/src/fee-splitter.js.map +1 -0
  222. package/dist/esm/{governance.js → src/governance.js} +4 -3
  223. package/dist/esm/src/governance.js.map +1 -0
  224. package/dist/esm/src/graphql/client.js +62 -0
  225. package/dist/esm/src/graphql/client.js.map +1 -0
  226. package/dist/esm/src/graphql/constants.js +2 -0
  227. package/dist/esm/src/graphql/constants.js.map +1 -0
  228. package/dist/esm/src/graphql/fields/factory.js +24 -0
  229. package/dist/esm/src/graphql/fields/factory.js.map +1 -0
  230. package/dist/esm/src/graphql/fields/index.js +5 -0
  231. package/dist/esm/src/graphql/fields/index.js.map +1 -0
  232. package/dist/esm/src/graphql/fields/metrics.js +28 -0
  233. package/dist/esm/src/graphql/fields/metrics.js.map +1 -0
  234. package/dist/esm/src/graphql/fields/project.js +108 -0
  235. package/dist/esm/src/graphql/fields/project.js.map +1 -0
  236. package/dist/esm/src/graphql/fields/proposal.js +97 -0
  237. package/dist/esm/src/graphql/fields/proposal.js.map +1 -0
  238. package/dist/esm/src/graphql/gen/index.js +25 -0
  239. package/dist/esm/src/graphql/gen/index.js.map +1 -0
  240. package/dist/esm/src/graphql/gen/runtime/batcher.js +207 -0
  241. package/dist/esm/src/graphql/gen/runtime/batcher.js.map +1 -0
  242. package/dist/esm/src/graphql/gen/runtime/createClient.js +25 -0
  243. package/dist/esm/src/graphql/gen/runtime/createClient.js.map +1 -0
  244. package/dist/esm/src/graphql/gen/runtime/error.js +18 -0
  245. package/dist/esm/src/graphql/gen/runtime/error.js.map +1 -0
  246. package/dist/esm/src/graphql/gen/runtime/fetcher.js +68 -0
  247. package/dist/esm/src/graphql/gen/runtime/fetcher.js.map +1 -0
  248. package/dist/esm/src/graphql/gen/runtime/generateGraphqlOperation.js +126 -0
  249. package/dist/esm/src/graphql/gen/runtime/generateGraphqlOperation.js.map +1 -0
  250. package/dist/esm/src/graphql/gen/runtime/index.js +10 -0
  251. package/dist/esm/src/graphql/gen/runtime/index.js.map +1 -0
  252. package/dist/esm/src/graphql/gen/runtime/linkTypeMap.js +92 -0
  253. package/dist/esm/src/graphql/gen/runtime/linkTypeMap.js.map +1 -0
  254. package/dist/esm/src/graphql/gen/runtime/typeSelection.js +4 -0
  255. package/dist/esm/src/graphql/gen/runtime/typeSelection.js.map +1 -0
  256. package/dist/esm/src/graphql/gen/runtime/types.js +3 -0
  257. package/dist/esm/src/graphql/gen/runtime/types.js.map +1 -0
  258. package/dist/esm/src/graphql/gen/schema.js +527 -0
  259. package/dist/esm/src/graphql/gen/schema.js.map +1 -0
  260. package/dist/esm/src/graphql/gen/types.js +4298 -0
  261. package/dist/esm/src/graphql/gen/types.js.map +1 -0
  262. package/dist/esm/src/graphql/index.js +18 -0
  263. package/dist/esm/src/graphql/index.js.map +1 -0
  264. package/dist/esm/src/graphql/subscription-manager.js +101 -0
  265. package/dist/esm/src/graphql/subscription-manager.js.map +1 -0
  266. package/dist/esm/{index.js → src/index.js} +1 -2
  267. package/dist/esm/src/index.js.map +1 -0
  268. package/dist/esm/src/ipfs-merkle-tree.js.map +1 -0
  269. package/dist/esm/{pool-key.js → src/pool-key.js} +1 -1
  270. package/dist/esm/src/pool-key.js.map +1 -0
  271. package/dist/esm/src/project.js +680 -0
  272. package/dist/esm/src/project.js.map +1 -0
  273. package/dist/esm/src/proposal.js +181 -0
  274. package/dist/esm/src/proposal.js.map +1 -0
  275. package/dist/esm/src/quote/index.js.map +1 -0
  276. package/dist/esm/src/quote/v3.js.map +1 -0
  277. package/dist/esm/{quote → src/quote}/v4.js +1 -1
  278. package/dist/esm/src/quote/v4.js.map +1 -0
  279. package/dist/esm/src/schema/base.schema.js.map +1 -0
  280. package/dist/esm/{schema → src/schema}/clanker.schema.js +26 -2
  281. package/dist/esm/src/schema/clanker.schema.js.map +1 -0
  282. package/dist/esm/src/schema/index.js.map +1 -0
  283. package/dist/esm/{schema → src/schema}/levr.schema.js +53 -12
  284. package/dist/esm/src/schema/levr.schema.js.map +1 -0
  285. package/dist/esm/{stake.js → src/stake.js} +154 -80
  286. package/dist/esm/src/stake.js.map +1 -0
  287. package/dist/esm/{swap-v4.js → src/swap-v4.js} +2 -13
  288. package/dist/esm/src/swap-v4.js.map +1 -0
  289. package/dist/esm/{types.js.map → src/types.js.map} +1 -1
  290. package/dist/esm/src/usd-price.js +274 -0
  291. package/dist/esm/src/usd-price.js.map +1 -0
  292. package/dist/esm/{user.js → src/user.js} +37 -25
  293. package/dist/esm/src/user.js.map +1 -0
  294. package/dist/esm/src/util.js +137 -0
  295. package/dist/esm/src/util.js.map +1 -0
  296. package/dist/esm/{vault.js → src/vault.js} +1 -1
  297. package/dist/esm/src/vault.js.map +1 -0
  298. package/dist/types/packages/clanker-sdk/src/abi/uniswap/UniswapV3Factory.d.ts +185 -0
  299. package/dist/types/packages/clanker-sdk/src/abi/uniswap/UniswapV3Factory.d.ts.map +1 -0
  300. package/dist/types/packages/clanker-sdk/src/abi/uniswap/UniswapV3NonfungiblePositionManager.d.ts +949 -0
  301. package/dist/types/packages/clanker-sdk/src/abi/uniswap/UniswapV3NonfungiblePositionManager.d.ts.map +1 -0
  302. package/dist/types/packages/clanker-sdk/src/abi/v0/Clanker.d.ts +402 -0
  303. package/dist/types/packages/clanker-sdk/src/abi/v0/Clanker.d.ts.map +1 -0
  304. package/dist/types/packages/clanker-sdk/src/abi/v1/Clanker.d.ts +491 -0
  305. package/dist/types/packages/clanker-sdk/src/abi/v1/Clanker.d.ts.map +1 -0
  306. package/dist/types/packages/clanker-sdk/src/abi/v2/Clanker.d.ts +463 -0
  307. package/dist/types/packages/clanker-sdk/src/abi/v2/Clanker.d.ts.map +1 -0
  308. package/dist/types/packages/clanker-sdk/src/abi/v2/LpLockerv2.d.ts +428 -0
  309. package/dist/types/packages/clanker-sdk/src/abi/v2/LpLockerv2.d.ts.map +1 -0
  310. package/dist/types/packages/clanker-sdk/src/abi/v3/Clanker.d.ts +499 -0
  311. package/dist/types/packages/clanker-sdk/src/abi/v3/Clanker.d.ts.map +1 -0
  312. package/dist/types/packages/clanker-sdk/src/abi/v3/ClankerToken.d.ts +846 -0
  313. package/dist/types/packages/clanker-sdk/src/abi/v3/ClankerToken.d.ts.map +1 -0
  314. package/dist/types/packages/clanker-sdk/src/abi/v3.1/Clanker.d.ts +846 -0
  315. package/dist/types/packages/clanker-sdk/src/abi/v3.1/Clanker.d.ts.map +1 -0
  316. package/dist/types/packages/clanker-sdk/src/abi/v3.1/ClankerToken.d.ts +2654 -0
  317. package/dist/types/packages/clanker-sdk/src/abi/v3.1/ClankerToken.d.ts.map +1 -0
  318. package/dist/types/packages/clanker-sdk/src/abi/v3.1/ClankerVault.d.ts +289 -0
  319. package/dist/types/packages/clanker-sdk/src/abi/v3.1/ClankerVault.d.ts.map +1 -0
  320. package/dist/types/packages/clanker-sdk/src/abi/v3.1/LpLockerv2.d.ts +670 -0
  321. package/dist/types/packages/clanker-sdk/src/abi/v3.1/LpLockerv2.d.ts.map +1 -0
  322. package/dist/types/packages/clanker-sdk/src/abi/v4/Clanker.d.ts +819 -0
  323. package/dist/types/packages/clanker-sdk/src/abi/v4/Clanker.d.ts.map +1 -0
  324. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerAirdrop.d.ts +413 -0
  325. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerAirdrop.d.ts.map +1 -0
  326. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerAirdropV2.d.ts +573 -0
  327. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerAirdropV2.d.ts.map +1 -0
  328. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerFeeLocker.d.ts +290 -0
  329. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerFeeLocker.d.ts.map +1 -0
  330. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHook.d.ts +1143 -0
  331. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHook.d.ts.map +1 -0
  332. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHookDynamicFee.d.ts +1430 -0
  333. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHookDynamicFee.d.ts.map +1 -0
  334. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHookStaticFee.d.ts +1219 -0
  335. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHookStaticFee.d.ts.map +1 -0
  336. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerLocker.d.ts +845 -0
  337. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerLocker.d.ts.map +1 -0
  338. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerMevBlockDelay.d.ts +151 -0
  339. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerMevBlockDelay.d.ts.map +1 -0
  340. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerSniperAuction.d.ts +572 -0
  341. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerSniperAuction.d.ts.map +1 -0
  342. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerSniperUtil.d.ts +167 -0
  343. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerSniperUtil.d.ts.map +1 -0
  344. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerToken.d.ts +981 -0
  345. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerToken.d.ts.map +1 -0
  346. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerUniV4EthDevBuy.d.ts +325 -0
  347. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerUniV4EthDevBuy.d.ts.map +1 -0
  348. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerUniv3EthDevBuy.d.ts +326 -0
  349. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerUniv3EthDevBuy.d.ts.map +1 -0
  350. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerVault.d.ts +414 -0
  351. package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerVault.d.ts.map +1 -0
  352. package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerHookDynamicFee.d.ts +92 -0
  353. package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerHookDynamicFee.d.ts.map +1 -0
  354. package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerHookStaticFee.d.ts +88 -0
  355. package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerHookStaticFee.d.ts.map +1 -0
  356. package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerMevSniperAuction.d.ts +69 -0
  357. package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerMevSniperAuction.d.ts.map +1 -0
  358. package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerPool.d.ts +9 -0
  359. package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerPool.d.ts.map +1 -0
  360. package/dist/types/packages/clanker-sdk/src/config/clankerTokenV3.d.ts +64 -0
  361. package/dist/types/packages/clanker-sdk/src/config/clankerTokenV3.d.ts.map +1 -0
  362. package/dist/types/packages/clanker-sdk/src/config/clankerTokenV4.d.ts +136 -0
  363. package/dist/types/packages/clanker-sdk/src/config/clankerTokenV4.d.ts.map +1 -0
  364. package/dist/types/packages/clanker-sdk/src/config/clankerTokens.d.ts +12 -0
  365. package/dist/types/packages/clanker-sdk/src/config/clankerTokens.d.ts.map +1 -0
  366. package/dist/types/packages/clanker-sdk/src/constants.d.ts +29 -0
  367. package/dist/types/packages/clanker-sdk/src/constants.d.ts.map +1 -0
  368. package/dist/types/packages/clanker-sdk/src/deployment/deploy.d.ts +21 -0
  369. package/dist/types/packages/clanker-sdk/src/deployment/deploy.d.ts.map +1 -0
  370. package/dist/types/packages/clanker-sdk/src/extensions/DevBuyExtension.d.ts +52 -0
  371. package/dist/types/packages/clanker-sdk/src/extensions/DevBuyExtension.d.ts.map +1 -0
  372. package/dist/types/packages/clanker-sdk/src/extensions/IClankerExtension.d.ts +36 -0
  373. package/dist/types/packages/clanker-sdk/src/extensions/IClankerExtension.d.ts.map +1 -0
  374. package/dist/types/packages/clanker-sdk/src/extensions/VaultExtension.d.ts +17 -0
  375. package/dist/types/packages/clanker-sdk/src/extensions/VaultExtension.d.ts.map +1 -0
  376. package/dist/types/packages/clanker-sdk/src/extensions/index.d.ts +4 -0
  377. package/dist/types/packages/clanker-sdk/src/extensions/index.d.ts.map +1 -0
  378. package/dist/types/packages/clanker-sdk/src/index.d.ts +8 -0
  379. package/dist/types/packages/clanker-sdk/src/index.d.ts.map +1 -0
  380. package/dist/types/packages/clanker-sdk/src/services/vanityAddress.d.ts +15 -0
  381. package/dist/types/packages/clanker-sdk/src/services/vanityAddress.d.ts.map +1 -0
  382. package/dist/types/packages/clanker-sdk/src/utils/clanker-contracts.d.ts +16 -0
  383. package/dist/types/packages/clanker-sdk/src/utils/clanker-contracts.d.ts.map +1 -0
  384. package/dist/types/packages/clanker-sdk/src/utils/clankers.d.ts +9506 -0
  385. package/dist/types/packages/clanker-sdk/src/utils/clankers.d.ts.map +1 -0
  386. package/dist/types/packages/clanker-sdk/src/utils/errors.d.ts +16 -0
  387. package/dist/types/packages/clanker-sdk/src/utils/errors.d.ts.map +1 -0
  388. package/dist/types/packages/clanker-sdk/src/utils/market-cap.d.ts +12 -0
  389. package/dist/types/packages/clanker-sdk/src/utils/market-cap.d.ts.map +1 -0
  390. package/dist/types/packages/clanker-sdk/src/utils/merkleTree.d.ts +19 -0
  391. package/dist/types/packages/clanker-sdk/src/utils/merkleTree.d.ts.map +1 -0
  392. package/dist/types/packages/clanker-sdk/src/utils/meta.d.ts +7 -0
  393. package/dist/types/packages/clanker-sdk/src/utils/meta.d.ts.map +1 -0
  394. package/dist/types/packages/clanker-sdk/src/utils/write-clanker-contracts.d.ts +57 -0
  395. package/dist/types/packages/clanker-sdk/src/utils/write-clanker-contracts.d.ts.map +1 -0
  396. package/dist/types/packages/clanker-sdk/src/utils/zod-onchain.d.ts +29 -0
  397. package/dist/types/packages/clanker-sdk/src/utils/zod-onchain.d.ts.map +1 -0
  398. package/dist/types/packages/clanker-sdk/src/v3/index.d.ts +3167 -0
  399. package/dist/types/packages/clanker-sdk/src/v3/index.d.ts.map +1 -0
  400. package/dist/types/packages/clanker-sdk/src/v4/extensions/airdrop.d.ts +108 -0
  401. package/dist/types/packages/clanker-sdk/src/v4/extensions/airdrop.d.ts.map +1 -0
  402. package/dist/types/packages/clanker-sdk/src/v4/extensions/index.d.ts +2 -0
  403. package/dist/types/packages/clanker-sdk/src/v4/extensions/index.d.ts.map +1 -0
  404. package/dist/types/packages/clanker-sdk/src/v4/index.d.ts +3781 -0
  405. package/dist/types/packages/clanker-sdk/src/v4/index.d.ts.map +1 -0
  406. package/dist/types/{abis → src/abis}/ClankerAirdropV2.d.ts +1 -0
  407. package/dist/types/src/abis/ClankerAirdropV2.d.ts.map +1 -0
  408. package/dist/types/{abis → src/abis}/ClankerVault.d.ts +1 -0
  409. package/dist/types/src/abis/ClankerVault.d.ts.map +1 -0
  410. package/dist/types/{abis → src/abis}/IClankerAirdrop.d.ts +1 -0
  411. package/dist/types/src/abis/IClankerAirdrop.d.ts.map +1 -0
  412. package/dist/types/src/abis/IClankerFeeLocker.d.ts +170 -0
  413. package/dist/types/src/abis/IClankerFeeLocker.d.ts.map +1 -0
  414. package/dist/types/{abis → src/abis}/IClankerHookDynamicFee.d.ts +1 -0
  415. package/dist/types/src/abis/IClankerHookDynamicFee.d.ts.map +1 -0
  416. package/dist/types/{abis → src/abis}/IClankerHookStaticFee.d.ts +1 -0
  417. package/dist/types/src/abis/IClankerHookStaticFee.d.ts.map +1 -0
  418. package/dist/types/{abis → src/abis}/IClankerLPLocker.d.ts +1 -0
  419. package/dist/types/src/abis/IClankerLPLocker.d.ts.map +1 -0
  420. package/dist/types/src/abis/IClankerLpLockerFeeConversion.d.ts +21 -0
  421. package/dist/types/src/abis/IClankerLpLockerFeeConversion.d.ts.map +1 -0
  422. package/dist/types/{abis → src/abis}/IClankerLpLockerMultiple.d.ts +1 -0
  423. package/dist/types/src/abis/IClankerLpLockerMultiple.d.ts.map +1 -0
  424. package/dist/types/{abis → src/abis}/IClankerToken.d.ts +1 -0
  425. package/dist/types/src/abis/IClankerToken.d.ts.map +1 -0
  426. package/dist/types/src/abis/LevrDeployer_v1.d.ts +68 -0
  427. package/dist/types/src/abis/LevrDeployer_v1.d.ts.map +1 -0
  428. package/dist/types/{abis → src/abis}/LevrFactory_v1.d.ts +455 -39
  429. package/dist/types/src/abis/LevrFactory_v1.d.ts.map +1 -0
  430. package/dist/types/{abis → src/abis}/LevrFeeSplitterFactory_v1.d.ts +1 -0
  431. package/dist/types/src/abis/LevrFeeSplitterFactory_v1.d.ts.map +1 -0
  432. package/dist/types/{abis → src/abis}/LevrFeeSplitter_v1.d.ts +5 -44
  433. package/dist/types/src/abis/LevrFeeSplitter_v1.d.ts.map +1 -0
  434. package/dist/types/{abis → src/abis}/LevrForwarder_v1.d.ts +1 -0
  435. package/dist/types/src/abis/LevrForwarder_v1.d.ts.map +1 -0
  436. package/dist/types/{abis → src/abis}/LevrGovernor_v1.d.ts +173 -14
  437. package/dist/types/src/abis/LevrGovernor_v1.d.ts.map +1 -0
  438. package/dist/types/{abis → src/abis}/LevrStakedToken_v1.d.ts +13 -0
  439. package/dist/types/src/abis/LevrStakedToken_v1.d.ts.map +1 -0
  440. package/dist/types/{abis → src/abis}/LevrStaking_v1.d.ts +259 -61
  441. package/dist/types/src/abis/LevrStaking_v1.d.ts.map +1 -0
  442. package/dist/types/{abis → src/abis}/LevrTreasury_v1.d.ts +30 -31
  443. package/dist/types/src/abis/LevrTreasury_v1.d.ts.map +1 -0
  444. package/dist/types/{abis → src/abis}/Permit2.d.ts +1 -0
  445. package/dist/types/src/abis/Permit2.d.ts.map +1 -0
  446. package/dist/types/{abis → src/abis}/StateView.d.ts +1 -0
  447. package/dist/types/src/abis/StateView.d.ts.map +1 -0
  448. package/dist/types/src/abis/V3Pool.d.ts +50 -0
  449. package/dist/types/src/abis/V3Pool.d.ts.map +1 -0
  450. package/dist/types/{abis → src/abis}/V3QuoterV2.d.ts +1 -0
  451. package/dist/types/src/abis/V3QuoterV2.d.ts.map +1 -0
  452. package/dist/types/{abis → src/abis}/V4Quoter.d.ts +1 -0
  453. package/dist/types/src/abis/V4Quoter.d.ts.map +1 -0
  454. package/dist/types/{abis → src/abis}/WETH9.d.ts +1 -0
  455. package/dist/types/src/abis/WETH9.d.ts.map +1 -0
  456. package/dist/types/{abis → src/abis}/index.d.ts +4 -0
  457. package/dist/types/src/abis/index.d.ts.map +1 -0
  458. package/dist/types/{airdrop.d.ts → src/airdrop.d.ts} +2 -1
  459. package/dist/types/src/airdrop.d.ts.map +1 -0
  460. package/dist/types/src/balance.d.ts.map +1 -0
  461. package/dist/types/{build-calldatas-v4.d.ts → src/build-calldatas-v4.d.ts} +1 -1
  462. package/dist/types/src/build-calldatas-v4.d.ts.map +1 -0
  463. package/dist/types/{build-clanker-v4.d.ts → src/build-clanker-v4.d.ts} +2 -1
  464. package/dist/types/src/build-clanker-v4.d.ts.map +1 -0
  465. package/dist/types/{client → src/client}/hook/index.d.ts +6 -5
  466. package/dist/types/src/client/hook/index.d.ts.map +1 -0
  467. package/dist/types/src/client/hook/use-airdrop.d.ts.map +1 -0
  468. package/dist/types/src/client/hook/use-clanker.d.ts.map +1 -0
  469. package/dist/types/src/client/hook/use-configure-splits.d.ts.map +1 -0
  470. package/dist/types/{client → src/client}/hook/use-deploy.d.ts +2 -1
  471. package/dist/types/src/client/hook/use-deploy.d.ts.map +1 -0
  472. package/dist/types/{client → src/client}/hook/use-factory.d.ts +4 -2
  473. package/dist/types/src/client/hook/use-factory.d.ts.map +1 -0
  474. package/dist/types/src/client/hook/use-fee-receivers.d.ts.map +1 -0
  475. package/dist/types/src/client/hook/use-governance.d.ts.map +1 -0
  476. package/dist/types/src/client/hook/use-metrics.d.ts +16 -0
  477. package/dist/types/src/client/hook/use-metrics.d.ts.map +1 -0
  478. package/dist/types/src/client/hook/use-prepare.d.ts.map +1 -0
  479. package/dist/types/{client → src/client}/hook/use-project.d.ts +22 -6
  480. package/dist/types/src/client/hook/use-project.d.ts.map +1 -0
  481. package/dist/types/{client → src/client}/hook/use-proposal.d.ts +2 -2
  482. package/dist/types/src/client/hook/use-proposal.d.ts.map +1 -0
  483. package/dist/types/src/client/hook/use-register.d.ts.map +1 -0
  484. package/dist/types/src/client/hook/use-stake.d.ts.map +1 -0
  485. package/dist/types/src/client/hook/use-subscription.d.ts +33 -0
  486. package/dist/types/src/client/hook/use-subscription.d.ts.map +1 -0
  487. package/dist/types/src/client/hook/use-swap.d.ts.map +1 -0
  488. package/dist/types/src/client/hook/use-user.d.ts.map +1 -0
  489. package/dist/types/src/client/hook/use-vault.d.ts.map +1 -0
  490. package/dist/types/src/client/index.d.ts.map +1 -0
  491. package/dist/types/{client → src/client}/levr-provider.d.ts +1 -15
  492. package/dist/types/src/client/levr-provider.d.ts.map +1 -0
  493. package/dist/types/{client → src/client}/query-keys.d.ts +9 -6
  494. package/dist/types/src/client/query-keys.d.ts.map +1 -0
  495. package/dist/types/src/constants/chain.d.ts +117 -0
  496. package/dist/types/src/constants/chain.d.ts.map +1 -0
  497. package/dist/types/src/constants/clanker.d.ts +31 -0
  498. package/dist/types/src/constants/clanker.d.ts.map +1 -0
  499. package/dist/types/src/constants/config.d.ts +71 -0
  500. package/dist/types/src/constants/config.d.ts.map +1 -0
  501. package/dist/types/src/constants/index.d.ts +19 -0
  502. package/dist/types/src/constants/index.d.ts.map +1 -0
  503. package/dist/types/src/constants/levr.d.ts +22 -0
  504. package/dist/types/src/constants/levr.d.ts.map +1 -0
  505. package/dist/types/src/constants/uniswap.d.ts +50 -0
  506. package/dist/types/src/constants/uniswap.d.ts.map +1 -0
  507. package/dist/types/src/deploy-v4.d.ts.map +1 -0
  508. package/dist/types/src/factory.d.ts +21 -0
  509. package/dist/types/src/factory.d.ts.map +1 -0
  510. package/dist/types/{fee-receivers.d.ts → src/fee-receivers.d.ts} +20 -180
  511. package/dist/types/src/fee-receivers.d.ts.map +1 -0
  512. package/dist/types/src/fee-splitter.d.ts.map +1 -0
  513. package/dist/types/{governance.d.ts → src/governance.d.ts} +2 -0
  514. package/dist/types/src/governance.d.ts.map +1 -0
  515. package/dist/types/src/graphql/client.d.ts +12 -0
  516. package/dist/types/src/graphql/client.d.ts.map +1 -0
  517. package/dist/types/src/graphql/constants.d.ts +2 -0
  518. package/dist/types/src/graphql/constants.d.ts.map +1 -0
  519. package/dist/types/src/graphql/fields/factory.d.ts +22 -0
  520. package/dist/types/src/graphql/fields/factory.d.ts.map +1 -0
  521. package/dist/types/src/graphql/fields/index.d.ts +5 -0
  522. package/dist/types/src/graphql/fields/index.d.ts.map +1 -0
  523. package/dist/types/src/graphql/fields/metrics.d.ts +36 -0
  524. package/dist/types/src/graphql/fields/metrics.d.ts.map +1 -0
  525. package/dist/types/src/graphql/fields/project.d.ts +249 -0
  526. package/dist/types/src/graphql/fields/project.d.ts.map +1 -0
  527. package/dist/types/src/graphql/fields/proposal.d.ts +195 -0
  528. package/dist/types/src/graphql/fields/proposal.d.ts.map +1 -0
  529. package/dist/types/src/graphql/gen/index.d.ts +23 -0
  530. package/dist/types/src/graphql/gen/index.d.ts.map +1 -0
  531. package/dist/types/src/graphql/gen/runtime/batcher.d.ts +106 -0
  532. package/dist/types/src/graphql/gen/runtime/batcher.d.ts.map +1 -0
  533. package/dist/types/src/graphql/gen/runtime/createClient.d.ts +18 -0
  534. package/dist/types/src/graphql/gen/runtime/createClient.d.ts.map +1 -0
  535. package/dist/types/src/graphql/gen/runtime/error.d.ts +19 -0
  536. package/dist/types/src/graphql/gen/runtime/error.d.ts.map +1 -0
  537. package/dist/types/src/graphql/gen/runtime/fetcher.d.ts +11 -0
  538. package/dist/types/src/graphql/gen/runtime/fetcher.d.ts.map +1 -0
  539. package/dist/types/src/graphql/gen/runtime/generateGraphqlOperation.d.ts +31 -0
  540. package/dist/types/src/graphql/gen/runtime/generateGraphqlOperation.d.ts.map +1 -0
  541. package/dist/types/src/graphql/gen/runtime/index.d.ts +12 -0
  542. package/dist/types/src/graphql/gen/runtime/index.d.ts.map +1 -0
  543. package/dist/types/src/graphql/gen/runtime/linkTypeMap.d.ts +10 -0
  544. package/dist/types/src/graphql/gen/runtime/linkTypeMap.d.ts.map +1 -0
  545. package/dist/types/src/graphql/gen/runtime/typeSelection.d.ts +29 -0
  546. package/dist/types/src/graphql/gen/runtime/typeSelection.d.ts.map +1 -0
  547. package/dist/types/src/graphql/gen/runtime/types.d.ts +53 -0
  548. package/dist/types/src/graphql/gen/runtime/types.d.ts.map +1 -0
  549. package/dist/types/src/graphql/gen/schema.d.ts +6056 -0
  550. package/dist/types/src/graphql/gen/schema.d.ts.map +1 -0
  551. package/dist/types/src/graphql/gen/types.d.ts +3867 -0
  552. package/dist/types/src/graphql/gen/types.d.ts.map +1 -0
  553. package/dist/types/src/graphql/index.d.ts +19 -0
  554. package/dist/types/src/graphql/index.d.ts.map +1 -0
  555. package/dist/types/src/graphql/subscription-manager.d.ts +64 -0
  556. package/dist/types/src/graphql/subscription-manager.d.ts.map +1 -0
  557. package/dist/types/{index.d.ts → src/index.d.ts} +0 -1
  558. package/dist/types/src/index.d.ts.map +1 -0
  559. package/dist/types/src/ipfs-merkle-tree.d.ts.map +1 -0
  560. package/dist/types/src/pool-key.d.ts.map +1 -0
  561. package/dist/types/{project.d.ts → src/project.d.ts} +41 -18
  562. package/dist/types/src/project.d.ts.map +1 -0
  563. package/dist/types/src/proposal.d.ts +34 -0
  564. package/dist/types/src/proposal.d.ts.map +1 -0
  565. package/dist/types/src/quote/index.d.ts.map +1 -0
  566. package/dist/types/src/quote/v3.d.ts.map +1 -0
  567. package/dist/types/src/quote/v4.d.ts.map +1 -0
  568. package/dist/types/src/schema/base.schema.d.ts.map +1 -0
  569. package/dist/types/{schema → src/schema}/clanker.schema.d.ts +16 -4
  570. package/dist/types/src/schema/clanker.schema.d.ts.map +1 -0
  571. package/dist/types/src/schema/index.d.ts.map +1 -0
  572. package/dist/types/{schema → src/schema}/levr.schema.d.ts +23 -1
  573. package/dist/types/src/schema/levr.schema.d.ts.map +1 -0
  574. package/dist/types/{stake.d.ts → src/stake.d.ts} +28 -35
  575. package/dist/types/src/stake.d.ts.map +1 -0
  576. package/dist/types/src/swap-v4.d.ts.map +1 -0
  577. package/dist/types/{types.d.ts → src/types.d.ts} +1 -1
  578. package/dist/types/src/types.d.ts.map +1 -0
  579. package/dist/types/src/usd-price.d.ts +189 -0
  580. package/dist/types/src/usd-price.d.ts.map +1 -0
  581. package/dist/types/{proposal.d.ts → src/user.d.ts} +532 -709
  582. package/dist/types/src/user.d.ts.map +1 -0
  583. package/dist/types/{util.d.ts → src/util.d.ts} +11 -0
  584. package/dist/types/src/util.d.ts.map +1 -0
  585. package/dist/types/src/vault.d.ts.map +1 -0
  586. package/package.json +17 -4
  587. package/dist/esm/airdrop.js.map +0 -1
  588. package/dist/esm/balance.js.map +0 -1
  589. package/dist/esm/build-calldatas-v4.js.map +0 -1
  590. package/dist/esm/build-clanker-v4.js.map +0 -1
  591. package/dist/esm/client/hook/index.js.map +0 -1
  592. package/dist/esm/client/hook/use-airdrop.js.map +0 -1
  593. package/dist/esm/client/hook/use-clanker.js.map +0 -1
  594. package/dist/esm/client/hook/use-configure-splits.js.map +0 -1
  595. package/dist/esm/client/hook/use-deploy.js.map +0 -1
  596. package/dist/esm/client/hook/use-factory.js.map +0 -1
  597. package/dist/esm/client/hook/use-fee-receivers.js.map +0 -1
  598. package/dist/esm/client/hook/use-governance.js.map +0 -1
  599. package/dist/esm/client/hook/use-pool.js +0 -26
  600. package/dist/esm/client/hook/use-pool.js.map +0 -1
  601. package/dist/esm/client/hook/use-prepare.js.map +0 -1
  602. package/dist/esm/client/hook/use-project.js +0 -69
  603. package/dist/esm/client/hook/use-project.js.map +0 -1
  604. package/dist/esm/client/hook/use-proposal.js.map +0 -1
  605. package/dist/esm/client/hook/use-register.js.map +0 -1
  606. package/dist/esm/client/hook/use-stake.js.map +0 -1
  607. package/dist/esm/client/hook/use-swap.js.map +0 -1
  608. package/dist/esm/client/hook/use-user.js.map +0 -1
  609. package/dist/esm/client/hook/use-vault.js.map +0 -1
  610. package/dist/esm/client/index.js.map +0 -1
  611. package/dist/esm/client/levr-provider.js +0 -185
  612. package/dist/esm/client/levr-provider.js.map +0 -1
  613. package/dist/esm/client/query-keys.js.map +0 -1
  614. package/dist/esm/constants.js +0 -300
  615. package/dist/esm/constants.js.map +0 -1
  616. package/dist/esm/deploy-v4.js.map +0 -1
  617. package/dist/esm/factory.js +0 -94
  618. package/dist/esm/factory.js.map +0 -1
  619. package/dist/esm/fee-receivers.js.map +0 -1
  620. package/dist/esm/fee-splitter.js.map +0 -1
  621. package/dist/esm/governance.js.map +0 -1
  622. package/dist/esm/index.js.map +0 -1
  623. package/dist/esm/ipfs-merkle-tree.js.map +0 -1
  624. package/dist/esm/pool-key.js.map +0 -1
  625. package/dist/esm/pool.js +0 -70
  626. package/dist/esm/pool.js.map +0 -1
  627. package/dist/esm/project.js +0 -574
  628. package/dist/esm/project.js.map +0 -1
  629. package/dist/esm/proposal.js +0 -156
  630. package/dist/esm/proposal.js.map +0 -1
  631. package/dist/esm/quote/index.js.map +0 -1
  632. package/dist/esm/quote/v3.js.map +0 -1
  633. package/dist/esm/quote/v4.js.map +0 -1
  634. package/dist/esm/schema/base.schema.js.map +0 -1
  635. package/dist/esm/schema/clanker.schema.js.map +0 -1
  636. package/dist/esm/schema/index.js.map +0 -1
  637. package/dist/esm/schema/levr.schema.js.map +0 -1
  638. package/dist/esm/stake.js.map +0 -1
  639. package/dist/esm/swap-v4.js.map +0 -1
  640. package/dist/esm/usd-price.js +0 -166
  641. package/dist/esm/usd-price.js.map +0 -1
  642. package/dist/esm/user.js.map +0 -1
  643. package/dist/esm/util.js +0 -63
  644. package/dist/esm/util.js.map +0 -1
  645. package/dist/esm/vault.js.map +0 -1
  646. package/dist/types/airdrop.d.ts.map +0 -1
  647. package/dist/types/balance.d.ts.map +0 -1
  648. package/dist/types/build-calldatas-v4.d.ts.map +0 -1
  649. package/dist/types/build-clanker-v4.d.ts.map +0 -1
  650. package/dist/types/client/hook/index.d.ts.map +0 -1
  651. package/dist/types/client/hook/use-airdrop.d.ts.map +0 -1
  652. package/dist/types/client/hook/use-clanker.d.ts.map +0 -1
  653. package/dist/types/client/hook/use-configure-splits.d.ts.map +0 -1
  654. package/dist/types/client/hook/use-deploy.d.ts.map +0 -1
  655. package/dist/types/client/hook/use-factory.d.ts.map +0 -1
  656. package/dist/types/client/hook/use-fee-receivers.d.ts.map +0 -1
  657. package/dist/types/client/hook/use-governance.d.ts.map +0 -1
  658. package/dist/types/client/hook/use-pool.d.ts +0 -12
  659. package/dist/types/client/hook/use-pool.d.ts.map +0 -1
  660. package/dist/types/client/hook/use-prepare.d.ts.map +0 -1
  661. package/dist/types/client/hook/use-project.d.ts.map +0 -1
  662. package/dist/types/client/hook/use-proposal.d.ts.map +0 -1
  663. package/dist/types/client/hook/use-register.d.ts.map +0 -1
  664. package/dist/types/client/hook/use-stake.d.ts.map +0 -1
  665. package/dist/types/client/hook/use-swap.d.ts.map +0 -1
  666. package/dist/types/client/hook/use-user.d.ts.map +0 -1
  667. package/dist/types/client/hook/use-vault.d.ts.map +0 -1
  668. package/dist/types/client/index.d.ts.map +0 -1
  669. package/dist/types/client/levr-provider.d.ts.map +0 -1
  670. package/dist/types/client/query-keys.d.ts.map +0 -1
  671. package/dist/types/constants.d.ts +0 -177
  672. package/dist/types/constants.d.ts.map +0 -1
  673. package/dist/types/deploy-v4.d.ts.map +0 -1
  674. package/dist/types/factory.d.ts +0 -21
  675. package/dist/types/factory.d.ts.map +0 -1
  676. package/dist/types/fee-receivers.d.ts.map +0 -1
  677. package/dist/types/fee-splitter.d.ts.map +0 -1
  678. package/dist/types/governance.d.ts.map +0 -1
  679. package/dist/types/index.d.ts.map +0 -1
  680. package/dist/types/ipfs-merkle-tree.d.ts.map +0 -1
  681. package/dist/types/pool-key.d.ts.map +0 -1
  682. package/dist/types/pool.d.ts +0 -590
  683. package/dist/types/pool.d.ts.map +0 -1
  684. package/dist/types/project.d.ts.map +0 -1
  685. package/dist/types/proposal.d.ts.map +0 -1
  686. package/dist/types/quote/index.d.ts.map +0 -1
  687. package/dist/types/quote/v3.d.ts.map +0 -1
  688. package/dist/types/quote/v4.d.ts.map +0 -1
  689. package/dist/types/schema/base.schema.d.ts.map +0 -1
  690. package/dist/types/schema/clanker.schema.d.ts.map +0 -1
  691. package/dist/types/schema/index.d.ts.map +0 -1
  692. package/dist/types/schema/levr.schema.d.ts.map +0 -1
  693. package/dist/types/stake.d.ts.map +0 -1
  694. package/dist/types/swap-v4.d.ts.map +0 -1
  695. package/dist/types/types.d.ts.map +0 -1
  696. package/dist/types/usd-price.d.ts +0 -146
  697. package/dist/types/usd-price.d.ts.map +0 -1
  698. package/dist/types/user.d.ts +0 -188
  699. package/dist/types/user.d.ts.map +0 -1
  700. package/dist/types/util.d.ts.map +0 -1
  701. package/dist/types/vault.d.ts.map +0 -1
  702. /package/dist/esm/{client → src/client}/hook/use-airdrop.js +0 -0
  703. /package/dist/esm/{client → src/client}/hook/use-configure-splits.js +0 -0
  704. /package/dist/esm/{client → src/client}/hook/use-deploy.js +0 -0
  705. /package/dist/esm/{client → src/client}/hook/use-fee-receivers.js +0 -0
  706. /package/dist/esm/{client → src/client}/hook/use-governance.js +0 -0
  707. /package/dist/esm/{client → src/client}/hook/use-prepare.js +0 -0
  708. /package/dist/esm/{client → src/client}/hook/use-user.js +0 -0
  709. /package/dist/esm/{client → src/client}/hook/use-vault.js +0 -0
  710. /package/dist/esm/{client → src/client}/index.js +0 -0
  711. /package/dist/esm/{ipfs-merkle-tree.js → src/ipfs-merkle-tree.js} +0 -0
  712. /package/dist/esm/{quote → src/quote}/index.js +0 -0
  713. /package/dist/esm/{quote → src/quote}/v3.js +0 -0
  714. /package/dist/esm/{schema → src/schema}/base.schema.js +0 -0
  715. /package/dist/esm/{schema → src/schema}/index.js +0 -0
  716. /package/dist/esm/{types.js → src/types.js} +0 -0
  717. /package/dist/types/{balance.d.ts → src/balance.d.ts} +0 -0
  718. /package/dist/types/{client → src/client}/hook/use-airdrop.d.ts +0 -0
  719. /package/dist/types/{client → src/client}/hook/use-clanker.d.ts +0 -0
  720. /package/dist/types/{client → src/client}/hook/use-configure-splits.d.ts +0 -0
  721. /package/dist/types/{client → src/client}/hook/use-fee-receivers.d.ts +0 -0
  722. /package/dist/types/{client → src/client}/hook/use-governance.d.ts +0 -0
  723. /package/dist/types/{client → src/client}/hook/use-prepare.d.ts +0 -0
  724. /package/dist/types/{client → src/client}/hook/use-register.d.ts +0 -0
  725. /package/dist/types/{client → src/client}/hook/use-stake.d.ts +0 -0
  726. /package/dist/types/{client → src/client}/hook/use-swap.d.ts +0 -0
  727. /package/dist/types/{client → src/client}/hook/use-user.d.ts +0 -0
  728. /package/dist/types/{client → src/client}/hook/use-vault.d.ts +0 -0
  729. /package/dist/types/{client → src/client}/index.d.ts +0 -0
  730. /package/dist/types/{deploy-v4.d.ts → src/deploy-v4.d.ts} +0 -0
  731. /package/dist/types/{fee-splitter.d.ts → src/fee-splitter.d.ts} +0 -0
  732. /package/dist/types/{ipfs-merkle-tree.d.ts → src/ipfs-merkle-tree.d.ts} +0 -0
  733. /package/dist/types/{pool-key.d.ts → src/pool-key.d.ts} +0 -0
  734. /package/dist/types/{quote → src/quote}/index.d.ts +0 -0
  735. /package/dist/types/{quote → src/quote}/v3.d.ts +0 -0
  736. /package/dist/types/{quote → src/quote}/v4.d.ts +0 -0
  737. /package/dist/types/{schema → src/schema}/base.schema.d.ts +0 -0
  738. /package/dist/types/{schema → src/schema}/index.d.ts +0 -0
  739. /package/dist/types/{swap-v4.d.ts → src/swap-v4.d.ts} +0 -0
  740. /package/dist/types/{vault.d.ts → src/vault.d.ts} +0 -0
@@ -1,574 +0,0 @@
1
- import { erc20Abi, zeroAddress } from "viem";
2
- import { IClankerToken, LevrFactory_v1, LevrGovernor_v1, LevrStaking_v1 } from "./abis/index.js";
3
- import { formatBalanceWithUsd } from "./balance.js";
4
- import { GET_FACTORY_ADDRESS, WETH } from "./constants.js";
5
- import { getFeeReceiverContracts, getFeeSplitterDynamicContracts, getFeeSplitterStaticContracts, parseFeeReceivers, parseFeeSplitterDynamic, parseFeeSplitterStatic, } from "./fee-receivers.js";
6
- import { getFeeSplitter } from "./fee-splitter.js";
7
- import { getUsdPrice, getWethUsdPrice } from "./usd-price.js";
8
- // ---
9
- // Contract Getters
10
- function getTokenContracts(clankerToken) {
11
- return [
12
- {
13
- address: clankerToken,
14
- abi: erc20Abi,
15
- functionName: "decimals",
16
- },
17
- {
18
- address: clankerToken,
19
- abi: erc20Abi,
20
- functionName: "name",
21
- },
22
- {
23
- address: clankerToken,
24
- abi: erc20Abi,
25
- functionName: "symbol",
26
- },
27
- {
28
- address: clankerToken,
29
- abi: erc20Abi,
30
- functionName: "totalSupply",
31
- },
32
- {
33
- address: clankerToken,
34
- abi: IClankerToken,
35
- functionName: "allData",
36
- },
37
- ];
38
- }
39
- function getFactoryContracts(factoryAddress, clankerToken) {
40
- return [
41
- {
42
- address: factoryAddress,
43
- abi: LevrFactory_v1,
44
- functionName: "getProjectContracts",
45
- args: [clankerToken],
46
- },
47
- {
48
- address: factoryAddress,
49
- abi: LevrFactory_v1,
50
- functionName: "trustedForwarder",
51
- },
52
- ];
53
- }
54
- function getTreasuryContracts(clankerToken, treasury, staking, wethAddress) {
55
- const contracts = [
56
- {
57
- address: clankerToken,
58
- abi: erc20Abi,
59
- functionName: "balanceOf",
60
- args: [treasury],
61
- },
62
- {
63
- address: clankerToken,
64
- abi: erc20Abi,
65
- functionName: "balanceOf",
66
- args: [staking],
67
- },
68
- ];
69
- if (wethAddress) {
70
- contracts.push({
71
- address: wethAddress,
72
- abi: erc20Abi,
73
- functionName: "balanceOf",
74
- args: [staking],
75
- });
76
- }
77
- return contracts;
78
- }
79
- function getGovernanceContracts(governor) {
80
- return [
81
- {
82
- address: governor,
83
- abi: LevrGovernor_v1,
84
- functionName: "currentCycleId",
85
- },
86
- {
87
- address: governor,
88
- abi: LevrGovernor_v1,
89
- functionName: "activeProposalCount",
90
- args: [0], // boost type
91
- },
92
- {
93
- address: governor,
94
- abi: LevrGovernor_v1,
95
- functionName: "activeProposalCount",
96
- args: [1], // transfer type
97
- },
98
- ];
99
- }
100
- function getStakingContracts(staking, clankerToken, wethAddress) {
101
- const baseContracts = [
102
- {
103
- address: staking,
104
- abi: LevrStaking_v1,
105
- functionName: "totalStaked",
106
- },
107
- {
108
- address: staking,
109
- abi: LevrStaking_v1,
110
- functionName: "aprBps",
111
- },
112
- {
113
- address: staking,
114
- abi: LevrStaking_v1,
115
- functionName: "outstandingRewards",
116
- args: [clankerToken],
117
- },
118
- {
119
- address: staking,
120
- abi: LevrStaking_v1,
121
- functionName: "rewardRatePerSecond",
122
- args: [clankerToken],
123
- },
124
- {
125
- address: staking,
126
- abi: LevrStaking_v1,
127
- functionName: "streamWindowSeconds",
128
- },
129
- {
130
- address: staking,
131
- abi: LevrStaking_v1,
132
- functionName: "streamStart",
133
- },
134
- {
135
- address: staking,
136
- abi: LevrStaking_v1,
137
- functionName: "streamEnd",
138
- },
139
- ];
140
- const wethContracts = wethAddress
141
- ? [
142
- {
143
- address: staking,
144
- abi: LevrStaking_v1,
145
- functionName: "outstandingRewards",
146
- args: [wethAddress],
147
- },
148
- {
149
- address: staking,
150
- abi: LevrStaking_v1,
151
- functionName: "rewardRatePerSecond",
152
- args: [wethAddress],
153
- },
154
- ]
155
- : [];
156
- return [...baseContracts, ...wethContracts];
157
- }
158
- // ---
159
- // Parsers
160
- function parseTokenData(results, clankerToken) {
161
- const [decimals, name, symbol, totalSupply, allData] = results;
162
- // Extract allData fields: [originalAdmin, admin, image, metadata, context]
163
- const [originalAdmin, admin, image, metadata, context] = allData.result;
164
- // Parse metadata JSON
165
- let parsedMetadata = null;
166
- if (metadata && typeof metadata === "string") {
167
- try {
168
- parsedMetadata = JSON.parse(metadata);
169
- }
170
- catch {
171
- // If parsing fails, leave as null
172
- }
173
- }
174
- return {
175
- address: clankerToken,
176
- decimals: decimals.result,
177
- name: name.result,
178
- symbol: symbol.result,
179
- totalSupply: totalSupply.result,
180
- metadata: parsedMetadata,
181
- imageUrl: image || undefined,
182
- originalAdmin,
183
- admin,
184
- context,
185
- };
186
- }
187
- function parseFactoryData(results) {
188
- const [projectContracts, forwarder] = results;
189
- const { treasury, governor, staking, stakedToken } = projectContracts.result;
190
- return {
191
- treasury,
192
- governor,
193
- staking,
194
- stakedToken,
195
- forwarder: forwarder.result,
196
- };
197
- }
198
- function parseTreasuryStats(results, tokenDecimals, totalSupply, tokenUsdPrice, wethUsdPrice) {
199
- const [treasuryBalance, stakingBalance, stakingWethBalance] = results;
200
- const treasuryBalanceRaw = treasuryBalance.result;
201
- const stakingBalanceRaw = stakingBalance.result;
202
- const stakingWethBalanceRaw = stakingWethBalance ? stakingWethBalance.result : null;
203
- // Total allocated = treasury + staking balances (protocol-controlled tokens)
204
- const totalAllocatedRaw = treasuryBalanceRaw + stakingBalanceRaw;
205
- // Utilization = (total allocated / total supply) * 100
206
- const utilizationBps = totalSupply > 0n ? (totalAllocatedRaw * 10000n) / totalSupply : 0n;
207
- const utilization = Number(utilizationBps) / 100;
208
- return {
209
- balance: formatBalanceWithUsd(treasuryBalanceRaw, tokenDecimals, tokenUsdPrice),
210
- totalAllocated: formatBalanceWithUsd(totalAllocatedRaw, tokenDecimals, tokenUsdPrice),
211
- utilization,
212
- stakingContractBalance: formatBalanceWithUsd(stakingBalanceRaw, tokenDecimals, tokenUsdPrice),
213
- stakingContractWethBalance: stakingWethBalanceRaw
214
- ? formatBalanceWithUsd(stakingWethBalanceRaw, 18, wethUsdPrice ?? null)
215
- : undefined,
216
- };
217
- }
218
- function parseGovernanceData(results) {
219
- const [currentCycleId, boostCount, transferCount] = results;
220
- return {
221
- currentCycleId: currentCycleId.result === 0n ? 1n : currentCycleId.result,
222
- activeProposalCount: {
223
- boost: boostCount.result,
224
- transfer: transferCount.result,
225
- },
226
- };
227
- }
228
- function parseStakingStats(results, tokenDecimals, tokenUsdPrice, wethUsdPrice, blockTimestamp, pricing, feeSplitterPending) {
229
- const totalStakedRaw = results[0].result;
230
- const aprBpsRaw = results[1].result;
231
- const outstandingRewardsTokenRaw = results[2].result;
232
- const tokenRewardRateRaw = results[3].result;
233
- const streamWindowSecondsRaw = results[4].result;
234
- const streamStartRaw = results[5].result;
235
- const streamEndRaw = results[6].result;
236
- // Check if WETH data is present
237
- const hasWethData = results.length > 7;
238
- const outstandingRewardsWethRaw = hasWethData && results[7] ? results[7].result : null;
239
- const wethRewardRateRaw = hasWethData && results[8] ? results[8].result : null;
240
- // Calculate WETH APR if available
241
- let wethApr = null;
242
- if (wethRewardRateRaw !== null &&
243
- wethRewardRateRaw !== undefined &&
244
- pricing &&
245
- totalStakedRaw > 0n) {
246
- const wethUsd = parseFloat(pricing.wethUsd);
247
- const tokenUsd = parseFloat(pricing.tokenUsd);
248
- if (tokenUsd > 0) {
249
- const wethPriceInTokens = wethUsd / tokenUsd;
250
- const secondsPerYear = BigInt(365 * 24 * 60 * 60);
251
- const annualWethRewards = wethRewardRateRaw * secondsPerYear;
252
- const priceScaleFactor = BigInt(1000000000000000000);
253
- const wethPriceScaled = BigInt(Math.floor(wethPriceInTokens * Number(priceScaleFactor)));
254
- const annualRewardsInUnderlying = (annualWethRewards * wethPriceScaled) / priceScaleFactor;
255
- const aprBpsWeth = totalStakedRaw > 0n ? (annualRewardsInUnderlying * 10000n) / totalStakedRaw : 0n;
256
- wethApr = {
257
- raw: aprBpsWeth,
258
- percentage: Number(aprBpsWeth) / 100,
259
- };
260
- }
261
- }
262
- // Calculate if stream is active using blockchain timestamp
263
- const isStreamActive = streamStartRaw <= blockTimestamp && blockTimestamp <= streamEndRaw;
264
- // When fee splitter is active, ADD both fee splitter's pending AND staking's pending
265
- // (hybrid setup: fee splitter gets some %, staking gets rest % directly from ClankerFeeLocker)
266
- // When fee splitter is NOT active, use only staking's pending from ClankerFeeLocker
267
- const tokenPendingTotal = feeSplitterPending
268
- ? feeSplitterPending.token + outstandingRewardsTokenRaw[1] // ADD both portions
269
- : outstandingRewardsTokenRaw[1]; // Use staking's pending (it's the only recipient)
270
- const wethPendingTotal = feeSplitterPending?.weth !== undefined
271
- ? (feeSplitterPending.weth ?? 0n) + (outstandingRewardsWethRaw?.[1] ?? 0n) // ADD both portions
272
- : outstandingRewardsWethRaw
273
- ? outstandingRewardsWethRaw[1] // Use staking's pending (it's the only recipient)
274
- : null;
275
- return {
276
- totalStaked: formatBalanceWithUsd(totalStakedRaw, tokenDecimals, tokenUsdPrice),
277
- apr: {
278
- token: {
279
- raw: aprBpsRaw,
280
- percentage: Number(aprBpsRaw) / 100,
281
- },
282
- weth: wethApr,
283
- },
284
- outstandingRewards: {
285
- staking: {
286
- available: formatBalanceWithUsd(outstandingRewardsTokenRaw[0], tokenDecimals, tokenUsdPrice),
287
- pending: formatBalanceWithUsd(tokenPendingTotal, tokenDecimals, tokenUsdPrice),
288
- },
289
- weth: outstandingRewardsWethRaw
290
- ? {
291
- available: formatBalanceWithUsd(outstandingRewardsWethRaw[0], 18, wethUsdPrice),
292
- pending: formatBalanceWithUsd(wethPendingTotal ?? 0n, 18, wethUsdPrice),
293
- }
294
- : null,
295
- },
296
- rewardRates: {
297
- token: formatBalanceWithUsd(tokenRewardRateRaw, tokenDecimals, tokenUsdPrice),
298
- weth: wethRewardRateRaw !== null && wethRewardRateRaw !== undefined
299
- ? formatBalanceWithUsd(wethRewardRateRaw, 18, wethUsdPrice)
300
- : null,
301
- },
302
- streamParams: {
303
- windowSeconds: Number(streamWindowSecondsRaw),
304
- streamStart: streamStartRaw,
305
- streamEnd: streamEndRaw,
306
- isActive: isStreamActive,
307
- },
308
- };
309
- }
310
- /**
311
- * Get multiple projects data using factory's paginated getProjects()
312
- */
313
- export async function getProjects({ publicClient, offset = 0, limit = 50, }) {
314
- if (Object.values({ publicClient }).some((value) => !value)) {
315
- throw new Error("Invalid projects params");
316
- }
317
- const chainId = publicClient.chain?.id;
318
- if (!chainId)
319
- throw new Error("Chain ID not found on public client");
320
- const factoryAddress = GET_FACTORY_ADDRESS(chainId);
321
- if (!factoryAddress)
322
- throw new Error("Factory address not found");
323
- // Get projects from factory using paginated view function
324
- const [projectsData, total] = await publicClient.readContract({
325
- address: factoryAddress,
326
- abi: LevrFactory_v1,
327
- functionName: "getProjects",
328
- args: [BigInt(offset), BigInt(limit)],
329
- });
330
- if (projectsData.length === 0) {
331
- return {
332
- projects: [],
333
- total: Number(total),
334
- };
335
- }
336
- // Track contracts and their mapping per project for correct result parsing
337
- const contractsPerProject = [];
338
- // Build contract calls for all projects (token data + treasury balances)
339
- const contracts = projectsData.flatMap((projectInfo) => {
340
- const tokenContracts = getTokenContracts(projectInfo.clankerToken);
341
- const treasuryContracts = getTreasuryContracts(projectInfo.clankerToken, projectInfo.project.treasury, projectInfo.project.staking, undefined);
342
- contractsPerProject.push({
343
- tokenCount: tokenContracts.length,
344
- treasuryCount: treasuryContracts.length,
345
- });
346
- return [...tokenContracts, ...treasuryContracts];
347
- });
348
- const results = await publicClient.multicall({ contracts });
349
- // Parse results into Project objects
350
- const projects = [];
351
- let currentOffset = 0;
352
- for (let i = 0; i < projectsData.length; i++) {
353
- const projectInfo = projectsData[i];
354
- const tokenCount = contractsPerProject[i].tokenCount;
355
- const treasuryCount = contractsPerProject[i].treasuryCount;
356
- // Extract results for this project
357
- const tokenResults = results.slice(currentOffset, currentOffset + tokenCount);
358
- currentOffset += tokenCount;
359
- const treasuryResults = results.slice(currentOffset, currentOffset + treasuryCount);
360
- currentOffset += treasuryCount;
361
- // Parse using our type-safe parsers
362
- const tokenData = parseTokenData(tokenResults, projectInfo.clankerToken);
363
- const treasuryStats = parseTreasuryStats(treasuryResults, tokenData.decimals, tokenData.totalSupply, null // No pricing for list view
364
- );
365
- projects.push({
366
- chainId,
367
- treasury: projectInfo.project.treasury,
368
- governor: projectInfo.project.governor,
369
- staking: projectInfo.project.staking,
370
- stakedToken: projectInfo.project.stakedToken,
371
- factory: factoryAddress,
372
- token: tokenData,
373
- treasuryStats,
374
- });
375
- }
376
- return {
377
- projects,
378
- total: Number(total),
379
- };
380
- }
381
- /**
382
- * Get static project data that doesn't change frequently
383
- * This includes contract addresses, token metadata, pool info, and fee receivers
384
- */
385
- export async function getStaticProject({ publicClient, clankerToken, userAddress, }) {
386
- if (Object.values({ publicClient, clankerToken }).some((value) => !value)) {
387
- throw new Error("Invalid project params");
388
- }
389
- const chainId = publicClient.chain?.id;
390
- if (!chainId)
391
- throw new Error("Chain ID not found on public client");
392
- const factoryAddress = GET_FACTORY_ADDRESS(chainId);
393
- if (!factoryAddress)
394
- throw new Error("Factory address not found");
395
- // Get deployed fee splitter for this token (if exists)
396
- const feeSplitterAddress = await getFeeSplitter({
397
- publicClient,
398
- clankerToken,
399
- chainId,
400
- });
401
- // Build contract calls including tokenRewards and fee splitter static in the same multicall
402
- const contracts = [
403
- ...getTokenContracts(clankerToken),
404
- ...getFactoryContracts(factoryAddress, clankerToken),
405
- ...getFeeReceiverContracts(clankerToken, chainId),
406
- ...(feeSplitterAddress ? getFeeSplitterStaticContracts(clankerToken, feeSplitterAddress) : []),
407
- ];
408
- const multicallResults = await publicClient.multicall({ contracts });
409
- // Calculate slice indices for each data group
410
- const tokenCount = 5;
411
- const factoryCount = 2;
412
- const tokenRewardsCount = 1;
413
- const feeSplitterStaticCount = feeSplitterAddress ? 3 : 0;
414
- let idx = 0;
415
- const tokenResults = multicallResults.slice(idx, idx + tokenCount);
416
- idx += tokenCount;
417
- const factoryResults = multicallResults.slice(idx, idx + factoryCount);
418
- idx += factoryCount;
419
- const tokenRewardsResult = multicallResults[idx];
420
- idx += tokenRewardsCount;
421
- const feeSplitterStaticResults = feeSplitterAddress
422
- ? multicallResults.slice(idx, idx + feeSplitterStaticCount)
423
- : null;
424
- idx += feeSplitterStaticCount;
425
- // Parse results using individual parsers
426
- const tokenData = parseTokenData(tokenResults, clankerToken);
427
- const factoryData = parseFactoryData(factoryResults);
428
- // Check if project exists
429
- const { treasury, governor, staking, stakedToken } = factoryData;
430
- if ([treasury, governor, staking, stakedToken].some((a) => a === zeroAddress))
431
- return null;
432
- // Extract pool information and fee receivers from LP locker
433
- let poolInfo;
434
- let feeReceivers;
435
- if (tokenRewardsResult.status === "success") {
436
- const tokenRewards = tokenRewardsResult.result;
437
- const poolKey = tokenRewards.poolKey;
438
- poolInfo = {
439
- poolKey,
440
- feeDisplay: poolKey.fee === 8388608 ? "Dynamic" : `${(poolKey.fee / 10000).toFixed(2)}%`,
441
- numPositions: tokenRewards.numPositions,
442
- };
443
- // Parse fee receivers using shared utility (no logic duplication)
444
- // Pass userAddress so areYouAnAdmin works out of the box
445
- feeReceivers = parseFeeReceivers(tokenRewards, userAddress);
446
- }
447
- // If tokenRewards fails (e.g., token not deployed through Clanker), poolInfo remains undefined
448
- // Parse fee splitter static data
449
- let feeSplitter;
450
- if (feeSplitterStaticResults) {
451
- // Get current fee recipient from fee receivers (if user is admin)
452
- const currentFeeRecipient = feeReceivers?.find((fr) => fr.areYouAnAdmin)?.recipient;
453
- const parsed = parseFeeSplitterStatic(feeSplitterStaticResults, currentFeeRecipient, feeSplitterAddress);
454
- feeSplitter = parsed ?? undefined;
455
- }
456
- return {
457
- treasury: factoryData.treasury,
458
- governor: factoryData.governor,
459
- staking: factoryData.staking,
460
- stakedToken: factoryData.stakedToken,
461
- forwarder: factoryData.forwarder,
462
- factory: factoryAddress,
463
- token: tokenData,
464
- pool: poolInfo,
465
- feeReceivers,
466
- feeSplitter,
467
- };
468
- }
469
- /**
470
- * Get project data for a clanker token
471
- * Requires staticProject data to avoid refetching static information
472
- * Fetches dynamic data including treasury, governance, staking stats, and pricing
473
- */
474
- export async function getProject({ publicClient, staticProject, oraclePublicClient, }) {
475
- if (Object.values({ publicClient, staticProject }).some((value) => !value)) {
476
- throw new Error("Invalid project params");
477
- }
478
- const chainId = publicClient.chain?.id;
479
- if (!chainId)
480
- throw new Error("Chain ID not found on public client");
481
- const wethAddress = WETH(chainId)?.address;
482
- const clankerToken = staticProject.token.address;
483
- // Use fee splitter from staticProject (already fetched in getStaticProject)
484
- const feeSplitterAddress = staticProject.feeSplitter?.address;
485
- const rewardTokens = wethAddress ? [clankerToken, wethAddress] : [clankerToken];
486
- // Fetch pricing data if oracle client is provided and pool exists
487
- let pricing;
488
- if (oraclePublicClient && staticProject.pool) {
489
- try {
490
- const [wethUsdData, tokenUsdData] = await Promise.all([
491
- getWethUsdPrice({ publicClient: oraclePublicClient }),
492
- getUsdPrice({
493
- oraclePublicClient,
494
- quotePublicClient: publicClient,
495
- tokenAddress: clankerToken,
496
- tokenDecimals: staticProject.token.decimals,
497
- quoteFee: staticProject.pool.poolKey.fee,
498
- quoteTickSpacing: staticProject.pool.poolKey.tickSpacing,
499
- quoteHooks: staticProject.pool.poolKey.hooks,
500
- }),
501
- ]);
502
- pricing = {
503
- wethUsd: wethUsdData.priceUsd,
504
- tokenUsd: tokenUsdData.priceUsd,
505
- };
506
- }
507
- catch (error) {
508
- // If pricing fails, continue without it (graceful degradation)
509
- console.warn("Failed to fetch USD pricing:", error);
510
- }
511
- }
512
- // Get current block timestamp for accurate stream status
513
- const block = await publicClient.getBlock();
514
- const blockTimestamp = block.timestamp;
515
- // Fetch only dynamic data (treasury, governance, staking stats, and fee splitter dynamic)
516
- const contracts = [
517
- ...getTreasuryContracts(clankerToken, staticProject.treasury, staticProject.staking, wethAddress),
518
- ...getGovernanceContracts(staticProject.governor),
519
- ...getStakingContracts(staticProject.staking, clankerToken, wethAddress),
520
- ...(feeSplitterAddress && staticProject.feeSplitter?.isActive
521
- ? getFeeSplitterDynamicContracts(clankerToken, feeSplitterAddress, rewardTokens)
522
- : []),
523
- ];
524
- const results = await publicClient.multicall({ contracts });
525
- // Calculate slice indices for dynamic data
526
- const treasuryCount = wethAddress ? 3 : 2;
527
- const governanceCount = 3; // currentCycleId + 2 activeProposalCount calls
528
- const stakingCount = wethAddress ? 9 : 7; // Added 3 stream-related calls
529
- const feeSplitterDynamicCount = feeSplitterAddress && staticProject.feeSplitter?.isActive ? rewardTokens.length : 0;
530
- let idx = 0;
531
- const treasuryResults = results.slice(idx, idx + treasuryCount);
532
- idx += treasuryCount;
533
- const governanceResults = results.slice(idx, idx + governanceCount);
534
- idx += governanceCount;
535
- const stakingResults = results.slice(idx, idx + stakingCount);
536
- idx += stakingCount;
537
- const feeSplitterDynamicResults = feeSplitterDynamicCount > 0 ? results.slice(idx, idx + feeSplitterDynamicCount) : null;
538
- // Calculate USD values for stats if pricing is available
539
- const tokenUsdPrice = pricing ? parseFloat(pricing.tokenUsd) : null;
540
- const wethUsdPrice = pricing ? parseFloat(pricing.wethUsd) : null;
541
- // Parse fee splitter dynamic data first (needed for staking stats)
542
- let feeSplitter = staticProject.feeSplitter;
543
- let feeSplitterPendingFees;
544
- if (feeSplitterDynamicResults && staticProject.feeSplitter) {
545
- const feeSplitterDynamic = parseFeeSplitterDynamic(feeSplitterDynamicResults, wethAddress);
546
- feeSplitter = {
547
- ...staticProject.feeSplitter,
548
- ...feeSplitterDynamic,
549
- };
550
- // Extract pending fees to add to outstanding rewards
551
- // When using fee splitter, fees in LP locker should show as "pending" in outstanding rewards
552
- if (staticProject.feeSplitter.isActive && feeSplitterDynamic.pendingFees) {
553
- feeSplitterPendingFees = {
554
- token: feeSplitterDynamic.pendingFees.token,
555
- weth: feeSplitterDynamic.pendingFees.weth ?? null,
556
- };
557
- }
558
- }
559
- // Parse treasury and staking stats using individual parsers
560
- const treasuryStats = parseTreasuryStats(treasuryResults, staticProject.token.decimals, staticProject.token.totalSupply, tokenUsdPrice, wethUsdPrice);
561
- const stakingStats = parseStakingStats(stakingResults, staticProject.token.decimals, tokenUsdPrice, wethUsdPrice, blockTimestamp, pricing, feeSplitterPendingFees);
562
- const governanceStats = parseGovernanceData(governanceResults);
563
- return {
564
- chainId,
565
- ...staticProject,
566
- treasuryStats,
567
- stakingStats,
568
- governanceStats,
569
- pricing,
570
- feeSplitter,
571
- blockTimestamp,
572
- };
573
- }
574
- //# sourceMappingURL=project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/project.ts"],"names":[],"mappings":"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"}