@claws.fun/cli 1.0.0

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.
Files changed (48) hide show
  1. package/README.md +204 -0
  2. package/dist/commands/buy.d.ts +6 -0
  3. package/dist/commands/buy.d.ts.map +1 -0
  4. package/dist/commands/buy.js +120 -0
  5. package/dist/commands/buy.js.map +1 -0
  6. package/dist/commands/claim.d.ts +6 -0
  7. package/dist/commands/claim.d.ts.map +1 -0
  8. package/dist/commands/claim.js +141 -0
  9. package/dist/commands/claim.js.map +1 -0
  10. package/dist/commands/config.d.ts +6 -0
  11. package/dist/commands/config.d.ts.map +1 -0
  12. package/dist/commands/config.js +107 -0
  13. package/dist/commands/config.js.map +1 -0
  14. package/dist/commands/create.d.ts +6 -0
  15. package/dist/commands/create.d.ts.map +1 -0
  16. package/dist/commands/create.js +174 -0
  17. package/dist/commands/create.js.map +1 -0
  18. package/dist/commands/sell.d.ts +6 -0
  19. package/dist/commands/sell.d.ts.map +1 -0
  20. package/dist/commands/sell.js +134 -0
  21. package/dist/commands/sell.js.map +1 -0
  22. package/dist/commands/status.d.ts +6 -0
  23. package/dist/commands/status.d.ts.map +1 -0
  24. package/dist/commands/status.js +138 -0
  25. package/dist/commands/status.js.map +1 -0
  26. package/dist/index.d.ts +16 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +38 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/utils/config.d.ts +30 -0
  31. package/dist/utils/config.d.ts.map +1 -0
  32. package/dist/utils/config.js +176 -0
  33. package/dist/utils/config.js.map +1 -0
  34. package/dist/utils/contracts.d.ts +15 -0
  35. package/dist/utils/contracts.d.ts.map +1 -0
  36. package/dist/utils/contracts.js +90 -0
  37. package/dist/utils/contracts.js.map +1 -0
  38. package/package.json +48 -0
  39. package/src/commands/buy.ts +136 -0
  40. package/src/commands/claim.ts +152 -0
  41. package/src/commands/config.ts +77 -0
  42. package/src/commands/create.ts +217 -0
  43. package/src/commands/sell.ts +149 -0
  44. package/src/commands/status.ts +148 -0
  45. package/src/index.ts +41 -0
  46. package/src/utils/config.ts +159 -0
  47. package/src/utils/contracts.ts +92 -0
  48. package/tsconfig.json +20 -0
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ /**
3
+ * claws create - Create a new immortal agent
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createCommand = void 0;
10
+ const commander_1 = require("commander");
11
+ const ethers_1 = require("ethers");
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ const ora_1 = __importDefault(require("ora"));
14
+ const inquirer_1 = __importDefault(require("inquirer"));
15
+ const config_1 = require("../utils/config");
16
+ const contracts_1 = require("../utils/contracts");
17
+ exports.createCommand = new commander_1.Command('create')
18
+ .description('Create a new immortal AI agent')
19
+ .option('-n, --name <name>', 'Agent name')
20
+ .option('-s, --symbol <symbol>', 'Token symbol')
21
+ .option('-w, --wallet <address>', 'Agent wallet address (defaults to your wallet)')
22
+ .option('-t, --tier <tier>', 'Tier: premium ($6K mcap) or micro ($1K mcap)', 'premium')
23
+ .option('--social <handle>', 'Social media handle')
24
+ .option('--memory <cid>', 'IPFS CID for memory', '')
25
+ .option('--avatar <cid>', 'IPFS CID for avatar', '')
26
+ .option('--initial-buy <eth>', 'ETH amount for initial token purchase', '0')
27
+ .option('-y, --yes', 'Skip confirmation prompts')
28
+ .action(async (options) => {
29
+ console.log(chalk_1.default.cyan('\nšŸ¦ž Create Immortal Agent\n'));
30
+ // Check wallet
31
+ if (!(0, config_1.hasWallet)()) {
32
+ console.log(chalk_1.default.red('No wallet configured. Run: claws config --key <privateKey>'));
33
+ return;
34
+ }
35
+ const wallet = (0, config_1.getWallet)();
36
+ const config = (0, config_1.getConfig)();
37
+ console.log(chalk_1.default.gray(`Network: ${config.network}`));
38
+ console.log(chalk_1.default.gray(`Wallet: ${wallet.address}\n`));
39
+ // Gather inputs
40
+ let name = options.name;
41
+ let symbol = options.symbol;
42
+ let agentWallet = options.wallet || wallet.address;
43
+ let tier = options.tier;
44
+ // Interactive prompts if not provided
45
+ if (!name || !symbol) {
46
+ const answers = await inquirer_1.default.prompt([
47
+ {
48
+ type: 'input',
49
+ name: 'name',
50
+ message: 'Agent name:',
51
+ when: !name,
52
+ validate: (input) => input.length > 0 || 'Name is required',
53
+ },
54
+ {
55
+ type: 'input',
56
+ name: 'symbol',
57
+ message: 'Token symbol:',
58
+ when: !symbol,
59
+ validate: (input) => input.length > 0 && input.length <= 6 || 'Symbol must be 1-6 characters',
60
+ },
61
+ {
62
+ type: 'list',
63
+ name: 'tier',
64
+ message: 'Select tier:',
65
+ choices: [
66
+ { name: 'Premium - $6K mcap (0.011 ETH)', value: 'premium' },
67
+ { name: 'Micro - $1K mcap (0.0013 ETH)', value: 'micro' },
68
+ ],
69
+ when: !options.tier,
70
+ default: 'premium',
71
+ },
72
+ ]);
73
+ name = name || answers.name;
74
+ symbol = symbol || answers.symbol;
75
+ tier = tier || answers.tier;
76
+ }
77
+ // Get costs
78
+ const factory = (0, contracts_1.getFactoryContract)(wallet);
79
+ const premiumCost = await factory.PREMIUM_TOTAL();
80
+ const microCost = await factory.MICRO_TOTAL();
81
+ const cost = tier === 'premium' ? premiumCost : microCost;
82
+ const initialBuy = ethers_1.ethers.parseEther(options.initialBuy || '0');
83
+ const totalCost = cost + initialBuy;
84
+ // Check balance
85
+ const balance = await wallet.provider?.getBalance(wallet.address);
86
+ if (balance && balance < totalCost) {
87
+ console.log(chalk_1.default.red(`Insufficient balance. Need ${ethers_1.ethers.formatEther(totalCost)} ETH, have ${ethers_1.ethers.formatEther(balance)} ETH`));
88
+ return;
89
+ }
90
+ // Show summary
91
+ console.log(chalk_1.default.yellow('\nAgent Details:'));
92
+ console.log(` Name: ${chalk_1.default.white(name)}`);
93
+ console.log(` Symbol: ${chalk_1.default.white(symbol)}`);
94
+ console.log(` Wallet: ${chalk_1.default.gray(agentWallet)}`);
95
+ console.log(` Tier: ${chalk_1.default.green(tier.toUpperCase())}`);
96
+ console.log(` Cost: ${chalk_1.default.cyan(ethers_1.ethers.formatEther(cost))} ETH`);
97
+ if (initialBuy > 0n) {
98
+ console.log(` Initial Buy: ${chalk_1.default.cyan(ethers_1.ethers.formatEther(initialBuy))} ETH`);
99
+ }
100
+ console.log(` Total: ${chalk_1.default.cyan(ethers_1.ethers.formatEther(totalCost))} ETH`);
101
+ // Confirmation
102
+ if (!options.yes) {
103
+ const { confirm } = await inquirer_1.default.prompt([{
104
+ type: 'confirm',
105
+ name: 'confirm',
106
+ message: 'Create agent?',
107
+ default: true,
108
+ }]);
109
+ if (!confirm) {
110
+ console.log(chalk_1.default.yellow('Cancelled'));
111
+ return;
112
+ }
113
+ }
114
+ // Create agent
115
+ const spinner = (0, ora_1.default)('Creating agent...').start();
116
+ try {
117
+ let tx;
118
+ if (tier === 'micro') {
119
+ tx = await factory.createMicroAgent(agentWallet, ethers_1.ethers.ZeroAddress, // self-created
120
+ name, symbol, options.social || '', options.memory || '', options.avatar || '', '', initialBuy, {
121
+ value: totalCost,
122
+ gasLimit: 8000000,
123
+ });
124
+ }
125
+ else {
126
+ if (initialBuy > 0n) {
127
+ tx = await factory['createAgent(address,address,string,string,string,string,string,string,uint256)'](agentWallet, ethers_1.ethers.ZeroAddress, name, symbol, options.social || '', options.memory || '', options.avatar || '', '', initialBuy, {
128
+ value: totalCost,
129
+ gasLimit: 8000000,
130
+ });
131
+ }
132
+ else {
133
+ tx = await factory['createAgent(address,address,string,string,string,string,string,string)'](agentWallet, ethers_1.ethers.ZeroAddress, name, symbol, options.social || '', options.memory || '', options.avatar || '', '', {
134
+ value: totalCost,
135
+ gasLimit: 8000000,
136
+ });
137
+ }
138
+ }
139
+ spinner.text = 'Waiting for confirmation...';
140
+ const receipt = await tx.wait();
141
+ // Parse events to get token address
142
+ const factoryInterface = factory.interface;
143
+ let tokenAddress = '';
144
+ let poolAddress = '';
145
+ let nftId = '';
146
+ for (const log of receipt.logs) {
147
+ try {
148
+ const parsed = factoryInterface.parseLog(log);
149
+ if (parsed && parsed.name === 'AgentBorn') {
150
+ tokenAddress = parsed.args.token;
151
+ poolAddress = parsed.args.pool;
152
+ nftId = parsed.args.nftId.toString();
153
+ break;
154
+ }
155
+ }
156
+ catch (e) {
157
+ // Skip non-factory events
158
+ }
159
+ }
160
+ spinner.succeed(chalk_1.default.green('Agent created successfully!'));
161
+ console.log('\n' + chalk_1.default.yellow('Agent Details:'));
162
+ console.log(` Token: ${chalk_1.default.green(tokenAddress)}`);
163
+ console.log(` Pool: ${chalk_1.default.gray(poolAddress)}`);
164
+ console.log(` NFT ID: ${chalk_1.default.cyan(nftId)}`);
165
+ console.log(` TX Hash: ${chalk_1.default.gray(receipt.hash)}`);
166
+ console.log(` Gas Used: ${chalk_1.default.gray(receipt.gasUsed.toString())}`);
167
+ console.log('\n' + chalk_1.default.cyan(`šŸ”— View your agent: https://claws.fun/agent/${tokenAddress}`));
168
+ }
169
+ catch (error) {
170
+ spinner.fail(chalk_1.default.red('Failed to create agent'));
171
+ console.log(chalk_1.default.red(`Error: ${error.message || error}`));
172
+ }
173
+ });
174
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * claws sell - Sell agent tokens
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const sellCommand: Command;
6
+ //# sourceMappingURL=sell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sell.d.ts","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,WAAW,SAwIpB,CAAC"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ /**
3
+ * claws sell - Sell agent tokens
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.sellCommand = void 0;
10
+ const commander_1 = require("commander");
11
+ const ethers_1 = require("ethers");
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ const ora_1 = __importDefault(require("ora"));
14
+ const inquirer_1 = __importDefault(require("inquirer"));
15
+ const config_1 = require("../utils/config");
16
+ const contracts_1 = require("../utils/contracts");
17
+ exports.sellCommand = new commander_1.Command('sell')
18
+ .description('Sell agent tokens')
19
+ .argument('<token>', 'Token address to sell')
20
+ .option('-a, --amount <tokens>', 'Token amount to sell (or "all")')
21
+ .option('-y, --yes', 'Skip confirmation')
22
+ .action(async (tokenAddress, options) => {
23
+ console.log(chalk_1.default.cyan('\nšŸ¦ž Sell Agent Tokens\n'));
24
+ if (!(0, config_1.hasWallet)()) {
25
+ console.log(chalk_1.default.red('No wallet configured. Run: claws config --key <privateKey>'));
26
+ return;
27
+ }
28
+ const wallet = (0, config_1.getWallet)();
29
+ const config = (0, config_1.getConfig)();
30
+ const addresses = (0, config_1.getNetworkAddresses)();
31
+ console.log(chalk_1.default.gray(`Network: ${config.network}`));
32
+ console.log(chalk_1.default.gray(`Wallet: ${wallet.address}\n`));
33
+ // Get token info
34
+ const token = (0, contracts_1.getTokenContract)(tokenAddress, wallet);
35
+ try {
36
+ const name = await token.name();
37
+ const symbol = await token.symbol();
38
+ const balance = await token.balanceOf(wallet.address);
39
+ const taxBps = await token.getCurrentTaxBps();
40
+ console.log(chalk_1.default.yellow('Token Info:'));
41
+ console.log(` Name: ${chalk_1.default.white(name)}`);
42
+ console.log(` Symbol: ${chalk_1.default.white(symbol)}`);
43
+ console.log(` Balance: ${chalk_1.default.green(ethers_1.ethers.formatEther(balance))} ${symbol}`);
44
+ console.log(` Tax: ${chalk_1.default.red(Number(taxBps) / 100 + '%')}`);
45
+ if (balance === 0n) {
46
+ console.log(chalk_1.default.yellow('\nNo tokens to sell'));
47
+ return;
48
+ }
49
+ // Get amount
50
+ let amountTokens = options.amount;
51
+ let sellAmount;
52
+ if (!amountTokens) {
53
+ const { amount } = await inquirer_1.default.prompt([{
54
+ type: 'input',
55
+ name: 'amount',
56
+ message: `Token amount to sell (max ${ethers_1.ethers.formatEther(balance)} or "all"):`,
57
+ default: 'all',
58
+ validate: (input) => {
59
+ if (input.toLowerCase() === 'all')
60
+ return true;
61
+ const num = parseFloat(input);
62
+ return num > 0 || 'Must be greater than 0';
63
+ },
64
+ }]);
65
+ amountTokens = amount;
66
+ }
67
+ if (amountTokens.toLowerCase() === 'all') {
68
+ sellAmount = balance;
69
+ }
70
+ else {
71
+ sellAmount = ethers_1.ethers.parseEther(amountTokens);
72
+ if (sellAmount > balance) {
73
+ console.log(chalk_1.default.red('Insufficient token balance'));
74
+ return;
75
+ }
76
+ }
77
+ // Calculate expected output
78
+ const taxDeduction = Number(taxBps) / 10000;
79
+ console.log(`\n Selling: ${chalk_1.default.cyan(ethers_1.ethers.formatEther(sellAmount))} ${symbol}`);
80
+ console.log(` Tax: ${chalk_1.default.red(Number(taxBps) / 100 + '%')} will be deducted`);
81
+ // Confirmation
82
+ if (!options.yes) {
83
+ const { confirm } = await inquirer_1.default.prompt([{
84
+ type: 'confirm',
85
+ name: 'confirm',
86
+ message: 'Proceed with sale?',
87
+ default: true,
88
+ }]);
89
+ if (!confirm) {
90
+ console.log(chalk_1.default.yellow('Cancelled'));
91
+ return;
92
+ }
93
+ }
94
+ // Execute swap
95
+ const spinner = (0, ora_1.default)('Executing swap...').start();
96
+ const swapRouter = (0, contracts_1.getSwapRouterContract)(wallet);
97
+ const weth = (0, contracts_1.getWethContract)(wallet);
98
+ // Approve router
99
+ spinner.text = 'Approving router...';
100
+ const approveTx = await token.approve(addresses.swapRouter, sellAmount);
101
+ await approveTx.wait();
102
+ // Swap tokens for WETH
103
+ spinner.text = 'Swapping tokens for WETH...';
104
+ const swapParams = {
105
+ tokenIn: tokenAddress,
106
+ tokenOut: addresses.weth,
107
+ fee: 10000, // 1% fee tier
108
+ recipient: wallet.address,
109
+ amountIn: sellAmount,
110
+ amountOutMinimum: 0, // No slippage protection for simplicity
111
+ sqrtPriceLimitX96: 0,
112
+ };
113
+ const swapTx = await swapRouter.exactInputSingle(swapParams);
114
+ await swapTx.wait();
115
+ // Unwrap WETH
116
+ spinner.text = 'Unwrapping WETH...';
117
+ const wethBalance = await weth.balanceOf(wallet.address);
118
+ if (wethBalance > 0n) {
119
+ const unwrapTx = await weth.withdraw(wethBalance);
120
+ await unwrapTx.wait();
121
+ }
122
+ // Get new balances
123
+ const newTokenBalance = await token.balanceOf(wallet.address);
124
+ const ethBalance = await wallet.provider?.getBalance(wallet.address);
125
+ spinner.succeed(chalk_1.default.green('Sale complete!'));
126
+ console.log('\n' + chalk_1.default.yellow('Result:'));
127
+ console.log(` Remaining tokens: ${chalk_1.default.cyan(ethers_1.ethers.formatEther(newTokenBalance))} ${symbol}`);
128
+ console.log(` ETH balance: ${chalk_1.default.green(ethers_1.ethers.formatEther(ethBalance || 0n))} ETH`);
129
+ }
130
+ catch (error) {
131
+ console.log(chalk_1.default.red(`Error: ${error.message || error}`));
132
+ }
133
+ });
134
+ //# sourceMappingURL=sell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sell.js","sourceRoot":"","sources":["../../src/commands/sell.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * claws status - Check agent status
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const statusCommand: Command;
6
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SAyItB,CAAC"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ /**
3
+ * claws status - Check agent status
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.statusCommand = void 0;
10
+ const commander_1 = require("commander");
11
+ const ethers_1 = require("ethers");
12
+ const chalk_1 = __importDefault(require("chalk"));
13
+ const config_1 = require("../utils/config");
14
+ const contracts_1 = require("../utils/contracts");
15
+ exports.statusCommand = new commander_1.Command('status')
16
+ .description('Check agent status')
17
+ .argument('[token]', 'Token address (or wallet address)')
18
+ .action(async (address) => {
19
+ console.log(chalk_1.default.cyan('\nšŸ¦ž Agent Status\n'));
20
+ const config = (0, config_1.getConfig)();
21
+ const provider = (0, config_1.getProvider)();
22
+ const wallet = (0, config_1.getWallet)();
23
+ console.log(chalk_1.default.gray(`Network: ${config.network}`));
24
+ if (wallet) {
25
+ console.log(chalk_1.default.gray(`Your wallet: ${wallet.address}`));
26
+ }
27
+ console.log('');
28
+ // If no address, show user's agent if wallet configured
29
+ if (!address && wallet) {
30
+ const factory = (0, contracts_1.getFactoryContract)();
31
+ const tokenAddress = await factory.tokenByWallet(wallet.address);
32
+ if (tokenAddress && tokenAddress !== ethers_1.ethers.ZeroAddress) {
33
+ address = tokenAddress;
34
+ console.log(chalk_1.default.gray(`Found your agent: ${address}\n`));
35
+ }
36
+ else {
37
+ console.log(chalk_1.default.yellow('No address provided and no agent found for your wallet'));
38
+ console.log(chalk_1.default.gray('Usage: claws status <token-address>'));
39
+ return;
40
+ }
41
+ }
42
+ if (!address) {
43
+ console.log(chalk_1.default.red('Please provide a token or wallet address'));
44
+ console.log(chalk_1.default.gray('Usage: claws status <address>'));
45
+ return;
46
+ }
47
+ // Check if it's a wallet address (has an agent)
48
+ const factory = (0, contracts_1.getFactoryContract)();
49
+ let tokenAddress = address;
50
+ const isAgent = await factory.isAgent(address);
51
+ if (isAgent) {
52
+ tokenAddress = await factory.tokenByWallet(address);
53
+ console.log(chalk_1.default.gray(`Wallet ${address} has agent token: ${tokenAddress}\n`));
54
+ }
55
+ // Get token info
56
+ const token = (0, contracts_1.getTokenContract)(tokenAddress);
57
+ try {
58
+ const name = await token.name();
59
+ const symbol = await token.symbol();
60
+ const totalSupply = await token.totalSupply();
61
+ const agentWallet = await token.agentWallet();
62
+ const creator = await token.creator();
63
+ const birthTimestamp = await token.birthTimestamp();
64
+ const selfCreated = await token.selfCreated();
65
+ const launchBlock = await token.launchBlock();
66
+ const pool = await token.pool();
67
+ const taxBps = await token.getCurrentTaxBps();
68
+ // Get fee info
69
+ const feeCollector = (0, contracts_1.getFeeCollectorContract)();
70
+ const [agentPercent, creatorPercent, platformPercent, splitType] = await feeCollector.getFeeSplits(tokenAddress);
71
+ const totalCollected = await feeCollector.getTotalCollected(tokenAddress);
72
+ const pendingTax = await feeCollector.getPendingTokenTax(tokenAddress);
73
+ const positionId = await feeCollector.getPositionId(tokenAddress);
74
+ // Get current block for tax info
75
+ const currentBlock = await provider.getBlockNumber();
76
+ const blocksSinceLaunch = currentBlock - Number(launchBlock);
77
+ // Get agent tier
78
+ const tier = await factory.agentTier(tokenAddress);
79
+ const tierName = tier === 0 ? 'PREMIUM' : 'MICRO';
80
+ // Format birth date
81
+ const birthDate = new Date(Number(birthTimestamp) * 1000).toISOString();
82
+ console.log(chalk_1.default.yellow('═'.repeat(50)));
83
+ console.log(chalk_1.default.yellow.bold(` ${name} (${symbol})`));
84
+ console.log(chalk_1.default.yellow('═'.repeat(50)));
85
+ console.log('\n' + chalk_1.default.cyan('šŸ¤– Identity'));
86
+ console.log(` Token: ${chalk_1.default.green(tokenAddress)}`);
87
+ console.log(` Wallet: ${chalk_1.default.gray(agentWallet)}`);
88
+ console.log(` Creator: ${chalk_1.default.gray(creator)}`);
89
+ console.log(` Type: ${selfCreated ? chalk_1.default.green('Self-Created') : chalk_1.default.cyan('Human-Created')}`);
90
+ console.log(` Tier: ${chalk_1.default.magenta(tierName)}`);
91
+ console.log(` Born: ${chalk_1.default.gray(birthDate)}`);
92
+ console.log('\n' + chalk_1.default.cyan('šŸ“Š Token'));
93
+ console.log(` Supply: ${chalk_1.default.white(ethers_1.ethers.formatEther(totalSupply))}`);
94
+ console.log(` Pool: ${chalk_1.default.gray(pool)}`);
95
+ console.log(` LP NFT: #${chalk_1.default.cyan(positionId.toString())}`);
96
+ console.log('\n' + chalk_1.default.cyan('šŸ’ø Tax'));
97
+ console.log(` Current: ${chalk_1.default.red(Number(taxBps) / 100 + '%')}`);
98
+ console.log(` Launch: Block ${chalk_1.default.gray(launchBlock.toString())}`);
99
+ console.log(` Blocks ago: ${chalk_1.default.gray(blocksSinceLaunch.toString())}`);
100
+ // Show tax schedule position
101
+ let taxPhase = '';
102
+ if (blocksSinceLaunch <= 20)
103
+ taxPhase = '20% (blocks 1-20)';
104
+ else if (blocksSinceLaunch <= 30)
105
+ taxPhase = '15% (blocks 21-30)';
106
+ else if (blocksSinceLaunch <= 40)
107
+ taxPhase = '10% (blocks 31-40)';
108
+ else if (blocksSinceLaunch <= 50)
109
+ taxPhase = '5% (blocks 41-50)';
110
+ else
111
+ taxPhase = '1% (final rate)';
112
+ console.log(` Phase: ${chalk_1.default.yellow(taxPhase)}`);
113
+ console.log('\n' + chalk_1.default.cyan('šŸ’° Fees'));
114
+ console.log(` Split Type: ${chalk_1.default.green(splitType)}`);
115
+ console.log(` Agent: ${chalk_1.default.green(agentPercent.toString() + '%')}`);
116
+ if (Number(creatorPercent) > 0) {
117
+ console.log(` Creator: ${chalk_1.default.cyan(creatorPercent.toString() + '%')}`);
118
+ }
119
+ console.log(` Platform: ${chalk_1.default.gray(platformPercent.toString() + '%')}`);
120
+ console.log(` Collected: ${chalk_1.default.cyan(ethers_1.ethers.formatEther(totalCollected))} ETH`);
121
+ console.log(` Pending Tax: ${chalk_1.default.yellow(ethers_1.ethers.formatEther(pendingTax))} tokens`);
122
+ // Check wallet balance if configured
123
+ if (wallet) {
124
+ const walletBalance = await token.balanceOf(wallet.address);
125
+ if (walletBalance > 0n) {
126
+ console.log('\n' + chalk_1.default.cyan('šŸ‘› Your Holdings'));
127
+ console.log(` Balance: ${chalk_1.default.green(ethers_1.ethers.formatEther(walletBalance))} ${symbol}`);
128
+ }
129
+ }
130
+ console.log('\n' + chalk_1.default.gray(`šŸ”— https://claws.fun/agent/${tokenAddress}`));
131
+ console.log('');
132
+ }
133
+ catch (error) {
134
+ console.log(chalk_1.default.red(`Error: ${error.message || error}`));
135
+ console.log(chalk_1.default.gray('Make sure the address is a valid agent token or wallet'));
136
+ }
137
+ });
138
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * claws.fun CLI
4
+ *
5
+ * Command-line interface for AI agents to interact with claws.fun
6
+ *
7
+ * Commands:
8
+ * claws create - Create a new immortal agent
9
+ * claws buy - Buy agent tokens
10
+ * claws sell - Sell agent tokens
11
+ * claws claim - Claim accumulated fees
12
+ * claws status - Check agent status
13
+ * claws config - Configure wallet and network
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG"}
package/dist/index.js ADDED
@@ -0,0 +1,38 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * claws.fun CLI
5
+ *
6
+ * Command-line interface for AI agents to interact with claws.fun
7
+ *
8
+ * Commands:
9
+ * claws create - Create a new immortal agent
10
+ * claws buy - Buy agent tokens
11
+ * claws sell - Sell agent tokens
12
+ * claws claim - Claim accumulated fees
13
+ * claws status - Check agent status
14
+ * claws config - Configure wallet and network
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const commander_1 = require("commander");
18
+ const create_1 = require("./commands/create");
19
+ const buy_1 = require("./commands/buy");
20
+ const sell_1 = require("./commands/sell");
21
+ const claim_1 = require("./commands/claim");
22
+ const status_1 = require("./commands/status");
23
+ const config_1 = require("./commands/config");
24
+ const program = new commander_1.Command();
25
+ program
26
+ .name('claws')
27
+ .description('šŸ¦ž CLI for AI agents to interact with claws.fun')
28
+ .version('1.0.0');
29
+ // Register commands
30
+ program.addCommand(create_1.createCommand);
31
+ program.addCommand(buy_1.buyCommand);
32
+ program.addCommand(sell_1.sellCommand);
33
+ program.addCommand(claim_1.claimCommand);
34
+ program.addCommand(status_1.statusCommand);
35
+ program.addCommand(config_1.configCommand);
36
+ // Parse arguments
37
+ program.parse();
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;GAYG;;AAEH,yCAAoC;AACpC,8CAAkD;AAClD,wCAA4C;AAC5C,0CAA8C;AAC9C,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,iDAAiD,CAAC;KAC9D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAElC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Configuration management for claws CLI
3
+ */
4
+ import { ethers } from 'ethers';
5
+ export declare const ADDRESSES: Record<string, Record<string, string>>;
6
+ export declare const RPC_URLS: Record<string, string>;
7
+ interface ConfigData {
8
+ network: string;
9
+ privateKey: string;
10
+ rpcUrl: string;
11
+ }
12
+ declare const config: {
13
+ get(key: keyof ConfigData): string;
14
+ set(key: keyof ConfigData, value: string): void;
15
+ };
16
+ export interface CLIConfig {
17
+ network: string;
18
+ privateKey: string;
19
+ rpcUrl: string;
20
+ }
21
+ export declare function getConfig(): CLIConfig;
22
+ export declare function setConfig(key: keyof ConfigData, value: string): void;
23
+ export declare function getNetworkAddresses(): Record<string, string>;
24
+ export declare function getRpcUrl(): string;
25
+ export declare function getProvider(): ethers.JsonRpcProvider;
26
+ export declare function getWallet(): ethers.Wallet | null;
27
+ export declare function hasWallet(): boolean;
28
+ export declare function loadPrivateKey(): string | null;
29
+ export { config };
30
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB5D,CAAC;AAGF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAG3C,CAAC;AAMF,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AA0BD,QAAA,MAAM,MAAM;aACD,MAAM,UAAU,GAAG,MAAM;aAIzB,MAAM,UAAU,SAAS,MAAM,GAAG,IAAI;CAKhD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,IAAI,SAAS,CAMrC;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEpE;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG5D;AAED,wBAAgB,SAAS,IAAI,MAAM,CAMlC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAAC,eAAe,CAEpD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,CAUhD;AAED,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAGD,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAmB9C;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}