clanker-sdk 4.2.10 → 4.2.12
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/README.md +42 -9
- package/dist/{deploy-BvFgwMVl.d.ts → clankerTokenV4-DoIzm6GW.d.ts} +1822 -9
- package/dist/cli/cli.js +10456 -7324
- package/dist/cli/commands/airdrop.d.ts +8 -0
- package/dist/cli/commands/airdrop.js +8524 -0
- package/dist/cli/commands/deploy.d.ts +14 -0
- package/dist/cli/commands/deploy.js +9883 -0
- package/dist/cli/commands/presale.d.ts +5 -0
- package/dist/cli/commands/presale.js +9340 -0
- package/dist/cli/commands/rewards.d.ts +5 -0
- package/dist/cli/commands/rewards.js +8235 -0
- package/dist/cli/commands/setup.d.ts +5 -0
- package/dist/cli/commands/setup.js +314 -0
- package/dist/cli/commands/token.d.ts +5 -0
- package/dist/cli/commands/token.js +8120 -0
- package/dist/cli/commands/vault.d.ts +5 -0
- package/dist/cli/commands/vault.js +8128 -0
- package/dist/cli/create-clanker.js +29 -2
- package/dist/cli/utils/chains.d.ts +6 -0
- package/dist/cli/utils/chains.js +51 -0
- package/dist/cli/utils/config.d.ts +10 -0
- package/dist/cli/utils/config.js +31 -0
- package/dist/cli/utils/output.d.ts +14 -0
- package/dist/cli/utils/output.js +209 -0
- package/dist/cli/utils/style.d.ts +49 -0
- package/dist/cli/utils/style.js +129 -0
- package/dist/cli/utils/wallet.d.ts +22 -0
- package/dist/cli/utils/wallet.js +108 -0
- package/dist/deploy-BUDlDPzt.d.ts +6 -0
- package/dist/index.d.ts +25 -16
- package/dist/index.js +36 -2
- package/dist/legacyFeeClaims/index.js +25 -1
- package/dist/merkleTree-BNYdIOkH.d.ts +15 -0
- package/dist/v3/index.d.ts +4 -4
- package/dist/v3/index.js +28 -1
- package/dist/v4/extensions/index.d.ts +2 -1
- package/dist/v4/extensions/index.js +28 -1
- package/dist/v4/index.d.ts +5 -4
- package/dist/v4/index.js +28 -1
- package/package.json +2 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// src/cli/utils/wallet.ts
|
|
2
|
+
import {
|
|
3
|
+
createPublicClient,
|
|
4
|
+
createWalletClient,
|
|
5
|
+
http
|
|
6
|
+
} from "viem";
|
|
7
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
8
|
+
|
|
9
|
+
// src/cli/utils/chains.ts
|
|
10
|
+
import { arbitrum, base, baseSepolia, bsc, mainnet, unichain } from "viem/chains";
|
|
11
|
+
|
|
12
|
+
// src/utils/chains/monad.ts
|
|
13
|
+
import { defineChain } from "viem";
|
|
14
|
+
var monad = /* @__PURE__ */ defineChain({
|
|
15
|
+
id: 143,
|
|
16
|
+
name: "Monad",
|
|
17
|
+
blockTime: 400,
|
|
18
|
+
nativeCurrency: {
|
|
19
|
+
name: "MON",
|
|
20
|
+
symbol: "MON",
|
|
21
|
+
decimals: 18
|
|
22
|
+
},
|
|
23
|
+
rpcUrls: {
|
|
24
|
+
default: {
|
|
25
|
+
http: ["https://rpc.monad.xyz"]
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
blockExplorers: {
|
|
29
|
+
default: {
|
|
30
|
+
name: "Monad explorer",
|
|
31
|
+
url: "TODO"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
contracts: {},
|
|
35
|
+
testnet: false
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// src/cli/utils/chains.ts
|
|
39
|
+
var CHAIN_MAP = {
|
|
40
|
+
base,
|
|
41
|
+
"base-sepolia": baseSepolia,
|
|
42
|
+
arbitrum,
|
|
43
|
+
ethereum: mainnet,
|
|
44
|
+
bsc,
|
|
45
|
+
unichain,
|
|
46
|
+
monad
|
|
47
|
+
};
|
|
48
|
+
var CHAIN_NAMES = Object.keys(CHAIN_MAP);
|
|
49
|
+
function resolveChain(name) {
|
|
50
|
+
const chain = CHAIN_MAP[name];
|
|
51
|
+
if (!chain) {
|
|
52
|
+
throw new Error(`Unknown chain "${name}". Supported: ${CHAIN_NAMES.join(", ")}`);
|
|
53
|
+
}
|
|
54
|
+
return chain;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// src/cli/utils/config.ts
|
|
58
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
59
|
+
import { homedir } from "node:os";
|
|
60
|
+
import { join } from "node:path";
|
|
61
|
+
var CONFIG_DIR = join(homedir(), ".clanker");
|
|
62
|
+
var CONFIG_PATH = join(CONFIG_DIR, "config.json");
|
|
63
|
+
function loadConfig() {
|
|
64
|
+
try {
|
|
65
|
+
if (!existsSync(CONFIG_PATH)) return {};
|
|
66
|
+
return JSON.parse(readFileSync(CONFIG_PATH, "utf-8"));
|
|
67
|
+
} catch {
|
|
68
|
+
return {};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// src/cli/utils/wallet.ts
|
|
73
|
+
function resolvePrivateKey(opts) {
|
|
74
|
+
const key = opts.privateKey || process.env.PRIVATE_KEY || loadConfig().privateKey;
|
|
75
|
+
if (!key) {
|
|
76
|
+
throw new Error(
|
|
77
|
+
"Private key required. Run `clanker setup`, pass --private-key, or set PRIVATE_KEY env var."
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
return key;
|
|
81
|
+
}
|
|
82
|
+
function resolveRpcUrl(opts, chainName) {
|
|
83
|
+
if (opts.rpc) return opts.rpc;
|
|
84
|
+
const config = loadConfig();
|
|
85
|
+
return config.rpc?.[chainName];
|
|
86
|
+
}
|
|
87
|
+
function resolveClients(opts) {
|
|
88
|
+
const chainName = opts.chain || loadConfig().defaultChain || "base";
|
|
89
|
+
const chain = resolveChain(chainName);
|
|
90
|
+
const rpcUrl = resolveRpcUrl(opts, chainName);
|
|
91
|
+
const transport = rpcUrl ? http(rpcUrl) : http();
|
|
92
|
+
const account = privateKeyToAccount(resolvePrivateKey(opts));
|
|
93
|
+
const walletClient = createWalletClient({ account, chain, transport });
|
|
94
|
+
const publicClient = createPublicClient({ chain, transport });
|
|
95
|
+
return { chain, account, walletClient, publicClient };
|
|
96
|
+
}
|
|
97
|
+
function resolvePublicClient(opts) {
|
|
98
|
+
const chainName = opts.chain || loadConfig().defaultChain || "base";
|
|
99
|
+
const chain = resolveChain(chainName);
|
|
100
|
+
const rpcUrl = resolveRpcUrl(opts, chainName);
|
|
101
|
+
const transport = rpcUrl ? http(rpcUrl) : http();
|
|
102
|
+
const publicClient = createPublicClient({ chain, transport });
|
|
103
|
+
return { chain, publicClient };
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
resolveClients,
|
|
107
|
+
resolvePublicClient
|
|
108
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export { C as ClankerTokenV3 } from './clankerTokenV3-BqHTF9QY.js';
|
|
2
|
-
import { a as Chain, C as ClankerTokenV4, b as ClankerDeployment } from './
|
|
3
|
-
export { d as CLANKERS, g as Chains, h as ClankerDeployments, f as Clankers,
|
|
2
|
+
import { a as Chain, C as ClankerTokenV4, b as ClankerDeployment } from './clankerTokenV4-DoIzm6GW.js';
|
|
3
|
+
export { d as CLANKERS, g as Chains, h as ClankerDeployments, f as Clankers, R as RelatedV3_1, c as RelatedV4, T as Type, i as clankerConfigFor } from './clankerTokenV4-DoIzm6GW.js';
|
|
4
|
+
export { D as DeployTokenOptions } from './deploy-BUDlDPzt.js';
|
|
4
5
|
import { ContractConstructorArgs, Hex, PublicClient } from 'viem';
|
|
5
6
|
import { C as ClankerToken_v3_1_abi, a as ClankerToken_v4_abi } from './ClankerToken-Dra5lppJ.js';
|
|
7
|
+
export { A as AirdropEntry, c as createMerkleTree, e as encodeAirdropData, g as getMerkleProof } from './merkleTree-BNYdIOkH.js';
|
|
6
8
|
import { StandardMerkleTree } from '@openzeppelin/merkle-tree';
|
|
7
9
|
import 'zod/v4';
|
|
8
10
|
|
|
@@ -13,6 +15,10 @@ declare const ANON_ADDRESS: `0x${string}`;
|
|
|
13
15
|
declare const HIGHER_ADDRESS: `0x${string}`;
|
|
14
16
|
declare const CB_BTC_ADDRESS: `0x${string}`;
|
|
15
17
|
declare const A0X_ADDRESS: `0x${string}`;
|
|
18
|
+
/** WBNB (Wrapped BNB) on BSC - use for BNB/BNB token pairs */
|
|
19
|
+
declare const WBNB_ADDRESS: `0x${string}`;
|
|
20
|
+
/** USDT (Binance-Peg BSC-USD) on BSC – 18 decimals */
|
|
21
|
+
declare const BSC_USDT_ADDRESS: `0x${string}`;
|
|
16
22
|
declare const WETH_ADDRESSES: Record<Chain, `0x${string}`>;
|
|
17
23
|
declare const DEFAULT_SUPPLY = 100000000000000000000000000000n;
|
|
18
24
|
declare enum PoolPositions {
|
|
@@ -69,7 +75,7 @@ declare const getTickFromMarketCap: (marketCap: number) => {
|
|
|
69
75
|
tickSpacing: number;
|
|
70
76
|
};
|
|
71
77
|
/**
|
|
72
|
-
* Calculate the tick for a desired market cap in USDC
|
|
78
|
+
* Calculate the tick for a desired market cap in USDC (6 decimals)
|
|
73
79
|
*
|
|
74
80
|
* @param marketCapUSDC - Desired market cap in USDC (e.g., 10 for $10)
|
|
75
81
|
* @param tickSpacing - Tick spacing (must be multiple of this, default 200)
|
|
@@ -82,18 +88,21 @@ declare const getTickFromMarketCap: (marketCap: number) => {
|
|
|
82
88
|
* - tick = log(price) / log(1.0001)
|
|
83
89
|
*/
|
|
84
90
|
declare function getTickFromMarketCapUSDC(marketCapUSDC: number, tickSpacing?: number): number;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
/**
|
|
92
|
+
* Calculate the tick for a desired market cap priced in a stablecoin with
|
|
93
|
+
* an arbitrary number of decimals.
|
|
94
|
+
*
|
|
95
|
+
* @param marketCap - Desired market cap in USD terms (e.g., 10_000 for $10k)
|
|
96
|
+
* @param stableDecimals - Decimals of the paired stablecoin (6 for USDC, 18 for BSC-USDT)
|
|
97
|
+
* @param tickSpacing - Tick spacing (must be multiple of this, default 200)
|
|
98
|
+
* @returns The tick value rounded down to the nearest tickSpacing
|
|
99
|
+
*
|
|
100
|
+
* Formula:
|
|
101
|
+
* - Total supply: 100B tokens (10^11 * 10^18 = 10^29)
|
|
102
|
+
* - Price per token = (marketCap * 10^stableDecimals) / 10^29
|
|
103
|
+
* - tick = log(price) / log(1.0001)
|
|
104
|
+
*/
|
|
105
|
+
declare function getTickFromMarketCapStable(marketCap: number, stableDecimals: number, tickSpacing?: number): number;
|
|
97
106
|
|
|
98
107
|
/**
|
|
99
108
|
* Represents an allowlist entry with an address and allowed ETH amount
|
|
@@ -226,4 +235,4 @@ declare function verifyBuyerAllowance(publicClient: PublicClient, presaleId: big
|
|
|
226
235
|
allowedAmountWei: bigint;
|
|
227
236
|
}>;
|
|
228
237
|
|
|
229
|
-
export { A0X_ADDRESS, ANON_ADDRESS, type
|
|
238
|
+
export { A0X_ADDRESS, ANON_ADDRESS, type AllowlistEntry, type AllowlistProof, BSC_USDT_ADDRESS, CB_BTC_ADDRESS, CLANKER_ADDRESS, Chain, ClankerDeployment, ClankerTokenV4, DEFAULT_SUPPLY, DEGEN_ADDRESS, FEE_CONFIGS, FeeConfigs, HIGHER_ADDRESS, NATIVE_ADDRESS, POOL_POSITIONS, PoolPositions, WBNB_ADDRESS, WETH_ADDRESSES, createAllowlistMerkleTree, encodeAllowlistInitializationData, encodeAllowlistProofData, findVanityAddress, findVanityAddressV4, getAllowedAmountForBuyer, getAllowlistAddress, getAllowlistInfo, getAllowlistMerkleProof, getTickFromMarketCap, getTickFromMarketCapStable, getTickFromMarketCapUSDC, predictTokenAddressV4, verifyBuyerAllowance };
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
arbitrum,
|
|
5
5
|
base,
|
|
6
6
|
baseSepolia,
|
|
7
|
+
bsc,
|
|
7
8
|
mainnet,
|
|
8
9
|
monadTestnet,
|
|
9
10
|
unichain
|
|
@@ -22,7 +23,7 @@ var monad = /* @__PURE__ */ defineChain({
|
|
|
22
23
|
},
|
|
23
24
|
rpcUrls: {
|
|
24
25
|
default: {
|
|
25
|
-
http: ["
|
|
26
|
+
http: ["https://rpc.monad.xyz"]
|
|
26
27
|
}
|
|
27
28
|
},
|
|
28
29
|
blockExplorers: {
|
|
@@ -43,9 +44,12 @@ var ANON_ADDRESS = "0x0Db510e79909666d6dEc7f5e49370838c16D950f";
|
|
|
43
44
|
var HIGHER_ADDRESS = "0x0578d8A44db98B23BF096A382e016e29a5Ce0ffe";
|
|
44
45
|
var CB_BTC_ADDRESS = "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf";
|
|
45
46
|
var A0X_ADDRESS = "0x820C5F0fB255a1D18fd0eBB0F1CCefbC4D546dA7";
|
|
47
|
+
var WBNB_ADDRESS = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
|
|
48
|
+
var BSC_USDT_ADDRESS = "0x55d398326f99059fF775485246999027B3197955";
|
|
46
49
|
var WETH_ADDRESSES = {
|
|
47
50
|
[mainnet.id]: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
48
51
|
[arbitrum.id]: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
|
52
|
+
[bsc.id]: WBNB_ADDRESS,
|
|
49
53
|
[base.id]: "0x4200000000000000000000000000000000000006",
|
|
50
54
|
[baseSepolia.id]: "0x4200000000000000000000000000000000000006",
|
|
51
55
|
[unichain.id]: "0x4200000000000000000000000000000000000006",
|
|
@@ -2015,6 +2019,7 @@ import {
|
|
|
2015
2019
|
arbitrum as arbitrum2,
|
|
2016
2020
|
base as base2,
|
|
2017
2021
|
baseSepolia as baseSepolia2,
|
|
2022
|
+
bsc as bsc2,
|
|
2018
2023
|
mainnet as mainnet2,
|
|
2019
2024
|
monadTestnet as monadTestnet2,
|
|
2020
2025
|
unichain as unichain2
|
|
@@ -5722,6 +5727,29 @@ var CLANKERS = {
|
|
|
5722
5727
|
feeStaticHookV2: "0x94F802a9EFE4dd542FdBd77a25D9e69A6dC828Cc",
|
|
5723
5728
|
feeDynamicHook: "0x0000000000000000000000000000000000000000"
|
|
5724
5729
|
}
|
|
5730
|
+
},
|
|
5731
|
+
clanker_v4_bnb: {
|
|
5732
|
+
abi: Clanker_v4_abi,
|
|
5733
|
+
token: {
|
|
5734
|
+
abi: ClankerToken_v4_abi,
|
|
5735
|
+
bytecode: ClankerToken_v4_bytecode
|
|
5736
|
+
},
|
|
5737
|
+
chainId: bsc2.id,
|
|
5738
|
+
type: "clanker_v4",
|
|
5739
|
+
address: "0xea30438E0B5f99096cb05A8Da63be55A6A298F6a",
|
|
5740
|
+
related: {
|
|
5741
|
+
locker: "0x1166022e1becc70E7E9aB2250aF1aC7842B9B420",
|
|
5742
|
+
vault: "0x15ee8382DBd8Fb991F653B59CA11bf504a07372D",
|
|
5743
|
+
airdrop: "0xBB0f069b995e0205cD5F92C84a1dF056a3F47900",
|
|
5744
|
+
devbuy: "0x302989E1cA167B6E78f9711e5a08d1BD555DdAc4",
|
|
5745
|
+
mevModule: "0xEE2940CC010820B7F22DF627e081d707693989a6",
|
|
5746
|
+
mevModuleV2: "0xec1310cf227a2D671176000aE0849DE6417b175a",
|
|
5747
|
+
feeLocker: "0x67D04Ae42F03D9b63dE0E6F2d82bB186A0306bBb",
|
|
5748
|
+
feeStaticHook: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
5749
|
+
feeStaticHookV2: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
5750
|
+
feeDynamicHook: "0x0000000000000000000000000000000000000000",
|
|
5751
|
+
feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
|
|
5752
|
+
}
|
|
5725
5753
|
}
|
|
5726
5754
|
};
|
|
5727
5755
|
var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
|
|
@@ -5803,7 +5831,10 @@ var getTickFromMarketCap = (marketCap) => {
|
|
|
5803
5831
|
};
|
|
5804
5832
|
};
|
|
5805
5833
|
function getTickFromMarketCapUSDC(marketCapUSDC, tickSpacing = 200) {
|
|
5806
|
-
|
|
5834
|
+
return getTickFromMarketCapStable(marketCapUSDC, 6, tickSpacing);
|
|
5835
|
+
}
|
|
5836
|
+
function getTickFromMarketCapStable(marketCap, stableDecimals, tickSpacing = 200) {
|
|
5837
|
+
const price = marketCap / 10 ** (29 - stableDecimals);
|
|
5807
5838
|
const rawTick = Math.log(price) / Math.log(1.0001);
|
|
5808
5839
|
return Math.floor(rawTick / tickSpacing) * tickSpacing;
|
|
5809
5840
|
}
|
|
@@ -6062,6 +6093,7 @@ async function verifyBuyerAllowance(publicClient, presaleId, buyer, desiredAmoun
|
|
|
6062
6093
|
export {
|
|
6063
6094
|
A0X_ADDRESS,
|
|
6064
6095
|
ANON_ADDRESS,
|
|
6096
|
+
BSC_USDT_ADDRESS,
|
|
6065
6097
|
CB_BTC_ADDRESS,
|
|
6066
6098
|
CLANKERS,
|
|
6067
6099
|
CLANKER_ADDRESS,
|
|
@@ -6075,6 +6107,7 @@ export {
|
|
|
6075
6107
|
NATIVE_ADDRESS,
|
|
6076
6108
|
POOL_POSITIONS,
|
|
6077
6109
|
PoolPositions,
|
|
6110
|
+
WBNB_ADDRESS,
|
|
6078
6111
|
WETH_ADDRESSES,
|
|
6079
6112
|
clankerConfigFor,
|
|
6080
6113
|
createAllowlistMerkleTree,
|
|
@@ -6090,6 +6123,7 @@ export {
|
|
|
6090
6123
|
getAllowlistMerkleProof,
|
|
6091
6124
|
getMerkleProof,
|
|
6092
6125
|
getTickFromMarketCap,
|
|
6126
|
+
getTickFromMarketCapStable,
|
|
6093
6127
|
getTickFromMarketCapUSDC,
|
|
6094
6128
|
predictTokenAddressV4,
|
|
6095
6129
|
verifyBuyerAllowance
|
|
@@ -248,6 +248,7 @@ import {
|
|
|
248
248
|
arbitrum,
|
|
249
249
|
base,
|
|
250
250
|
baseSepolia,
|
|
251
|
+
bsc,
|
|
251
252
|
mainnet,
|
|
252
253
|
monadTestnet,
|
|
253
254
|
unichain
|
|
@@ -5538,7 +5539,7 @@ var monad = /* @__PURE__ */ defineChain({
|
|
|
5538
5539
|
},
|
|
5539
5540
|
rpcUrls: {
|
|
5540
5541
|
default: {
|
|
5541
|
-
http: ["
|
|
5542
|
+
http: ["https://rpc.monad.xyz"]
|
|
5542
5543
|
}
|
|
5543
5544
|
},
|
|
5544
5545
|
blockExplorers: {
|
|
@@ -5776,6 +5777,29 @@ var CLANKERS = {
|
|
|
5776
5777
|
feeStaticHookV2: "0x94F802a9EFE4dd542FdBd77a25D9e69A6dC828Cc",
|
|
5777
5778
|
feeDynamicHook: "0x0000000000000000000000000000000000000000"
|
|
5778
5779
|
}
|
|
5780
|
+
},
|
|
5781
|
+
clanker_v4_bnb: {
|
|
5782
|
+
abi: Clanker_v4_abi,
|
|
5783
|
+
token: {
|
|
5784
|
+
abi: ClankerToken_v4_abi,
|
|
5785
|
+
bytecode: ClankerToken_v4_bytecode
|
|
5786
|
+
},
|
|
5787
|
+
chainId: bsc.id,
|
|
5788
|
+
type: "clanker_v4",
|
|
5789
|
+
address: "0xea30438E0B5f99096cb05A8Da63be55A6A298F6a",
|
|
5790
|
+
related: {
|
|
5791
|
+
locker: "0x1166022e1becc70E7E9aB2250aF1aC7842B9B420",
|
|
5792
|
+
vault: "0x15ee8382DBd8Fb991F653B59CA11bf504a07372D",
|
|
5793
|
+
airdrop: "0xBB0f069b995e0205cD5F92C84a1dF056a3F47900",
|
|
5794
|
+
devbuy: "0x302989E1cA167B6E78f9711e5a08d1BD555DdAc4",
|
|
5795
|
+
mevModule: "0xEE2940CC010820B7F22DF627e081d707693989a6",
|
|
5796
|
+
mevModuleV2: "0xec1310cf227a2D671176000aE0849DE6417b175a",
|
|
5797
|
+
feeLocker: "0x67D04Ae42F03D9b63dE0E6F2d82bB186A0306bBb",
|
|
5798
|
+
feeStaticHook: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
5799
|
+
feeStaticHookV2: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
5800
|
+
feeDynamicHook: "0x0000000000000000000000000000000000000000",
|
|
5801
|
+
feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
|
|
5802
|
+
}
|
|
5779
5803
|
}
|
|
5780
5804
|
};
|
|
5781
5805
|
var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { StandardMerkleTree } from '@openzeppelin/merkle-tree';
|
|
2
|
+
|
|
3
|
+
interface AirdropEntry {
|
|
4
|
+
account: `0x${string}`;
|
|
5
|
+
amount: number;
|
|
6
|
+
}
|
|
7
|
+
declare function createMerkleTree(entries: AirdropEntry[]): {
|
|
8
|
+
tree: StandardMerkleTree<[string, string]>;
|
|
9
|
+
root: `0x${string}`;
|
|
10
|
+
entries: [string, string][];
|
|
11
|
+
};
|
|
12
|
+
declare function getMerkleProof(tree: StandardMerkleTree<[string, string]>, entries: [string, string][], account: `0x${string}`, amount: number): `0x${string}`[];
|
|
13
|
+
declare function encodeAirdropData(merkleRoot: `0x${string}`, lockupDuration: number, vestingDuration: number): `0x${string}`;
|
|
14
|
+
|
|
15
|
+
export { type AirdropEntry as A, createMerkleTree as c, encodeAirdropData as e, getMerkleProof as g };
|
package/dist/v3/index.d.ts
CHANGED
|
@@ -877,7 +877,7 @@ declare class Clanker {
|
|
|
877
877
|
}];
|
|
878
878
|
readonly stateMutability: "view";
|
|
879
879
|
readonly type: "function";
|
|
880
|
-
}], "
|
|
880
|
+
}], "deployToken" | "renounceOwnership" | "transferOwnership" | "updateLiquidityLocker" | "setDeprecated" | "claimRewards" | "setAdmin" | "deployTokenWithCustomTeamRewardRecipient" | "deployTokenZeroSupply" | "initialize" | "updateVault"> & {
|
|
881
881
|
error?: undefined;
|
|
882
882
|
}) | ({
|
|
883
883
|
result?: undefined;
|
|
@@ -2256,7 +2256,7 @@ declare class Clanker {
|
|
|
2256
2256
|
readonly outputs: readonly [];
|
|
2257
2257
|
readonly stateMutability: "nonpayable";
|
|
2258
2258
|
readonly type: "function";
|
|
2259
|
-
}], "renounceOwnership" | "transferOwnership" | "
|
|
2259
|
+
}], "renounceOwnership" | "transferOwnership" | "addTokenReward" | "collectRewards" | "onERC721Received" | "setOverrideTeamRewardRecipientForToken" | "updateCreatorRewardAdmin" | "updateCreatorRewardRecipient" | "updateInterfaceRewardAdmin" | "updateInterfaceRewardRecipient" | "updateTeamRecipient" | "withdrawERC20" | "withdrawETH"> & {
|
|
2260
2260
|
error?: undefined;
|
|
2261
2261
|
}) | ({
|
|
2262
2262
|
result?: undefined;
|
|
@@ -3636,7 +3636,7 @@ declare class Clanker {
|
|
|
3636
3636
|
readonly outputs: readonly [];
|
|
3637
3637
|
readonly stateMutability: "nonpayable";
|
|
3638
3638
|
readonly type: "function";
|
|
3639
|
-
}], "renounceOwnership" | "transferOwnership" | "
|
|
3639
|
+
}], "renounceOwnership" | "transferOwnership" | "addTokenReward" | "collectRewards" | "onERC721Received" | "setOverrideTeamRewardRecipientForToken" | "updateCreatorRewardAdmin" | "updateCreatorRewardRecipient" | "updateInterfaceRewardAdmin" | "updateInterfaceRewardRecipient" | "updateTeamRecipient" | "withdrawERC20" | "withdrawETH"> & {
|
|
3640
3640
|
error?: undefined;
|
|
3641
3641
|
}) | ({
|
|
3642
3642
|
result?: undefined;
|
|
@@ -4519,7 +4519,7 @@ declare class Clanker {
|
|
|
4519
4519
|
* @param requestorAddress Requestor for the deployment. Various admins will fall back to this.
|
|
4520
4520
|
* @returns Abi transaction
|
|
4521
4521
|
*/
|
|
4522
|
-
deploySimulate(token: ClankerTokenV3, account?: Account): Promise<(viem.SimulateContractReturnType<ClankerFactory, "
|
|
4522
|
+
deploySimulate(token: ClankerTokenV3, account?: Account): Promise<(viem.SimulateContractReturnType<ClankerFactory, "deployToken" | "renounceOwnership" | "transferOwnership" | "updateLiquidityLocker" | "setDeprecated" | "claimRewards" | "setAdmin" | "deployTokenWithCustomTeamRewardRecipient" | "deployTokenZeroSupply" | "initialize" | "updateVault" | "claimTeamFees" | "setExtension" | "setHook" | "setLocker" | "setMevModule" | "setTeamFeeRecipient"> & {
|
|
4523
4523
|
error?: undefined;
|
|
4524
4524
|
}) | ({
|
|
4525
4525
|
result?: undefined;
|
package/dist/v3/index.js
CHANGED
|
@@ -3066,6 +3066,7 @@ import {
|
|
|
3066
3066
|
arbitrum,
|
|
3067
3067
|
base,
|
|
3068
3068
|
baseSepolia,
|
|
3069
|
+
bsc,
|
|
3069
3070
|
mainnet,
|
|
3070
3071
|
monadTestnet,
|
|
3071
3072
|
unichain
|
|
@@ -3084,7 +3085,7 @@ var monad = /* @__PURE__ */ defineChain({
|
|
|
3084
3085
|
},
|
|
3085
3086
|
rpcUrls: {
|
|
3086
3087
|
default: {
|
|
3087
|
-
http: ["
|
|
3088
|
+
http: ["https://rpc.monad.xyz"]
|
|
3088
3089
|
}
|
|
3089
3090
|
},
|
|
3090
3091
|
blockExplorers: {
|
|
@@ -3105,9 +3106,11 @@ var ANON_ADDRESS = "0x0Db510e79909666d6dEc7f5e49370838c16D950f";
|
|
|
3105
3106
|
var HIGHER_ADDRESS = "0x0578d8A44db98B23BF096A382e016e29a5Ce0ffe";
|
|
3106
3107
|
var CB_BTC_ADDRESS = "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf";
|
|
3107
3108
|
var A0X_ADDRESS = "0x820C5F0fB255a1D18fd0eBB0F1CCefbC4D546dA7";
|
|
3109
|
+
var WBNB_ADDRESS = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
|
|
3108
3110
|
var WETH_ADDRESSES = {
|
|
3109
3111
|
[mainnet.id]: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
3110
3112
|
[arbitrum.id]: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
|
3113
|
+
[bsc.id]: WBNB_ADDRESS,
|
|
3111
3114
|
[base.id]: "0x4200000000000000000000000000000000000006",
|
|
3112
3115
|
[baseSepolia.id]: "0x4200000000000000000000000000000000000006",
|
|
3113
3116
|
[unichain.id]: "0x4200000000000000000000000000000000000006",
|
|
@@ -3133,6 +3136,7 @@ import {
|
|
|
3133
3136
|
arbitrum as arbitrum2,
|
|
3134
3137
|
base as base2,
|
|
3135
3138
|
baseSepolia as baseSepolia2,
|
|
3139
|
+
bsc as bsc2,
|
|
3136
3140
|
mainnet as mainnet2,
|
|
3137
3141
|
monadTestnet as monadTestnet2,
|
|
3138
3142
|
unichain as unichain2
|
|
@@ -6150,6 +6154,29 @@ var CLANKERS = {
|
|
|
6150
6154
|
feeStaticHookV2: "0x94F802a9EFE4dd542FdBd77a25D9e69A6dC828Cc",
|
|
6151
6155
|
feeDynamicHook: "0x0000000000000000000000000000000000000000"
|
|
6152
6156
|
}
|
|
6157
|
+
},
|
|
6158
|
+
clanker_v4_bnb: {
|
|
6159
|
+
abi: Clanker_v4_abi,
|
|
6160
|
+
token: {
|
|
6161
|
+
abi: ClankerToken_v4_abi,
|
|
6162
|
+
bytecode: ClankerToken_v4_bytecode
|
|
6163
|
+
},
|
|
6164
|
+
chainId: bsc2.id,
|
|
6165
|
+
type: "clanker_v4",
|
|
6166
|
+
address: "0xea30438E0B5f99096cb05A8Da63be55A6A298F6a",
|
|
6167
|
+
related: {
|
|
6168
|
+
locker: "0x1166022e1becc70E7E9aB2250aF1aC7842B9B420",
|
|
6169
|
+
vault: "0x15ee8382DBd8Fb991F653B59CA11bf504a07372D",
|
|
6170
|
+
airdrop: "0xBB0f069b995e0205cD5F92C84a1dF056a3F47900",
|
|
6171
|
+
devbuy: "0x302989E1cA167B6E78f9711e5a08d1BD555DdAc4",
|
|
6172
|
+
mevModule: "0xEE2940CC010820B7F22DF627e081d707693989a6",
|
|
6173
|
+
mevModuleV2: "0xec1310cf227a2D671176000aE0849DE6417b175a",
|
|
6174
|
+
feeLocker: "0x67D04Ae42F03D9b63dE0E6F2d82bB186A0306bBb",
|
|
6175
|
+
feeStaticHook: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
6176
|
+
feeStaticHookV2: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
6177
|
+
feeDynamicHook: "0x0000000000000000000000000000000000000000",
|
|
6178
|
+
feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
|
|
6179
|
+
}
|
|
6153
6180
|
}
|
|
6154
6181
|
};
|
|
6155
6182
|
var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { C as ClankerTransactionConfig, f as ClankerAirdrop_v4_abi, c as ClankerResult, g as Clanker_PresaleEthToCreator_v4_1_abi, h as Clanker_PresaleAllowlist_v4_1_abi } from '../../write-clanker-contracts-wZSL1UyM.js';
|
|
2
2
|
import { MerkleTree } from '@openzeppelin/merkle-tree/dist/merkletree.js';
|
|
3
3
|
import * as z from 'zod/v4';
|
|
4
|
-
import { a as Chain, C as ClankerTokenV4 } from '../../
|
|
4
|
+
import { a as Chain, C as ClankerTokenV4 } from '../../clankerTokenV4-DoIzm6GW.js';
|
|
5
5
|
import { Clanker } from '../index.js';
|
|
6
6
|
import { C as ClankerError } from '../../errors-5Gv28Tkr.js';
|
|
7
7
|
import 'viem';
|
|
8
8
|
import '../../ClankerToken-Dra5lppJ.js';
|
|
9
|
+
import '../../deploy-BUDlDPzt.js';
|
|
9
10
|
|
|
10
11
|
declare const AirdropEntrySchema: z.ZodArray<z.ZodObject<{
|
|
11
12
|
account: z.ZodCustom<`0x${string}`, `0x${string}`>;
|
|
@@ -203,6 +203,7 @@ import {
|
|
|
203
203
|
arbitrum,
|
|
204
204
|
base,
|
|
205
205
|
baseSepolia,
|
|
206
|
+
bsc,
|
|
206
207
|
mainnet,
|
|
207
208
|
monadTestnet,
|
|
208
209
|
unichain
|
|
@@ -5493,7 +5494,7 @@ var monad = /* @__PURE__ */ defineChain({
|
|
|
5493
5494
|
},
|
|
5494
5495
|
rpcUrls: {
|
|
5495
5496
|
default: {
|
|
5496
|
-
http: ["
|
|
5497
|
+
http: ["https://rpc.monad.xyz"]
|
|
5497
5498
|
}
|
|
5498
5499
|
},
|
|
5499
5500
|
blockExplorers: {
|
|
@@ -5731,6 +5732,29 @@ var CLANKERS = {
|
|
|
5731
5732
|
feeStaticHookV2: "0x94F802a9EFE4dd542FdBd77a25D9e69A6dC828Cc",
|
|
5732
5733
|
feeDynamicHook: "0x0000000000000000000000000000000000000000"
|
|
5733
5734
|
}
|
|
5735
|
+
},
|
|
5736
|
+
clanker_v4_bnb: {
|
|
5737
|
+
abi: Clanker_v4_abi,
|
|
5738
|
+
token: {
|
|
5739
|
+
abi: ClankerToken_v4_abi,
|
|
5740
|
+
bytecode: ClankerToken_v4_bytecode
|
|
5741
|
+
},
|
|
5742
|
+
chainId: bsc.id,
|
|
5743
|
+
type: "clanker_v4",
|
|
5744
|
+
address: "0xea30438E0B5f99096cb05A8Da63be55A6A298F6a",
|
|
5745
|
+
related: {
|
|
5746
|
+
locker: "0x1166022e1becc70E7E9aB2250aF1aC7842B9B420",
|
|
5747
|
+
vault: "0x15ee8382DBd8Fb991F653B59CA11bf504a07372D",
|
|
5748
|
+
airdrop: "0xBB0f069b995e0205cD5F92C84a1dF056a3F47900",
|
|
5749
|
+
devbuy: "0x302989E1cA167B6E78f9711e5a08d1BD555DdAc4",
|
|
5750
|
+
mevModule: "0xEE2940CC010820B7F22DF627e081d707693989a6",
|
|
5751
|
+
mevModuleV2: "0xec1310cf227a2D671176000aE0849DE6417b175a",
|
|
5752
|
+
feeLocker: "0x67D04Ae42F03D9b63dE0E6F2d82bB186A0306bBb",
|
|
5753
|
+
feeStaticHook: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
5754
|
+
feeStaticHookV2: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
5755
|
+
feeDynamicHook: "0x0000000000000000000000000000000000000000",
|
|
5756
|
+
feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
|
|
5757
|
+
}
|
|
5734
5758
|
}
|
|
5735
5759
|
};
|
|
5736
5760
|
var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
|
|
@@ -6959,13 +6983,16 @@ import {
|
|
|
6959
6983
|
arbitrum as arbitrum2,
|
|
6960
6984
|
base as base2,
|
|
6961
6985
|
baseSepolia as baseSepolia2,
|
|
6986
|
+
bsc as bsc2,
|
|
6962
6987
|
mainnet as mainnet2,
|
|
6963
6988
|
monadTestnet as monadTestnet2,
|
|
6964
6989
|
unichain as unichain2
|
|
6965
6990
|
} from "viem/chains";
|
|
6991
|
+
var WBNB_ADDRESS = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
|
|
6966
6992
|
var WETH_ADDRESSES = {
|
|
6967
6993
|
[mainnet2.id]: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
6968
6994
|
[arbitrum2.id]: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
|
6995
|
+
[bsc2.id]: WBNB_ADDRESS,
|
|
6969
6996
|
[base2.id]: "0x4200000000000000000000000000000000000006",
|
|
6970
6997
|
[baseSepolia2.id]: "0x4200000000000000000000000000000000000006",
|
|
6971
6998
|
[unichain2.id]: "0x4200000000000000000000000000000000000006",
|
package/dist/v4/index.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ import { C as ClankerTransactionConfig, d as ClankerFeeLocker_abi, b as ClankerF
|
|
|
2
2
|
import * as viem from 'viem';
|
|
3
3
|
import { WalletClient, Transport, Chain, Account, PublicClient } from 'viem';
|
|
4
4
|
import { a as ClankerToken_v4_abi } from '../ClankerToken-Dra5lppJ.js';
|
|
5
|
-
import { C as ClankerTokenV4
|
|
6
|
-
export { e as encodeFeeConfig } from '../
|
|
5
|
+
import { C as ClankerTokenV4 } from '../clankerTokenV4-DoIzm6GW.js';
|
|
6
|
+
export { e as encodeFeeConfig } from '../clankerTokenV4-DoIzm6GW.js';
|
|
7
|
+
import { D as DeployTokenOptions } from '../deploy-BUDlDPzt.js';
|
|
7
8
|
import { C as ClankerError } from '../errors-5Gv28Tkr.js';
|
|
8
9
|
import 'zod/v4';
|
|
9
10
|
|
|
@@ -331,7 +332,7 @@ declare class Clanker {
|
|
|
331
332
|
readonly outputs: readonly [];
|
|
332
333
|
readonly stateMutability: "nonpayable";
|
|
333
334
|
readonly type: "function";
|
|
334
|
-
}], "
|
|
335
|
+
}], "claim" | "renounceOwnership" | "transferOwnership" | "addDepositor" | "storeFees"> & {
|
|
335
336
|
error?: undefined;
|
|
336
337
|
}) | ({
|
|
337
338
|
result?: undefined;
|
|
@@ -1506,7 +1507,7 @@ declare class Clanker {
|
|
|
1506
1507
|
* @param account Optional account for the deployer
|
|
1507
1508
|
* @returns Abi transaction
|
|
1508
1509
|
*/
|
|
1509
|
-
deploySimulate(token: ClankerTokenV4, account?: Account): Promise<(viem.SimulateContractReturnType<ClankerFactory, "
|
|
1510
|
+
deploySimulate(token: ClankerTokenV4, account?: Account): Promise<(viem.SimulateContractReturnType<ClankerFactory, "deployToken" | "renounceOwnership" | "transferOwnership" | "updateLiquidityLocker" | "setDeprecated" | "claimRewards" | "setAdmin" | "deployTokenWithCustomTeamRewardRecipient" | "deployTokenZeroSupply" | "initialize" | "updateVault" | "claimTeamFees" | "setExtension" | "setHook" | "setLocker" | "setMevModule" | "setTeamFeeRecipient"> & {
|
|
1510
1511
|
error?: undefined;
|
|
1511
1512
|
}) | ({
|
|
1512
1513
|
result?: undefined;
|
package/dist/v4/index.js
CHANGED
|
@@ -1918,6 +1918,7 @@ import {
|
|
|
1918
1918
|
arbitrum,
|
|
1919
1919
|
base,
|
|
1920
1920
|
baseSepolia,
|
|
1921
|
+
bsc,
|
|
1921
1922
|
mainnet,
|
|
1922
1923
|
monadTestnet,
|
|
1923
1924
|
unichain
|
|
@@ -1936,7 +1937,7 @@ var monad = /* @__PURE__ */ defineChain({
|
|
|
1936
1937
|
},
|
|
1937
1938
|
rpcUrls: {
|
|
1938
1939
|
default: {
|
|
1939
|
-
http: ["
|
|
1940
|
+
http: ["https://rpc.monad.xyz"]
|
|
1940
1941
|
}
|
|
1941
1942
|
},
|
|
1942
1943
|
blockExplorers: {
|
|
@@ -1950,9 +1951,11 @@ var monad = /* @__PURE__ */ defineChain({
|
|
|
1950
1951
|
});
|
|
1951
1952
|
|
|
1952
1953
|
// src/constants.ts
|
|
1954
|
+
var WBNB_ADDRESS = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
|
|
1953
1955
|
var WETH_ADDRESSES = {
|
|
1954
1956
|
[mainnet.id]: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
1955
1957
|
[arbitrum.id]: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
|
1958
|
+
[bsc.id]: WBNB_ADDRESS,
|
|
1956
1959
|
[base.id]: "0x4200000000000000000000000000000000000006",
|
|
1957
1960
|
[baseSepolia.id]: "0x4200000000000000000000000000000000000006",
|
|
1958
1961
|
[unichain.id]: "0x4200000000000000000000000000000000000006",
|
|
@@ -3869,6 +3872,7 @@ import {
|
|
|
3869
3872
|
arbitrum as arbitrum2,
|
|
3870
3873
|
base as base2,
|
|
3871
3874
|
baseSepolia as baseSepolia2,
|
|
3875
|
+
bsc as bsc2,
|
|
3872
3876
|
mainnet as mainnet2,
|
|
3873
3877
|
monadTestnet as monadTestnet2,
|
|
3874
3878
|
unichain as unichain2
|
|
@@ -6583,6 +6587,29 @@ var CLANKERS = {
|
|
|
6583
6587
|
feeStaticHookV2: "0x94F802a9EFE4dd542FdBd77a25D9e69A6dC828Cc",
|
|
6584
6588
|
feeDynamicHook: "0x0000000000000000000000000000000000000000"
|
|
6585
6589
|
}
|
|
6590
|
+
},
|
|
6591
|
+
clanker_v4_bnb: {
|
|
6592
|
+
abi: Clanker_v4_abi,
|
|
6593
|
+
token: {
|
|
6594
|
+
abi: ClankerToken_v4_abi,
|
|
6595
|
+
bytecode: ClankerToken_v4_bytecode
|
|
6596
|
+
},
|
|
6597
|
+
chainId: bsc2.id,
|
|
6598
|
+
type: "clanker_v4",
|
|
6599
|
+
address: "0xea30438E0B5f99096cb05A8Da63be55A6A298F6a",
|
|
6600
|
+
related: {
|
|
6601
|
+
locker: "0x1166022e1becc70E7E9aB2250aF1aC7842B9B420",
|
|
6602
|
+
vault: "0x15ee8382DBd8Fb991F653B59CA11bf504a07372D",
|
|
6603
|
+
airdrop: "0xBB0f069b995e0205cD5F92C84a1dF056a3F47900",
|
|
6604
|
+
devbuy: "0x302989E1cA167B6E78f9711e5a08d1BD555DdAc4",
|
|
6605
|
+
mevModule: "0xEE2940CC010820B7F22DF627e081d707693989a6",
|
|
6606
|
+
mevModuleV2: "0xec1310cf227a2D671176000aE0849DE6417b175a",
|
|
6607
|
+
feeLocker: "0x67D04Ae42F03D9b63dE0E6F2d82bB186A0306bBb",
|
|
6608
|
+
feeStaticHook: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
6609
|
+
feeStaticHookV2: "0xC5d309026BCAb6630888d51CE21154AD2f4828cC",
|
|
6610
|
+
feeDynamicHook: "0x0000000000000000000000000000000000000000",
|
|
6611
|
+
feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
|
|
6612
|
+
}
|
|
6586
6613
|
}
|
|
6587
6614
|
};
|
|
6588
6615
|
var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clanker-sdk",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.12",
|
|
4
4
|
"description": "SDK for deploying tokens using Clanker",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@openzeppelin/merkle-tree": "^1.0.8",
|
|
40
40
|
"abitype": "^1.0.8",
|
|
41
|
+
"commander": "^14.0.3",
|
|
41
42
|
"inquirer": "^8.2.6",
|
|
42
43
|
"viem": "^2.38.3",
|
|
43
44
|
"zod": "^4.1.12"
|