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,17 +1,20 @@
1
1
  import { omit } from "lodash";
2
2
  import { encodeFunctionData, erc20Abi, parseUnits } from "viem";
3
- import { LevrFeeSplitter_v1, LevrForwarder_v1, LevrStaking_v1 } from "./abis/index.js";
4
- import { WETH } from "./constants.js";
3
+ import { IClankerFeeLocker, IClankerLPLocker, LevrFeeSplitter_v1, LevrForwarder_v1, LevrStaking_v1, } from "./abis/index.js";
4
+ import { GET_FEE_LOCKER_ADDRESS, GET_LP_LOCKER_ADDRESS } from "./constants/index.js";
5
+ import { normalizeDecimalInput } from "./util.js";
5
6
  export class Stake {
6
7
  wallet;
7
8
  publicClient;
8
9
  stakingAddress;
9
10
  tokenAddress;
11
+ stakedTokenAddress;
10
12
  tokenDecimals;
11
13
  chainId;
12
14
  userAddress;
13
15
  trustedForwarder;
14
16
  isFeeSplitterActive;
17
+ pairedTokenAddress;
15
18
  constructor(config) {
16
19
  // Validate required fields only (not optional fields like trustedForwarder, pricing)
17
20
  if (Object.values(omit(config, ["pricing"])).some((value) => !value))
@@ -20,17 +23,32 @@ export class Stake {
20
23
  this.publicClient = config.publicClient;
21
24
  this.stakingAddress = config.project.staking;
22
25
  this.tokenAddress = config.project.token.address;
26
+ this.stakedTokenAddress = config.project.stakedToken;
23
27
  this.tokenDecimals = config.project.token.decimals;
24
28
  this.chainId = config.publicClient.chain?.id ?? 1; // Get chainId from publicClient
25
29
  this.userAddress = config.wallet.account.address;
26
30
  this.trustedForwarder = config.project.forwarder;
27
31
  this.isFeeSplitterActive = config.project.feeSplitter?.isActive ?? false;
32
+ this.pairedTokenAddress = config.project.pool?.pairedToken?.address;
33
+ }
34
+ /**
35
+ * Get reward token addresses for this project.
36
+ * Returns [underlyingToken, pairedToken] if paired token exists, otherwise just [underlyingToken].
37
+ */
38
+ getRewardTokens() {
39
+ const tokens = [this.tokenAddress];
40
+ if (this.pairedTokenAddress) {
41
+ tokens.push(this.pairedTokenAddress);
42
+ }
43
+ return tokens;
28
44
  }
29
45
  /**
30
46
  * Approve ERC20 tokens for spending by the staking contract
31
47
  */
32
48
  async approve(amount) {
33
- const parsedAmount = typeof amount === "bigint" ? amount : parseUnits(amount.toString(), this.tokenDecimals);
49
+ const parsedAmount = typeof amount === "bigint"
50
+ ? amount
51
+ : parseUnits(normalizeDecimalInput(amount), this.tokenDecimals);
34
52
  const hash = await this.wallet.writeContract({
35
53
  address: this.tokenAddress,
36
54
  abi: erc20Abi,
@@ -48,7 +66,9 @@ export class Stake {
48
66
  * Stake tokens in the staking contract
49
67
  */
50
68
  async stake(amount) {
51
- const parsedAmount = typeof amount === "bigint" ? amount : parseUnits(amount.toString(), this.tokenDecimals);
69
+ const parsedAmount = typeof amount === "bigint"
70
+ ? amount
71
+ : parseUnits(normalizeDecimalInput(amount), this.tokenDecimals);
52
72
  const hash = await this.wallet.writeContract({
53
73
  address: this.stakingAddress,
54
74
  abi: LevrStaking_v1,
@@ -73,13 +93,13 @@ export class Stake {
73
93
  }
74
94
  else {
75
95
  // Parse the amount
76
- parsedAmount = parseUnits(amount.toString(), this.tokenDecimals);
96
+ parsedAmount = parseUnits(normalizeDecimalInput(amount), this.tokenDecimals);
77
97
  }
78
98
  // Get current staked balance to prevent rounding errors on 100% unstake
79
99
  const currentStakedBalance = await this.publicClient.readContract({
80
- address: this.stakingAddress,
81
- abi: LevrStaking_v1,
82
- functionName: "stakedBalanceOf",
100
+ address: this.stakedTokenAddress,
101
+ abi: erc20Abi,
102
+ functionName: "balanceOf",
83
103
  args: [this.userAddress],
84
104
  });
85
105
  // If trying to unstake an amount very close to the total (within 0.01%), use exact balance
@@ -120,19 +140,14 @@ export class Stake {
120
140
  }
121
141
  /**
122
142
  * Claim rewards from the staking contract
143
+ * Claims both underlying token and paired token (WETH/WBNB/USDC) rewards
123
144
  */
124
145
  async claimRewards(params) {
125
- // Default to claiming both staking token and WETH
126
- const defaultTokens = [this.tokenAddress];
127
- const wethAddress = WETH(this.chainId)?.address;
128
- if (wethAddress) {
129
- defaultTokens.push(wethAddress);
130
- }
131
146
  const hash = await this.wallet.writeContract({
132
147
  address: this.stakingAddress,
133
148
  abi: LevrStaking_v1,
134
149
  functionName: "claimRewards",
135
- args: [params?.tokens ?? defaultTokens, params?.to ?? this.userAddress],
150
+ args: [params?.tokens ?? this.getRewardTokens(), params?.to ?? this.userAddress],
136
151
  chain: this.wallet.chain,
137
152
  });
138
153
  const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
@@ -142,24 +157,39 @@ export class Stake {
142
157
  return receipt;
143
158
  }
144
159
  /**
145
- * Accrue rewards by triggering manual accrual from balance delta detection
160
+ * Accrue rewards for a single token using forwarder multicall
161
+ *
162
+ * SECURITY FIX (External Audit 2): Fee collection now handled via SDK using executeMulticall
163
+ * This prevents arbitrary code execution risk from external contract calls in contracts
164
+ *
165
+ * Flow:
166
+ * 1. Call LP locker collectRewards() via forwarder.executeTransaction (wrapped external call)
167
+ * 2. Call fee locker claim() via forwarder.executeTransaction (wrapped external call)
168
+ * 3. If fee splitter: call distribute() (distributes to receivers including staking)
169
+ * 4. Call accrueRewards() on staking contract (detects balance increase)
146
170
  *
147
- * NOTE: If fee splitter is configured, call distributeFromFeeSplitter() FIRST.
148
- * The fee splitter transfers tokens to staking, then accrueRewards() detects the balance increase.
171
+ * @param tokenAddress The reward token to accrue (defaults to clankerToken)
149
172
  */
150
173
  async accrueRewards(tokenAddress) {
151
- const hash = await this.wallet.writeContract({
152
- address: this.stakingAddress,
153
- abi: LevrStaking_v1,
154
- functionName: "accrueRewards",
155
- args: [tokenAddress ?? this.tokenAddress],
156
- chain: this.wallet.chain,
157
- });
158
- const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
159
- if (receipt.status === "reverted") {
160
- throw new Error("Accrue rewards transaction reverted");
174
+ // If no forwarder, fall back to simple accrueRewards call
175
+ if (!this.trustedForwarder) {
176
+ const hash = await this.wallet.writeContract({
177
+ address: this.stakingAddress,
178
+ abi: LevrStaking_v1,
179
+ functionName: "accrueRewards",
180
+ args: [tokenAddress ?? this.tokenAddress],
181
+ chain: this.wallet.chain,
182
+ });
183
+ const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
184
+ if (receipt.status === "reverted") {
185
+ throw new Error("Accrue rewards transaction reverted");
186
+ }
187
+ return receipt;
161
188
  }
162
- return receipt;
189
+ // Use accrueAllRewards with single token for complete flow
190
+ return this.accrueAllRewards({
191
+ tokens: [tokenAddress ?? this.tokenAddress],
192
+ });
163
193
  }
164
194
  /**
165
195
  * Distribute fees from the fee splitter to all configured receivers (including staking)
@@ -178,15 +208,11 @@ export class Stake {
178
208
  if (!feeSplitterAddress) {
179
209
  throw new Error("Fee splitter not deployed for this token. Deploy it first.");
180
210
  }
181
- // Default to clanker token + WETH if tokens not provided
182
- const wethAddress = WETH(this.chainId)?.address;
183
- const defaultTokens = wethAddress ? [this.tokenAddress, wethAddress] : [this.tokenAddress];
184
- const tokens = params?.tokens ?? defaultTokens;
185
211
  const hash = await this.wallet.writeContract({
186
212
  address: feeSplitterAddress, // Per-project splitter, not deployer!
187
213
  abi: LevrFeeSplitter_v1,
188
214
  functionName: "distributeBatch",
189
- args: [tokens],
215
+ args: [params?.tokens ?? this.getRewardTokens()],
190
216
  chain: this.wallet.chain,
191
217
  });
192
218
  const receipt = await this.publicClient.waitForTransactionReceipt({ hash });
@@ -198,33 +224,91 @@ export class Stake {
198
224
  /**
199
225
  * Accrue rewards for multiple tokens in a single transaction using forwarder multicall
200
226
  *
201
- * If fee splitter is configured and active, this will:
202
- * 1. Call distribute() on fee splitter for each token
203
- * 2. Fee splitter automatically calls accrueRewards() after distribution
227
+ * SECURITY FIX (External Audit 2): Fee collection now handled via SDK using executeMulticall
228
+ * This prevents arbitrary code execution risk from external contract calls in contracts
204
229
  *
205
- * If fee splitter is NOT configured, this will:
206
- * 1. Directly call accrueRewards() for each token on staking contract
230
+ * Flow:
231
+ * 1. Call LP locker collectRewards() via factory.executeTransaction (wrapped external call)
232
+ * 2. Call fee locker claim() via factory.executeTransaction (wrapped external call)
233
+ * 3. If fee splitter: call distribute() (distributes to receivers including staking)
234
+ * 4. Call accrueRewards() on staking contract (detects balance increase)
207
235
  *
208
- * @param params.tokens - Array of token addresses to accrue (defaults to [clankerToken, WETH])
236
+ * @param params.tokens - Array of token addresses to accrue (defaults to [underlyingToken, pairedToken])
209
237
  * @param params.useFeeSplitter - If true, uses fee splitter distribute (auto-detected if not provided)
210
238
  */
211
239
  async accrueAllRewards(params) {
212
240
  if (!this.trustedForwarder) {
213
241
  throw new Error("Trusted forwarder is required for multicall operations");
214
242
  }
215
- // Default tokens: clankerToken + WETH (if available)
216
- const defaultTokens = [this.tokenAddress];
217
- const wethAddress = WETH(this.chainId)?.address;
218
- if (wethAddress) {
219
- defaultTokens.push(wethAddress);
243
+ const tokenAddresses = params?.tokens ?? this.getRewardTokens();
244
+ // Get LP locker and fee locker addresses
245
+ const lpLockerAddress = GET_LP_LOCKER_ADDRESS(this.chainId);
246
+ const feeLockerAddress = GET_FEE_LOCKER_ADDRESS(this.chainId);
247
+ if (!lpLockerAddress || !feeLockerAddress) {
248
+ throw new Error("LP locker or fee locker address not found for this chain");
220
249
  }
221
- const tokenAddresses = params?.tokens ?? defaultTokens;
222
250
  // Detect if fee splitter should be used (can be overridden)
223
251
  const useFeeSplitter = params?.useFeeSplitter ?? this._shouldUseFeeSplitter();
224
- let calls;
252
+ const calls = [];
253
+ // For each token, add fee collection calls
254
+ for (const tokenAddress of tokenAddresses) {
255
+ // Step 1: Collect rewards from LP locker (V4 pool → fee locker)
256
+ // Wrapped in forwarder.executeTransaction to prevent arbitrary code execution
257
+ calls.push({
258
+ target: this.trustedForwarder,
259
+ allowFailure: true, // Allow failure (might not have fees to collect)
260
+ value: 0n,
261
+ callData: encodeFunctionData({
262
+ abi: LevrForwarder_v1,
263
+ functionName: "executeTransaction",
264
+ args: [
265
+ lpLockerAddress,
266
+ encodeFunctionData({
267
+ abi: IClankerLPLocker,
268
+ functionName: "collectRewards",
269
+ args: [this.tokenAddress], // Note: collectRewards takes the CLANKER token, not reward token
270
+ }),
271
+ ],
272
+ }),
273
+ });
274
+ // Step 2: Claim fees from fee locker (fee locker → staking or fee splitter)
275
+ // Determine the recipient: fee splitter if active, otherwise staking
276
+ let feeRecipient;
277
+ if (useFeeSplitter) {
278
+ const { getFeeSplitter } = await import("./fee-splitter.js");
279
+ const feeSplitterAddress = await getFeeSplitter({
280
+ publicClient: this.publicClient,
281
+ clankerToken: this.tokenAddress,
282
+ chainId: this.chainId,
283
+ });
284
+ if (!feeSplitterAddress) {
285
+ throw new Error("Fee splitter not deployed for this token. Deploy it first or use useFeeSplitter: false");
286
+ }
287
+ feeRecipient = feeSplitterAddress;
288
+ }
289
+ else {
290
+ feeRecipient = this.stakingAddress;
291
+ }
292
+ calls.push({
293
+ target: this.trustedForwarder,
294
+ allowFailure: true, // Allow failure (might not have fees to claim)
295
+ value: 0n,
296
+ callData: encodeFunctionData({
297
+ abi: LevrForwarder_v1,
298
+ functionName: "executeTransaction",
299
+ args: [
300
+ feeLockerAddress,
301
+ encodeFunctionData({
302
+ abi: IClankerFeeLocker,
303
+ functionName: "claim",
304
+ args: [feeRecipient, tokenAddress],
305
+ }),
306
+ ],
307
+ }),
308
+ });
309
+ }
310
+ // Step 3: If using fee splitter, call distribute() for each token
225
311
  if (useFeeSplitter) {
226
- // Fee splitter mode: Get the deployed splitter for this token, then call distribute()
227
- // The fee splitter will automatically call accrueRewards() after distributing
228
312
  const { getFeeSplitter } = await import("./fee-splitter.js");
229
313
  const feeSplitterAddress = await getFeeSplitter({
230
314
  publicClient: this.publicClient,
@@ -232,37 +316,25 @@ export class Stake {
232
316
  chainId: this.chainId,
233
317
  });
234
318
  if (!feeSplitterAddress) {
235
- throw new Error("Fee splitter not deployed for this token. Deploy it first or use useFeeSplitter: false");
319
+ throw new Error("Fee splitter not deployed");
320
+ }
321
+ for (const tokenAddress of tokenAddresses) {
322
+ calls.push({
323
+ target: feeSplitterAddress,
324
+ allowFailure: false,
325
+ value: 0n,
326
+ callData: encodeFunctionData({
327
+ abi: LevrFeeSplitter_v1,
328
+ functionName: "distribute",
329
+ args: [tokenAddress],
330
+ }),
331
+ });
236
332
  }
237
- // Call distribute() for each token (fee splitter's portion + auto-accrue)
238
- const distributeCalls = tokenAddresses.map((tokenAddress) => ({
239
- target: feeSplitterAddress, // Per-project splitter, not deployer!
240
- allowFailure: false,
241
- value: 0n,
242
- callData: encodeFunctionData({
243
- abi: LevrFeeSplitter_v1,
244
- functionName: "distribute",
245
- args: [tokenAddress],
246
- }),
247
- }));
248
- // ALSO call accrueRewards() for each token (staking's direct portion from ClankerFeeLocker)
249
- // This handles hybrid setups where staking receives fees both via splitter AND directly
250
- const accrueCalls = tokenAddresses.map((tokenAddress) => ({
251
- target: this.stakingAddress,
252
- allowFailure: false,
253
- value: 0n,
254
- callData: encodeFunctionData({
255
- abi: LevrStaking_v1,
256
- functionName: "accrueRewards",
257
- args: [tokenAddress],
258
- }),
259
- }));
260
- // Execute both sets of calls in a single multicall transaction
261
- calls = [...distributeCalls, ...accrueCalls];
262
333
  }
263
- else {
264
- // Direct mode: Call accrueRewards() on staking contract
265
- calls = tokenAddresses.map((tokenAddress) => ({
334
+ // Step 4: Call accrueRewards() for each token
335
+ // This detects the balance increase from fee collection and credits rewards
336
+ for (const tokenAddress of tokenAddresses) {
337
+ calls.push({
266
338
  target: this.stakingAddress,
267
339
  allowFailure: false,
268
340
  value: 0n,
@@ -271,7 +343,7 @@ export class Stake {
271
343
  functionName: "accrueRewards",
272
344
  args: [tokenAddress],
273
345
  }),
274
- }));
346
+ });
275
347
  }
276
348
  const hash = await this.wallet.writeContract({
277
349
  address: this.trustedForwarder,
@@ -300,7 +372,9 @@ export class Stake {
300
372
  */
301
373
  async votingPowerOnUnstake(amount, userAddress) {
302
374
  const user = userAddress ?? this.userAddress;
303
- const parsedAmount = typeof amount === "bigint" ? amount : parseUnits(amount.toString(), this.tokenDecimals);
375
+ const parsedAmount = typeof amount === "bigint"
376
+ ? amount
377
+ : parseUnits(normalizeDecimalInput(amount), this.tokenDecimals);
304
378
  // Use simulateContract to get the return value without executing
305
379
  const simulation = await this.publicClient.simulateContract({
306
380
  address: this.stakingAddress,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stake.js","sourceRoot":"","sources":["../../../src/stake.ts"],"names":[],"mappings":"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"}
@@ -2,19 +2,8 @@ import { CommandType, RoutePlanner } from "@uniswap/universal-router-sdk";
2
2
  import { Actions, V4Planner } from "@uniswap/v4-sdk";
3
3
  import { erc20Abi } from "viem";
4
4
  import Permit2Abi from "./abis/Permit2.js";
5
- import { ADDRESS_THIS, CONTRACT_BALANCE, MSG_SENDER, UNISWAP_V4_PERMIT2, UNISWAP_V4_UNIVERSAL_ROUTER, WETH, } from "./constants.js";
6
- /**
7
- * @description Check if a currency is WETH
8
- * @param currency Currency address
9
- * @param chainId Chain ID to get WETH address
10
- * @returns True if WETH
11
- */
12
- const isWETH = (currency, chainId) => {
13
- const wethInfo = WETH(chainId);
14
- if (!wethInfo)
15
- return false;
16
- return currency.toLowerCase() === wethInfo.address.toLowerCase();
17
- };
5
+ import { ADDRESS_THIS, CONTRACT_BALANCE, MSG_SENDER, UNISWAP_V4_PERMIT2, UNISWAP_V4_UNIVERSAL_ROUTER, } from "./constants/index.js";
6
+ import { isWETH } from "./util.js";
18
7
  /**
19
8
  * @description Execute a Uniswap V4 swap with automatic native ETH handling
20
9
  * @param params Swap parameters including pool key and amounts
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap-v4.js","sourceRoot":"","sources":["../../../src/swap-v4.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":""}