clanker-sdk 4.2.16 → 4.2.17

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/cli/cli.js CHANGED
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
 
3
3
  // src/cli/cli.ts
4
- import { readFileSync as readFileSync3 } from "node:fs";
5
- import { dirname, join as join2 } from "node:path";
6
- import { fileURLToPath } from "node:url";
4
+ import { readFileSync as readFileSync3 } from "fs";
5
+ import { dirname, join as join2 } from "path";
6
+ import { fileURLToPath } from "url";
7
7
  import { Command } from "commander";
8
8
 
9
9
  // src/cli/commands/airdrop.ts
10
- import * as fs from "node:fs";
10
+ import * as fs from "fs";
11
11
 
12
12
  // src/utils/merkleTree.ts
13
13
  import { StandardMerkleTree } from "@openzeppelin/merkle-tree";
@@ -5548,6 +5548,33 @@ var monad = /* @__PURE__ */ defineChain({
5548
5548
  testnet: false
5549
5549
  });
5550
5550
 
5551
+ // src/utils/chains/robinhood.ts
5552
+ import { defineChain as defineChain2 } from "viem";
5553
+ var robinhood = /* @__PURE__ */ defineChain2({
5554
+ id: 4663,
5555
+ name: "Robinhood Chain",
5556
+ blockTime: 100,
5557
+ nativeCurrency: {
5558
+ name: "Ether",
5559
+ symbol: "ETH",
5560
+ decimals: 18
5561
+ },
5562
+ rpcUrls: {
5563
+ default: {
5564
+ http: ["https://rpc.mainnet.chain.robinhood.com"]
5565
+ }
5566
+ },
5567
+ blockExplorers: {
5568
+ default: {
5569
+ name: "Robinhood Chain Blockscout Explorer",
5570
+ url: "https://robinhoodchain.blockscout.com"
5571
+ }
5572
+ },
5573
+ contracts: {},
5574
+ testnet: false
5575
+ });
5576
+ var ROBINHOOD_WETH_ADDRESS = "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73";
5577
+
5551
5578
  // src/utils/clankers.ts
5552
5579
  var CLANKERS = {
5553
5580
  clanker_v0: {
@@ -5796,6 +5823,29 @@ var CLANKERS = {
5796
5823
  feeDynamicHook: "0x0000000000000000000000000000000000000000",
5797
5824
  feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
5798
5825
  }
5826
+ },
5827
+ clanker_v4_robinhood: {
5828
+ abi: Clanker_v4_abi,
5829
+ token: {
5830
+ abi: ClankerToken_v4_abi,
5831
+ bytecode: ClankerToken_v4_bytecode
5832
+ },
5833
+ chainId: robinhood.id,
5834
+ type: "clanker_v4",
5835
+ address: "0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",
5836
+ related: {
5837
+ locker: "0x290F735F63824BB5836cDe24a35F5103A5B5Bc99",
5838
+ vault: "0x99B2a80ed21c7af1F5cc1A97383DADeEC7DD1427",
5839
+ airdrop: "0x6f27372FF493A3855E6746b9a4fe6Ed2Cc3034B5",
5840
+ devbuy: "0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a",
5841
+ mevModule: "0xEA1Fe197dF140e5d88fC6B49f2d21Ea05092299e",
5842
+ mevDescendingFees: true,
5843
+ feeLocker: "0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",
5844
+ feeStaticHook: "0x0000000000000000000000000000000000000000",
5845
+ feeStaticHookV2: "0x48B8F6AD3A1b4aA477314c9a23035b8F84dDe8cc",
5846
+ feeDynamicHook: "0x0000000000000000000000000000000000000000",
5847
+ feeDynamicHookV2: "0x65efDF8Cce99b53C925DF878Df275Df21cB6E8Cc"
5848
+ }
5799
5849
  }
5800
5850
  };
5801
5851
  var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
@@ -5822,6 +5872,8 @@ var ClankerError = class _ClankerError extends Error {
5822
5872
  this.error = error;
5823
5873
  this.data = data;
5824
5874
  }
