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
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { StandardMerkleTree } from '@openzeppelin/merkle-tree';
|
|
2
|
+
import { encodeAbiParameters } from 'viem';
|
|
3
|
+
const TOKEN_DECIMALS = 18n;
|
|
4
|
+
/**
|
|
5
|
+
* Converts a human-readable amount to token decimals (e.g., 1 -> 1e18)
|
|
6
|
+
* @param amount The human-readable amount
|
|
7
|
+
* @returns The amount in token decimals as a bigint
|
|
8
|
+
*/
|
|
9
|
+
export function toTokenDecimals(amount) {
|
|
10
|
+
return BigInt(amount) * 10n ** TOKEN_DECIMALS;
|
|
11
|
+
}
|
|
12
|
+
export function createMerkleTree(entries) {
|
|
13
|
+
// Convert entries to the format expected by OpenZeppelin's MerkleTree
|
|
14
|
+
const values = entries.map((entry) => [
|
|
15
|
+
entry.account.toLowerCase(),
|
|
16
|
+
toTokenDecimals(entry.amount).toString(),
|
|
17
|
+
]);
|
|
18
|
+
// Create the Merkle tree
|
|
19
|
+
const tree = StandardMerkleTree.of(values, ['address', 'uint256']);
|
|
20
|
+
// Get the root and ensure it's a proper bytes32 value
|
|
21
|
+
const root = tree.root;
|
|
22
|
+
return { tree, root, entries: values };
|
|
23
|
+
}
|
|
24
|
+
export function getMerkleProof(tree, entries, account, amount) {
|
|
25
|
+
const amountInDecimals = toTokenDecimals(amount);
|
|
26
|
+
const leaf = [account.toLowerCase(), amountInDecimals.toString()];
|
|
27
|
+
const index = entries.findIndex(([addr, amt]) => addr === leaf[0] && amt === leaf[1]);
|
|
28
|
+
if (index === -1) {
|
|
29
|
+
throw new Error('Entry not found in Merkle tree');
|
|
30
|
+
}
|
|
31
|
+
const proof = tree.getProof(index);
|
|
32
|
+
return proof.map((p) => p);
|
|
33
|
+
}
|
|
34
|
+
export function encodeAirdropData(merkleRoot, lockupDuration, vestingDuration) {
|
|
35
|
+
return encodeAbiParameters([{ type: 'bytes32' }, { type: 'uint256' }, { type: 'uint256' }], [merkleRoot, BigInt(lockupDuration), BigInt(vestingDuration)]);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=merkleTree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merkleTree.js","sourceRoot":"","sources":["../../../../../../packages/clanker-sdk/src/utils/merkleTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAO3C,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,cAAc,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAuB;IAKtD,sEAAsE;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACpC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE;QAC3B,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;KACzC,CAAuB,CAAC;IAEzB,yBAAyB;IACzB,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAEnE,sDAAsD;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAqB,CAAC;IAExC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAA0C,EAC1C,OAA2B,EAC3B,OAAsB,EACtB,MAAc;IAEd,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAqB,CAAC;IACtF,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAkB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAAyB,EACzB,cAAsB,EACtB,eAAuB;IAEvB,OAAO,mBAAmB,CACxB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC/D,CAAC,UAAU,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Use in switch statements or other scenarios to add type-safety to the overall pattern. This can be used
|
|
3
|
+
* to ensure that every possibility is enumerated in the switch statement and cause the code to refuse
|
|
4
|
+
* compilation unless all possibilities are covered.
|
|
5
|
+
*/
|
|
6
|
+
export function exhaustiveGuard(_value) {
|
|
7
|
+
throw new Error(`ERROR! Reached forbidden guard function with unexpected value: ${_value}`);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../../../../../../packages/clanker-sdk/src/utils/meta.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAAa;IAC3C,MAAM,IAAI,KAAK,CAAC,kEAAkE,MAAM,EAAE,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { estimateContractGas, simulateContract, writeContract } from "viem/actions";
|
|
2
|
+
import { understandError } from "./errors.js";
|
|
3
|
+
/**
|
|
4
|
+
* Estimate gas for a clanker contract call and attempt to parse any errors
|
|
5
|
+
*
|
|
6
|
+
* @param client Public client to run the simulation via
|
|
7
|
+
* @param account Account (caller) to run the simulation from
|
|
8
|
+
* @param tx Transaction to run
|
|
9
|
+
* @returns Gas amount or errors from the estimation
|
|
10
|
+
*/
|
|
11
|
+
export const estimateGasClankerContract = async (client, account, tx) => {
|
|
12
|
+
try {
|
|
13
|
+
const gas = await estimateContractGas(client, {
|
|
14
|
+
...tx,
|
|
15
|
+
account,
|
|
16
|
+
// biome-ignore lint: It's difficult to type tx correctly
|
|
17
|
+
});
|
|
18
|
+
return { gas };
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
return { error: understandError(e) };
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Simulate a clanker contract and attempt to parse any errors.
|
|
26
|
+
*
|
|
27
|
+
* @param client Public client to run the simulation via
|
|
28
|
+
* @param account Account (caller) to run the simulation from
|
|
29
|
+
* @param tx Transaction to run
|
|
30
|
+
* @returns Result or errors from the simulation
|
|
31
|
+
*/
|
|
32
|
+
export const simulateClankerContract = async (client, account, tx) => {
|
|
33
|
+
try {
|
|
34
|
+
const result = await simulateContract(client, {
|
|
35
|
+
...tx,
|
|
36
|
+
account,
|
|
37
|
+
// biome-ignore lint: It's difficult to type tx correctly
|
|
38
|
+
});
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
return { error: understandError(e) };
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Execute a clanker contract and attempt to parse any errors.
|
|
47
|
+
*
|
|
48
|
+
* @param client Public client to run the simulation via
|
|
49
|
+
* @param wallet Wallet to execute the call from
|
|
50
|
+
* @param tx Transaction to submit
|
|
51
|
+
* @param options
|
|
52
|
+
* @returns Transaction hash or any errors
|
|
53
|
+
*/
|
|
54
|
+
export const writeClankerContract = async (client, wallet, tx, options) => {
|
|
55
|
+
if (options?.simulate) {
|
|
56
|
+
const { error } = await simulateClankerContract(client, wallet.account, tx);
|
|
57
|
+
if (error) {
|
|
58
|
+
return { error };
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
// biome-ignore lint: It's difficult to type tx correctly
|
|
63
|
+
const txHash = await writeContract(wallet, tx);
|
|
64
|
+
return { txHash };
|
|
65
|
+
}
|
|
66
|
+
catch (e) {
|
|
67
|
+
return { error: understandError(e) };
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=write-clanker-contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-clanker-contracts.js","sourceRoot":"","sources":["../../../../../../packages/clanker-sdk/src/utils/write-clanker-contracts.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEnF,OAAO,EAAqB,eAAe,EAAE,MAAM,UAAU,CAAA;AAgC7D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAM7C,MAAoB,EACpB,OAAgB,EAChB,EAAiC,EACD,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;YAC5C,GAAG,EAAE;YACL,OAAO;YACP,yDAAyD;SACnD,CAAC,CAAA;QACT,OAAO,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;IACtC,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,EAM1C,MAAoB,EACpB,OAAgB,EAChB,EAAiC,EAC6B,EAAE;IAChE,IAAI,CAAC;QACH,MAAM,MAAM,GAAkD,MAAM,gBAAgB,CAAC,MAAM,EAAE;YAC3F,GAAG,EAAE;YACL,OAAO;YACP,yDAAyD;SACnD,CAAC,CAAA;QACT,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;IACtC,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAKvC,MAAoB,EACpB,MAAiD,EACjD,EAAiC,EACjC,OAEC,EACyC,EAAE;IAC5C,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;QACtB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;QAC3E,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,KAAK,EAAE,CAAA;QAClB,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,yDAAyD;QACzD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,EAAS,CAAC,CAAA;QACrD,OAAO,EAAE,MAAM,EAAE,CAAA;IACnB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;IACtC,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { getAddress, isAddress, isHex } from 'viem';
|
|
2
|
+
import * as z from 'zod/v4';
|
|
3
|
+
/** Metadata for a Clanker. */
|
|
4
|
+
export const ClankerMetadataSchema = z.strictObject({
|
|
5
|
+
/** Description of the token or token project. */
|
|
6
|
+
description: z.string().optional(),
|
|
7
|
+
/** Socials for the token. These may be displayed on aggregators. */
|
|
8
|
+
socialMediaUrls: z.array(z.object({ platform: z.string(), url: z.string() })).optional(),
|
|
9
|
+
/** Audits for other contracts or services offered by the project. */
|
|
10
|
+
auditUrls: z.array(z.url()).optional(),
|
|
11
|
+
});
|
|
12
|
+
/** Social provenance for a Clanker. Used for provenance and will be verified by aggregators. */
|
|
13
|
+
export const ClankerContextSchema = z.strictObject({
|
|
14
|
+
/** System the token was deployed via. Defaults to "SDK". */
|
|
15
|
+
interface: z.string().default('SDK'),
|
|
16
|
+
/** Social platform the token was deployed from. Used for provenance and will be verified by aggregators. */
|
|
17
|
+
platform: z.string().optional(),
|
|
18
|
+
/** Id of the message on the social platform the token was deployed from. Used for provenance and will be verified by aggregators. */
|
|
19
|
+
messageId: z.string().optional(),
|
|
20
|
+
/** User id of the poster on the social platform the token was deployed from. Used for provenance and will be verified by aggregators. */
|
|
21
|
+
id: z.string().optional(),
|
|
22
|
+
});
|
|
23
|
+
/** Validate a hex string */
|
|
24
|
+
export const hexSchema = z.custom((val) => {
|
|
25
|
+
if (!(typeof val === 'string'))
|
|
26
|
+
return false;
|
|
27
|
+
if (!isHex(val))
|
|
28
|
+
return false;
|
|
29
|
+
return val;
|
|
30
|
+
}, 'String must be valid hex.');
|
|
31
|
+
/** Validate an EVM address */
|
|
32
|
+
export const addressSchema = z.custom((val) => {
|
|
33
|
+
if (!(typeof val === 'string'))
|
|
34
|
+
return false;
|
|
35
|
+
if (!isAddress(val))
|
|
36
|
+
return false;
|
|
37
|
+
return getAddress(val);
|
|
38
|
+
}, 'String must be a valid address.');
|
|
39
|
+
//# sourceMappingURL=zod-onchain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod-onchain.js","sourceRoot":"","sources":["../../../../../../packages/clanker-sdk/src/utils/zod-onchain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,8BAA8B;AAC9B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,YAAY,CAAC;IAClD,iDAAiD;IACjD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,oEAAoE;IACpE,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxF,qEAAqE;IACrE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,gGAAgG;AAChG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,YAAY,CAAC;IACjD,4DAA4D;IAC5D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACpC,4GAA4G;IAC5G,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,qIAAqI;IACrI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,yIAAyI;IACzI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC1B,CAAC,CAAC;AAEH,4BAA4B;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAgB,CAAC,GAAG,EAAE,EAAE;IACvD,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,2BAA2B,CAAC,CAAC;AAEhC,8BAA8B;AAC9B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAgB,CAAC,GAAG,EAAE,EAAE;IAC3D,IAAI,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,EAAE,iCAAiC,CAAC,CAAC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { Clanker_v3_1_abi } from "../abi/v3.1/Clanker.js";
|
|
2
|
+
import { LpLockerv2_abi } from "../abi/v3.1/LpLockerv2.js";
|
|
3
|
+
import { clankerTokenV3Converter } from "../config/clankerTokenV3.js";
|
|
4
|
+
import { deployToken, simulateDeployToken } from "../deployment/deploy.js";
|
|
5
|
+
import { CLANKERS } from "../utils/clankers.js";
|
|
6
|
+
import { simulateClankerContract, writeClankerContract, } from "../utils/write-clanker-contracts.js";
|
|
7
|
+
/**
|
|
8
|
+
* Clanker v3
|
|
9
|
+
*/
|
|
10
|
+
export class Clanker {
|
|
11
|
+
wallet;
|
|
12
|
+
publicClient;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.wallet = config?.wallet;
|
|
15
|
+
this.publicClient = config?.publicClient;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Get an abi-typed transaction for claiming rewards on a token.
|
|
19
|
+
*
|
|
20
|
+
* @param token The token to claim for
|
|
21
|
+
* @returns Abi transaction
|
|
22
|
+
*/
|
|
23
|
+
async getClaimRewardsTransaction(token) {
|
|
24
|
+
return {
|
|
25
|
+
address: CLANKERS.clanker_v3_1.address,
|
|
26
|
+
abi: Clanker_v3_1_abi,
|
|
27
|
+
functionName: "claimRewards",
|
|
28
|
+
args: [token],
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Simulate claiming rewards. Will use the wallet account on the Clanker class or
|
|
33
|
+
* the passed-in account.
|
|
34
|
+
*
|
|
35
|
+
* @param token The token to simulate reward claiming for
|
|
36
|
+
* @param account Optional account to simulate calling claiming for
|
|
37
|
+
* @returns The simulated output
|
|
38
|
+
*/
|
|
39
|
+
async claimRewardsSimulate(token, account) {
|
|
40
|
+
const acc = account || this.wallet?.account;
|
|
41
|
+
if (!acc)
|
|
42
|
+
throw new Error("Account or wallet client required for simulation");
|
|
43
|
+
if (!this.publicClient)
|
|
44
|
+
throw new Error("Public client required");
|
|
45
|
+
const input = await this.getClaimRewardsTransaction(token);
|
|
46
|
+
return simulateClankerContract(this.publicClient, acc, input);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Claim rewards for a clanker token.
|
|
50
|
+
*
|
|
51
|
+
* @param token Token to claim rewards for
|
|
52
|
+
* @returns Transaction hash of the claim or error
|
|
53
|
+
*/
|
|
54
|
+
async claimRewards(token) {
|
|
55
|
+
if (!this.wallet)
|
|
56
|
+
throw new Error("Wallet client required");
|
|
57
|
+
if (!this.publicClient)
|
|
58
|
+
throw new Error("Public client required");
|
|
59
|
+
const input = await this.getClaimRewardsTransaction(token);
|
|
60
|
+
return writeClankerContract(this.publicClient, this.wallet, input);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get an abi-typed transaction for updating the creator reward recipient.
|
|
64
|
+
*
|
|
65
|
+
* @param tokenId The token ID to update the creator reward recipient for
|
|
66
|
+
* @param newRecipient The new recipient address
|
|
67
|
+
* @returns Abi transaction
|
|
68
|
+
*/
|
|
69
|
+
async getUpdateCreatorRewardRecipientTransaction(tokenId, newRecipient) {
|
|
70
|
+
return {
|
|
71
|
+
address: CLANKERS.clanker_v3_1.related.locker,
|
|
72
|
+
abi: LpLockerv2_abi,
|
|
73
|
+
functionName: "updateCreatorRewardRecipient",
|
|
74
|
+
args: [tokenId, newRecipient],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Simulate updating the creator reward recipient. Will use the wallet account on the Clanker class or
|
|
79
|
+
* the passed-in account.
|
|
80
|
+
*
|
|
81
|
+
* @param tokenId The token ID to update the creator reward recipient for
|
|
82
|
+
* @param newRecipient The new recipient address
|
|
83
|
+
* @param account Optional account to simulate calling for
|
|
84
|
+
* @returns The simulated output
|
|
85
|
+
*/
|
|
86
|
+
async updateCreatorRewardRecipientSimulate(tokenId, newRecipient, account) {
|
|
87
|
+
const acc = account || this.wallet?.account;
|
|
88
|
+
if (!acc)
|
|
89
|
+
throw new Error("Account or wallet client required for simulation");
|
|
90
|
+
if (!this.publicClient)
|
|
91
|
+
throw new Error("Public client required");
|
|
92
|
+
const input = await this.getUpdateCreatorRewardRecipientTransaction(tokenId, newRecipient);
|
|
93
|
+
return simulateClankerContract(this.publicClient, acc, input);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Update the creator reward recipient for a token.
|
|
97
|
+
*
|
|
98
|
+
* @param tokenId The token ID to update the creator reward recipient for
|
|
99
|
+
* @param newRecipient The new recipient address
|
|
100
|
+
* @returns Transaction hash of the update or error
|
|
101
|
+
*/
|
|
102
|
+
async updateCreatorRewardRecipient(tokenId, newRecipient) {
|
|
103
|
+
if (!this.wallet)
|
|
104
|
+
throw new Error("Wallet client required");
|
|
105
|
+
if (!this.publicClient)
|
|
106
|
+
throw new Error("Public client required");
|
|
107
|
+
const input = await this.getUpdateCreatorRewardRecipientTransaction(tokenId, newRecipient);
|
|
108
|
+
return writeClankerContract(this.publicClient, this.wallet, input);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get an abi-typed transaction for deploying a clanker.
|
|
112
|
+
*
|
|
113
|
+
* @param token The token to deploy
|
|
114
|
+
* @param requestorAddress Requestor for the deployment. Various admins will fall back to this.
|
|
115
|
+
* @returns Abi transaction
|
|
116
|
+
*/
|
|
117
|
+
async getDeployTransaction(token, requestorAddress) {
|
|
118
|
+
return clankerTokenV3Converter(token, { requestorAddress });
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Simulate a token deployment
|
|
122
|
+
*
|
|
123
|
+
* @param token The token to deploy
|
|
124
|
+
* @param requestorAddress Requestor for the deployment. Various admins will fall back to this.
|
|
125
|
+
* @returns Abi transaction
|
|
126
|
+
*/
|
|
127
|
+
async deploySimulate(token, account) {
|
|
128
|
+
const acc = account || this.wallet?.account;
|
|
129
|
+
if (!acc)
|
|
130
|
+
throw new Error("Account or wallet client required for simulation");
|
|
131
|
+
if (!this.publicClient)
|
|
132
|
+
throw new Error("Public client required for deployment");
|
|
133
|
+
const input = await this.getDeployTransaction(token, acc.address);
|
|
134
|
+
return simulateDeployToken(input, acc, this.publicClient);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Deploy a token
|
|
138
|
+
*
|
|
139
|
+
* @param token The token to deploy
|
|
140
|
+
* @returns Transaction hash and awaitable function for full deployment
|
|
141
|
+
*/
|
|
142
|
+
async deploy(token) {
|
|
143
|
+
if (!this.wallet)
|
|
144
|
+
throw new Error("Wallet client required for deployment");
|
|
145
|
+
if (!this.publicClient)
|
|
146
|
+
throw new Error("Public client required for deployment");
|
|
147
|
+
const input = await this.getDeployTransaction(token, this.wallet.account.address);
|
|
148
|
+
return deployToken(input, this.wallet, this.publicClient);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/clanker-sdk/src/v3/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { StandardMerkleTree } from "@openzeppelin/merkle-tree";
|
|
2
|
+
import { isAddressEqual, stringify } from "viem";
|
|
3
|
+
import * as z from "zod/v4";
|
|
4
|
+
import { ClankerAirdrop_v4_abi } from "../../abi/v4/ClankerAirdrop.js";
|
|
5
|
+
import { clankerConfigFor, } from "../../utils/clankers.js";
|
|
6
|
+
import { writeClankerContract } from "../../utils/write-clanker-contracts.js";
|
|
7
|
+
import { addressSchema } from "../../utils/zod-onchain.js";
|
|
8
|
+
const AirdropEntrySchema = z.array(z.object({
|
|
9
|
+
account: addressSchema,
|
|
10
|
+
amount: z.number(),
|
|
11
|
+
}));
|
|
12
|
+
/**
|
|
13
|
+
* Create an airdrop for the recipients.
|
|
14
|
+
*
|
|
15
|
+
* @param recipients Recipients recieving airdrop.
|
|
16
|
+
* @param options.tokenDecimals Custom token decimals.
|
|
17
|
+
* @returns Tree to save offline and Airdrop data for the smart contract.
|
|
18
|
+
*/
|
|
19
|
+
export function createAirdrop(recipients, options = { tokenDecimals: 18n }) {
|
|
20
|
+
const parsedEntries = AirdropEntrySchema.parse(recipients);
|
|
21
|
+
const values = parsedEntries.map(({ account, amount }) => [
|
|
22
|
+
account,
|
|
23
|
+
(BigInt(amount) * 10n ** options.tokenDecimals).toString(),
|
|
24
|
+
]);
|
|
25
|
+
const amount = parsedEntries.reduce((agg, { amount }) => amount + agg, 0);
|
|
26
|
+
const tree = StandardMerkleTree.of(values, ["address", "uint256"]);
|
|
27
|
+
tree.validate();
|
|
28
|
+
return {
|
|
29
|
+
tree,
|
|
30
|
+
airdrop: {
|
|
31
|
+
merkleRoot: tree.root,
|
|
32
|
+
amount,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Register an airdrop merkle tree with the Clanker service.
|
|
38
|
+
*
|
|
39
|
+
* @dev Requires that the associated token is already deployed and indexed. The token
|
|
40
|
+
* must also have the merkle root associated with it.
|
|
41
|
+
*
|
|
42
|
+
* @param token The token associated with the tree.
|
|
43
|
+
* @param tree The tree to register.
|
|
44
|
+
* @returns Success.
|
|
45
|
+
*/
|
|
46
|
+
export async function registerAirdrop(token, tree) {
|
|
47
|
+
const { success } = await fetch("https://www.clanker.world/api/airdrops", {
|
|
48
|
+
method: "POST",
|
|
49
|
+
body: stringify({
|
|
50
|
+
tokenAddress: token,
|
|
51
|
+
merkleRoot: tree.root,
|
|
52
|
+
tree: tree.dump(),
|
|
53
|
+
}),
|
|
54
|
+
}).then((r) => r.json());
|
|
55
|
+
return success;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get all proofs for an account given a merkle tree.
|
|
59
|
+
*
|
|
60
|
+
* @param tree The tree to check.
|
|
61
|
+
* @param account The account to check for.
|
|
62
|
+
* @returns All proofs and their associated entries for claiming.
|
|
63
|
+
*/
|
|
64
|
+
export function getAirdropProofs(tree, account) {
|
|
65
|
+
const indices = [];
|
|
66
|
+
for (const [i, entry] of tree.entries()) {
|
|
67
|
+
if (!isAddressEqual(entry[0], account))
|
|
68
|
+
continue;
|
|
69
|
+
indices.push({ i: i, entry });
|
|
70
|
+
}
|
|
71
|
+
if (indices.length === 0)
|
|
72
|
+
return { proofs: [] };
|
|
73
|
+
return {
|
|
74
|
+
proofs: indices.map(({ i, entry }) => ({
|
|
75
|
+
proof: tree.getProof(i),
|
|
76
|
+
entry: {
|
|
77
|
+
account: entry[0],
|
|
78
|
+
amount: BigInt(entry[1]),
|
|
79
|
+
},
|
|
80
|
+
})),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get all proofs for an account given a token that has a merkle tree associated with it. The token and tree must have been registered with the Clanker service.
|
|
85
|
+
*
|
|
86
|
+
* @param token The token with the airdrop.
|
|
87
|
+
* @param account The account to check for.
|
|
88
|
+
* @returns All proofs and their associated entries for claiming.
|
|
89
|
+
*/
|
|
90
|
+
export async function fetchAirdropProofs(token, account) {
|
|
91
|
+
const { proofs } = await fetch(`https://www.clanker.world/api/airdrops/claim?tokenAddress=${token}&claimerAddress=${account}`).then((r) => r.json());
|
|
92
|
+
return {
|
|
93
|
+
proofs: proofs.map(({ proof, entry: { account, amount } }) => ({
|
|
94
|
+
proof,
|
|
95
|
+
entry: {
|
|
96
|
+
account,
|
|
97
|
+
amount: BigInt(amount),
|
|
98
|
+
},
|
|
99
|
+
})),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Create a transaction to claim a specific airdrop for.
|
|
104
|
+
*
|
|
105
|
+
* @param token The token that did the airdrop
|
|
106
|
+
* @param recipient The address recieving the airdrop
|
|
107
|
+
* @param amount The amount registered in the airdrop. Note, this must be the exact registered amount.
|
|
108
|
+
* @param proof Merkle proof for the address and amount (see `getProofs`)
|
|
109
|
+
* @returns Arguments that can be used with a viem transaction.
|
|
110
|
+
*/
|
|
111
|
+
export function getClaimAirdropTransaction({ token, recipient, amount, proof, chainId, }) {
|
|
112
|
+
const config = clankerConfigFor(chainId, "clanker_v4");
|
|
113
|
+
if (!config)
|
|
114
|
+
throw new Error(`Clanker is not ready on ${chainId}`);
|
|
115
|
+
return {
|
|
116
|
+
chainId,
|
|
117
|
+
address: config.related.airdrop,
|
|
118
|
+
abi: ClankerAirdrop_v4_abi,
|
|
119
|
+
functionName: "claim",
|
|
120
|
+
args: [token, recipient, amount, proof],
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Claim an airdrop
|
|
125
|
+
*
|
|
126
|
+
* @param clanker Clanker object used for claiming
|
|
127
|
+
* @param token The token that did the airdrop
|
|
128
|
+
* @param recipient The address recieving the airdrop
|
|
129
|
+
* @param amount The amount registered in the airdrop. Note, this must be the exact registered amount.
|
|
130
|
+
* @param proof Merkle proof for the address and amount (see `getProofs`)
|
|
131
|
+
* @returns Outcome of the transaction
|
|
132
|
+
*/
|
|
133
|
+
export function claimAirdrop(data) {
|
|
134
|
+
if (!data.clanker.publicClient)
|
|
135
|
+
throw new Error("Public client required on clanker");
|
|
136
|
+
if (!data.clanker.wallet)
|
|
137
|
+
throw new Error("Wallet client required on clanker");
|
|
138
|
+
const tx = getClaimAirdropTransaction({
|
|
139
|
+
chainId: data.clanker.wallet.chain.id,
|
|
140
|
+
...data,
|
|
141
|
+
});
|
|
142
|
+
return writeClankerContract(data.clanker.publicClient, data.clanker.wallet, tx);
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=airdrop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"airdrop.js","sourceRoot":"","sources":["../../../../../../../packages/clanker-sdk/src/v4/extensions/airdrop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/clanker-sdk/src/v4/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA"}
|