clanker-sdk 4.1.2 → 4.1.3
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 +2 -2
- package/dist/{clankerTokenV4-BXAN0WPS.d.ts → clankerTokenV4-BKjv_7Zq.d.ts} +6 -3
- package/dist/cli/cli.js +35 -29
- package/dist/cli/create-clanker.js +31 -26
- package/dist/index.d.ts +133 -4559
- package/dist/index.js +3401 -3459
- package/dist/v3/index.d.ts +4 -1
- package/dist/v3/index.js +21 -20
- package/dist/v4/index.d.ts +1 -1
- package/dist/v4/index.js +83 -73
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -85,8 +85,8 @@ async function deployToken() {
|
|
|
85
85
|
metadata: {
|
|
86
86
|
description: "Token with custom configuration including vesting and rewards",
|
|
87
87
|
socialMediaUrls: [
|
|
88
|
-
"https://twitter.com/mytoken",
|
|
89
|
-
"https://t.me/mytoken",
|
|
88
|
+
{ platform: "x", url: "https://twitter.com/mytoken" },
|
|
89
|
+
{ platform: "telegram", url: "https://t.me/mytoken" },
|
|
90
90
|
],
|
|
91
91
|
auditUrls: ["https://example.com/audit"],
|
|
92
92
|
},
|
|
@@ -15,7 +15,10 @@ declare const clankerTokenV4: z.ZodObject<{
|
|
|
15
15
|
/** Metadata for the token. */
|
|
16
16
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
17
17
|
description: z.ZodOptional<z.ZodString>;
|
|
18
|
-
socialMediaUrls: z.ZodOptional<z.ZodArray<z.
|
|
18
|
+
socialMediaUrls: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
19
|
+
platform: z.ZodString;
|
|
20
|
+
url: z.ZodString;
|
|
21
|
+
}, z.core.$strip>>>;
|
|
19
22
|
auditUrls: z.ZodOptional<z.ZodArray<z.ZodURL>>;
|
|
20
23
|
}, z.core.$strict>>;
|
|
21
24
|
/** Social provenance for the token. Interface defaults to "SDK" if not set. */
|
|
@@ -27,7 +30,7 @@ declare const clankerTokenV4: z.ZodObject<{
|
|
|
27
30
|
}, z.core.$strict>>;
|
|
28
31
|
/** Pool information */
|
|
29
32
|
pool: z.ZodPrefault<z.ZodObject<{
|
|
30
|
-
pairedToken: z.ZodDefault<z.ZodCustom<`0x${string}`, `0x${string}
|
|
33
|
+
pairedToken: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"WETH">, z.ZodCustom<`0x${string}`, `0x${string}`>]>>;
|
|
31
34
|
tickIfToken0IsClanker: z.ZodDefault<z.ZodNumber>;
|
|
32
35
|
tickSpacing: z.ZodDefault<z.ZodNumber>;
|
|
33
36
|
positions: z.ZodArray<z.ZodObject<{
|
|
@@ -38,7 +41,7 @@ declare const clankerTokenV4: z.ZodObject<{
|
|
|
38
41
|
}, z.core.$strip>>;
|
|
39
42
|
/** Token locker */
|
|
40
43
|
locker: z.ZodPrefault<z.ZodObject<{
|
|
41
|
-
locker: z.ZodLiteral<`0x${string}
|
|
44
|
+
locker: z.ZodUnion<readonly [z.ZodLiteral<"Locker">, z.ZodCustom<`0x${string}`, `0x${string}`>]>;
|
|
42
45
|
lockerData: z.ZodDefault<z.ZodCustom<`0x${string}`, `0x${string}`>>;
|
|
43
46
|
}, z.core.$strip>>;
|
|
44
47
|
/** Token vault. Tokens are locked for some duration with possible vesting. */
|
package/dist/cli/cli.js
CHANGED
|
@@ -720,14 +720,11 @@ var init_Clanker = __esm({
|
|
|
720
720
|
});
|
|
721
721
|
|
|
722
722
|
// src/constants.ts
|
|
723
|
-
|
|
724
|
-
var CLANKER_FACTORY_V3_1, WETH_ADDRESS, DEGEN_ADDRESS, NATIVE_ADDRESS, CLANKER_ADDRESS, ANON_ADDRESS, HIGHER_ADDRESS, CB_BTC_ADDRESS, A0X_ADDRESS, SUPPORTED_CHAINS, DEFAULT_SUPPLY;
|
|
723
|
+
var DEGEN_ADDRESS, NATIVE_ADDRESS, CLANKER_ADDRESS, ANON_ADDRESS, HIGHER_ADDRESS, CB_BTC_ADDRESS, A0X_ADDRESS, WETH_ADDRESSES, DEFAULT_SUPPLY;
|
|
725
724
|
var init_constants = __esm({
|
|
726
725
|
"src/constants.ts"() {
|
|
727
726
|
"use strict";
|
|
728
727
|
init_esm_shims();
|
|
729
|
-
CLANKER_FACTORY_V3_1 = "0x2A787b2362021cC3eEa3C24C4748a6cD5B687382";
|
|
730
|
-
WETH_ADDRESS = "0x4200000000000000000000000000000000000006";
|
|
731
728
|
DEGEN_ADDRESS = "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed";
|
|
732
729
|
NATIVE_ADDRESS = "0x20DD04c17AFD5c9a8b3f2cdacaa8Ee7907385BEF";
|
|
733
730
|
CLANKER_ADDRESS = "0x1bc0c42215582d5A085795f4baDbaC3ff36d1Bcb";
|
|
@@ -735,7 +732,10 @@ var init_constants = __esm({
|
|
|
735
732
|
HIGHER_ADDRESS = "0x0578d8A44db98B23BF096A382e016e29a5Ce0ffe";
|
|
736
733
|
CB_BTC_ADDRESS = "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf";
|
|
737
734
|
A0X_ADDRESS = "0x820C5F0fB255a1D18fd0eBB0F1CCefbC4D546dA7";
|
|
738
|
-
|
|
735
|
+
WETH_ADDRESSES = {
|
|
736
|
+
8453: "0x4200000000000000000000000000000000000006",
|
|
737
|
+
84532: "0x4200000000000000000000000000000000000006"
|
|
738
|
+
};
|
|
739
739
|
DEFAULT_SUPPLY = 100000000000000000000000000000n;
|
|
740
740
|
}
|
|
741
741
|
});
|
|
@@ -3715,7 +3715,7 @@ var init_Clanker6 = __esm({
|
|
|
3715
3715
|
});
|
|
3716
3716
|
|
|
3717
3717
|
// src/utils/clankers.ts
|
|
3718
|
-
import { base
|
|
3718
|
+
import { base, baseSepolia } from "viem/chains";
|
|
3719
3719
|
var CLANKERS, Chains, ClankerDeployments;
|
|
3720
3720
|
var init_clankers = __esm({
|
|
3721
3721
|
"src/utils/clankers.ts"() {
|
|
@@ -3730,21 +3730,21 @@ var init_clankers = __esm({
|
|
|
3730
3730
|
CLANKERS = {
|
|
3731
3731
|
clanker_v0: {
|
|
3732
3732
|
abi: Clanker_v0_abi,
|
|
3733
|
-
chainId:
|
|
3733
|
+
chainId: base.id,
|
|
3734
3734
|
type: "proxy",
|
|
3735
3735
|
address: "0x250c9FB2b411B48273f69879007803790A6AeA47",
|
|
3736
3736
|
related: void 0
|
|
3737
3737
|
},
|
|
3738
3738
|
clanker_v1: {
|
|
3739
3739
|
abi: Clanker_v1_abi,
|
|
3740
|
-
chainId:
|
|
3740
|
+
chainId: base.id,
|
|
3741
3741
|
type: "clanker",
|
|
3742
3742
|
address: "0x9B84fcE5Dcd9a38d2D01d5D72373F6b6b067c3e1",
|
|
3743
3743
|
related: void 0
|
|
3744
3744
|
},
|
|
3745
3745
|
clanker_v2: {
|
|
3746
3746
|
abi: Clanker_v2_abi,
|
|
3747
|
-
chainId:
|
|
3747
|
+
chainId: base.id,
|
|
3748
3748
|
type: "clanker_v2",
|
|
3749
3749
|
address: "0x732560fa1d1A76350b1A500155BA978031B53833",
|
|
3750
3750
|
related: {
|
|
@@ -3753,7 +3753,7 @@ var init_clankers = __esm({
|
|
|
3753
3753
|
},
|
|
3754
3754
|
clanker_v3: {
|
|
3755
3755
|
abi: Clanker_v3_abi,
|
|
3756
|
-
chainId:
|
|
3756
|
+
chainId: base.id,
|
|
3757
3757
|
type: "clanker_v3",
|
|
3758
3758
|
address: "0x375C15db32D28cEcdcAB5C03Ab889bf15cbD2c5E",
|
|
3759
3759
|
related: {
|
|
@@ -3762,7 +3762,7 @@ var init_clankers = __esm({
|
|
|
3762
3762
|
},
|
|
3763
3763
|
clanker_v3_1: {
|
|
3764
3764
|
abi: Clanker_v3_1_abi,
|
|
3765
|
-
chainId:
|
|
3765
|
+
chainId: base.id,
|
|
3766
3766
|
type: "clanker_v3_1",
|
|
3767
3767
|
address: "0x2A787b2362021cC3eEa3C24C4748a6cD5B687382",
|
|
3768
3768
|
related: {
|
|
@@ -3772,7 +3772,7 @@ var init_clankers = __esm({
|
|
|
3772
3772
|
},
|
|
3773
3773
|
clanker_v4: {
|
|
3774
3774
|
abi: Clanker_v4_abi,
|
|
3775
|
-
chainId:
|
|
3775
|
+
chainId: base.id,
|
|
3776
3776
|
type: "clanker_v4",
|
|
3777
3777
|
address: "0xE85A59c628F7d27878ACeB4bf3b35733630083a9",
|
|
3778
3778
|
related: {
|
|
@@ -3780,7 +3780,7 @@ var init_clankers = __esm({
|
|
|
3780
3780
|
vault: "0x8E845EAd15737bF71904A30BdDD3aEE76d6ADF6C",
|
|
3781
3781
|
airdrop: "0x56Fa0Da89eD94822e46734e736d34Cab72dF344F",
|
|
3782
3782
|
devbuy: "0x1331f0788F9c08C8F38D52c7a1152250A9dE00be",
|
|
3783
|
-
mevModule: "
|
|
3783
|
+
mevModule: "0xFdc013ce003980889cFfd66b0c8329545ae1d1E8",
|
|
3784
3784
|
feeLocker: "0xF3622742b1E446D92e45E22923Ef11C2fcD55D68",
|
|
3785
3785
|
feeStaticHook: "0xDd5EeaFf7BD481AD55Db083062b13a3cdf0A68CC",
|
|
3786
3786
|
feeDynamicHook: "0x34a45c6B61876d739400Bd71228CbcbD4F53E8cC"
|
|
@@ -3788,7 +3788,7 @@ var init_clankers = __esm({
|
|
|
3788
3788
|
},
|
|
3789
3789
|
clanker_v4_sepolia: {
|
|
3790
3790
|
abi: Clanker_v4_abi,
|
|
3791
|
-
chainId:
|
|
3791
|
+
chainId: baseSepolia.id,
|
|
3792
3792
|
type: "clanker_v4",
|
|
3793
3793
|
address: "0xE85A59c628F7d27878ACeB4bf3b35733630083a9",
|
|
3794
3794
|
related: {
|
|
@@ -3796,9 +3796,9 @@ var init_clankers = __esm({
|
|
|
3796
3796
|
vault: "0xcC80d1226F899a78fC2E459a1500A13C373CE0A5",
|
|
3797
3797
|
airdrop: "0x29d17C1A8D851d7d4cA97FAe97AcAdb398D9cCE0",
|
|
3798
3798
|
devbuy: "0x691f97752E91feAcD7933F32a1FEdCeDae7bB59c",
|
|
3799
|
-
mevModule: "
|
|
3799
|
+
mevModule: "0x261fE99C4D0D41EE8d0e594D11aec740E8354ab0",
|
|
3800
3800
|
feeLocker: "0x42A95190B4088C88Dd904d930c79deC1158bF09D",
|
|
3801
|
-
feeStaticHook: "
|
|
3801
|
+
feeStaticHook: "0xDFcCcfBeef7F3Fc8b16027Ce6feACb48024068cC",
|
|
3802
3802
|
feeDynamicHook: "0xE63b0A59100698f379F9B577441A561bAF9828cc"
|
|
3803
3803
|
}
|
|
3804
3804
|
}
|
|
@@ -3854,7 +3854,7 @@ var init_zod_onchain = __esm({
|
|
|
3854
3854
|
/** Description of the token or token project. */
|
|
3855
3855
|
description: z.string().optional(),
|
|
3856
3856
|
/** Socials for the token. These may be displayed on aggregators. */
|
|
3857
|
-
socialMediaUrls: z.array(z.url()).optional(),
|
|
3857
|
+
socialMediaUrls: z.array(z.object({ platform: z.string(), url: z.string() })).optional(),
|
|
3858
3858
|
/** Audits for other contracts or services offered by the project. */
|
|
3859
3859
|
auditUrls: z.array(z.url()).optional()
|
|
3860
3860
|
});
|
|
@@ -3883,6 +3883,7 @@ var init_zod_onchain = __esm({
|
|
|
3883
3883
|
|
|
3884
3884
|
// src/config/clankerTokenV3.ts
|
|
3885
3885
|
import { isAddress as isAddress2, stringify } from "viem";
|
|
3886
|
+
import { base as base2 } from "viem/chains";
|
|
3886
3887
|
import * as z2 from "zod/v4";
|
|
3887
3888
|
function getRelativeUnixTimestamp(unixTimestamp) {
|
|
3888
3889
|
let vestingDuration = BigInt(0);
|
|
@@ -3906,6 +3907,7 @@ var init_clankerTokenV3 = __esm({
|
|
|
3906
3907
|
init_Clanker();
|
|
3907
3908
|
init_constants();
|
|
3908
3909
|
init_vanityAddress();
|
|
3910
|
+
init_clankers();
|
|
3909
3911
|
init_zod_onchain();
|
|
3910
3912
|
clankerTokenV3 = z2.strictObject({
|
|
3911
3913
|
/** Name of the token. Example: "My Token". */
|
|
@@ -4006,7 +4008,7 @@ var init_clankerTokenV3 = __esm({
|
|
|
4006
4008
|
const vestingDuration = cfg.vault.durationInDays ? getRelativeUnixTimestamp(vestingUnlockDate) : 0n;
|
|
4007
4009
|
return {
|
|
4008
4010
|
abi: Clanker_v3_1_abi,
|
|
4009
|
-
address:
|
|
4011
|
+
address: CLANKERS.clanker_v3_1.address,
|
|
4010
4012
|
functionName: "deployToken",
|
|
4011
4013
|
args: [
|
|
4012
4014
|
{
|
|
@@ -4047,7 +4049,7 @@ var init_clankerTokenV3 = __esm({
|
|
|
4047
4049
|
};
|
|
4048
4050
|
};
|
|
4049
4051
|
getTokenPairByAddress = (address) => {
|
|
4050
|
-
if (address ===
|
|
4052
|
+
if (address === WETH_ADDRESSES[base2.id]) {
|
|
4051
4053
|
return "WETH";
|
|
4052
4054
|
}
|
|
4053
4055
|
if (address === DEGEN_ADDRESS) {
|
|
@@ -4075,7 +4077,7 @@ var init_clankerTokenV3 = __esm({
|
|
|
4075
4077
|
};
|
|
4076
4078
|
getDesiredPriceAndPairAddress = (pair, marketCap = 10) => {
|
|
4077
4079
|
let desiredPrice = 1e-10;
|
|
4078
|
-
let pairAddress =
|
|
4080
|
+
let pairAddress = WETH_ADDRESSES[base2.id];
|
|
4079
4081
|
if (pair === "WETH") {
|
|
4080
4082
|
desiredPrice = marketCap * 1e-11;
|
|
4081
4083
|
}
|
|
@@ -4323,8 +4325,8 @@ var init_v3 = __esm({
|
|
|
4323
4325
|
init_esm_shims();
|
|
4324
4326
|
init_Clanker();
|
|
4325
4327
|
init_clankerTokenV3();
|
|
4326
|
-
init_constants();
|
|
4327
4328
|
init_deploy();
|
|
4329
|
+
init_clankers();
|
|
4328
4330
|
init_write_clanker_contracts();
|
|
4329
4331
|
Clanker = class {
|
|
4330
4332
|
wallet;
|
|
@@ -4341,7 +4343,7 @@ var init_v3 = __esm({
|
|
|
4341
4343
|
*/
|
|
4342
4344
|
async getClaimRewardsTransaction(token) {
|
|
4343
4345
|
return {
|
|
4344
|
-
address:
|
|
4346
|
+
address: CLANKERS.clanker_v3_1.address,
|
|
4345
4347
|
abi: Clanker_v3_1_abi,
|
|
4346
4348
|
functionName: "claimRewards",
|
|
4347
4349
|
args: [token]
|
|
@@ -4766,10 +4768,14 @@ RPC_URL=your_custom_rpc_url (if not provided, will use default Base RPC)
|
|
|
4766
4768
|
const vaultPercentage = answers.vaultConfig.vaultPercentage === "CUSTOM" ? parseInt(answers.customVaultPercentage || "0", 10) : parseInt(answers.vaultConfig.vaultPercentage, 10);
|
|
4767
4769
|
const vaultDuration = answers.vaultConfig.durationInDays === "CUSTOM" ? parseInt(answers.customVaultDuration || "31", 10) : parseInt(answers.vaultConfig.durationInDays, 10);
|
|
4768
4770
|
const socialMediaUrls = [];
|
|
4769
|
-
if (answers.metadata.telegram)
|
|
4770
|
-
|
|
4771
|
-
if (answers.metadata.
|
|
4772
|
-
|
|
4771
|
+
if (answers.metadata.telegram)
|
|
4772
|
+
socialMediaUrls.push({ platform: "telegram", url: answers.metadata.telegram });
|
|
4773
|
+
if (answers.metadata.website)
|
|
4774
|
+
socialMediaUrls.push({ platform: "website", url: answers.metadata.website });
|
|
4775
|
+
if (answers.metadata.twitter)
|
|
4776
|
+
socialMediaUrls.push({ platform: "twitter", url: answers.metadata.twitter });
|
|
4777
|
+
if (answers.metadata.farcaster)
|
|
4778
|
+
socialMediaUrls.push({ platform: "farcaster", url: answers.metadata.farcaster });
|
|
4773
4779
|
const metadata = {
|
|
4774
4780
|
description: answers.metadata.description,
|
|
4775
4781
|
socialMediaUrls,
|
|
@@ -4808,7 +4814,7 @@ RPC_URL=your_custom_rpc_url (if not provided, will use default Base RPC)
|
|
|
4808
4814
|
publicClient
|
|
4809
4815
|
});
|
|
4810
4816
|
console.log("\n\u{1F504} Preparing deployment configuration...");
|
|
4811
|
-
const quoteToken = answers.pairedTokenChoice === "WETH" ?
|
|
4817
|
+
const quoteToken = answers.pairedTokenChoice === "WETH" ? WETH_ADDRESS : answers.pairedTokenChoice === "USDC" ? USDC_ADDRESS : answers.customPairedToken;
|
|
4812
4818
|
const token = {
|
|
4813
4819
|
name: answers.name,
|
|
4814
4820
|
symbol: answers.symbol,
|
|
@@ -4916,7 +4922,7 @@ RPC_URL=your_custom_rpc_url (if not provided, will use default Base RPC)
|
|
|
4916
4922
|
}
|
|
4917
4923
|
await main2();
|
|
4918
4924
|
}
|
|
4919
|
-
var ASCII_ART,
|
|
4925
|
+
var ASCII_ART, WETH_ADDRESS, USDC_ADDRESS, create_clanker_default;
|
|
4920
4926
|
var init_create_clanker = __esm({
|
|
4921
4927
|
"src/cli/create-clanker.ts"() {
|
|
4922
4928
|
"use strict";
|
|
@@ -4924,7 +4930,7 @@ var init_create_clanker = __esm({
|
|
|
4924
4930
|
init_v3();
|
|
4925
4931
|
dotenv.config();
|
|
4926
4932
|
ASCII_ART = fs.readFileSync(path2.join(__dirname, "ascii.txt"), "utf8");
|
|
4927
|
-
|
|
4933
|
+
WETH_ADDRESS = "0x4200000000000000000000000000000000000006";
|
|
4928
4934
|
USDC_ADDRESS = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
|
|
4929
4935
|
create_clanker_default = createClanker;
|
|
4930
4936
|
if (process.argv[1] === fileURLToPath2(import.meta.url)) {
|
|
@@ -709,12 +709,10 @@ var Clanker_v3_1_abi = [
|
|
|
709
709
|
|
|
710
710
|
// src/config/clankerTokenV3.ts
|
|
711
711
|
import { isAddress as isAddress2, stringify } from "viem";
|
|
712
|
+
import { base as base2 } from "viem/chains";
|
|
712
713
|
import * as z2 from "zod/v4";
|
|
713
714
|
|
|
714
715
|
// src/constants.ts
|
|
715
|
-
import { base, baseSepolia } from "viem/chains";
|
|
716
|
-
var CLANKER_FACTORY_V3_1 = "0x2A787b2362021cC3eEa3C24C4748a6cD5B687382";
|
|
717
|
-
var WETH_ADDRESS = "0x4200000000000000000000000000000000000006";
|
|
718
716
|
var DEGEN_ADDRESS = "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed";
|
|
719
717
|
var NATIVE_ADDRESS = "0x20DD04c17AFD5c9a8b3f2cdacaa8Ee7907385BEF";
|
|
720
718
|
var CLANKER_ADDRESS = "0x1bc0c42215582d5A085795f4baDbaC3ff36d1Bcb";
|
|
@@ -722,7 +720,10 @@ var ANON_ADDRESS = "0x0Db510e79909666d6dEc7f5e49370838c16D950f";
|
|
|
722
720
|
var HIGHER_ADDRESS = "0x0578d8A44db98B23BF096A382e016e29a5Ce0ffe";
|
|
723
721
|
var CB_BTC_ADDRESS = "0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf";
|
|
724
722
|
var A0X_ADDRESS = "0x820C5F0fB255a1D18fd0eBB0F1CCefbC4D546dA7";
|
|
725
|
-
var
|
|
723
|
+
var WETH_ADDRESSES = {
|
|
724
|
+
8453: "0x4200000000000000000000000000000000000006",
|
|
725
|
+
84532: "0x4200000000000000000000000000000000000006"
|
|
726
|
+
};
|
|
726
727
|
var DEFAULT_SUPPLY = 100000000000000000000000000000n;
|
|
727
728
|
|
|
728
729
|
// src/services/vanityAddress.ts
|
|
@@ -1939,7 +1940,7 @@ var ClankerToken_v3_1_monad_abi = [
|
|
|
1939
1940
|
var ClankerToken_v3_1_monad_bytecode = "0x61016060405234610141576140a2803803809161001b82610159565b610160396101008161016001911261014157610160516001600160401b038111610141578161004d91610160016101b9565b610180516001600160401b038111610141578261006d91610160016101b9565b6101a05161007c6101c061020e565b6101e0516001600160401b038111610141578561009c91610160016101b9565b610200519091906001600160401b03811161014157866100bf91610160016101b9565b610220519093906001600160401b038111610141576100f0976100e591610160016101b9565b946102405196610669565b604051612ffa908161106882396080518161210a015260a051816121c7015260c051816120db015260e051816121590152610100518161217f01526101205181610bf701526101405181610c200152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b610160601f91909101601f19168101906001600160401b0382119082101761018057604052565b610145565b601f909101601f19168101906001600160401b0382119082101761018057604052565b604051906101b7604083610185565b565b81601f82011215610141578051906001600160401b03821161018057604051926101ed601f8401601f191660200185610185565b8284526020838301011161014157815f9260208093018386015e8301015290565b51906001600160a01b038216820361014157565b90600182811c92168015610250575b602083101461023c57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610231565b601f8111610266575050565b60035f5260205f20906020601f840160051c830193106102a0575b601f0160051c01905b818110610295575050565b5f815560010161028a565b9091508190610281565b601f82116102b757505050565b5f5260205f20906020601f840160051c830193106102ef575b601f0160051c01905b8181106102e4575050565b5f81556001016102d9565b90915081906102d0565b80519091906001600160401b038111610180576103228161031b600454610222565b60046102aa565b602092601f821160011461036257610352929382915f92610357575b50508160011b915f199060031b1c19161790565b600455565b015190505f8061033e565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106103c657508360019596106103ae575b505050811b01600455565b01515f1960f88460031b161c191690555f80806103a3565b91926020600181928685015181550194019201610390565b80519091906001600160401b0381116101805761040781610400600e54610222565b600e6102aa565b602092601f821160011461043b57610436929382915f926103575750508160011b915f199060031b1c19161790565b600e55565b600e5f52601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b86811061049f5750836001959610610487575b505050811b01600e55565b01515f1960f88460031b161c191690555f808061047c565b91926020600181928685015181550194019201610469565b80519091906001600160401b038111610180576104e0816104d9600c54610222565b600c6102aa565b602092601f82116001146105145761050f929382915f926103575750508160011b915f199060031b1c19161790565b600c55565b600c5f52601f198216937fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8681106105785750836001959610610560575b505050811b01600c55565b01515f1960f88460031b161c191690555f8080610555565b91926020600181928685015181550194019201610542565b80519091906001600160401b038111610180576105b9816105b2600d54610222565b600d6102aa565b602092601f82116001146105ed576105e8929382915f926103575750508160011b915f199060031b1c19161790565b600d55565b600d5f52601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5915f5b8681106106515750836001959610610639575b505050811b01600d55565b01515f1960f88460031b161c191690555f808061062e565b9192602060018192868501518155019401920161061b565b969594939291966040519061067f604083610185565b60018252603160f81b6020830190815281519093906001600160401b038111610180576106b6816106b1600354610222565b61025a565b6020601f821160011461078f5793610762936107026107719b9a98946106fa856107679a9661076c9d9a5f91610784575b508160011b915f199060031b1c19161790565b6003556102f9565b61070b816108d2565b61012052610718826109c7565b610140526020815191012060e052519020610100524660a052610739610ab9565b6080523060c052600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6103de565b6104b7565b610590565b461461077a5750565b6101b79033610826565b90508501515f6106e7565b60035f52601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f5b81811061080e57506107719b9a989460018561076c9c999561076299956107679c9861070296106107f6575b5050811b016003556102f9565b8601515f1960f88460031b161c191690555f806107e9565b9192602060018192868a0151815501940192016107bd565b91906001600160a01b03831680156108bf576002548281018091116108ba576002555f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3600254926001600160d01b038085116108a357506101b7929350610b96565b630e58ae9360e11b5f52600485905260245260445ffd5b610b82565b63ec442f0560e01b5f525f60045260245ffd5b908151602081105f146108ed5750906108ea90610b17565b90565b6001600160401b038111610180576109118161090a600554610222565b60056102aa565b602092601f821160011461094857610940929382915f926103575750508160011b915f199060031b1c19161790565b60055560ff90565b60055f52601f198216937f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0915f5b8681106109af5750836001959610610997575b505050811b0160055560ff90565b01515f1960f88460031b161c191690555f8080610989565b91926020600181928685015181550194019201610976565b908151602081105f146109df5750906108ea90610b17565b6001600160401b03811161018057610a03816109fc600654610222565b60066102aa565b602092601f8211600114610a3a57610a32929382915f926103575750508160011b915f199060031b1c19161790565b60065560ff90565b60065f52601f198216937ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f915f5b868110610aa15750836001959610610a89575b505050811b0160065560ff90565b01515f1960f88460031b161c191690555f8080610a7b565b91926020600181928685015181550194019201610a68565b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a08152610b1160c082610185565b51902090565b601f815111610b42576020815191015160208210610b33571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b634e487b7160e01b5f52601160045260245ffd5b90610ba081610c95565b9165ffffffffffff4311610c7d57600a5480610c475750610bda610bca6101b7945f5b600161100b565b65ffffffffffff4316600a610f35565b50506001600160a01b03168015610c2f575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f9182526040909120546001600160a01b039081169116610dc4565b610c40610c3b83610c95565b610cc6565b5050610bec565b92835f198101116108ba57600a5f525f5160206140625f395f51905f52909301546101b793610bda91610bca919060301c610bc3565b6306dfcc6560e41b5f5260306004524360245260445ffd5b6001600160d01b038111610caf576001600160d01b031690565b6306dfcc6560e41b5f5260d060045260245260445ffd5b65ffffffffffff4311610c7d57600a5480610cf05750610bca610cec915f5b600261100b565b9091565b805f198101116108ba57600a5f525f5160206140625f395f51905f520154610cec91610bca9160301c610ce5565b65ffffffffffff4311610c7d57805480610d525750610d42610cec925f600261100b565b9065ffffffffffff431690610f35565b805f198101116108ba575f82815260209020015f190154610cec92610d429160301c610ce5565b65ffffffffffff4311610c7d57805480610d9d5750610d42610cec925f600161100b565b805f198101116108ba575f82815260209020015f190154610cec92610d429160301c610bc3565b6001600160a01b03808316939291908116908185141580610eb7575b610dec575b5050505050565b81610e5d575b505082610e01575b8080610de5565b6001600160a01b03165f9081526009602052604090205f5160206140825f395f51905f5291610e3a91610e349091610c95565b90610d79565b604080516001600160d01b039384168152919092166020820152a25f8080610dfa565b6001600160a01b03165f9081526009602052604090205f5160206140825f395f51905f5290610e9590610e8f86610c95565b90610d1e565b604080516001600160d01b039384168152919092166020820152a25f80610df2565b50831515610de0565b5f198101919082116108ba57565b908154680100000000000000008110156101805760018101808455811015610f21575f9283526020928390208251929093015160301b65ffffffffffff191665ffffffffffff9290921691909117910155565b634e487b7160e01b5f52603260045260245ffd5b80549293928015610fe157610f4c610f5791610ec0565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411610fd257879303610f9e5750610f9a92509065ffffffffffff82549181199060301b169116179055565b9190565b915050610f9a91610fbe610fb06101a8565b65ffffffffffff9093168352565b6001600160d01b0386166020830152610ece565b632520601d60e01b5f5260045ffd5b509061100691610ff2610fb06101a8565b6001600160d01b0385166020830152610ece565b5f9190565b9190918060011461104d5760021461103157634e487b7160e01b5f52605160045260245ffd5b6001600160d01b03908116918116919091039081116108ba5790565b506001600160d01b03918216908216019081116108ba579056fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a71461025457806306fdde031461024f578063095ea7b31461024a57806318160ddd1461024557806318bf50771461024057806323b872dd1461023b5780632b8c49e314610236578063313ce567146102315780633644e5151461022c578063392f37e9146102275780633a46b1a81461022257806342966c681461021d5780634bf5d7e914610218578063587cde1e146102135780635c19a95c1461020e5780636fcfff451461020957806370a082311461020457806379cc6790146101ff5780637ecebe00146101fa57806380007e83146101f557806384b0196e146101f05780638e539e8c146101eb578063918b5be1146101e657806391ddadf4146101e157806395d89b41146101dc5780639ab24eb0146101d7578063a9059cbb146101d2578063aba83150146101cd578063c3cda520146101c8578063d0496d6a146101c3578063d505accf146101be578063dd62ed3e146101b9578063eb3d68e7146101b4578063f1127ed8146101af578063f851a440146101aa5763fc735e99146101a5575f80fd5b6119de565b6119ab565b6118d5565b611761565b6116ee565b611553565b6114ae565b611340565b61127b565b611255565b6111ed565b611148565b61111d565b610f70565b610d16565b610bdf565b610bbd565b610b78565b610b48565b610b06565b610a7e565b610a5c565b610a01565b610958565b610939565b610871565b6107cc565b6107aa565b61078f565b610709565b6106d1565b61051d565b610500565b6104cf565b610391565b34610336576020600319360112610336576004357fffffffff000000000000000000000000000000000000000000000000000000008116809103610336577f3333199400000000000000000000000000000000000000000000000000000000811490811561030c575b81156102e2575b81156102d9575b506040519015158152602090f35b9050155f6102cb565b7f01ffc9a700000000000000000000000000000000000000000000000000000000811491506102c4565b7f36372b0700000000000000000000000000000000000000000000000000000000811491506102bd565b5f80fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602061038e92818152019061033a565b90565b34610336575f600319360112610336576040515f6003546103b181611abd565b808452906001811690811561044757506001146103e9575b6103e5836103d981850382610e88565b6040519182918261037d565b0390f35b60035f9081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b80821061042d575090915081016020016103d96103c9565b919260018160209254838588010152019101909291610415565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506103d990506103c9565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033657565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033657565b34610336576040600319360112610336576104f56104eb610489565b6024359033612418565b602060405160018152f35b34610336575f600319360112610336576020600254604051908152f35b3461033657604060031936011261033657610536610489565b6024359073420000000000000000000000000000000000002833036106a95773ffffffffffffffffffffffffffffffffffffffff811690811561067d5761058761058284600254612251565b600255565b6105ae8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b838154019055815f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef604051806105ea88829190602083019252565b0390a360025479ffffffffffffffffffffffffffffffffffffffffffffffffffff9081811161064f5750508261061f91612ccc565b60405191825233917fde22baff038e3a3e08407cbdf617deed74e869a7ba517df611e33131c6e6ea0490602090a3005b7f1cb15d26000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610336576060600319360112610336576104f56106ed610489565b6106f56104ac565b60443591610704833383611c66565b611dcb565b3461033657604060031936011261033657610722610489565b60243573420000000000000000000000000000000000002833036106a95761074a8183611f3e565b6040519081527fb90795a66650155983e242cac3e1ac1a4dc26f8ed2987f3ce416a34e00111fd4602073ffffffffffffffffffffffffffffffffffffffff33941692a3005b34610336575f60031936011261033657602060405160128152f35b34610336575f6003193601126103365760206107c46120c4565b604051908152f35b34610336575f600319360112610336576040515f600c546107ec81611abd565b80845290600181169081156104475750600114610813576103e5836103d981850382610e88565b600c5f9081527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7939250905b808210610857575090915081016020016103d96103c9565b91926001816020925483858801015201910190929161083f565b346103365760406003193601126103365761088a610489565b60243565ffffffffffff61089d436121ed565b168082101561090a576103e579ffffffffffffffffffffffffffffffffffffffffffffffffffff6108f98473ffffffffffffffffffffffffffffffffffffffff87165f5260096020526108f360405f20916121ed565b9061225e565b604051911681529081906020820190565b907fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b346103365760206003193601126103365761095660043533611f3e565b005b34610336575f60031936011261033657610971436121ed565b65ffffffffffff80610982436121ed565b169116036109d9576103e560405161099b604082610e88565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015260405191829160208352602083019061033a565b7f6ff07140000000000000000000000000000000000000000000000000000000005f5260045ffd5b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610a2f610489565b165f526008602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461033657602060031936011261033657610956610a78610489565b336122ef565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610aac610489565b165f52600960205260405f205463ffffffff8111610ad65760405163ffffffff9091168152602090f35b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52602060045260245260445ffd5b346103365760206003193601126103365760206107c4610b24610489565b73ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b3461033657604060031936011261033657610956610b64610489565b60243590610b73823383611c66565b611f3e565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff610ba6610489565b165f526007602052602060405f2054604051908152f35b34610336575f60031936011261033657602060ff600f54166040519015158152f35b34610336575f60031936011261033657610cbd610c1b7f000000000000000000000000000000000000000000000000000000000000000061284c565b610c447f00000000000000000000000000000000000000000000000000000000000000006128c5565b6020604051610c538282610e88565b5f815281610ccb818301947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe083013687376040519788977f0f00000000000000000000000000000000000000000000000000000000000000895260e0858a015260e089019061033a565b90878203604089015261033a565b914660608701523060808701525f60a087015285830360c087015251918281520192915f5b828110610cff57505050500390f35b835185528695509381019392810192600101610cf0565b346103365760206003193601126103365760043565ffffffffffff610d3a436121ed565b169081811015610e0c57610d4d906121ed565b600a54905f829160058411610db3575b610d699350600a612661565b80610d97575060205f5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff60405191168152f35b610da2602091612235565b600a5f52815f20015460301c610d73565b9192610dbe816124ec565b8103908111610e0757610d6993600a5f5265ffffffffffff8260205f2001541665ffffffffffff8516105f14610df5575091610d5d565b929150610e0190612243565b90610d5d565b611a90565b7fecd3f81e000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff821117610e8357604052565b610e3a565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610e8357604052565b60405190610ed8604083610e88565b565b60206003198201126103365760043567ffffffffffffffff811161033657816023820112156103365780600401359067ffffffffffffffff8211610e835760405192610f4e601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185610e88565b8284526024838301011161033657815f92602460209301838601378301015290565b3461033657610f7e36610eda565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110f557805167ffffffffffffffff8111610e8357610fc281610fbd600c54611abd565b611bae565b6020601f8211600114611032579161101382611022937ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f4955f91611027575b505f198260011b9260031b1c19161790565b600c556040519182918261037d565b0390a1005b90508301515f611001565b600c5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b8181106110dd5750927ff26c33166d6eefdac067b052550e7713b98ff0ffc4abb3caf719a1de36b651f494926001928261102296106110c5575b5050811b01600c556103d9565b8401515f1960f88460031b161c191690555f806110b8565b9192602060018192868901518155019401920161107e565b7f7bfa4b9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610336575f600319360112610336576020611138436121ed565b65ffffffffffff60405191168152f35b34610336575f600319360112610336576040515f60045461116881611abd565b8084529060018116908115610447575060011461118f576103e5836103d981850382610e88565b60045f9081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b8082106111d3575090915081016020016103d96103c9565b9192600181602092548385880101520191019092916111bb565b346103365760206003193601126103365773ffffffffffffffffffffffffffffffffffffffff61121b610489565b165f526009602052602079ffffffffffffffffffffffffffffffffffffffffffffffffffff61124c60405f2061239f565b16604051908152f35b34610336576040600319360112610336576104f5611271610489565b6024359033611dcb565b34610336575f600319360112610336576040515f600e5461129b81611abd565b808452906001811690811561044757506001146112c2576103e5836103d981850382610e88565b600e5f9081527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd939250905b808210611306575090915081016020016103d96103c9565b9192600181602092548385880101520191019092916112ee565b6064359060ff8216820361033657565b6084359060ff8216820361033657565b346103365760c060031936011261033657611359610489565b60243590604435611368611320565b6084359060a4359280421161148357916113fb93916113ed6113f29460405160208101917fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835273ffffffffffffffffffffffffffffffffffffffff8a1660408301528a60608301526080820152608081526113e560a082610e88565b5190206123c8565b6128fc565b909291926129cd565b61142c8173ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b80930361143d5761095692506122ef565b73ffffffffffffffffffffffffffffffffffffffff91507f752d88c0000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b7f4683af0e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b34610336575f600319360112610336576040515f600d546114ce81611abd565b808452906001811690811561044757506001146114f5576103e5836103d981850382610e88565b600d5f9081527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5939250905b808210611539575090915081016020016103d96103c9565b919260018160209254838588010152019101909291611521565b346103365760e06003193601126103365761156c610489565b6115746104ac565b6044359060643592611584611330565b60a43560c435908642116116c2576116549261164f6115ca8673ffffffffffffffffffffffffffffffffffffffff165f52600760205260405f2080549060018201905590565b9860405160208101917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9835273ffffffffffffffffffffffffffffffffffffffff89169b8c604084015273ffffffffffffffffffffffffffffffffffffffff8b1660608401528b608084015260a083015260c082015260c081526113e560e082610e88565b612409565b9373ffffffffffffffffffffffffffffffffffffffff85160361167b576109569350612418565b7f4b800e46000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8085166004521660245260445ffd5b867f62791302000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461033657604060031936011261033657602061175861170c610489565b73ffffffffffffffffffffffffffffffffffffffff6117296104ac565b91165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b346103365761176f36610eda565b73ffffffffffffffffffffffffffffffffffffffff600b541633036110f557805167ffffffffffffffff8111610e83576117b3816117ae600e54611abd565b611bfe565b6020601f8211600114611812579161180382611022937fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b55524216955f9161102757505f198260011b9260031b1c19161790565b600e556040519182918261037d565b600e5f527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216907fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd915f5b8181106118bd5750927fa27234ca678ebcb3cd33e8325c5563cd8d9ff626cc44a58b6ea2bf4b5552421694926001928261102296106118a5575b5050811b01600e556103d9565b8401515f1960f88460031b161c191690555f80611898565b9192602060018192868901518155019401920161185e565b34610336576040600319360112610336576118ee610489565b6024359063ffffffff82168203610336576103e59173ffffffffffffffffffffffffffffffffffffffff61194892611924611c4e565b5061192d611c4e565b50165f52600960205260405f20611942611c4e565b50612a94565b506040519061195682610e67565b5465ffffffffffff8116825260301c602082015260405191829182919091602079ffffffffffffffffffffffffffffffffffffffffffffffffffff81604084019565ffffffffffff8151168552015116910152565b34610336575f60031936011261033657602073ffffffffffffffffffffffffffffffffffffffff600b5416604051908152f35b34610336575f6003193601126103365773ffffffffffffffffffffffffffffffffffffffff600b541633036110f557600f5460ff8116611a68577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600f5530337f78a953f3f0d92abc078a34e5d4fedf8708e788e1b29300b3d6170e97f88a13fc5f80a3005b7f118fd7b8000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b90600182811c92168015611b04575b6020831014611ad757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611acc565b5f9291815491611b1d83611abd565b8083529260018116908115611b725750600114611b3957505050565b5f9081526020812093945091925b838310611b58575060209250010190565b600181602092949394548385870101520191019190611b47565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b601f8111611bba575050565b600c5f5260205f20906020601f840160051c83019310611bf4575b601f0160051c01905b818110611be9575050565b5f8155600101611bde565b9091508190611bd5565b601f8111611c0a575050565b600e5f5260205f20906020601f840160051c83019310611c44575b601f0160051c01905b818110611c39575050565b5f8155600101611c2e565b9091508190611c25565b60405190611c5b82610e67565b5f6020838281520152565b73ffffffffffffffffffffffffffffffffffffffff909291921690815f526001602052611cb48360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b545f198103611cc4575b50505050565b818110611d83578215611d575773ffffffffffffffffffffffffffffffffffffffff841615611d2b57611d21925f526001602052039160405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f808080611cbe565b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff847ffb8f41b2000000000000000000000000000000000000000000000000000000005f521660045260245260445260645ffd5b92919073ffffffffffffffffffffffffffffffffffffffff8416938415611f125773ffffffffffffffffffffffffffffffffffffffff8216801561067d57611e308273ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5495848710611ec65784610ed8969703611e678473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b55611e8f8473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b8054860190556040518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a3612d5f565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff83166004526024879052604485905260645ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff8116908115611f1257611f838173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b548381106120795790611fbb84610ed8959493039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5581600254036002555f817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405180602081018782520390a38015612061575b61200d61200883612ad6565b612c6b565b50505f908152600860205260408120549080527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c75473ffffffffffffffffffffffffffffffffffffffff90811691166126c5565b61207261206d83612ad6565b612c0a565b5050611ffc565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff909116600452602452604482905260645ffd5b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163014806121c4575b1561212c577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526121be60c082610e88565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614612103565b65ffffffffffff81116122055765ffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f52603060045260245260445ffd5b905f198201918211610e0757565b9060018201809211610e0757565b91908201809211610e0757565b908154905f82916005841161229c575b612279935084612661565b806122845750505f90565b61228d90612235565b905f5260205f20015460301c90565b91926122a7816124ec565b8103908111610e075761227993855f5265ffffffffffff8260205f2001541665ffffffffffff8516105f146122dd57509161226e565b9291506122e990612243565b9061226e565b73ffffffffffffffffffffffffffffffffffffffff8181165f81815260086020526040812080548685167fffffffffffffffffffffffff000000000000000000000000000000000000000082168117909255610ed8969416946123999390928691907f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9080a473ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f205490565b916126c5565b8054806123ac5750505f90565b805f19810111610e07575f19915f5260205f2001015460301c90565b6042906123d36120c4565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9161038e93916113f2936128fc565b73ffffffffffffffffffffffffffffffffffffffff16908115611d575773ffffffffffffffffffffffffffffffffffffffff8116928315611d2b57806124a87f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92593855f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b55604051908152602090a3565b81156124bf570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b600181111561038e5780600170010000000000000000000000000000000083101561261f575b6125c56125bb6125b16125a761259d6125936125826125cc9760048a680100000000000000006125d19c1015612612575b640100000000811015612605575b620100008110156125f8575b6101008110156125eb575b60108110156125de575b10156125d6575b60030260011c90565b61258c818b6124b5565b0160011c90565b61258c818a6124b5565b61258c81896124b5565b61258c81886124b5565b61258c81876124b5565b61258c81866124b5565b80936124b5565b821190565b900390565b60011b612579565b60041c9160021b91612572565b60081c9160041b91612568565b60101c9160081b9161255d565b60201c9160101b91612551565b60401c9160201b91612543565b50506125d16125cc6125c56125bb6125b16125a761259d6125936125826126468a60801c90565b98506801000000000000000097506125129650505050505050565b91905b8382106126715750505090565b9091928083169080841860011c8201809211610e0757845f5265ffffffffffff8260205f2001541665ffffffffffff8416105f146126b35750925b9190612664565b9392506126bf90612243565b916126ac565b919073ffffffffffffffffffffffffffffffffffffffff81169273ffffffffffffffffffffffffffffffffffffffff8116908482141580612843575b61270d575b5050505050565b816127c0575b505082612722575b8080612706565b6127b561279c7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249361279661279079ffffffffffffffffffffffffffffffffffffffffffffffffffff9573ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b91612ad6565b90612baa565b6040805192851683529316602082015291829190820190565b0390a25f808061271b565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff61283961279c61282a7fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249473ffffffffffffffffffffffffffffffffffffffff165f52600960205260405f2090565b61283388612ad6565b90612b46565b0390a25f80612713565b50831515612701565b60ff81146128ab5760ff811690601f82116128835760405191612870604084610e88565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b5060405161038e816128be816005611b0e565b0382610e88565b60ff81146128e95760ff811690601f82116128835760405191612870604084610e88565b5060405161038e816128be816006611b0e565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161298b579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15612980575f5173ffffffffffffffffffffffffffffffffffffffff81161561297657905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b600411156129a057565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6129d681612996565b806129df575050565b6129e881612996565b60018103612a18577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b612a2181612996565b60028103612a5557507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b80612a61600392612996565b14612a695750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8054821015612aa9575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b79ffffffffffffffffffffffffffffffffffffffffffffffffffff8111612b165779ffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b7f6dfcc650000000000000000000000000000000000000000000000000000000005f5260d060045260245260445ffd5b90612b50436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612b768561239f565b92169116039079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610e0757612ba692612e91565b9091565b90612bb4436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612bda8561239f565b92169116019079ffffffffffffffffffffffffffffffffffffffffffffffffffff8211610e0757612ba692612e91565b612c13436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c3a600a61239f565b921691160179ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610e0757612ba691600a612e91565b612c74436121ed565b9079ffffffffffffffffffffffffffffffffffffffffffffffffffff80612c9b600a61239f565b921691160379ffffffffffffffffffffffffffffffffffffffffffffffffffff8111610e0757612ba691600a612e91565b9073ffffffffffffffffffffffffffffffffffffffff610ed892612cf261206d84612ad6565b5050168015612d4c575b60086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7545f91825260409091205473ffffffffffffffffffffffffffffffffffffffff90811691166126c5565b612d5861200883612ad6565b5050612cfc565b9073ffffffffffffffffffffffffffffffffffffffff80610ed8949316918215612deb575b16908115612dd8575b5f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416905f52600860205273ffffffffffffffffffffffffffffffffffffffff60405f205416906126c5565b612de461200884612ad6565b5050612d8d565b612df761206d85612ad6565b5050612d84565b805468010000000000000000811015610e8357612e2091600182018155612a94565b612e655781516020929092015160301b7fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff92909216919091179055565b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b80549293928015612f8757612ea8612eb391612235565b825f5260205f200190565b8054603081901c9365ffffffffffff91821692918116808411612f5f57879303612f185750612f1492509065ffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000083549260301b169116179055565b9190565b915050612f1491612f38612f2a610ec9565b65ffffffffffff9093168352565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff86166020830152612dfe565b7f2520601d000000000000000000000000000000000000000000000000000000005f5260045ffd5b5090612fbf91612f98612f2a610ec9565b79ffffffffffffffffffffffffffffffffffffffffffffffffffff85166020830152612dfe565b5f919056fea26469706673582212204e1de4ea938b928df16b4d797528b3228dc67d526470a44525dd87cdb1d41bf164736f6c634300081c0033c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a7dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724";
|
|
1940
1941
|
|
|
1941
1942
|
// src/utils/clankers.ts
|
|
1942
|
-
import { base
|
|
1943
|
+
import { base, baseSepolia } from "viem/chains";
|
|
1943
1944
|
|
|
1944
1945
|
// src/abi/v0/Clanker.ts
|
|
1945
1946
|
var Clanker_v0_abi = [
|
|
@@ -3660,21 +3661,21 @@ var Clanker_v4_abi = [
|
|
|
3660
3661
|
var CLANKERS = {
|
|
3661
3662
|
clanker_v0: {
|
|
3662
3663
|
abi: Clanker_v0_abi,
|
|
3663
|
-
chainId:
|
|
3664
|
+
chainId: base.id,
|
|
3664
3665
|
type: "proxy",
|
|
3665
3666
|
address: "0x250c9FB2b411B48273f69879007803790A6AeA47",
|
|
3666
3667
|
related: void 0
|
|
3667
3668
|
},
|
|
3668
3669
|
clanker_v1: {
|
|
3669
3670
|
abi: Clanker_v1_abi,
|
|
3670
|
-
chainId:
|
|
3671
|
+
chainId: base.id,
|
|
3671
3672
|
type: "clanker",
|
|
3672
3673
|
address: "0x9B84fcE5Dcd9a38d2D01d5D72373F6b6b067c3e1",
|
|
3673
3674
|
related: void 0
|
|
3674
3675
|
},
|
|
3675
3676
|
clanker_v2: {
|
|
3676
3677
|
abi: Clanker_v2_abi,
|
|
3677
|
-
chainId:
|
|
3678
|
+
chainId: base.id,
|
|
3678
3679
|
type: "clanker_v2",
|
|
3679
3680
|
address: "0x732560fa1d1A76350b1A500155BA978031B53833",
|
|
3680
3681
|
related: {
|
|
@@ -3683,7 +3684,7 @@ var CLANKERS = {
|
|
|
3683
3684
|
},
|
|
3684
3685
|
clanker_v3: {
|
|
3685
3686
|
abi: Clanker_v3_abi,
|
|
3686
|
-
chainId:
|
|
3687
|
+
chainId: base.id,
|
|
3687
3688
|
type: "clanker_v3",
|
|
3688
3689
|
address: "0x375C15db32D28cEcdcAB5C03Ab889bf15cbD2c5E",
|
|
3689
3690
|
related: {
|
|
@@ -3692,7 +3693,7 @@ var CLANKERS = {
|
|
|
3692
3693
|
},
|
|
3693
3694
|
clanker_v3_1: {
|
|
3694
3695
|
abi: Clanker_v3_1_abi,
|
|
3695
|
-
chainId:
|
|
3696
|
+
chainId: base.id,
|
|
3696
3697
|
type: "clanker_v3_1",
|
|
3697
3698
|
address: "0x2A787b2362021cC3eEa3C24C4748a6cD5B687382",
|
|
3698
3699
|
related: {
|
|
@@ -3702,7 +3703,7 @@ var CLANKERS = {
|
|
|
3702
3703
|
},
|
|
3703
3704
|
clanker_v4: {
|
|
3704
3705
|
abi: Clanker_v4_abi,
|
|
3705
|
-
chainId:
|
|
3706
|
+
chainId: base.id,
|
|
3706
3707
|
type: "clanker_v4",
|
|
3707
3708
|
address: "0xE85A59c628F7d27878ACeB4bf3b35733630083a9",
|
|
3708
3709
|
related: {
|
|
@@ -3710,7 +3711,7 @@ var CLANKERS = {
|
|
|
3710
3711
|
vault: "0x8E845EAd15737bF71904A30BdDD3aEE76d6ADF6C",
|
|
3711
3712
|
airdrop: "0x56Fa0Da89eD94822e46734e736d34Cab72dF344F",
|
|
3712
3713
|
devbuy: "0x1331f0788F9c08C8F38D52c7a1152250A9dE00be",
|
|
3713
|
-
mevModule: "
|
|
3714
|
+
mevModule: "0xFdc013ce003980889cFfd66b0c8329545ae1d1E8",
|
|
3714
3715
|
feeLocker: "0xF3622742b1E446D92e45E22923Ef11C2fcD55D68",
|
|
3715
3716
|
feeStaticHook: "0xDd5EeaFf7BD481AD55Db083062b13a3cdf0A68CC",
|
|
3716
3717
|
feeDynamicHook: "0x34a45c6B61876d739400Bd71228CbcbD4F53E8cC"
|
|
@@ -3718,7 +3719,7 @@ var CLANKERS = {
|
|
|
3718
3719
|
},
|
|
3719
3720
|
clanker_v4_sepolia: {
|
|
3720
3721
|
abi: Clanker_v4_abi,
|
|
3721
|
-
chainId:
|
|
3722
|
+
chainId: baseSepolia.id,
|
|
3722
3723
|
type: "clanker_v4",
|
|
3723
3724
|
address: "0xE85A59c628F7d27878ACeB4bf3b35733630083a9",
|
|
3724
3725
|
related: {
|
|
@@ -3726,9 +3727,9 @@ var CLANKERS = {
|
|
|
3726
3727
|
vault: "0xcC80d1226F899a78fC2E459a1500A13C373CE0A5",
|
|
3727
3728
|
airdrop: "0x29d17C1A8D851d7d4cA97FAe97AcAdb398D9cCE0",
|
|
3728
3729
|
devbuy: "0x691f97752E91feAcD7933F32a1FEdCeDae7bB59c",
|
|
3729
|
-
mevModule: "
|
|
3730
|
+
mevModule: "0x261fE99C4D0D41EE8d0e594D11aec740E8354ab0",
|
|
3730
3731
|
feeLocker: "0x42A95190B4088C88Dd904d930c79deC1158bF09D",
|
|
3731
|
-
feeStaticHook: "
|
|
3732
|
+
feeStaticHook: "0xDFcCcfBeef7F3Fc8b16027Ce6feACb48024068cC",
|
|
3732
3733
|
feeDynamicHook: "0xE63b0A59100698f379F9B577441A561bAF9828cc"
|
|
3733
3734
|
}
|
|
3734
3735
|
}
|
|
@@ -3765,7 +3766,7 @@ var ClankerMetadataSchema = z.strictObject({
|
|
|
3765
3766
|
/** Description of the token or token project. */
|
|
3766
3767
|
description: z.string().optional(),
|
|
3767
3768
|
/** Socials for the token. These may be displayed on aggregators. */
|
|
3768
|
-
socialMediaUrls: z.array(z.url()).optional(),
|
|
3769
|
+
socialMediaUrls: z.array(z.object({ platform: z.string(), url: z.string() })).optional(),
|
|
3769
3770
|
/** Audits for other contracts or services offered by the project. */
|
|
3770
3771
|
auditUrls: z.array(z.url()).optional()
|
|
3771
3772
|
});
|
|
@@ -3890,7 +3891,7 @@ var clankerTokenV3Converter = async (config2, options) => {
|
|
|
3890
3891
|
const vestingDuration = cfg.vault.durationInDays ? getRelativeUnixTimestamp(vestingUnlockDate) : 0n;
|
|
3891
3892
|
return {
|
|
3892
3893
|
abi: Clanker_v3_1_abi,
|
|
3893
|
-
address:
|
|
3894
|
+
address: CLANKERS.clanker_v3_1.address,
|
|
3894
3895
|
functionName: "deployToken",
|
|
3895
3896
|
args: [
|
|
3896
3897
|
{
|
|
@@ -3945,7 +3946,7 @@ function getRelativeUnixTimestamp(unixTimestamp) {
|
|
|
3945
3946
|
return vestingDuration;
|
|
3946
3947
|
}
|
|
3947
3948
|
var getTokenPairByAddress = (address) => {
|
|
3948
|
-
if (address ===
|
|
3949
|
+
if (address === WETH_ADDRESSES[base2.id]) {
|
|
3949
3950
|
return "WETH";
|
|
3950
3951
|
}
|
|
3951
3952
|
if (address === DEGEN_ADDRESS) {
|
|
@@ -3973,7 +3974,7 @@ var getTokenPairByAddress = (address) => {
|
|
|
3973
3974
|
};
|
|
3974
3975
|
var getDesiredPriceAndPairAddress = (pair, marketCap = 10) => {
|
|
3975
3976
|
let desiredPrice = 1e-10;
|
|
3976
|
-
let pairAddress =
|
|
3977
|
+
let pairAddress = WETH_ADDRESSES[base2.id];
|
|
3977
3978
|
if (pair === "WETH") {
|
|
3978
3979
|
desiredPrice = marketCap * 1e-11;
|
|
3979
3980
|
}
|
|
@@ -4208,7 +4209,7 @@ var Clanker = class {
|
|
|
4208
4209
|
*/
|
|
4209
4210
|
async getClaimRewardsTransaction(token) {
|
|
4210
4211
|
return {
|
|
4211
|
-
address:
|
|
4212
|
+
address: CLANKERS.clanker_v3_1.address,
|
|
4212
4213
|
abi: Clanker_v3_1_abi,
|
|
4213
4214
|
functionName: "claimRewards",
|
|
4214
4215
|
args: [token]
|
|
@@ -4282,7 +4283,7 @@ var Clanker = class {
|
|
|
4282
4283
|
// src/cli/create-clanker.ts
|
|
4283
4284
|
dotenv.config();
|
|
4284
4285
|
var ASCII_ART = fs.readFileSync(path2.join(__dirname, "ascii.txt"), "utf8");
|
|
4285
|
-
var
|
|
4286
|
+
var WETH_ADDRESS = "0x4200000000000000000000000000000000000006";
|
|
4286
4287
|
var USDC_ADDRESS = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
|
|
4287
4288
|
async function createClanker() {
|
|
4288
4289
|
const PRIVATE_KEY = process.env.PRIVATE_KEY;
|
|
@@ -4623,10 +4624,14 @@ RPC_URL=your_custom_rpc_url (if not provided, will use default Base RPC)
|
|
|
4623
4624
|
const vaultPercentage = answers.vaultConfig.vaultPercentage === "CUSTOM" ? parseInt(answers.customVaultPercentage || "0", 10) : parseInt(answers.vaultConfig.vaultPercentage, 10);
|
|
4624
4625
|
const vaultDuration = answers.vaultConfig.durationInDays === "CUSTOM" ? parseInt(answers.customVaultDuration || "31", 10) : parseInt(answers.vaultConfig.durationInDays, 10);
|
|
4625
4626
|
const socialMediaUrls = [];
|
|
4626
|
-
if (answers.metadata.telegram)
|
|
4627
|
-
|
|
4628
|
-
if (answers.metadata.
|
|
4629
|
-
|
|
4627
|
+
if (answers.metadata.telegram)
|
|
4628
|
+
socialMediaUrls.push({ platform: "telegram", url: answers.metadata.telegram });
|
|
4629
|
+
if (answers.metadata.website)
|
|
4630
|
+
socialMediaUrls.push({ platform: "website", url: answers.metadata.website });
|
|
4631
|
+
if (answers.metadata.twitter)
|
|
4632
|
+
socialMediaUrls.push({ platform: "twitter", url: answers.metadata.twitter });
|
|
4633
|
+
if (answers.metadata.farcaster)
|
|
4634
|
+
socialMediaUrls.push({ platform: "farcaster", url: answers.metadata.farcaster });
|
|
4630
4635
|
const metadata = {
|
|
4631
4636
|
description: answers.metadata.description,
|
|
4632
4637
|
socialMediaUrls,
|
|
@@ -4665,7 +4670,7 @@ RPC_URL=your_custom_rpc_url (if not provided, will use default Base RPC)
|
|
|
4665
4670
|
publicClient
|
|
4666
4671
|
});
|
|
4667
4672
|
console.log("\n\u{1F504} Preparing deployment configuration...");
|
|
4668
|
-
const quoteToken = answers.pairedTokenChoice === "WETH" ?
|
|
4673
|
+
const quoteToken = answers.pairedTokenChoice === "WETH" ? WETH_ADDRESS : answers.pairedTokenChoice === "USDC" ? USDC_ADDRESS : answers.customPairedToken;
|
|
4669
4674
|
const token = {
|
|
4670
4675
|
name: answers.name,
|
|
4671
4676
|
symbol: answers.symbol,
|