clawclick-sdk 0.1.8 → 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/abi.d.ts +41 -0
- package/dist/abi.d.ts.map +1 -1
- package/dist/abi.js +17 -0
- package/dist/abi.js.map +1 -1
- package/dist/api.d.ts +158 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +118 -0
- package/dist/api.js.map +1 -0
- package/dist/chain.d.ts +119 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +414 -0
- package/dist/chain.js.map +1 -0
- 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/dist/contracts.d.ts +381 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +213 -0
- package/dist/contracts.js.map +1 -0
- package/dist/funlan.d.ts +18 -0
- package/dist/funlan.d.ts.map +1 -0
- package/dist/funlan.js +85 -0
- package/dist/funlan.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -2
- package/dist/index.js.map +1 -1
- package/dist/wallet.d.ts +61 -0
- package/dist/wallet.d.ts.map +1 -0
- package/dist/wallet.js +115 -0
- package/dist/wallet.js.map +1 -0
- package/package.json +7 -5
|
@@ -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":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASH,sCAmFC;AA1FD,yCAAmC;AACnC,kDAAyB;AACzB,uCAAwB;AACxB,2CAA4B;AAC5B,yCAA+E;AAC/E,yCAAqD;AAErD,SAAgB,aAAa;IAC3B,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;SAC9B,WAAW,CAAC,uCAAuC,CAAC,CAAA;IAEvD,+BAA+B;IAC/B,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,KAAK,CAAC,KAAK,CAAC;SACZ,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,oBAAoB,EAAE,kDAAkD,CAAC;SAChF,MAAM,CAAC,qBAAqB,EAAE,aAAa,EAAE,WAAW,CAAC;SACzD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAuB,CAAA;QAEzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAA;gBAC3B,MAAM,GAAG,MAAM,CAAC,WAAW,CAAA;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAA;gBACzE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAA;gBAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAA,2BAAkB,EAAC,MAAM,CAAC,CAAA;QACvC,MAAM,QAAQ,GAAG,IAAA,yBAAgB,EAAC,MAAM,CAAC,CAAA;QAEzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;QACvC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACnC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEf,IAAI,IAAA,mBAAU,EAAC,MAAM,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAA;QACvE,CAAC;QAED,aAAa;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEJ,mCAAmC;IACnC,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAA;YAC3B,MAAM,IAAI,GAAG,IAAA,2BAAkB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YACnD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;YAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACf,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YACnC,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;YACvD,IAAI,IAAA,mBAAU,EAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC,CAAA;YAC3D,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;YACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,6CAA6C;IAC7C,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAA;YAC3B,MAAM,IAAI,GAAG,IAAA,2BAAkB,EAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YACnD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,8EAA8E,CAAC,CAAC,CAAA;QACxG,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `clawclick immortalize` — Immortalize an agent on-chain
|
|
4
|
+
*
|
|
5
|
+
* Updates the birth certificate NFT with a memory CID and sets
|
|
6
|
+
* the agent's immortalized status to true.
|
|
7
|
+
*
|
|
8
|
+
* Two modes:
|
|
9
|
+
* 1. `clawclick immortalize <file>` — Store memory + update birth cert (full flow)
|
|
10
|
+
* 2. `clawclick immortalize --cid <cid>` — Update birth cert with existing CID
|
|
11
|
+
*/
|
|
12
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
15
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
16
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(o, k2, desc);
|
|
19
|
+
}) : (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
o[k2] = m[k];
|
|
22
|
+
}));
|
|
23
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
24
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
25
|
+
}) : function(o, v) {
|
|
26
|
+
o["default"] = v;
|
|
27
|
+
});
|
|
28
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
29
|
+
var ownKeys = function(o) {
|
|
30
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
31
|
+
var ar = [];
|
|
32
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
33
|
+
return ar;
|
|
34
|
+
};
|
|
35
|
+
return ownKeys(o);
|
|
36
|
+
};
|
|
37
|
+
return function (mod) {
|
|
38
|
+
if (mod && mod.__esModule) return mod;
|
|
39
|
+
var result = {};
|
|
40
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
41
|
+
__setModuleDefault(result, mod);
|
|
42
|
+
return result;
|
|
43
|
+
};
|
|
44
|
+
})();
|
|
45
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
|
+
};
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
exports.immortalizeCommand = immortalizeCommand;
|
|
50
|
+
const commander_1 = require("commander");
|
|
51
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
52
|
+
const ora_1 = __importDefault(require("ora"));
|
|
53
|
+
const fs = __importStar(require("fs"));
|
|
54
|
+
const path = __importStar(require("path"));
|
|
55
|
+
const wallet_1 = require("../../wallet");
|
|
56
|
+
const chain_1 = require("../../chain");
|
|
57
|
+
function immortalizeCommand() {
|
|
58
|
+
const cmd = new commander_1.Command('immortalize')
|
|
59
|
+
.description('Immortalize your agent — update birth certificate memory and set immortalized = true')
|
|
60
|
+
.argument('[file]', 'Memory file to upload and immortalize with (optional if --cid is provided)')
|
|
61
|
+
.option('--cid <cid>', 'Use an existing IPFS CID / content hash instead of uploading a file')
|
|
62
|
+
.option('--creator-key <key>', 'Creator private key (pays gas for memory storage; overrides config / env)')
|
|
63
|
+
.option('--rpc <url>', 'Custom RPC URL')
|
|
64
|
+
.action(async (file, opts) => {
|
|
65
|
+
const config = (0, wallet_1.loadConfig)();
|
|
66
|
+
// Agent key is always required (agent wallet must call updateMemory)
|
|
67
|
+
const agentKey = config.agentPrivateKey;
|
|
68
|
+
if (!agentKey) {
|
|
69
|
+
console.log(chalk_1.default.red('Agent private key not found in config'));
|
|
70
|
+
console.log(chalk_1.default.dim(' Run `clawclick init` first to generate agent wallet'));
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
const agentWallet = config.agentWallet;
|
|
74
|
+
const rpcUrl = opts.rpc || process.env.CLAWCLICK_RPC_URL;
|
|
75
|
+
// Check if agent already has a birth certificate
|
|
76
|
+
const publicClient = (0, wallet_1.createReader)(config.network, rpcUrl);
|
|
77
|
+
const agent = await (0, chain_1.getAgentByWallet)(publicClient, config.network, agentWallet);
|
|
78
|
+
if (!agent) {
|
|
79
|
+
console.log(chalk_1.default.red('No birth certificate found for this agent wallet'));
|
|
80
|
+
console.log(chalk_1.default.dim(' Deploy first with `clawclick deploy` or `clawclick create`'));
|
|
81
|
+
process.exit(1);
|
|
82
|
+
}
|
|
83
|
+
if (agent.immortalized) {
|
|
84
|
+
console.log(chalk_1.default.yellow('⚠ Agent is already immortalized'));
|
|
85
|
+
console.log(` Name: ${chalk_1.default.cyan(agent.name)}`);
|
|
86
|
+
console.log(` NFT: #${agent.nftId.toString()}`);
|
|
87
|
+
console.log(` MemoryCID: ${chalk_1.default.dim(agent.memoryCID)}`);
|
|
88
|
+
console.log(chalk_1.default.dim(' Updating memory CID anyway...'));
|
|
89
|
+
}
|
|
90
|
+
// Mode 1: Existing CID provided
|
|
91
|
+
if (opts.cid) {
|
|
92
|
+
const spinner = (0, ora_1.default)('Updating birth certificate...').start();
|
|
93
|
+
try {
|
|
94
|
+
const agentWalletClient = (0, wallet_1.createWriter)(agentKey, config.network, rpcUrl);
|
|
95
|
+
const txHash = await (0, chain_1.updateBirthCertMemory)(publicClient, agentWalletClient, config.network, opts.cid);
|
|
96
|
+
spinner.succeed('Agent immortalized! 🔥');
|
|
97
|
+
console.log(` Name: ${chalk_1.default.cyan(agent.name)}`);
|
|
98
|
+
console.log(` NFT: #${agent.nftId.toString()}`);
|
|
99
|
+
console.log(` MemoryCID: ${chalk_1.default.dim(opts.cid)}`);
|
|
100
|
+
console.log(` Tx: ${chalk_1.default.dim(txHash)}`);
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
spinner.fail('Immortalization failed');
|
|
104
|
+
if (err.message.includes('insufficient funds') || err.message.includes('exceeds the balance')) {
|
|
105
|
+
console.log(chalk_1.default.red('Agent wallet has insufficient ETH for gas'));
|
|
106
|
+
console.log(chalk_1.default.dim(` Fund ${agentWallet} with some ETH and try again`));
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
console.error(chalk_1.default.red(err.message));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Mode 2: File provided — store memory + update birth cert
|
|
115
|
+
if (!file) {
|
|
116
|
+
console.log(chalk_1.default.red('Provide a file to upload or --cid <cid> to use an existing CID'));
|
|
117
|
+
console.log(chalk_1.default.dim(' Examples:'));
|
|
118
|
+
console.log(chalk_1.default.dim(' clawclick immortalize memory.txt'));
|
|
119
|
+
console.log(chalk_1.default.dim(' clawclick immortalize --cid bafyrei...'));
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
const filePath = path.resolve(file);
|
|
123
|
+
if (!fs.existsSync(filePath)) {
|
|
124
|
+
console.log(chalk_1.default.red(`File not found: ${filePath}`));
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
const text = fs.readFileSync(filePath, 'utf-8');
|
|
128
|
+
if (!text.trim()) {
|
|
129
|
+
console.log(chalk_1.default.red('File is empty'));
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
// Creator key needed for memory storage (pays gas for storeMemory)
|
|
133
|
+
const creatorKey = (opts.creatorKey || config.creatorPrivateKey || process.env.CLAWCLICK_CREATOR_KEY);
|
|
134
|
+
if (!creatorKey) {
|
|
135
|
+
console.log(chalk_1.default.red('Creator private key required (pays gas for memory storage)'));
|
|
136
|
+
console.log(chalk_1.default.dim(' Provide via --creator-key, config, or CLAWCLICK_CREATOR_KEY'));
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
const spinner = (0, ora_1.default)('Storing memory + immortalizing agent...').start();
|
|
140
|
+
try {
|
|
141
|
+
const creatorWalletClient = (0, wallet_1.createWriter)(creatorKey, config.network, rpcUrl);
|
|
142
|
+
const agentWalletClient = (0, wallet_1.createWriter)(agentKey, config.network, rpcUrl);
|
|
143
|
+
spinner.text = 'Step 1/2: Storing memory on-chain...';
|
|
144
|
+
const result = await (0, chain_1.immortalizeAgent)(publicClient, creatorWalletClient, agentWalletClient, config.network, agentWallet, agentKey, text);
|
|
145
|
+
spinner.succeed('Agent immortalized! 🔥');
|
|
146
|
+
console.log(` Name: ${chalk_1.default.cyan(agent.name)}`);
|
|
147
|
+
console.log(` NFT: #${agent.nftId.toString()}`);
|
|
148
|
+
console.log(` MemoryCID: ${chalk_1.default.dim(result.memoryCID)}`);
|
|
149
|
+
console.log(` Memory Tx: ${chalk_1.default.dim(result.memoryTxHash)}`);
|
|
150
|
+
console.log(` Immortalize Tx: ${chalk_1.default.dim(result.immortalizeTxHash)}`);
|
|
151
|
+
}
|
|
152
|
+
catch (err) {
|
|
153
|
+
spinner.fail('Immortalization failed');
|
|
154
|
+
if (err.message.includes('insufficient funds') || err.message.includes('exceeds the balance')) {
|
|
155
|
+
console.log(chalk_1.default.red('Insufficient ETH for gas'));
|
|
156
|
+
console.log(chalk_1.default.dim(` Creator wallet or agent wallet (${agentWallet}) may need funding`));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
console.error(chalk_1.default.red(err.message));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return cmd;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=immortalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"immortalize.js","sourceRoot":"","sources":["../../../src/cli/commands/immortalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `clawclick init` — Initialize a new agent project
|
|
3
|
+
*
|
|
4
|
+
* Generates agent wallet, writes clawclick.json config, optionally generates FUNLAN.
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { type AgentConfig } from '../../wallet';
|
|
8
|
+
export declare function initCommand(): Command;
|
|
9
|
+
export declare function runInit(opts: any): Promise<AgentConfig>;
|
|
10
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,cAAc,CAAA;AAIrB,wBAAgB,WAAW,IAAI,OAAO,CAkBrC;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAmH7D"}
|