clawclick-sdk 0.1.9 → 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.
- package/README.md +3 -3
- package/dist/cli/commands/agent-info.d.ts +8 -0
- package/dist/cli/commands/agent-info.d.ts.map +1 -0
- package/dist/cli/commands/agent-info.js +97 -0
- package/dist/cli/commands/agent-info.js.map +1 -0
- package/dist/cli/commands/create.d.ts +10 -0
- package/dist/cli/commands/create.d.ts.map +1 -0
- package/dist/cli/commands/create.js +53 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/deploy.d.ts +12 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +190 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/funlan.d.ts +8 -0
- package/dist/cli/commands/funlan.d.ts.map +1 -0
- package/dist/cli/commands/funlan.js +129 -0
- package/dist/cli/commands/funlan.js.map +1 -0
- package/dist/cli/commands/immortalize.d.ts +13 -0
- package/dist/cli/commands/immortalize.d.ts.map +1 -0
- package/dist/cli/commands/immortalize.js +165 -0
- package/dist/cli/commands/immortalize.js.map +1 -0
- package/dist/cli/commands/init.d.ts +10 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +177 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/memory.d.ts +11 -0
- package/dist/cli/commands/memory.d.ts.map +1 -0
- package/dist/cli/commands/memory.js +200 -0
- package/dist/cli/commands/memory.js.map +1 -0
- package/dist/cli/commands/session.d.ts +14 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +313 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/status.d.ts +6 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +96 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/index.js +20 -0
- package/dist/cli/index.js.map +1 -1
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -180,15 +180,15 @@ const tokenData = await sdk.getTokenFromAPI(tokenAddress)
|
|
|
180
180
|
```
|
|
181
181
|
┌──────────────┐ createLaunch(DIRECT) ┌──────────────────┐
|
|
182
182
|
│ │ ──────────────────────────► │ │
|
|
183
|
-
│ CLI / SDK │ │
|
|
183
|
+
│ CLI / SDK │ │ ClawclickFactory│
|
|
184
184
|
│ │ ──────────────────────────► │ │
|
|
185
185
|
└──────┬───────┘ createLaunch(AGENT) └────────┬─────────┘
|
|
186
186
|
│ │
|
|
187
187
|
│ buy / sell │ AGENT only
|
|
188
188
|
▼ ▼
|
|
189
189
|
┌──────────────┐ ┌──────────────────┐
|
|
190
|
-
│
|
|
191
|
-
│ │ │ PoolManager
|
|
190
|
+
│ CLawPoolSwap │ ─────── swap() ──────────► │ Uniswap V4 │
|
|
191
|
+
│ │ │ PoolManager │
|
|
192
192
|
└──────────────┘ └────────┬─────────┘
|
|
193
193
|
│
|
|
194
194
|
┌────────┴─────────┐
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clawclick agent-info` — Display on-chain agent information
|
|
3
|
+
*
|
|
4
|
+
* Reads birth certificate and token data from chain.
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
export declare function agentInfoCommand(): Command;
|
|
8
|
+
//# sourceMappingURL=agent-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-info.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent-info.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,wBAAgB,gBAAgB,IAAI,OAAO,CA4E1C"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `clawclick agent-info` — Display on-chain agent information
|
|
4
|
+
*
|
|
5
|
+
* Reads birth certificate and token data from chain.
|
|
6
|
+
*/
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.agentInfoCommand = agentInfoCommand;
|
|
12
|
+
const commander_1 = require("commander");
|
|
13
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
14
|
+
const ora_1 = __importDefault(require("ora"));
|
|
15
|
+
const wallet_1 = require("../../wallet");
|
|
16
|
+
const chain_1 = require("../../chain");
|
|
17
|
+
const api_1 = require("../../api");
|
|
18
|
+
function agentInfoCommand() {
|
|
19
|
+
const cmd = new commander_1.Command('agent-info')
|
|
20
|
+
.description('Display agent information from on-chain birth certificate data')
|
|
21
|
+
.option('--wallet <address>', 'Agent wallet (defaults to config)')
|
|
22
|
+
.option('--rpc <url>', 'Custom RPC URL')
|
|
23
|
+
.action(async (opts) => {
|
|
24
|
+
let wallet;
|
|
25
|
+
let network = 'sepolia';
|
|
26
|
+
if (opts.wallet) {
|
|
27
|
+
wallet = opts.wallet;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
try {
|
|
31
|
+
const config = (0, wallet_1.loadConfig)();
|
|
32
|
+
wallet = config.agentWallet;
|
|
33
|
+
network = config.network;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
console.log(chalk_1.default.red('No wallet specified and no clawclick.json found'));
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const spinner = (0, ora_1.default)('Fetching on-chain data...').start();
|
|
41
|
+
try {
|
|
42
|
+
const client = (0, wallet_1.createReader)(network, opts.rpc);
|
|
43
|
+
const agent = await (0, chain_1.getAgentByWallet)(client, network, wallet);
|
|
44
|
+
if (!agent) {
|
|
45
|
+
spinner.fail('No agent found for this wallet');
|
|
46
|
+
console.log(chalk_1.default.dim(` Wallet: ${wallet}`));
|
|
47
|
+
console.log(chalk_1.default.dim(' Has the birth certificate been minted?'));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
spinner.succeed('Agent found on-chain');
|
|
51
|
+
console.log('');
|
|
52
|
+
console.log(chalk_1.default.bold(agent.name));
|
|
53
|
+
console.log(` NFT ID: #${agent.nftId.toString()}`);
|
|
54
|
+
console.log(` Wallet: ${chalk_1.default.cyan(agent.wallet)}`);
|
|
55
|
+
console.log(` Creator: ${chalk_1.default.dim(agent.creator)}`);
|
|
56
|
+
console.log(` Token: ${agent.tokenAddress !== '0x0000000000000000000000000000000000000000' ? chalk_1.default.cyan(agent.tokenAddress) : chalk_1.default.dim('none')}`);
|
|
57
|
+
console.log(` Born: ${new Date(Number(agent.birthTimestamp) * 1000).toLocaleString()}`);
|
|
58
|
+
console.log(` Immortalized: ${agent.immortalized ? chalk_1.default.green('yes') : 'no'}`);
|
|
59
|
+
if (agent.memoryCID)
|
|
60
|
+
console.log(` Memory CID: ${chalk_1.default.dim(agent.memoryCID)}`);
|
|
61
|
+
if (agent.socialHandle)
|
|
62
|
+
console.log(` Social: ${agent.socialHandle}`);
|
|
63
|
+
if (agent.ensName)
|
|
64
|
+
console.log(` ENS: ${agent.ensName}`);
|
|
65
|
+
// Memory count
|
|
66
|
+
try {
|
|
67
|
+
const memCount = await (0, chain_1.getMemoryCount)(client, network, agent.wallet);
|
|
68
|
+
console.log(` Memories: ${memCount.toString()}`);
|
|
69
|
+
}
|
|
70
|
+
catch { /* memory storage might not be deployed */ }
|
|
71
|
+
// Token stats from API
|
|
72
|
+
if (agent.tokenAddress && agent.tokenAddress !== '0x0000000000000000000000000000000000000000') {
|
|
73
|
+
try {
|
|
74
|
+
const api = new api_1.ClawClickApiClient();
|
|
75
|
+
const stats = await api.getTokenStats(agent.tokenAddress);
|
|
76
|
+
console.log('');
|
|
77
|
+
console.log(chalk_1.default.bold('Token Stats:'));
|
|
78
|
+
if (stats.token?.current_price)
|
|
79
|
+
console.log(` Price: ${stats.token.current_price} ETH`);
|
|
80
|
+
if (stats.token?.current_mcap)
|
|
81
|
+
console.log(` Market Cap: ${stats.token.current_mcap} ETH`);
|
|
82
|
+
if (stats.token?.volume_24h)
|
|
83
|
+
console.log(` Volume 24h: ${stats.token.volume_24h} ETH`);
|
|
84
|
+
}
|
|
85
|
+
catch { /* API might be down */ }
|
|
86
|
+
}
|
|
87
|
+
console.log('');
|
|
88
|
+
console.log(chalk_1.default.dim(`View: https://claw.click/agent/${wallet}`));
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
spinner.fail('Failed to fetch agent info');
|
|
92
|
+
console.error(chalk_1.default.red(err.message));
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return cmd;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=agent-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-info.js","sourceRoot":"","sources":["../../../src/cli/commands/agent-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clawclick create` — One-liner: init + deploy
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* clawclick create --name "MyAgent" --symbol "AGNT" --creator-key 0x...
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
export declare function createCommand(): Command;
|
|
9
|
+
export declare function runCreate(opts: any): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,wBAAgB,aAAa,IAAI,OAAO,CAevC;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBxD"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `clawclick create` — One-liner: init + deploy
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* clawclick create --name "MyAgent" --symbol "AGNT" --creator-key 0x...
|
|
7
|
+
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.createCommand = createCommand;
|
|
13
|
+
exports.runCreate = runCreate;
|
|
14
|
+
const commander_1 = require("commander");
|
|
15
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
16
|
+
const init_1 = require("./init");
|
|
17
|
+
const deploy_1 = require("./deploy");
|
|
18
|
+
function createCommand() {
|
|
19
|
+
const cmd = new commander_1.Command('create')
|
|
20
|
+
.description('Create and deploy an agent in one step (init + deploy)')
|
|
21
|
+
.requiredOption('-n, --name <name>', 'Agent / token name')
|
|
22
|
+
.requiredOption('-s, --symbol <symbol>', 'Token symbol')
|
|
23
|
+
.option('--network <network>', 'Network: mainnet | sepolia', 'sepolia')
|
|
24
|
+
.option('--mcap <eth>', 'Starting MCAP in ETH', '5')
|
|
25
|
+
.option('--dev-buy <percent>', 'Dev buy percent', '0')
|
|
26
|
+
.option('--creator-key <key>', 'Creator private key (or env CLAWCLICK_CREATOR_KEY)')
|
|
27
|
+
.option('--rpc <url>', 'RPC URL override')
|
|
28
|
+
.action(async (opts) => {
|
|
29
|
+
await runCreate(opts);
|
|
30
|
+
});
|
|
31
|
+
return cmd;
|
|
32
|
+
}
|
|
33
|
+
async function runCreate(opts) {
|
|
34
|
+
console.log(chalk_1.default.bold('Creating and deploying agent in one step...\n'));
|
|
35
|
+
// Step 1: Init
|
|
36
|
+
await (0, init_1.runInit)({
|
|
37
|
+
name: opts.name,
|
|
38
|
+
symbol: opts.symbol,
|
|
39
|
+
network: opts.network || 'sepolia',
|
|
40
|
+
mcap: opts.mcap || '5',
|
|
41
|
+
devBuy: opts.devBuy || '0',
|
|
42
|
+
creatorKey: opts.creatorKey || process.env.CLAWCLICK_CREATOR_KEY,
|
|
43
|
+
funlan: true,
|
|
44
|
+
force: true,
|
|
45
|
+
});
|
|
46
|
+
console.log('');
|
|
47
|
+
// Step 2: Deploy
|
|
48
|
+
await (0, deploy_1.runDeploy)({
|
|
49
|
+
creatorKey: opts.creatorKey || process.env.CLAWCLICK_CREATOR_KEY,
|
|
50
|
+
rpc: opts.rpc,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAOH,sCAeC;AAED,8BAsBC;AA5CD,yCAAmC;AACnC,kDAAyB;AACzB,iCAAgC;AAChC,qCAAoC;AAEpC,SAAgB,aAAa;IAC3B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;SAC9B,WAAW,CAAC,wDAAwD,CAAC;SACrE,cAAc,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;SACzD,cAAc,CAAC,uBAAuB,EAAE,cAAc,CAAC;SACvD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,SAAS,CAAC;SACtE,MAAM,CAAC,cAAc,EAAE,sBAAsB,EAAE,GAAG,CAAC;SACnD,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,GAAG,CAAC;SACrD,MAAM,CAAC,qBAAqB,EAAE,oDAAoD,CAAC;SACnF,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC;SACzC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,SAAS,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;IAEJ,OAAO,GAAG,CAAA;AACZ,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,IAAS;IACvC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC,CAAA;IAExE,eAAe;IACf,MAAM,IAAA,cAAO,EAAC;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;QAClC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,GAAG;QACtB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG;QAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;QAChE,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;KACZ,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,iBAAiB;IACjB,MAAM,IAAA,kBAAS,EAAC;QACd,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;QAChE,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clawclick deploy` — Deploy agent token + mint birth certificate on-chain
|
|
3
|
+
*
|
|
4
|
+
* Reads clawclick.json config, executes:
|
|
5
|
+
* 1. factory.createLaunch() → token address
|
|
6
|
+
* 2. birthCertificate.mintBirthCertificate() → NFT ID
|
|
7
|
+
* 3. Updates config with tokenAddress + nftId
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function deployCommand(): Command;
|
|
11
|
+
export declare function runDeploy(opts: any): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,wBAAgB,aAAa,IAAI,OAAO,CAavC;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAgKxD"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `clawclick deploy` — Deploy agent token + mint birth certificate on-chain
|
|
4
|
+
*
|
|
5
|
+
* Reads clawclick.json config, executes:
|
|
6
|
+
* 1. factory.createLaunch() → token address
|
|
7
|
+
* 2. birthCertificate.mintBirthCertificate() → NFT ID
|
|
8
|
+
* 3. Updates config with tokenAddress + nftId
|
|
9
|
+
*/
|
|
10
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
11
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.deployCommand = deployCommand;
|
|
15
|
+
exports.runDeploy = runDeploy;
|
|
16
|
+
const commander_1 = require("commander");
|
|
17
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
18
|
+
const ora_1 = __importDefault(require("ora"));
|
|
19
|
+
const wallet_1 = require("../../wallet");
|
|
20
|
+
const chain_1 = require("../../chain");
|
|
21
|
+
const contracts_1 = require("../../contracts");
|
|
22
|
+
function deployCommand() {
|
|
23
|
+
const cmd = new commander_1.Command('deploy')
|
|
24
|
+
.description('Deploy agent token and mint birth certificate NFT')
|
|
25
|
+
.option('--creator-key <key>', 'Creator private key (overrides config / env)')
|
|
26
|
+
.option('--rpc <url>', 'Custom RPC URL')
|
|
27
|
+
.option('--skip-token', 'Skip token creation (only mint birth cert)')
|
|
28
|
+
.option('--skip-nft', 'Skip birth certificate (only create token)')
|
|
29
|
+
.option('--no-bundle', 'Use 2-step flow instead of single bundled transaction')
|
|
30
|
+
.option('--dry-run', 'Simulate without sending transactions')
|
|
31
|
+
.action(async (opts) => {
|
|
32
|
+
await runDeploy(opts);
|
|
33
|
+
});
|
|
34
|
+
return cmd;
|
|
35
|
+
}
|
|
36
|
+
async function runDeploy(opts) {
|
|
37
|
+
// Load config
|
|
38
|
+
const configPath = (0, wallet_1.findConfig)();
|
|
39
|
+
if (!configPath) {
|
|
40
|
+
console.log(chalk_1.default.red('No clawclick.json found. Run `clawclick init` first.'));
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
const config = (0, wallet_1.loadConfig)(configPath);
|
|
44
|
+
if (config.tokenAddress && !opts.skipToken) {
|
|
45
|
+
console.log(chalk_1.default.yellow(`⚠ Token already deployed: ${config.tokenAddress}`));
|
|
46
|
+
console.log(chalk_1.default.dim(' Use --skip-token to only mint birth certificate'));
|
|
47
|
+
}
|
|
48
|
+
// Resolve creator key
|
|
49
|
+
const creatorKey = (opts.creatorKey || config.creatorPrivateKey || process.env.CLAWCLICK_CREATOR_KEY);
|
|
50
|
+
if (!creatorKey) {
|
|
51
|
+
console.log(chalk_1.default.red('Error: Creator private key required.'));
|
|
52
|
+
console.log(chalk_1.default.dim(' Provide via --creator-key, config, or CLAWCLICK_CREATOR_KEY env'));
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const creatorAccount = (0, wallet_1.loadAccount)(creatorKey);
|
|
56
|
+
const publicClient = (0, wallet_1.createReader)(config.network, opts.rpc);
|
|
57
|
+
const walletClient = (0, wallet_1.createWriter)(creatorKey, config.network, opts.rpc);
|
|
58
|
+
if (opts.dryRun) {
|
|
59
|
+
console.log(chalk_1.default.yellow('🏜 Dry run mode — no transactions will be sent'));
|
|
60
|
+
console.log('');
|
|
61
|
+
console.log(chalk_1.default.bold('Deployment plan:'));
|
|
62
|
+
console.log(` Creator: ${chalk_1.default.cyan(creatorAccount.address)}`);
|
|
63
|
+
console.log(` Agent Wallet: ${chalk_1.default.cyan(config.agentWallet)}`);
|
|
64
|
+
console.log(` Name: ${config.name}`);
|
|
65
|
+
console.log(` Symbol: ${config.symbol}`);
|
|
66
|
+
console.log(` Network: ${config.network}`);
|
|
67
|
+
console.log(` Starting MCap: ${config.startingMcap} ETH`);
|
|
68
|
+
console.log(` Dev Buy: ${config.devBuyPercent}%`);
|
|
69
|
+
if (!opts.skipToken)
|
|
70
|
+
console.log(` Step 1: createLaunch() on factory`);
|
|
71
|
+
if (!opts.skipNft)
|
|
72
|
+
console.log(` Step 2: mintBirthCertificate() — 0.005 ETH`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
console.log(chalk_1.default.bold(`Deploying ${config.name} ($${config.symbol}) on ${config.network}`));
|
|
76
|
+
console.log(` Creator: ${chalk_1.default.cyan(creatorAccount.address)}`);
|
|
77
|
+
console.log('');
|
|
78
|
+
// Check if bundler is available
|
|
79
|
+
const addrs = (0, contracts_1.getAddresses)(config.network);
|
|
80
|
+
const useBundler = opts.bundle !== false && !opts.skipToken && !opts.skipNft && !!addrs.bundler;
|
|
81
|
+
let tokenAddress = config.tokenAddress;
|
|
82
|
+
let poolId;
|
|
83
|
+
let nftId = config.nftId ? BigInt(config.nftId) : undefined;
|
|
84
|
+
if (useBundler && !tokenAddress) {
|
|
85
|
+
// Bundled 1-tx flow: createLaunch + mintBirthCertificate
|
|
86
|
+
const spinner = (0, ora_1.default)('Launching token + minting birth certificate (1 tx)...').start();
|
|
87
|
+
try {
|
|
88
|
+
const result = await (0, chain_1.launchAndMint)(publicClient, walletClient, config.network, {
|
|
89
|
+
name: config.name,
|
|
90
|
+
symbol: config.symbol,
|
|
91
|
+
beneficiary: creatorAccount.address,
|
|
92
|
+
agentWallet: config.agentWallet,
|
|
93
|
+
targetMcapETH: config.startingMcap,
|
|
94
|
+
devBuyPercent: config.devBuyPercent,
|
|
95
|
+
taxWallets: config.taxWallets,
|
|
96
|
+
taxPercentages: config.taxPercentages,
|
|
97
|
+
creator: creatorAccount.address,
|
|
98
|
+
});
|
|
99
|
+
tokenAddress = result.tokenAddress;
|
|
100
|
+
poolId = result.poolId;
|
|
101
|
+
nftId = result.nftId;
|
|
102
|
+
// Fallback: if event parsing missed the nftId, query on-chain
|
|
103
|
+
if ((!nftId || nftId === 0n) && tokenAddress) {
|
|
104
|
+
try {
|
|
105
|
+
const queriedId = await (0, chain_1.getNftIdByWallet)(publicClient, config.network, config.agentWallet);
|
|
106
|
+
if (queriedId > 0n)
|
|
107
|
+
nftId = queriedId;
|
|
108
|
+
}
|
|
109
|
+
catch { /* non-critical */ }
|
|
110
|
+
}
|
|
111
|
+
spinner.succeed(`Token + birth cert in 1 tx!`);
|
|
112
|
+
console.log(` Token: ${chalk_1.default.cyan(tokenAddress)}`);
|
|
113
|
+
if (nftId && nftId > 0n)
|
|
114
|
+
console.log(` NFT: ${chalk_1.default.cyan('#' + nftId.toString())}`);
|
|
115
|
+
if (poolId)
|
|
116
|
+
console.log(` Pool: ${chalk_1.default.dim(poolId)}`);
|
|
117
|
+
console.log(` Tx: ${chalk_1.default.dim(result.txHash)}`);
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
spinner.fail('Bundled launch failed, falling back to 2-step flow...');
|
|
121
|
+
console.error(chalk_1.default.dim(err.message || err));
|
|
122
|
+
// Fall through to 2-step flow below
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Step 1: Create token launch (2-step or fallback)
|
|
126
|
+
if (!tokenAddress && !opts.skipToken) {
|
|
127
|
+
const spinner = (0, ora_1.default)('Creating token launch...').start();
|
|
128
|
+
try {
|
|
129
|
+
const params = {
|
|
130
|
+
name: config.name,
|
|
131
|
+
symbol: config.symbol,
|
|
132
|
+
beneficiary: creatorAccount.address,
|
|
133
|
+
agentWallet: config.agentWallet,
|
|
134
|
+
targetMcapETH: config.startingMcap,
|
|
135
|
+
devBuyPercent: config.devBuyPercent,
|
|
136
|
+
taxWallets: config.taxWallets,
|
|
137
|
+
taxPercentages: config.taxPercentages,
|
|
138
|
+
};
|
|
139
|
+
const result = await (0, chain_1.createStandaloneLaunch)(publicClient, walletClient, config.network, params);
|
|
140
|
+
tokenAddress = result.tokenAddress;
|
|
141
|
+
poolId = result.poolId;
|
|
142
|
+
spinner.succeed(`Token created: ${chalk_1.default.cyan(tokenAddress)}`);
|
|
143
|
+
console.log(` Tx: ${chalk_1.default.dim(result.txHash)}`);
|
|
144
|
+
if (poolId)
|
|
145
|
+
console.log(` Pool: ${chalk_1.default.dim(poolId)}`);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
spinner.fail('Token creation failed');
|
|
149
|
+
console.error(chalk_1.default.red(err.message || err));
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Step 2: Mint birth certificate (if not already done by bundler)
|
|
154
|
+
if (nftId === undefined && !opts.skipNft && tokenAddress) {
|
|
155
|
+
const spinner = (0, ora_1.default)('Minting birth certificate NFT (0.005 ETH)...').start();
|
|
156
|
+
try {
|
|
157
|
+
const result = await (0, chain_1.mintBirthCertificate)(publicClient, walletClient, config.network, {
|
|
158
|
+
agentWallet: config.agentWallet,
|
|
159
|
+
tokenAddress: tokenAddress,
|
|
160
|
+
creator: creatorAccount.address,
|
|
161
|
+
name: config.name,
|
|
162
|
+
});
|
|
163
|
+
nftId = result.nftId;
|
|
164
|
+
spinner.succeed(`Birth certificate minted: NFT #${chalk_1.default.cyan(nftId.toString())}`);
|
|
165
|
+
console.log(` Tx: ${chalk_1.default.dim(result.txHash)}`);
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
spinner.fail('Birth certificate minting failed');
|
|
169
|
+
console.error(chalk_1.default.red(err.message || err));
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Update config
|
|
174
|
+
if (tokenAddress || nftId) {
|
|
175
|
+
if (tokenAddress)
|
|
176
|
+
config.tokenAddress = tokenAddress;
|
|
177
|
+
if (nftId)
|
|
178
|
+
config.nftId = Number(nftId);
|
|
179
|
+
(0, wallet_1.saveConfig)(config, configPath.replace('/clawclick.json', ''));
|
|
180
|
+
console.log(chalk_1.default.green('\n✔ Config updated with deployment info'));
|
|
181
|
+
}
|
|
182
|
+
// Summary
|
|
183
|
+
console.log('');
|
|
184
|
+
console.log(chalk_1.default.bold.green('🎉 Agent deployed successfully!'));
|
|
185
|
+
console.log(` Token: ${chalk_1.default.cyan(tokenAddress || 'skipped')}`);
|
|
186
|
+
console.log(` NFT: ${nftId ? chalk_1.default.cyan('#' + nftId.toString()) : 'skipped'}`);
|
|
187
|
+
console.log('');
|
|
188
|
+
console.log(chalk_1.default.dim(`View at: https://claw.click/agent/${config.agentWallet}`));
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clawclick funlan` — Generate and display FUNLAN emoji grid
|
|
3
|
+
*
|
|
4
|
+
* Uses the agent wallet to derive a deterministic 5×5 emoji grid.
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
export declare function funlanCommand(): Command;
|
|
8
|
+
//# sourceMappingURL=funlan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"funlan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/funlan.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,wBAAgB,aAAa,IAAI,OAAO,CAmFvC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `clawclick funlan` — Generate and display FUNLAN emoji grid
|
|
4
|
+
*
|
|
5
|
+
* Uses the agent wallet to derive a deterministic 5×5 emoji grid.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
+
exports.funlanCommand = funlanCommand;
|
|
45
|
+
const commander_1 = require("commander");
|
|
46
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
+
const fs = __importStar(require("fs"));
|
|
48
|
+
const path = __importStar(require("path"));
|
|
49
|
+
const funlan_1 = require("../../funlan");
|
|
50
|
+
const wallet_1 = require("../../wallet");
|
|
51
|
+
function funlanCommand() {
|
|
52
|
+
const cmd = new commander_1.Command('funlan')
|
|
53
|
+
.description('Generate or display FUNLAN emoji grid');
|
|
54
|
+
// ── generate (from wallet) ──
|
|
55
|
+
cmd
|
|
56
|
+
.command('generate')
|
|
57
|
+
.alias('gen')
|
|
58
|
+
.description('Generate FUNLAN.md from agent wallet')
|
|
59
|
+
.option('--wallet <address>', 'Wallet address (defaults to config agent wallet)')
|
|
60
|
+
.option('-o, --output <file>', 'Output file', 'FUNLAN.md')
|
|
61
|
+
.action(async (opts) => {
|
|
62
|
+
let wallet = opts.wallet;
|
|
63
|
+
if (!wallet) {
|
|
64
|
+
try {
|
|
65
|
+
const config = (0, wallet_1.loadConfig)();
|
|
66
|
+
wallet = config.agentWallet;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
console.log(chalk_1.default.red('No wallet specified and no clawclick.json found'));
|
|
70
|
+
console.log(chalk_1.default.dim(' Use --wallet <address> or run `clawclick init` first'));
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const grid = (0, funlan_1.generateFunlanGrid)(wallet);
|
|
75
|
+
const markdown = (0, funlan_1.toFunlanMarkdown)(wallet);
|
|
76
|
+
console.log(chalk_1.default.bold('FUNLAN Grid:'));
|
|
77
|
+
console.log('');
|
|
78
|
+
for (const row of grid.grid) {
|
|
79
|
+
console.log(' ' + row.join(' '));
|
|
80
|
+
}
|
|
81
|
+
console.log('');
|
|
82
|
+
if ((0, funlan_1.hasLobster)(wallet)) {
|
|
83
|
+
console.log(chalk_1.default.yellow('🦞 This wallet has a LOBSTER! Rare find!'));
|
|
84
|
+
}
|
|
85
|
+
// Write file
|
|
86
|
+
const outPath = path.resolve(opts.output);
|
|
87
|
+
fs.writeFileSync(outPath, markdown);
|
|
88
|
+
console.log(chalk_1.default.green(`✔ Written to ${path.basename(outPath)}`));
|
|
89
|
+
});
|
|
90
|
+
// ── show (display from config) ──
|
|
91
|
+
cmd
|
|
92
|
+
.command('show')
|
|
93
|
+
.description('Display FUNLAN grid for current agent')
|
|
94
|
+
.action(async () => {
|
|
95
|
+
try {
|
|
96
|
+
const config = (0, wallet_1.loadConfig)();
|
|
97
|
+
const grid = (0, funlan_1.generateFunlanGrid)(config.agentWallet);
|
|
98
|
+
console.log(chalk_1.default.bold(`FUNLAN Grid for ${config.name}:`));
|
|
99
|
+
console.log('');
|
|
100
|
+
for (const row of grid.grid) {
|
|
101
|
+
console.log(' ' + row.join(' '));
|
|
102
|
+
}
|
|
103
|
+
console.log('');
|
|
104
|
+
console.log(chalk_1.default.dim(`Wallet: ${config.agentWallet}`));
|
|
105
|
+
if ((0, funlan_1.hasLobster)(config.agentWallet)) {
|
|
106
|
+
console.log(chalk_1.default.yellow('🦞 This agent has a LOBSTER!'));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
console.log(chalk_1.default.red(err.message));
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
// Default action (no subcommand) — show grid
|
|
115
|
+
cmd.action(async () => {
|
|
116
|
+
try {
|
|
117
|
+
const config = (0, wallet_1.loadConfig)();
|
|
118
|
+
const grid = (0, funlan_1.generateFunlanGrid)(config.agentWallet);
|
|
119
|
+
for (const row of grid.grid) {
|
|
120
|
+
console.log(' ' + row.join(' '));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
console.log(chalk_1.default.dim('Run `clawclick funlan generate --wallet <address>` or `clawclick init` first'));
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return cmd;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=funlan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"funlan.js","sourceRoot":"","sources":["../../../src/cli/commands/funlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clawclick immortalize` — Immortalize an agent on-chain
|
|
3
|
+
*
|
|
4
|
+
* Updates the birth certificate NFT with a memory CID and sets
|
|
5
|
+
* the agent's immortalized status to true.
|
|
6
|
+
*
|
|
7
|
+
* Two modes:
|
|
8
|
+
* 1. `clawclick immortalize <file>` — Store memory + update birth cert (full flow)
|
|
9
|
+
* 2. `clawclick immortalize --cid <cid>` — Update birth cert with existing CID
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from 'commander';
|
|
12
|
+
export declare function immortalizeCommand(): Command;
|
|
13
|
+
//# sourceMappingURL=immortalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"immortalize.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/immortalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,wBAAgB,kBAAkB,IAAI,OAAO,CAkI5C"}
|