levr-sdk 0.3.1 → 0.5.0-alpha.10
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.
- package/dist/esm/packages/clanker-sdk/src/abi/uniswap/UniswapV3Factory.js +136 -0
- package/dist/esm/packages/clanker-sdk/src/abi/uniswap/UniswapV3Factory.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/uniswap/UniswapV3NonfungiblePositionManager.js +603 -0
- package/dist/esm/packages/clanker-sdk/src/abi/uniswap/UniswapV3NonfungiblePositionManager.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v0/Clanker.js +312 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v0/Clanker.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v1/Clanker.js +323 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v1/Clanker.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v2/Clanker.js +315 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v2/Clanker.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v2/LpLockerv2.js +321 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v2/LpLockerv2.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3/Clanker.js +323 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3/Clanker.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3/ClankerToken.js +548 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3/ClankerToken.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3.1/Clanker.js +689 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3.1/Clanker.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3.1/ClankerToken.js +1794 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3.1/ClankerToken.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3.1/ClankerVault.js +234 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3.1/ClankerVault.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3.1/LpLockerv2.js +571 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v3.1/LpLockerv2.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/Clanker.js +437 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/Clanker.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerAirdrop.js +198 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerAirdrop.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerAirdropV2.js +290 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerAirdropV2.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerFeeLocker.js +160 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerFeeLocker.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHook.js +1476 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHook.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHookDynamicFee.js +758 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHookDynamicFee.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHookStaticFee.js +636 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerHookStaticFee.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerLocker.js +459 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerLocker.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerMevBlockDelay.js +84 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerMevBlockDelay.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerSniperAuction.js +342 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerSniperAuction.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerSniperUtil.js +80 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerSniperUtil.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerToken.js +554 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerToken.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerUniV4EthDevBuy.js +170 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerUniV4EthDevBuy.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerUniv3EthDevBuy.js +172 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerUniv3EthDevBuy.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerVault.js +221 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4/ClankerVault.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerHookDynamicFee.js +829 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerHookDynamicFee.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerHookStaticFee.js +717 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerHookStaticFee.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerMevSniperAuction.js +415 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerMevSniperAuction.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerPool.js +11 -0
- package/dist/esm/packages/clanker-sdk/src/abi/v4.1/ClankerPool.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/config/clankerTokenV3.js +272 -0
- package/dist/esm/packages/clanker-sdk/src/config/clankerTokenV3.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/config/clankerTokenV4.js +508 -0
- package/dist/esm/packages/clanker-sdk/src/config/clankerTokenV4.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/config/clankerTokens.js +2 -0
- package/dist/esm/packages/clanker-sdk/src/config/clankerTokens.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/constants.js +95 -0
- package/dist/esm/packages/clanker-sdk/src/constants.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/deployment/deploy.js +53 -0
- package/dist/esm/packages/clanker-sdk/src/deployment/deploy.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/extensions/DevBuyExtension.js +89 -0
- package/dist/esm/packages/clanker-sdk/src/extensions/DevBuyExtension.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/extensions/IClankerExtension.js +2 -0
- package/dist/esm/packages/clanker-sdk/src/extensions/IClankerExtension.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/extensions/VaultExtension.js +26 -0
- package/dist/esm/packages/clanker-sdk/src/extensions/VaultExtension.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/extensions/index.js +4 -0
- package/dist/esm/packages/clanker-sdk/src/extensions/index.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/index.js +6 -0
- package/dist/esm/packages/clanker-sdk/src/index.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/services/vanityAddress.js +40 -0
- package/dist/esm/packages/clanker-sdk/src/services/vanityAddress.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/utils/clanker-contracts.js +2 -0
- package/dist/esm/packages/clanker-sdk/src/utils/clanker-contracts.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/utils/clankers.js +212 -0
- package/dist/esm/packages/clanker-sdk/src/utils/clankers.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/utils/errors.js +80 -0
- package/dist/esm/packages/clanker-sdk/src/utils/errors.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/utils/market-cap.js +19 -0
- package/dist/esm/packages/clanker-sdk/src/utils/market-cap.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/utils/merkleTree.js +37 -0
- package/dist/esm/packages/clanker-sdk/src/utils/merkleTree.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/utils/meta.js +9 -0
- package/dist/esm/packages/clanker-sdk/src/utils/meta.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/utils/write-clanker-contracts.js +70 -0
- package/dist/esm/packages/clanker-sdk/src/utils/write-clanker-contracts.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/utils/zod-onchain.js +39 -0
- package/dist/esm/packages/clanker-sdk/src/utils/zod-onchain.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/v3/index.js +151 -0
- package/dist/esm/packages/clanker-sdk/src/v3/index.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/v4/extensions/airdrop.js +144 -0
- package/dist/esm/packages/clanker-sdk/src/v4/extensions/airdrop.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/v4/extensions/index.js +2 -0
- package/dist/esm/packages/clanker-sdk/src/v4/extensions/index.js.map +1 -0
- package/dist/esm/packages/clanker-sdk/src/v4/index.js +383 -0
- package/dist/esm/packages/clanker-sdk/src/v4/index.js.map +1 -0
- package/dist/esm/{abis → src/abis}/ClankerAirdropV2.js +1 -0
- package/dist/esm/src/abis/ClankerAirdropV2.js.map +1 -0
- package/dist/esm/{abis → src/abis}/ClankerVault.js +1 -0
- package/dist/esm/src/abis/ClankerVault.js.map +1 -0
- package/dist/esm/{abis → src/abis}/IClankerAirdrop.js +1 -0
- package/dist/esm/src/abis/IClankerAirdrop.js.map +1 -0
- package/dist/esm/src/abis/IClankerFeeLocker.js +216 -0
- package/dist/esm/src/abis/IClankerFeeLocker.js.map +1 -0
- package/dist/esm/{abis → src/abis}/IClankerHookDynamicFee.js +1 -0
- package/dist/esm/src/abis/IClankerHookDynamicFee.js.map +1 -0
- package/dist/esm/{abis → src/abis}/IClankerHookStaticFee.js +1 -0
- package/dist/esm/src/abis/IClankerHookStaticFee.js.map +1 -0
- package/dist/esm/{abis → src/abis}/IClankerLPLocker.js +1 -0
- package/dist/esm/src/abis/IClankerLPLocker.js.map +1 -0
- package/dist/esm/src/abis/IClankerLpLockerFeeConversion.js +27 -0
- package/dist/esm/src/abis/IClankerLpLockerFeeConversion.js.map +1 -0
- package/dist/esm/{abis → src/abis}/IClankerLpLockerMultiple.js +1 -0
- package/dist/esm/src/abis/IClankerLpLockerMultiple.js.map +1 -0
- package/dist/esm/{abis → src/abis}/IClankerToken.js +1 -0
- package/dist/esm/src/abis/IClankerToken.js.map +1 -0
- package/dist/esm/src/abis/LevrDeployer_v1.js +87 -0
- package/dist/esm/src/abis/LevrDeployer_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/LevrFactory_v1.js +604 -66
- package/dist/esm/src/abis/LevrFactory_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/LevrFeeSplitterFactory_v1.js +1 -0
- package/dist/esm/src/abis/LevrFeeSplitterFactory_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/LevrFeeSplitter_v1.js +6 -58
- package/dist/esm/src/abis/LevrFeeSplitter_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/LevrForwarder_v1.js +1 -0
- package/dist/esm/src/abis/LevrForwarder_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/LevrGovernor_v1.js +216 -14
- package/dist/esm/src/abis/LevrGovernor_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/LevrStakedToken_v1.js +16 -0
- package/dist/esm/src/abis/LevrStakedToken_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/LevrStaking_v1.js +319 -63
- package/dist/esm/src/abis/LevrStaking_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/LevrTreasury_v1.js +35 -38
- package/dist/esm/src/abis/LevrTreasury_v1.js.map +1 -0
- package/dist/esm/{abis → src/abis}/Permit2.js +1 -0
- package/dist/esm/src/abis/Permit2.js.map +1 -0
- package/dist/esm/{abis → src/abis}/StateView.js +1 -0
- package/dist/esm/src/abis/StateView.js.map +1 -0
- package/dist/esm/src/abis/V3Pool.js +36 -0
- package/dist/esm/src/abis/V3Pool.js.map +1 -0
- package/dist/esm/{abis → src/abis}/V3QuoterV2.js +1 -0
- package/dist/esm/src/abis/V3QuoterV2.js.map +1 -0
- package/dist/esm/{abis → src/abis}/V4Quoter.js +1 -0
- package/dist/esm/src/abis/V4Quoter.js.map +1 -0
- package/dist/esm/{abis → src/abis}/WETH9.js +1 -0
- package/dist/esm/src/abis/WETH9.js.map +1 -0
- package/dist/esm/{abis → src/abis}/index.js +4 -0
- package/dist/esm/src/abis/index.js.map +1 -0
- package/dist/esm/{airdrop.js → src/airdrop.js} +29 -14
- package/dist/esm/src/airdrop.js.map +1 -0
- package/dist/esm/{balance.js → src/balance.js} +3 -3
- package/dist/esm/src/balance.js.map +1 -0
- package/dist/esm/{build-calldatas-v4.js → src/build-calldatas-v4.js} +4 -10
- package/dist/esm/src/build-calldatas-v4.js.map +1 -0
- package/dist/esm/src/build-clanker-v4.js +286 -0
- package/dist/esm/src/build-clanker-v4.js.map +1 -0
- package/dist/esm/{client → src/client}/hook/index.js +7 -5
- package/dist/esm/src/client/hook/index.js.map +1 -0
- package/dist/esm/src/client/hook/use-airdrop.js.map +1 -0
- package/dist/esm/{client → src/client}/hook/use-clanker.js +1 -1
- package/dist/esm/src/client/hook/use-clanker.js.map +1 -0
- package/dist/esm/src/client/hook/use-configure-splits.js.map +1 -0
- package/dist/esm/src/client/hook/use-deploy.js.map +1 -0
- package/dist/esm/{client → src/client}/hook/use-factory.js +5 -11
- package/dist/esm/src/client/hook/use-factory.js.map +1 -0
- package/dist/esm/src/client/hook/use-fee-receivers.js.map +1 -0
- package/dist/esm/src/client/hook/use-governance.js.map +1 -0
- package/dist/esm/src/client/hook/use-metrics.js +63 -0
- package/dist/esm/src/client/hook/use-metrics.js.map +1 -0
- package/dist/esm/src/client/hook/use-prepare.js.map +1 -0
- package/dist/esm/src/client/hook/use-project.js +133 -0
- package/dist/esm/src/client/hook/use-project.js.map +1 -0
- package/dist/esm/{client → src/client}/hook/use-proposal.js +6 -5
- package/dist/esm/src/client/hook/use-proposal.js.map +1 -0
- package/dist/esm/{client → src/client}/hook/use-register.js +1 -1
- package/dist/esm/src/client/hook/use-register.js.map +1 -0
- package/dist/esm/{client → src/client}/hook/use-stake.js +4 -10
- package/dist/esm/src/client/hook/use-stake.js.map +1 -0
- package/dist/esm/src/client/hook/use-subscription.js +98 -0
- package/dist/esm/src/client/hook/use-subscription.js.map +1 -0
- package/dist/esm/{client → src/client}/hook/use-swap.js +5 -4
- package/dist/esm/src/client/hook/use-swap.js.map +1 -0
- package/dist/esm/src/client/hook/use-token-admin.js +91 -0
- package/dist/esm/src/client/hook/use-token-admin.js.map +1 -0
- package/dist/esm/src/client/hook/use-user.js.map +1 -0
- package/dist/esm/src/client/hook/use-vault.js.map +1 -0
- package/dist/esm/src/client/index.js.map +1 -0
- package/dist/esm/src/client/levr-provider.js +136 -0
- package/dist/esm/src/client/levr-provider.js.map +1 -0
- package/dist/esm/{client → src/client}/query-keys.js +16 -6
- package/dist/esm/src/client/query-keys.js.map +1 -0
- package/dist/esm/src/constants/chain.js +260 -0
- package/dist/esm/src/constants/chain.js.map +1 -0
- package/dist/esm/src/constants/clanker.js +89 -0
- package/dist/esm/src/constants/clanker.js.map +1 -0
- package/dist/esm/src/constants/config.js +71 -0
- package/dist/esm/src/constants/config.js.map +1 -0
- package/dist/esm/src/constants/index.js +24 -0
- package/dist/esm/src/constants/index.js.map +1 -0
- package/dist/esm/src/constants/levr.js +41 -0
- package/dist/esm/src/constants/levr.js.map +1 -0
- package/dist/esm/src/constants/uniswap.js +123 -0
- package/dist/esm/src/constants/uniswap.js.map +1 -0
- package/dist/esm/{deploy-v4.js → src/deploy-v4.js} +23 -2
- package/dist/esm/src/deploy-v4.js.map +1 -0
- package/dist/esm/src/factory.js +40 -0
- package/dist/esm/src/factory.js.map +1 -0
- package/dist/esm/{fee-receivers.js → src/fee-receivers.js} +6 -6
- package/dist/esm/src/fee-receivers.js.map +1 -0
- package/dist/esm/{fee-splitter.js → src/fee-splitter.js} +1 -1
- package/dist/esm/src/fee-splitter.js.map +1 -0
- package/dist/esm/{governance.js → src/governance.js} +4 -3
- package/dist/esm/src/governance.js.map +1 -0
- package/dist/esm/src/graphql/client.js +62 -0
- package/dist/esm/src/graphql/client.js.map +1 -0
- package/dist/esm/src/graphql/constants.js +3 -0
- package/dist/esm/src/graphql/constants.js.map +1 -0
- package/dist/esm/src/graphql/fields/factory.js +24 -0
- package/dist/esm/src/graphql/fields/factory.js.map +1 -0
- package/dist/esm/src/graphql/fields/index.js +5 -0
- package/dist/esm/src/graphql/fields/index.js.map +1 -0
- package/dist/esm/src/graphql/fields/metrics.js +28 -0
- package/dist/esm/src/graphql/fields/metrics.js.map +1 -0
- package/dist/esm/src/graphql/fields/project.js +117 -0
- package/dist/esm/src/graphql/fields/project.js.map +1 -0
- package/dist/esm/src/graphql/fields/proposal.js +97 -0
- package/dist/esm/src/graphql/fields/proposal.js.map +1 -0
- package/dist/esm/src/graphql/gen/index.js +25 -0
- package/dist/esm/src/graphql/gen/index.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/batcher.js +207 -0
- package/dist/esm/src/graphql/gen/runtime/batcher.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/createClient.js +25 -0
- package/dist/esm/src/graphql/gen/runtime/createClient.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/error.js +18 -0
- package/dist/esm/src/graphql/gen/runtime/error.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/fetcher.js +68 -0
- package/dist/esm/src/graphql/gen/runtime/fetcher.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/generateGraphqlOperation.js +126 -0
- package/dist/esm/src/graphql/gen/runtime/generateGraphqlOperation.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/index.js +10 -0
- package/dist/esm/src/graphql/gen/runtime/index.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/linkTypeMap.js +92 -0
- package/dist/esm/src/graphql/gen/runtime/linkTypeMap.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/typeSelection.js +4 -0
- package/dist/esm/src/graphql/gen/runtime/typeSelection.js.map +1 -0
- package/dist/esm/src/graphql/gen/runtime/types.js +3 -0
- package/dist/esm/src/graphql/gen/runtime/types.js.map +1 -0
- package/dist/esm/src/graphql/gen/schema.js +527 -0
- package/dist/esm/src/graphql/gen/schema.js.map +1 -0
- package/dist/esm/src/graphql/gen/types.js +4298 -0
- package/dist/esm/src/graphql/gen/types.js.map +1 -0
- package/dist/esm/src/graphql/index.js +18 -0
- package/dist/esm/src/graphql/index.js.map +1 -0
- package/dist/esm/src/graphql/subscription-manager.js +101 -0
- package/dist/esm/src/graphql/subscription-manager.js.map +1 -0
- package/dist/esm/{index.js → src/index.js} +4 -2
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/ipfs-merkle-tree.js.map +1 -0
- package/dist/esm/{pool-key.js → src/pool-key.js} +1 -1
- package/dist/esm/src/pool-key.js.map +1 -0
- package/dist/esm/src/project.js +680 -0
- package/dist/esm/src/project.js.map +1 -0
- package/dist/esm/src/proposal.js +181 -0
- package/dist/esm/src/proposal.js.map +1 -0
- package/dist/esm/src/quote/index.js.map +1 -0
- package/dist/esm/src/quote/v3.js.map +1 -0
- package/dist/esm/{quote → src/quote}/v4.js +1 -1
- package/dist/esm/src/quote/v4.js.map +1 -0
- package/dist/esm/src/schema/base.schema.js.map +1 -0
- package/dist/esm/{schema → src/schema}/clanker.schema.js +26 -2
- package/dist/esm/src/schema/clanker.schema.js.map +1 -0
- package/dist/esm/src/schema/index.js.map +1 -0
- package/dist/esm/{schema → src/schema}/levr.schema.js +56 -12
- package/dist/esm/src/schema/levr.schema.js.map +1 -0
- package/dist/esm/{stake.js → src/stake.js} +154 -80
- package/dist/esm/src/stake.js.map +1 -0
- package/dist/esm/{swap-v4.js → src/swap-v4.js} +2 -13
- package/dist/esm/src/swap-v4.js.map +1 -0
- package/dist/esm/src/token-admin.js +87 -0
- package/dist/esm/src/token-admin.js.map +1 -0
- package/dist/esm/{types.js.map → src/types.js.map} +1 -1
- package/dist/esm/src/usd-price.js +274 -0
- package/dist/esm/src/usd-price.js.map +1 -0
- package/dist/esm/{user.js → src/user.js} +37 -25
- package/dist/esm/src/user.js.map +1 -0
- package/dist/esm/src/util.js +137 -0
- package/dist/esm/src/util.js.map +1 -0
- package/dist/esm/{vault.js → src/vault.js} +1 -1
- package/dist/esm/src/vault.js.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/uniswap/UniswapV3Factory.d.ts +185 -0
- package/dist/types/packages/clanker-sdk/src/abi/uniswap/UniswapV3Factory.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/uniswap/UniswapV3NonfungiblePositionManager.d.ts +949 -0
- package/dist/types/packages/clanker-sdk/src/abi/uniswap/UniswapV3NonfungiblePositionManager.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v0/Clanker.d.ts +402 -0
- package/dist/types/packages/clanker-sdk/src/abi/v0/Clanker.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v1/Clanker.d.ts +491 -0
- package/dist/types/packages/clanker-sdk/src/abi/v1/Clanker.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v2/Clanker.d.ts +463 -0
- package/dist/types/packages/clanker-sdk/src/abi/v2/Clanker.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v2/LpLockerv2.d.ts +428 -0
- package/dist/types/packages/clanker-sdk/src/abi/v2/LpLockerv2.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3/Clanker.d.ts +499 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3/Clanker.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3/ClankerToken.d.ts +846 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3/ClankerToken.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3.1/Clanker.d.ts +846 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3.1/Clanker.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3.1/ClankerToken.d.ts +2654 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3.1/ClankerToken.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3.1/ClankerVault.d.ts +289 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3.1/ClankerVault.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3.1/LpLockerv2.d.ts +670 -0
- package/dist/types/packages/clanker-sdk/src/abi/v3.1/LpLockerv2.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/Clanker.d.ts +819 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/Clanker.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerAirdrop.d.ts +413 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerAirdrop.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerAirdropV2.d.ts +573 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerAirdropV2.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerFeeLocker.d.ts +290 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerFeeLocker.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHook.d.ts +1143 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHook.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHookDynamicFee.d.ts +1430 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHookDynamicFee.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHookStaticFee.d.ts +1219 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerHookStaticFee.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerLocker.d.ts +845 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerLocker.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerMevBlockDelay.d.ts +151 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerMevBlockDelay.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerSniperAuction.d.ts +572 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerSniperAuction.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerSniperUtil.d.ts +167 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerSniperUtil.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerToken.d.ts +981 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerToken.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerUniV4EthDevBuy.d.ts +325 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerUniV4EthDevBuy.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerUniv3EthDevBuy.d.ts +326 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerUniv3EthDevBuy.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerVault.d.ts +414 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4/ClankerVault.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerHookDynamicFee.d.ts +92 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerHookDynamicFee.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerHookStaticFee.d.ts +88 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerHookStaticFee.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerMevSniperAuction.d.ts +69 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerMevSniperAuction.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerPool.d.ts +9 -0
- package/dist/types/packages/clanker-sdk/src/abi/v4.1/ClankerPool.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/config/clankerTokenV3.d.ts +64 -0
- package/dist/types/packages/clanker-sdk/src/config/clankerTokenV3.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/config/clankerTokenV4.d.ts +136 -0
- package/dist/types/packages/clanker-sdk/src/config/clankerTokenV4.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/config/clankerTokens.d.ts +12 -0
- package/dist/types/packages/clanker-sdk/src/config/clankerTokens.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/constants.d.ts +29 -0
- package/dist/types/packages/clanker-sdk/src/constants.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/deployment/deploy.d.ts +21 -0
- package/dist/types/packages/clanker-sdk/src/deployment/deploy.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/extensions/DevBuyExtension.d.ts +52 -0
- package/dist/types/packages/clanker-sdk/src/extensions/DevBuyExtension.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/extensions/IClankerExtension.d.ts +36 -0
- package/dist/types/packages/clanker-sdk/src/extensions/IClankerExtension.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/extensions/VaultExtension.d.ts +17 -0
- package/dist/types/packages/clanker-sdk/src/extensions/VaultExtension.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/extensions/index.d.ts +4 -0
- package/dist/types/packages/clanker-sdk/src/extensions/index.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/index.d.ts +8 -0
- package/dist/types/packages/clanker-sdk/src/index.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/services/vanityAddress.d.ts +15 -0
- package/dist/types/packages/clanker-sdk/src/services/vanityAddress.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/utils/clanker-contracts.d.ts +16 -0
- package/dist/types/packages/clanker-sdk/src/utils/clanker-contracts.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/utils/clankers.d.ts +9506 -0
- package/dist/types/packages/clanker-sdk/src/utils/clankers.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/utils/errors.d.ts +16 -0
- package/dist/types/packages/clanker-sdk/src/utils/errors.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/utils/market-cap.d.ts +12 -0
- package/dist/types/packages/clanker-sdk/src/utils/market-cap.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/utils/merkleTree.d.ts +19 -0
- package/dist/types/packages/clanker-sdk/src/utils/merkleTree.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/utils/meta.d.ts +7 -0
- package/dist/types/packages/clanker-sdk/src/utils/meta.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/utils/write-clanker-contracts.d.ts +57 -0
- package/dist/types/packages/clanker-sdk/src/utils/write-clanker-contracts.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/utils/zod-onchain.d.ts +29 -0
- package/dist/types/packages/clanker-sdk/src/utils/zod-onchain.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/v3/index.d.ts +3167 -0
- package/dist/types/packages/clanker-sdk/src/v3/index.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/v4/extensions/airdrop.d.ts +108 -0
- package/dist/types/packages/clanker-sdk/src/v4/extensions/airdrop.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/v4/extensions/index.d.ts +2 -0
- package/dist/types/packages/clanker-sdk/src/v4/extensions/index.d.ts.map +1 -0
- package/dist/types/packages/clanker-sdk/src/v4/index.d.ts +3781 -0
- package/dist/types/packages/clanker-sdk/src/v4/index.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/ClankerAirdropV2.d.ts +1 -0
- package/dist/types/src/abis/ClankerAirdropV2.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/ClankerVault.d.ts +1 -0
- package/dist/types/src/abis/ClankerVault.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/IClankerAirdrop.d.ts +1 -0
- package/dist/types/src/abis/IClankerAirdrop.d.ts.map +1 -0
- package/dist/types/src/abis/IClankerFeeLocker.d.ts +170 -0
- package/dist/types/src/abis/IClankerFeeLocker.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/IClankerHookDynamicFee.d.ts +1 -0
- package/dist/types/src/abis/IClankerHookDynamicFee.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/IClankerHookStaticFee.d.ts +1 -0
- package/dist/types/src/abis/IClankerHookStaticFee.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/IClankerLPLocker.d.ts +1 -0
- package/dist/types/src/abis/IClankerLPLocker.d.ts.map +1 -0
- package/dist/types/src/abis/IClankerLpLockerFeeConversion.d.ts +21 -0
- package/dist/types/src/abis/IClankerLpLockerFeeConversion.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/IClankerLpLockerMultiple.d.ts +1 -0
- package/dist/types/src/abis/IClankerLpLockerMultiple.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/IClankerToken.d.ts +1 -0
- package/dist/types/src/abis/IClankerToken.d.ts.map +1 -0
- package/dist/types/src/abis/LevrDeployer_v1.d.ts +68 -0
- package/dist/types/src/abis/LevrDeployer_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/LevrFactory_v1.d.ts +455 -39
- package/dist/types/src/abis/LevrFactory_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/LevrFeeSplitterFactory_v1.d.ts +1 -0
- package/dist/types/src/abis/LevrFeeSplitterFactory_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/LevrFeeSplitter_v1.d.ts +5 -44
- package/dist/types/src/abis/LevrFeeSplitter_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/LevrForwarder_v1.d.ts +1 -0
- package/dist/types/src/abis/LevrForwarder_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/LevrGovernor_v1.d.ts +173 -14
- package/dist/types/src/abis/LevrGovernor_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/LevrStakedToken_v1.d.ts +13 -0
- package/dist/types/src/abis/LevrStakedToken_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/LevrStaking_v1.d.ts +259 -61
- package/dist/types/src/abis/LevrStaking_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/LevrTreasury_v1.d.ts +30 -31
- package/dist/types/src/abis/LevrTreasury_v1.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/Permit2.d.ts +1 -0
- package/dist/types/src/abis/Permit2.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/StateView.d.ts +1 -0
- package/dist/types/src/abis/StateView.d.ts.map +1 -0
- package/dist/types/src/abis/V3Pool.d.ts +50 -0
- package/dist/types/src/abis/V3Pool.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/V3QuoterV2.d.ts +1 -0
- package/dist/types/src/abis/V3QuoterV2.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/V4Quoter.d.ts +1 -0
- package/dist/types/src/abis/V4Quoter.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/WETH9.d.ts +1 -0
- package/dist/types/src/abis/WETH9.d.ts.map +1 -0
- package/dist/types/{abis → src/abis}/index.d.ts +4 -0
- package/dist/types/src/abis/index.d.ts.map +1 -0
- package/dist/types/{airdrop.d.ts → src/airdrop.d.ts} +2 -1
- package/dist/types/src/airdrop.d.ts.map +1 -0
- package/dist/types/src/balance.d.ts.map +1 -0
- package/dist/types/{build-calldatas-v4.d.ts → src/build-calldatas-v4.d.ts} +1 -1
- package/dist/types/src/build-calldatas-v4.d.ts.map +1 -0
- package/dist/types/{build-clanker-v4.d.ts → src/build-clanker-v4.d.ts} +2 -1
- package/dist/types/src/build-clanker-v4.d.ts.map +1 -0
- package/dist/types/{client → src/client}/hook/index.d.ts +7 -5
- package/dist/types/src/client/hook/index.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-airdrop.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-clanker.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-configure-splits.d.ts.map +1 -0
- package/dist/types/{client → src/client}/hook/use-deploy.d.ts +3 -1
- package/dist/types/src/client/hook/use-deploy.d.ts.map +1 -0
- package/dist/types/{client → src/client}/hook/use-factory.d.ts +4 -2
- package/dist/types/src/client/hook/use-factory.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-fee-receivers.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-governance.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-metrics.d.ts +16 -0
- package/dist/types/src/client/hook/use-metrics.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-prepare.d.ts.map +1 -0
- package/dist/types/{client → src/client}/hook/use-project.d.ts +22 -6
- package/dist/types/src/client/hook/use-project.d.ts.map +1 -0
- package/dist/types/{client → src/client}/hook/use-proposal.d.ts +2 -2
- package/dist/types/src/client/hook/use-proposal.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-register.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-stake.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-subscription.d.ts +33 -0
- package/dist/types/src/client/hook/use-subscription.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-swap.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-token-admin.d.ts +27 -0
- package/dist/types/src/client/hook/use-token-admin.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-user.d.ts.map +1 -0
- package/dist/types/src/client/hook/use-vault.d.ts.map +1 -0
- package/dist/types/src/client/index.d.ts.map +1 -0
- package/dist/types/{client → src/client}/levr-provider.d.ts +1 -15
- package/dist/types/src/client/levr-provider.d.ts.map +1 -0
- package/dist/types/{client → src/client}/query-keys.d.ts +9 -6
- package/dist/types/src/client/query-keys.d.ts.map +1 -0
- package/dist/types/src/constants/chain.d.ts +121 -0
- package/dist/types/src/constants/chain.d.ts.map +1 -0
- package/dist/types/src/constants/clanker.d.ts +31 -0
- package/dist/types/src/constants/clanker.d.ts.map +1 -0
- package/dist/types/src/constants/config.d.ts +71 -0
- package/dist/types/src/constants/config.d.ts.map +1 -0
- package/dist/types/src/constants/index.d.ts +19 -0
- package/dist/types/src/constants/index.d.ts.map +1 -0
- package/dist/types/src/constants/levr.d.ts +22 -0
- package/dist/types/src/constants/levr.d.ts.map +1 -0
- package/dist/types/src/constants/uniswap.d.ts +50 -0
- package/dist/types/src/constants/uniswap.d.ts.map +1 -0
- package/dist/types/src/deploy-v4.d.ts.map +1 -0
- package/dist/types/src/factory.d.ts +21 -0
- package/dist/types/src/factory.d.ts.map +1 -0
- package/dist/types/{fee-receivers.d.ts → src/fee-receivers.d.ts} +20 -180
- package/dist/types/src/fee-receivers.d.ts.map +1 -0
- package/dist/types/src/fee-splitter.d.ts.map +1 -0
- package/dist/types/{governance.d.ts → src/governance.d.ts} +2 -0
- package/dist/types/src/governance.d.ts.map +1 -0
- package/dist/types/src/graphql/client.d.ts +12 -0
- package/dist/types/src/graphql/client.d.ts.map +1 -0
- package/dist/types/src/graphql/constants.d.ts +2 -0
- package/dist/types/src/graphql/constants.d.ts.map +1 -0
- package/dist/types/src/graphql/fields/factory.d.ts +22 -0
- package/dist/types/src/graphql/fields/factory.d.ts.map +1 -0
- package/dist/types/src/graphql/fields/index.d.ts +5 -0
- package/dist/types/src/graphql/fields/index.d.ts.map +1 -0
- package/dist/types/src/graphql/fields/metrics.d.ts +36 -0
- package/dist/types/src/graphql/fields/metrics.d.ts.map +1 -0
- package/dist/types/src/graphql/fields/project.d.ts +249 -0
- package/dist/types/src/graphql/fields/project.d.ts.map +1 -0
- package/dist/types/src/graphql/fields/proposal.d.ts +195 -0
- package/dist/types/src/graphql/fields/proposal.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/index.d.ts +23 -0
- package/dist/types/src/graphql/gen/index.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/batcher.d.ts +106 -0
- package/dist/types/src/graphql/gen/runtime/batcher.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/createClient.d.ts +18 -0
- package/dist/types/src/graphql/gen/runtime/createClient.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/error.d.ts +19 -0
- package/dist/types/src/graphql/gen/runtime/error.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/fetcher.d.ts +11 -0
- package/dist/types/src/graphql/gen/runtime/fetcher.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/generateGraphqlOperation.d.ts +31 -0
- package/dist/types/src/graphql/gen/runtime/generateGraphqlOperation.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/index.d.ts +12 -0
- package/dist/types/src/graphql/gen/runtime/index.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/linkTypeMap.d.ts +10 -0
- package/dist/types/src/graphql/gen/runtime/linkTypeMap.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/typeSelection.d.ts +29 -0
- package/dist/types/src/graphql/gen/runtime/typeSelection.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/runtime/types.d.ts +53 -0
- package/dist/types/src/graphql/gen/runtime/types.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/schema.d.ts +6056 -0
- package/dist/types/src/graphql/gen/schema.d.ts.map +1 -0
- package/dist/types/src/graphql/gen/types.d.ts +3867 -0
- package/dist/types/src/graphql/gen/types.d.ts.map +1 -0
- package/dist/types/src/graphql/index.d.ts +19 -0
- package/dist/types/src/graphql/index.d.ts.map +1 -0
- package/dist/types/src/graphql/subscription-manager.d.ts +64 -0
- package/dist/types/src/graphql/subscription-manager.d.ts.map +1 -0
- package/dist/types/{index.d.ts → src/index.d.ts} +3 -1
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/ipfs-merkle-tree.d.ts.map +1 -0
- package/dist/types/src/pool-key.d.ts.map +1 -0
- package/dist/types/{project.d.ts → src/project.d.ts} +41 -18
- package/dist/types/src/project.d.ts.map +1 -0
- package/dist/types/src/proposal.d.ts +34 -0
- package/dist/types/src/proposal.d.ts.map +1 -0
- package/dist/types/src/quote/index.d.ts.map +1 -0
- package/dist/types/src/quote/v3.d.ts.map +1 -0
- package/dist/types/src/quote/v4.d.ts.map +1 -0
- package/dist/types/src/schema/base.schema.d.ts.map +1 -0
- package/dist/types/{schema → src/schema}/clanker.schema.d.ts +16 -4
- package/dist/types/src/schema/clanker.schema.d.ts.map +1 -0
- package/dist/types/src/schema/index.d.ts.map +1 -0
- package/dist/types/{schema → src/schema}/levr.schema.d.ts +24 -1
- package/dist/types/src/schema/levr.schema.d.ts.map +1 -0
- package/dist/types/{stake.d.ts → src/stake.d.ts} +28 -35
- package/dist/types/src/stake.d.ts.map +1 -0
- package/dist/types/src/swap-v4.d.ts.map +1 -0
- package/dist/types/src/token-admin.d.ts +40 -0
- package/dist/types/src/token-admin.d.ts.map +1 -0
- package/dist/types/{types.d.ts → src/types.d.ts} +1 -1
- package/dist/types/src/types.d.ts.map +1 -0
- package/dist/types/src/usd-price.d.ts +189 -0
- package/dist/types/src/usd-price.d.ts.map +1 -0
- package/dist/types/{proposal.d.ts → src/user.d.ts} +532 -709
- package/dist/types/src/user.d.ts.map +1 -0
- package/dist/types/{util.d.ts → src/util.d.ts} +11 -0
- package/dist/types/src/util.d.ts.map +1 -0
- package/dist/types/src/vault.d.ts.map +1 -0
- package/package.json +21 -8
- package/dist/esm/airdrop.js.map +0 -1
- package/dist/esm/balance.js.map +0 -1
- package/dist/esm/build-calldatas-v4.js.map +0 -1
- package/dist/esm/build-clanker-v4.js +0 -178
- package/dist/esm/build-clanker-v4.js.map +0 -1
- package/dist/esm/client/hook/index.js.map +0 -1
- package/dist/esm/client/hook/use-airdrop.js.map +0 -1
- package/dist/esm/client/hook/use-clanker.js.map +0 -1
- package/dist/esm/client/hook/use-configure-splits.js.map +0 -1
- package/dist/esm/client/hook/use-deploy.js.map +0 -1
- package/dist/esm/client/hook/use-factory.js.map +0 -1
- package/dist/esm/client/hook/use-fee-receivers.js.map +0 -1
- package/dist/esm/client/hook/use-governance.js.map +0 -1
- package/dist/esm/client/hook/use-pool.js +0 -26
- package/dist/esm/client/hook/use-pool.js.map +0 -1
- package/dist/esm/client/hook/use-prepare.js.map +0 -1
- package/dist/esm/client/hook/use-project.js +0 -69
- package/dist/esm/client/hook/use-project.js.map +0 -1
- package/dist/esm/client/hook/use-proposal.js.map +0 -1
- package/dist/esm/client/hook/use-register.js.map +0 -1
- package/dist/esm/client/hook/use-stake.js.map +0 -1
- package/dist/esm/client/hook/use-swap.js.map +0 -1
- package/dist/esm/client/hook/use-user.js.map +0 -1
- package/dist/esm/client/hook/use-vault.js.map +0 -1
- package/dist/esm/client/index.js.map +0 -1
- package/dist/esm/client/levr-provider.js +0 -185
- package/dist/esm/client/levr-provider.js.map +0 -1
- package/dist/esm/client/query-keys.js.map +0 -1
- package/dist/esm/constants.js +0 -300
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/deploy-v4.js.map +0 -1
- package/dist/esm/factory.js +0 -94
- package/dist/esm/factory.js.map +0 -1
- package/dist/esm/fee-receivers.js.map +0 -1
- package/dist/esm/fee-splitter.js.map +0 -1
- package/dist/esm/governance.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/ipfs-merkle-tree.js.map +0 -1
- package/dist/esm/pool-key.js.map +0 -1
- package/dist/esm/pool.js +0 -70
- package/dist/esm/pool.js.map +0 -1
- package/dist/esm/project.js +0 -574
- package/dist/esm/project.js.map +0 -1
- package/dist/esm/proposal.js +0 -156
- package/dist/esm/proposal.js.map +0 -1
- package/dist/esm/quote/index.js.map +0 -1
- package/dist/esm/quote/v3.js.map +0 -1
- package/dist/esm/quote/v4.js.map +0 -1
- package/dist/esm/schema/base.schema.js.map +0 -1
- package/dist/esm/schema/clanker.schema.js.map +0 -1
- package/dist/esm/schema/index.js.map +0 -1
- package/dist/esm/schema/levr.schema.js.map +0 -1
- package/dist/esm/stake.js.map +0 -1
- package/dist/esm/swap-v4.js.map +0 -1
- package/dist/esm/usd-price.js +0 -166
- package/dist/esm/usd-price.js.map +0 -1
- package/dist/esm/user.js.map +0 -1
- package/dist/esm/util.js +0 -63
- package/dist/esm/util.js.map +0 -1
- package/dist/esm/vault.js.map +0 -1
- package/dist/types/airdrop.d.ts.map +0 -1
- package/dist/types/balance.d.ts.map +0 -1
- package/dist/types/build-calldatas-v4.d.ts.map +0 -1
- package/dist/types/build-clanker-v4.d.ts.map +0 -1
- package/dist/types/client/hook/index.d.ts.map +0 -1
- package/dist/types/client/hook/use-airdrop.d.ts.map +0 -1
- package/dist/types/client/hook/use-clanker.d.ts.map +0 -1
- package/dist/types/client/hook/use-configure-splits.d.ts.map +0 -1
- package/dist/types/client/hook/use-deploy.d.ts.map +0 -1
- package/dist/types/client/hook/use-factory.d.ts.map +0 -1
- package/dist/types/client/hook/use-fee-receivers.d.ts.map +0 -1
- package/dist/types/client/hook/use-governance.d.ts.map +0 -1
- package/dist/types/client/hook/use-pool.d.ts +0 -12
- package/dist/types/client/hook/use-pool.d.ts.map +0 -1
- package/dist/types/client/hook/use-prepare.d.ts.map +0 -1
- package/dist/types/client/hook/use-project.d.ts.map +0 -1
- package/dist/types/client/hook/use-proposal.d.ts.map +0 -1
- package/dist/types/client/hook/use-register.d.ts.map +0 -1
- package/dist/types/client/hook/use-stake.d.ts.map +0 -1
- package/dist/types/client/hook/use-swap.d.ts.map +0 -1
- package/dist/types/client/hook/use-user.d.ts.map +0 -1
- package/dist/types/client/hook/use-vault.d.ts.map +0 -1
- package/dist/types/client/index.d.ts.map +0 -1
- package/dist/types/client/levr-provider.d.ts.map +0 -1
- package/dist/types/client/query-keys.d.ts.map +0 -1
- package/dist/types/constants.d.ts +0 -177
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/deploy-v4.d.ts.map +0 -1
- package/dist/types/factory.d.ts +0 -21
- package/dist/types/factory.d.ts.map +0 -1
- package/dist/types/fee-receivers.d.ts.map +0 -1
- package/dist/types/fee-splitter.d.ts.map +0 -1
- package/dist/types/governance.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/ipfs-merkle-tree.d.ts.map +0 -1
- package/dist/types/pool-key.d.ts.map +0 -1
- package/dist/types/pool.d.ts +0 -590
- package/dist/types/pool.d.ts.map +0 -1
- package/dist/types/project.d.ts.map +0 -1
- package/dist/types/proposal.d.ts.map +0 -1
- package/dist/types/quote/index.d.ts.map +0 -1
- package/dist/types/quote/v3.d.ts.map +0 -1
- package/dist/types/quote/v4.d.ts.map +0 -1
- package/dist/types/schema/base.schema.d.ts.map +0 -1
- package/dist/types/schema/clanker.schema.d.ts.map +0 -1
- package/dist/types/schema/index.d.ts.map +0 -1
- package/dist/types/schema/levr.schema.d.ts.map +0 -1
- package/dist/types/stake.d.ts.map +0 -1
- package/dist/types/swap-v4.d.ts.map +0 -1
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/usd-price.d.ts +0 -146
- package/dist/types/usd-price.d.ts.map +0 -1
- package/dist/types/user.d.ts +0 -188
- package/dist/types/user.d.ts.map +0 -1
- package/dist/types/util.d.ts.map +0 -1
- package/dist/types/vault.d.ts.map +0 -1
- /package/dist/esm/{client → src/client}/hook/use-airdrop.js +0 -0
- /package/dist/esm/{client → src/client}/hook/use-configure-splits.js +0 -0
- /package/dist/esm/{client → src/client}/hook/use-deploy.js +0 -0
- /package/dist/esm/{client → src/client}/hook/use-fee-receivers.js +0 -0
- /package/dist/esm/{client → src/client}/hook/use-governance.js +0 -0
- /package/dist/esm/{client → src/client}/hook/use-prepare.js +0 -0
- /package/dist/esm/{client → src/client}/hook/use-user.js +0 -0
- /package/dist/esm/{client → src/client}/hook/use-vault.js +0 -0
- /package/dist/esm/{client → src/client}/index.js +0 -0
- /package/dist/esm/{ipfs-merkle-tree.js → src/ipfs-merkle-tree.js} +0 -0
- /package/dist/esm/{quote → src/quote}/index.js +0 -0
- /package/dist/esm/{quote → src/quote}/v3.js +0 -0
- /package/dist/esm/{schema → src/schema}/base.schema.js +0 -0
- /package/dist/esm/{schema → src/schema}/index.js +0 -0
- /package/dist/esm/{types.js → src/types.js} +0 -0
- /package/dist/types/{balance.d.ts → src/balance.d.ts} +0 -0
- /package/dist/types/{client → src/client}/hook/use-airdrop.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-clanker.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-configure-splits.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-fee-receivers.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-governance.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-prepare.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-register.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-stake.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-swap.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-user.d.ts +0 -0
- /package/dist/types/{client → src/client}/hook/use-vault.d.ts +0 -0
- /package/dist/types/{client → src/client}/index.d.ts +0 -0
- /package/dist/types/{deploy-v4.d.ts → src/deploy-v4.d.ts} +0 -0
- /package/dist/types/{fee-splitter.d.ts → src/fee-splitter.d.ts} +0 -0
- /package/dist/types/{ipfs-merkle-tree.d.ts → src/ipfs-merkle-tree.d.ts} +0 -0
- /package/dist/types/{pool-key.d.ts → src/pool-key.d.ts} +0 -0
- /package/dist/types/{quote → src/quote}/index.d.ts +0 -0
- /package/dist/types/{quote → src/quote}/v3.d.ts +0 -0
- /package/dist/types/{quote → src/quote}/v4.d.ts +0 -0
- /package/dist/types/{schema → src/schema}/base.schema.d.ts +0 -0
- /package/dist/types/{schema → src/schema}/index.d.ts +0 -0
- /package/dist/types/{swap-v4.d.ts → src/swap-v4.d.ts} +0 -0
- /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 {
|
|
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"
|
|
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"
|
|
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
|
|
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.
|
|
81
|
-
abi:
|
|
82
|
-
functionName: "
|
|
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 ??
|
|
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
|
|
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
|
-
*
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
202
|
-
*
|
|
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
|
-
*
|
|
206
|
-
* 1.
|
|
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 [
|
|
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
|
-
|
|
216
|
-
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
264
|
-
|
|
265
|
-
|
|
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"
|
|
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,
|
|
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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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { IClankerToken } from "./abis/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Update token metadata (requires current admin)
|
|
4
|
+
*/
|
|
5
|
+
export async function updateTokenMetadata({ walletClient, publicClient, clankerToken, metadata, }) {
|
|
6
|
+
if (!walletClient.account) {
|
|
7
|
+
throw new Error("Wallet account not available");
|
|
8
|
+
}
|
|
9
|
+
const hash = await walletClient.writeContract({
|
|
10
|
+
address: clankerToken,
|
|
11
|
+
abi: IClankerToken,
|
|
12
|
+
functionName: "updateMetadata",
|
|
13
|
+
args: [metadata],
|
|
14
|
+
chain: walletClient.chain,
|
|
15
|
+
account: walletClient.account,
|
|
16
|
+
});
|
|
17
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
18
|
+
if (receipt.status === "reverted") {
|
|
19
|
+
throw new Error("Update metadata transaction reverted");
|
|
20
|
+
}
|
|
21
|
+
return receipt;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Update token image URL (requires current admin)
|
|
25
|
+
*/
|
|
26
|
+
export async function updateTokenImage({ walletClient, publicClient, clankerToken, imageUrl, }) {
|
|
27
|
+
if (!walletClient.account) {
|
|
28
|
+
throw new Error("Wallet account not available");
|
|
29
|
+
}
|
|
30
|
+
const hash = await walletClient.writeContract({
|
|
31
|
+
address: clankerToken,
|
|
32
|
+
abi: IClankerToken,
|
|
33
|
+
functionName: "updateImage",
|
|
34
|
+
args: [imageUrl],
|
|
35
|
+
chain: walletClient.chain,
|
|
36
|
+
account: walletClient.account,
|
|
37
|
+
});
|
|
38
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
39
|
+
if (receipt.status === "reverted") {
|
|
40
|
+
throw new Error("Update image transaction reverted");
|
|
41
|
+
}
|
|
42
|
+
return receipt;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Transfer token admin to a new address (requires current admin)
|
|
46
|
+
*/
|
|
47
|
+
export async function updateTokenAdmin({ walletClient, publicClient, clankerToken, newAdmin, }) {
|
|
48
|
+
if (!walletClient.account) {
|
|
49
|
+
throw new Error("Wallet account not available");
|
|
50
|
+
}
|
|
51
|
+
const hash = await walletClient.writeContract({
|
|
52
|
+
address: clankerToken,
|
|
53
|
+
abi: IClankerToken,
|
|
54
|
+
functionName: "updateAdmin",
|
|
55
|
+
args: [newAdmin],
|
|
56
|
+
chain: walletClient.chain,
|
|
57
|
+
account: walletClient.account,
|
|
58
|
+
});
|
|
59
|
+
const receipt = await publicClient.waitForTransactionReceipt({ hash });
|
|
60
|
+
if (receipt.status === "reverted") {
|
|
61
|
+
throw new Error("Update admin transaction reverted");
|
|
62
|
+
}
|
|
63
|
+
return receipt;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Read token admin address
|
|
67
|
+
*/
|
|
68
|
+
export async function getTokenAdmin(publicClient, clankerToken) {
|
|
69
|
+
const admin = await publicClient.readContract({
|
|
70
|
+
address: clankerToken,
|
|
71
|
+
abi: IClankerToken,
|
|
72
|
+
functionName: "admin",
|
|
73
|
+
});
|
|
74
|
+
return admin;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Read original token admin address (immutable)
|
|
78
|
+
*/
|
|
79
|
+
export async function getOriginalTokenAdmin(publicClient, clankerToken) {
|
|
80
|
+
const originalAdmin = await publicClient.readContract({
|
|
81
|
+
address: clankerToken,
|
|
82
|
+
abi: IClankerToken,
|
|
83
|
+
functionName: "originalAdmin",
|
|
84
|
+
});
|
|
85
|
+
return originalAdmin;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=token-admin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-admin.js","sourceRoot":"","sources":["../../../src/token-admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":""}
|