5875
+ error;
5876
+ data;
5825
5877
  static unknown(e, name) {
5826
5878
  return new _ClankerError(e, {
5827
5879
  type: "unknown",
@@ -6987,7 +7039,8 @@ var WETH_ADDRESSES = {
6987
7039
  [abstract2.id]: "0x3439153EB7AF838Ad19d56E1571FBD09333C2809",
6988
7040
  [monadTestnet2.id]: "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",
6989
7041
  // WMON
6990
- [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a"
7042
+ [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
7043
+ [robinhood.id]: ROBINHOOD_WETH_ADDRESS
6991
7044
  };
6992
7045
  var DEFAULT_SUPPLY = 100000000000000000000000000000n;
6993
7046
  var POOL_POSITIONS = {
@@ -7491,7 +7544,7 @@ var clankerTokenV4Converter = async (config) => {
7491
7544
  },
7492
7545
  mevModuleConfig: {
7493
7546
  mevModule: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevModule,
7494
- mevModuleData: clankerConfig.related?.mevModuleV2 ? encodeAbiParameters3(Clanker_MevSniperAuction_InitData_v4_1_abi, [
7547
+ mevModuleData: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevDescendingFees ? encodeAbiParameters3(Clanker_MevSniperAuction_InitData_v4_1_abi, [
7495
7548
  {
7496
7549
  startingFee: cfg.sniperFees.startingFee,
7497
7550
  endingFee: cfg.sniperFees.endingFee,
@@ -8439,7 +8492,8 @@ var CHAIN_MAP = {
8439
8492
  ethereum: mainnet3,
8440
8493
  bsc: bsc3,
8441
8494
  unichain: unichain3,
8442
- monad
8495
+ monad,
8496
+ robinhood
8443
8497
  };
8444
8498
  var CHAIN_NAMES = Object.keys(CHAIN_MAP);
8445
8499
  function resolveChain(name) {
@@ -8451,9 +8505,9 @@ function resolveChain(name) {
8451
8505
  }
8452
8506
 
8453
8507
  // src/cli/utils/config.ts
8454
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8455
- import { homedir } from "node:os";
8456
- import { join } from "node:path";
8508
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
8509
+ import { homedir } from "os";
8510
+ import { join } from "path";
8457
8511
  var CONFIG_DIR = join(homedir(), ".clanker");
8458
8512
  var CONFIG_PATH = join(CONFIG_DIR, "config.json");
8459
8513
  function ensureDir() {
@@ -10191,21 +10245,16 @@ function buildV4Config(f) {
10191
10245
  };
10192
10246
  return token;
10193
10247
  }
10194
- var CHAIN_ID_MAP = {
10195
- base: 8453,
10196
- "base-sepolia": 84532,
10197
- arbitrum: 42161,
10198
- ethereum: 1,
10199
- bsc: 56,
10200
- unichain: 130,
10201
- monad: 143
10202
- };
10203
10248
  function resolveChainId(name) {
10204
- return CHAIN_ID_MAP[name] || 8453;
10249
+ try {
10250
+ return resolveChain(name).id;
10251
+ } catch {
10252
+ return 8453;
10253
+ }
10205
10254
  }
10206
10255
  function resolveChainName(chainId) {
10207
- for (const [name, id] of Object.entries(CHAIN_ID_MAP)) {
10208
- if (id === chainId) return name;
10256
+ for (const name of CHAIN_NAMES) {
10257
+ if (resolveChain(name).id === chainId) return name;
10209
10258
  }
10210
10259
  return "base";
10211
10260
  }
@@ -10596,7 +10645,8 @@ var PUBLIC_RPCS = {
10596
10645
  arbitrum: "https://arb1.arbitrum.io/rpc",
10597
10646
  ethereum: "https://eth.llamarpc.com",
10598
10647
  bsc: "https://bsc-dataseed.binance.org",
10599
- unichain: "https://mainnet.unichain.org"
10648
+ unichain: "https://mainnet.unichain.org",
10649
+ robinhood: "https://rpc.mainnet.chain.robinhood.com"
10600
10650
  };
10601
10651
  function registerSetupCommand(program2) {
10602
10652
  program2.command("setup").description("Configure wallet and RPC settings").action(async (_opts, command) => {
@@ -1,5 +1,5 @@
1
1
  // src/cli/commands/airdrop.ts
2
- import * as fs from "node:fs";
2
+ import * as fs from "fs";
3
3
 
4
4
  // src/utils/merkleTree.ts
5
5
  import { StandardMerkleTree } from "@openzeppelin/merkle-tree";
@@ -5540,6 +5540,33 @@ var monad = /* @__PURE__ */ defineChain({
5540
5540
  testnet: false
5541
5541
  });
5542
5542
 
5543
+ // src/utils/chains/robinhood.ts
5544
+ import { defineChain as defineChain2 } from "viem";
5545
+ var robinhood = /* @__PURE__ */ defineChain2({
5546
+ id: 4663,
5547
+ name: "Robinhood Chain",
5548
+ blockTime: 100,
5549
+ nativeCurrency: {
5550
+ name: "Ether",
5551
+ symbol: "ETH",
5552
+ decimals: 18
5553
+ },
5554
+ rpcUrls: {
5555
+ default: {
5556
+ http: ["https://rpc.mainnet.chain.robinhood.com"]
5557
+ }
5558
+ },
5559
+ blockExplorers: {
5560
+ default: {
5561
+ name: "Robinhood Chain Blockscout Explorer",
5562
+ url: "https://robinhoodchain.blockscout.com"
5563
+ }
5564
+ },
5565
+ contracts: {},
5566
+ testnet: false
5567
+ });
5568
+ var ROBINHOOD_WETH_ADDRESS = "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73";
5569
+
5543
5570
  // src/utils/clankers.ts
5544
5571
  var CLANKERS = {
5545
5572
  clanker_v0: {
@@ -5788,6 +5815,29 @@ var CLANKERS = {
5788
5815
  feeDynamicHook: "0x0000000000000000000000000000000000000000",
5789
5816
  feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
5790
5817
  }
5818
+ },
5819
+ clanker_v4_robinhood: {
5820
+ abi: Clanker_v4_abi,
5821
+ token: {
5822
+ abi: ClankerToken_v4_abi,
5823
+ bytecode: ClankerToken_v4_bytecode
5824
+ },
5825
+ chainId: robinhood.id,
5826
+ type: "clanker_v4",
5827
+ address: "0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",
5828
+ related: {
5829
+ locker: "0x290F735F63824BB5836cDe24a35F5103A5B5Bc99",
5830
+ vault: "0x99B2a80ed21c7af1F5cc1A97383DADeEC7DD1427",
5831
+ airdrop: "0x6f27372FF493A3855E6746b9a4fe6Ed2Cc3034B5",
5832
+ devbuy: "0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a",
5833
+ mevModule: "0xEA1Fe197dF140e5d88fC6B49f2d21Ea05092299e",
5834
+ mevDescendingFees: true,
5835
+ feeLocker: "0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",
5836
+ feeStaticHook: "0x0000000000000000000000000000000000000000",
5837
+ feeStaticHookV2: "0x48B8F6AD3A1b4aA477314c9a23035b8F84dDe8cc",
5838
+ feeDynamicHook: "0x0000000000000000000000000000000000000000",
5839
+ feeDynamicHookV2: "0x65efDF8Cce99b53C925DF878Df275Df21cB6E8Cc"
5840
+ }
5791
5841
  }
5792
5842
  };
5793
5843
  var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
@@ -5814,6 +5864,8 @@ var ClankerError = class _ClankerError extends Error {
5814
5864
  this.error = error;
5815
5865
  this.data = data;
5816
5866
  }
5867
+ error;
5868
+ data;
5817
5869
  static unknown(e, name) {
5818
5870
  return new _ClankerError(e, {
5819
5871
  type: "unknown",
@@ -6971,7 +7023,8 @@ var WETH_ADDRESSES = {
6971
7023
  [abstract2.id]: "0x3439153EB7AF838Ad19d56E1571FBD09333C2809",
6972
7024
  [monadTestnet2.id]: "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",
6973
7025
  // WMON
6974
- [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a"
7026
+ [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
7027
+ [robinhood.id]: ROBINHOOD_WETH_ADDRESS
6975
7028
  };
6976
7029
  var DEFAULT_SUPPLY = 100000000000000000000000000000n;
6977
7030
  var POOL_POSITIONS = {
@@ -7421,7 +7474,7 @@ var clankerTokenV4Converter = async (config) => {
7421
7474
  },
7422
7475
  mevModuleConfig: {
7423
7476
  mevModule: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevModule,
7424
- mevModuleData: clankerConfig.related?.mevModuleV2 ? encodeAbiParameters3(Clanker_MevSniperAuction_InitData_v4_1_abi, [
7477
+ mevModuleData: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevDescendingFees ? encodeAbiParameters3(Clanker_MevSniperAuction_InitData_v4_1_abi, [
7425
7478
  {
7426
7479
  startingFee: cfg.sniperFees.startingFee,
7427
7480
  endingFee: cfg.sniperFees.endingFee,
@@ -8306,7 +8359,8 @@ var CHAIN_MAP = {
8306
8359
  ethereum: mainnet3,
8307
8360
  bsc: bsc3,
8308
8361
  unichain: unichain3,
8309
- monad
8362
+ monad,
8363
+ robinhood
8310
8364
  };
8311
8365
  var CHAIN_NAMES = Object.keys(CHAIN_MAP);
8312
8366
  function resolveChain(name) {
@@ -8318,9 +8372,9 @@ function resolveChain(name) {
8318
8372
  }
8319
8373
 
8320
8374
  // src/cli/utils/config.ts
8321
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8322
- import { homedir } from "node:os";
8323
- import { join } from "node:path";
8375
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
8376
+ import { homedir } from "os";
8377
+ import { join } from "path";
8324
8378
  var CONFIG_DIR = join(homedir(), ".clanker");
8325
8379
  var CONFIG_PATH = join(CONFIG_DIR, "config.json");
8326
8380
  function loadConfig() {
@@ -1,5 +1,5 @@
1
1
  import { Command } from 'commander';
2
- import { C as ClankerTokenV4 } from '../../clankerTokenV4-NqiH_j7p.js';
2
+ import { C as ClankerTokenV4 } from '../../clankerTokenV4-DCMDdonP.js';
3
3
  import 'viem';
4
4
  import 'zod/v4';
5
5
 
@@ -39,6 +39,33 @@ var monad = /* @__PURE__ */ defineChain({
39
39
  testnet: false
40
40
  });
41
41
 
42
+ // src/utils/chains/robinhood.ts
43
+ import { defineChain as defineChain2 } from "viem";
44
+ var robinhood = /* @__PURE__ */ defineChain2({
45
+ id: 4663,
46
+ name: "Robinhood Chain",
47
+ blockTime: 100,
48
+ nativeCurrency: {
49
+ name: "Ether",
50
+ symbol: "ETH",
51
+ decimals: 18
52
+ },
53
+ rpcUrls: {
54
+ default: {
55
+ http: ["https://rpc.mainnet.chain.robinhood.com"]
56
+ }
57
+ },
58
+ blockExplorers: {
59
+ default: {
60
+ name: "Robinhood Chain Blockscout Explorer",
61
+ url: "https://robinhoodchain.blockscout.com"
62
+ }
63
+ },
64
+ contracts: {},
65
+ testnet: false
66
+ });
67
+ var ROBINHOOD_WETH_ADDRESS = "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73";
68
+
42
69
  // src/constants.ts
43
70
  var DEGEN_ADDRESS = "0x4ed4E862860beD51a9570b96d89aF5E1B0Efefed";
44
71
  var NATIVE_ADDRESS = "0x20DD04c17AFD5c9a8b3f2cdacaa8Ee7907385BEF";
@@ -59,7 +86,8 @@ var WETH_ADDRESSES = {
59
86
  [abstract.id]: "0x3439153EB7AF838Ad19d56E1571FBD09333C2809",
60
87
  [monadTestnet.id]: "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",
61
88
  // WMON
62
- [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a"
89
+ [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
90
+ [robinhood.id]: ROBINHOOD_WETH_ADDRESS
63
91
  };
64
92
  var DEFAULT_SUPPLY = 100000000000000000000000000000n;
65
93
  var POOL_POSITIONS = {
@@ -208,6 +236,8 @@ var ClankerError = class _ClankerError extends Error {
208
236
  this.error = error;
209
237
  this.data = data;
210
238
  }
239
+ error;
240
+ data;
211
241
  static unknown(e, name) {
212
242
  return new _ClankerError(e, {
213
243
  type: "unknown",
@@ -6411,6 +6441,29 @@ var CLANKERS = {
6411
6441
  feeDynamicHook: "0x0000000000000000000000000000000000000000",
6412
6442
  feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
6413
6443
  }
6444
+ },
6445
+ clanker_v4_robinhood: {
6446
+ abi: Clanker_v4_abi,
6447
+ token: {
6448
+ abi: ClankerToken_v4_abi,
6449
+ bytecode: ClankerToken_v4_bytecode
6450
+ },
6451
+ chainId: robinhood.id,
6452
+ type: "clanker_v4",
6453
+ address: "0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",
6454
+ related: {
6455
+ locker: "0x290F735F63824BB5836cDe24a35F5103A5B5Bc99",
6456
+ vault: "0x99B2a80ed21c7af1F5cc1A97383DADeEC7DD1427",
6457
+ airdrop: "0x6f27372FF493A3855E6746b9a4fe6Ed2Cc3034B5",
6458
+ devbuy: "0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a",
6459
+ mevModule: "0xEA1Fe197dF140e5d88fC6B49f2d21Ea05092299e",
6460
+ mevDescendingFees: true,
6461
+ feeLocker: "0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",
6462
+ feeStaticHook: "0x0000000000000000000000000000000000000000",
6463
+ feeStaticHookV2: "0x48B8F6AD3A1b4aA477314c9a23035b8F84dDe8cc",
6464
+ feeDynamicHook: "0x0000000000000000000000000000000000000000",
6465
+ feeDynamicHookV2: "0x65efDF8Cce99b53C925DF878Df275Df21cB6E8Cc"
6466
+ }
6414
6467
  }
6415
6468
  };
6416
6469
  var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
@@ -8423,7 +8476,7 @@ var clankerTokenV4Converter = async (config) => {
8423
8476
  },
8424
8477
  mevModuleConfig: {
8425
8478
  mevModule: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevModule,
8426
- mevModuleData: clankerConfig.related?.mevModuleV2 ? encodeAbiParameters2(Clanker_MevSniperAuction_InitData_v4_1_abi, [
8479
+ mevModuleData: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevDescendingFees ? encodeAbiParameters2(Clanker_MevSniperAuction_InitData_v4_1_abi, [
8427
8480
  {
8428
8481
  startingFee: cfg.sniperFees.startingFee,
8429
8482
  endingFee: cfg.sniperFees.endingFee,
@@ -9112,7 +9165,8 @@ var CHAIN_MAP = {
9112
9165
  ethereum: mainnet3,
9113
9166
  bsc: bsc3,
9114
9167
  unichain: unichain3,
9115
- monad
9168
+ monad,
9169
+ robinhood
9116
9170
  };
9117
9171
  var CHAIN_NAMES = Object.keys(CHAIN_MAP);
9118
9172
  function resolveChain(name) {
@@ -9268,9 +9322,9 @@ import {
9268
9322
  import { privateKeyToAccount } from "viem/accounts";
9269
9323
 
9270
9324
  // src/cli/utils/config.ts
9271
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
9272
- import { homedir } from "node:os";
9273
- import { join } from "node:path";
9325
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
9326
+ import { homedir } from "os";
9327
+ import { join } from "path";
9274
9328
  var CONFIG_DIR = join(homedir(), ".clanker");
9275
9329
  var CONFIG_PATH = join(CONFIG_DIR, "config.json");
9276
9330
  function loadConfig() {
@@ -9309,7 +9363,7 @@ function resolveClients(opts) {
9309
9363
  }
9310
9364
 
9311
9365
  // src/cli/commands/airdrop.ts
9312
- import * as fs from "node:fs";
9366
+ import * as fs from "fs";
9313
9367
 
9314
9368
  // src/utils/merkleTree.ts
9315
9369
  import { StandardMerkleTree as StandardMerkleTree2 } from "@openzeppelin/merkle-tree";
@@ -9709,21 +9763,16 @@ function buildV4Config(f) {
9709
9763
  };
9710
9764
  return token;
9711
9765
  }
9712
- var CHAIN_ID_MAP = {
9713
- base: 8453,
9714
- "base-sepolia": 84532,
9715
- arbitrum: 42161,
9716
- ethereum: 1,
9717
- bsc: 56,
9718
- unichain: 130,
9719
- monad: 143
9720
- };
9721
9766
  function resolveChainId(name) {
9722
- return CHAIN_ID_MAP[name] || 8453;
9767
+ try {
9768
+ return resolveChain(name).id;
9769
+ } catch {
9770
+ return 8453;
9771
+ }
9723
9772
  }
9724
9773
  function resolveChainName(chainId) {
9725
- for (const [name, id] of Object.entries(CHAIN_ID_MAP)) {
9726
- if (id === chainId) return name;
9774
+ for (const name of CHAIN_NAMES) {
9775
+ if (resolveChain(name).id === chainId) return name;
9727
9776
  }
9728
9777
  return "base";
9729
9778
  }
@@ -9,6 +9,8 @@ var ClankerError = class _ClankerError extends Error {
9
9
  this.error = error;
10
10
  this.data = data;
11
11
  }
12
+ error;
13
+ data;
12
14
  static unknown(e, name) {
13
15
  return new _ClankerError(e, {
14
16
  type: "unknown",
@@ -2233,6 +2235,33 @@ var monad = /* @__PURE__ */ defineChain({
2233
2235
  testnet: false
2234
2236
  });
2235
2237
 
2238
+ // src/utils/chains/robinhood.ts
2239
+ import { defineChain as defineChain2 } from "viem";
2240
+ var robinhood = /* @__PURE__ */ defineChain2({
2241
+ id: 4663,
2242
+ name: "Robinhood Chain",
2243
+ blockTime: 100,
2244
+ nativeCurrency: {
2245
+ name: "Ether",
2246
+ symbol: "ETH",
2247
+ decimals: 18
2248
+ },
2249
+ rpcUrls: {
2250
+ default: {
2251
+ http: ["https://rpc.mainnet.chain.robinhood.com"]
2252
+ }
2253
+ },
2254
+ blockExplorers: {
2255
+ default: {
2256
+ name: "Robinhood Chain Blockscout Explorer",
2257
+ url: "https://robinhoodchain.blockscout.com"
2258
+ }
2259
+ },
2260
+ contracts: {},
2261
+ testnet: false
2262
+ });
2263
+ var ROBINHOOD_WETH_ADDRESS = "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73";
2264
+
2236
2265
  // src/constants.ts
2237
2266
  var WBNB_ADDRESS = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
2238
2267
  var WETH_ADDRESSES = {
@@ -2245,7 +2274,8 @@ var WETH_ADDRESSES = {
2245
2274
  [abstract.id]: "0x3439153EB7AF838Ad19d56E1571FBD09333C2809",
2246
2275
  [monadTestnet.id]: "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",
2247
2276
  // WMON
2248
- [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a"
2277
+ [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
2278
+ [robinhood.id]: ROBINHOOD_WETH_ADDRESS
2249
2279
  };
2250
2280
  var DEFAULT_SUPPLY = 100000000000000000000000000000n;
2251
2281
  var POOL_POSITIONS = {
@@ -7451,6 +7481,29 @@ var CLANKERS = {
7451
7481
  feeDynamicHook: "0x0000000000000000000000000000000000000000",
7452
7482
  feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
7453
7483
  }
7484
+ },
7485
+ clanker_v4_robinhood: {
7486
+ abi: Clanker_v4_abi,
7487
+ token: {
7488
+ abi: ClankerToken_v4_abi,
7489
+ bytecode: ClankerToken_v4_bytecode
7490
+ },
7491
+ chainId: robinhood.id,
7492
+ type: "clanker_v4",
7493
+ address: "0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",
7494
+ related: {
7495
+ locker: "0x290F735F63824BB5836cDe24a35F5103A5B5Bc99",
7496
+ vault: "0x99B2a80ed21c7af1F5cc1A97383DADeEC7DD1427",
7497
+ airdrop: "0x6f27372FF493A3855E6746b9a4fe6Ed2Cc3034B5",
7498
+ devbuy: "0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a",
7499
+ mevModule: "0xEA1Fe197dF140e5d88fC6B49f2d21Ea05092299e",
7500
+ mevDescendingFees: true,
7501
+ feeLocker: "0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",
7502
+ feeStaticHook: "0x0000000000000000000000000000000000000000",
7503
+ feeStaticHookV2: "0x48B8F6AD3A1b4aA477314c9a23035b8F84dDe8cc",
7504
+ feeDynamicHook: "0x0000000000000000000000000000000000000000",
7505
+ feeDynamicHookV2: "0x65efDF8Cce99b53C925DF878Df275Df21cB6E8Cc"
7506
+ }
7454
7507
  }
7455
7508
  };
7456
7509
  var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
@@ -7841,7 +7894,7 @@ var clankerTokenV4Converter = async (config) => {
7841
7894
  },
7842
7895
  mevModuleConfig: {
7843
7896
  mevModule: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevModule,
7844
- mevModuleData: clankerConfig.related?.mevModuleV2 ? encodeAbiParameters2(Clanker_MevSniperAuction_InitData_v4_1_abi, [
7897
+ mevModuleData: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevDescendingFees ? encodeAbiParameters2(Clanker_MevSniperAuction_InitData_v4_1_abi, [
7845
7898
  {
7846
7899
  startingFee: cfg.sniperFees.startingFee,
7847
7900
  endingFee: cfg.sniperFees.endingFee,
@@ -9078,7 +9131,8 @@ var CHAIN_MAP = {
9078
9131
  ethereum: mainnet3,
9079
9132
  bsc: bsc3,
9080
9133
  unichain: unichain3,
9081
- monad
9134
+ monad,
9135
+ robinhood
9082
9136
  };
9083
9137
  var CHAIN_NAMES = Object.keys(CHAIN_MAP);
9084
9138
  function resolveChain(name) {
@@ -9090,9 +9144,9 @@ function resolveChain(name) {
9090
9144
  }
9091
9145
 
9092
9146
  // src/cli/utils/config.ts
9093
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
9094
- import { homedir } from "node:os";
9095
- import { join } from "node:path";
9147
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
9148
+ import { homedir } from "os";
9149
+ import { join } from "path";
9096
9150
  var CONFIG_DIR = join(homedir(), ".clanker");
9097
9151
  var CONFIG_PATH = join(CONFIG_DIR, "config.json");
9098
9152
  function loadConfig() {
@@ -1950,6 +1950,33 @@ var monad = /* @__PURE__ */ defineChain({
1950
1950
  testnet: false
1951
1951
  });
1952
1952
 
1953
+ // src/utils/chains/robinhood.ts
1954
+ import { defineChain as defineChain2 } from "viem";
1955
+ var robinhood = /* @__PURE__ */ defineChain2({
1956
+ id: 4663,
1957
+ name: "Robinhood Chain",
1958
+ blockTime: 100,
1959
+ nativeCurrency: {
1960
+ name: "Ether",
1961
+ symbol: "ETH",
1962
+ decimals: 18
1963
+ },
1964
+ rpcUrls: {
1965
+ default: {
1966
+ http: ["https://rpc.mainnet.chain.robinhood.com"]
1967
+ }
1968
+ },
1969
+ blockExplorers: {
1970
+ default: {
1971
+ name: "Robinhood Chain Blockscout Explorer",
1972
+ url: "https://robinhoodchain.blockscout.com"
1973
+ }
1974
+ },
1975
+ contracts: {},
1976
+ testnet: false
1977
+ });
1978
+ var ROBINHOOD_WETH_ADDRESS = "0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73";
1979
+
1953
1980
  // src/constants.ts
1954
1981
  var WBNB_ADDRESS = "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c";
1955
1982
  var WETH_ADDRESSES = {
@@ -1962,7 +1989,8 @@ var WETH_ADDRESSES = {
1962
1989
  [abstract.id]: "0x3439153EB7AF838Ad19d56E1571FBD09333C2809",
1963
1990
  [monadTestnet.id]: "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",
1964
1991
  // WMON
1965
- [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a"
1992
+ [monad.id]: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
1993
+ [robinhood.id]: ROBINHOOD_WETH_ADDRESS
1966
1994
  };
1967
1995
  var DEFAULT_SUPPLY = 100000000000000000000000000000n;
1968
1996
  var POOL_POSITIONS = {
@@ -6613,6 +6641,29 @@ var CLANKERS = {
6613
6641
  feeDynamicHook: "0x0000000000000000000000000000000000000000",
6614
6642
  feeDynamicHookV2: "0x011a8ed40095F2D7E9c19125B8254b19678D68Cc"
6615
6643
  }
6644
+ },
6645
+ clanker_v4_robinhood: {
6646
+ abi: Clanker_v4_abi,
6647
+ token: {
6648
+ abi: ClankerToken_v4_abi,
6649
+ bytecode: ClankerToken_v4_bytecode
6650
+ },
6651
+ chainId: robinhood.id,
6652
+ type: "clanker_v4",
6653
+ address: "0xD3f2cC1731b7Fd17f28798835C2E02f0a1839A94",
6654
+ related: {
6655
+ locker: "0x290F735F63824BB5836cDe24a35F5103A5B5Bc99",
6656
+ vault: "0x99B2a80ed21c7af1F5cc1A97383DADeEC7DD1427",
6657
+ airdrop: "0x6f27372FF493A3855E6746b9a4fe6Ed2Cc3034B5",
6658
+ devbuy: "0xa27b1986e5c7e5371Cb6507f87918fBD0302fF5a",
6659
+ mevModule: "0xEA1Fe197dF140e5d88fC6B49f2d21Ea05092299e",
6660
+ mevDescendingFees: true,
6661
+ feeLocker: "0x88db2340bE5991B2b5Fca2Baee39B5CE048Cd70c",
6662
+ feeStaticHook: "0x0000000000000000000000000000000000000000",
6663
+ feeStaticHookV2: "0x48B8F6AD3A1b4aA477314c9a23035b8F84dDe8cc",
6664
+ feeDynamicHook: "0x0000000000000000000000000000000000000000",
6665
+ feeDynamicHookV2: "0x65efDF8Cce99b53C925DF878Df275Df21cB6E8Cc"
6666
+ }
6616
6667
  }
6617
6668
  };
6618
6669
  var Chains = [...new Set(Object.values(CLANKERS).map(({ chainId }) => chainId))];
@@ -7003,7 +7054,7 @@ var clankerTokenV4Converter = async (config) => {
7003
7054
  },
7004
7055
  mevModuleConfig: {
7005
7056
  mevModule: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevModule,
7006
- mevModuleData: clankerConfig.related?.mevModuleV2 ? encodeAbiParameters2(Clanker_MevSniperAuction_InitData_v4_1_abi, [
7057
+ mevModuleData: clankerConfig.related?.mevModuleV2 || clankerConfig.related?.mevDescendingFees ? encodeAbiParameters2(Clanker_MevSniperAuction_InitData_v4_1_abi, [
7007
7058
  {
7008
7059
  startingFee: cfg.sniperFees.startingFee,
7009
7060
  endingFee: cfg.sniperFees.endingFee,
@@ -7144,6 +7195,8 @@ var ClankerError = class _ClankerError extends Error {
7144
7195
  this.error = error;
7145
7196
  this.data = data;
7146
7197
  }
7198
+ error;
7199
+ data;
7147
7200
  static unknown(e, name) {
7148
7201
  return new _ClankerError(e, {
7149
7202
  type: "unknown",
@@ -8022,7 +8075,8 @@ var CHAIN_MAP = {
8022
8075
  ethereum: mainnet3,
8023
8076
  bsc: bsc3,
8024
8077
  unichain: unichain3,
8025
- monad
8078
+ monad,
8079
+ robinhood
8026
8080
  };
8027
8081
  var CHAIN_NAMES = Object.keys(CHAIN_MAP);
8028
8082
  function resolveChain(name) {
@@ -8034,9 +8088,9 @@ function resolveChain(name) {
8034
8088
  }
8035
8089
 
8036
8090
  // src/cli/utils/config.ts
8037
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
8038
- import { homedir } from "node:os";
8039
- import { join } from "node:path";
8091
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
8092
+ import { homedir } from "os";
8093
+ import { join } from "path";
8040
8094
  var CONFIG_DIR = join(homedir(), ".clanker");
8041
8095
  var CONFIG_PATH = join(CONFIG_DIR, "config.json");
8042
8096
  function loadConfig() {