@pocketagent/paw 1.0.2 → 1.0.4

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 CHANGED
@@ -65,6 +65,9 @@ We're launching on Solana because:
65
65
  - **Total Portfolio View**: See combined value of SOL + tokens in USD
66
66
  - **Multi-Token Support**: Trade any SPL token by mint address
67
67
  - **Transaction History**: Track all agent activities
68
+ - **QR Code Display**: Generate QR codes for easy mobile funding
69
+ - **Wallet Import/Export**: Backup and migrate wallets easily
70
+ - **Multi-Send**: Send to multiple addresses in one transaction
68
71
 
69
72
  ### šŸŽÆ Meme Trading Ready
70
73
  - **Configurable Slippage**: Set high slippage for volatile tokens
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,cAAc,SA2BvB,CAAC"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,cAAc,SAkCvB,CAAC"}
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addressCommand = void 0;
4
4
  const commander_1 = require("commander");
5
5
  const manager_1 = require("../../core/wallet/manager");
6
+ const qrcode = require('qrcode-terminal');
6
7
  exports.addressCommand = new commander_1.Command('address')
7
8
  .description('šŸ“Ÿ Show wallet address')
8
9
  .argument('[agent-id]', 'Agent identifier')
9
10
  .option('--agent-id <id>', 'Agent identifier (alternative)')
11
+ .option('--qr', 'Display address as QR code')
10
12
  .action(async (agentIdArg, options) => {
11
13
  try {
12
14
  // Support both positional and flag syntax
@@ -22,6 +24,10 @@ exports.addressCommand = new commander_1.Command('address')
22
24
  console.log('\nšŸ“Ÿ PAW - Wallet Address');
23
25
  console.log('Agent ID:', agentId);
24
26
  console.log('Address: ', walletInfo.address);
27
+ if (options.qr) {
28
+ console.log('\nšŸ“± Scan QR Code:\n');
29
+ qrcode.generate(walletInfo.address, { small: true });
30
+ }
25
31
  console.log('');
26
32
  }
27
33
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/cli/commands/address.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,uDAA0D;AAE7C,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,uBAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE9D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../../src/cli/commands/address.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,uDAA0D;AAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE7B,QAAA,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;KACjD,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,uBAAa,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE9D,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -147,7 +147,7 @@ exports.dashboardCommand = new commander_1.Command('dashboard')
147
147
  content += '\n';
148
148
  // Agent info
149
149
  content += `{green-fg}AGENT:{/green-fg} ${agentId}\n`;
150
- content += `{green-fg}ADDR:{/green-fg} ${walletInfo.address.slice(0, 20)}...\n`;
150
+ content += `{green-fg}ADDR:{/green-fg} ${walletInfo.address}\n`;
151
151
  content += `{green-fg}NET:{/green-fg} ${network.toUpperCase()}\n`;
152
152
  content += '\n';
153
153
  content += '───────────────────────────────────────────────────────────\n';
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const exportCommand: Command;
3
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SA6DtB,CAAC"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.exportCommand = void 0;
40
+ const commander_1 = require("commander");
41
+ const manager_1 = require("../../core/wallet/manager");
42
+ const bs58_1 = __importDefault(require("bs58"));
43
+ const readline = __importStar(require("readline"));
44
+ exports.exportCommand = new commander_1.Command('export')
45
+ .description('šŸ“Ÿ Export wallet private key')
46
+ .argument('<agent-id>', 'Agent identifier')
47
+ .option('--confirm <agent-id>', 'Skip confirmation prompt (for automation)')
48
+ .action(async (agentId, options) => {
49
+ try {
50
+ // Security warning
51
+ console.log('\nāš ļø WARNING: SENSITIVE DATA EXPORT');
52
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
53
+ console.log('This will display your wallet private key in PLAINTEXT!');
54
+ console.log('Anyone with this information can STEAL YOUR FUNDS!');
55
+ console.log('Only export in a secure, private location.');
56
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
57
+ // Confirmation
58
+ if (!options.confirm || options.confirm !== agentId) {
59
+ // Interactive confirmation
60
+ const rl = readline.createInterface({
61
+ input: process.stdin,
62
+ output: process.stdout,
63
+ });
64
+ const answer = await new Promise((resolve) => {
65
+ rl.question(`Type '${agentId}' to confirm export: `, resolve);
66
+ });
67
+ rl.close();
68
+ if (answer !== agentId) {
69
+ console.log('\nāŒ Export cancelled - confirmation did not match\n');
70
+ process.exit(1);
71
+ }
72
+ }
73
+ // Load keypair
74
+ const keypair = await manager_1.WalletManager.loadKeypairAuto(agentId);
75
+ console.log('\nšŸ“Ÿ PAW - Wallet Export');
76
+ console.log('Agent ID:', agentId);
77
+ console.log('');
78
+ // Export as base58 encoded private key
79
+ const privateKeyBase58 = bs58_1.default.encode(keypair.secretKey);
80
+ console.log('šŸ”‘ Private Key (Base58):');
81
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
82
+ console.log(privateKeyBase58);
83
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
84
+ console.log('\nāš ļø Keep this secret and secure!');
85
+ console.log('āš ļø Never share it with anyone!');
86
+ console.log('šŸ’” Import this into Phantom, Solflare, or any Solana wallet');
87
+ console.log('');
88
+ // Clear keypair from memory
89
+ keypair.secretKey.fill(0);
90
+ }
91
+ catch (error) {
92
+ console.error('\nāŒ Error:', error.message);
93
+ process.exit(1);
94
+ }
95
+ });
96
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/cli/commands/export.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,uDAA0D;AAC1D,gDAAwB;AACxB,mDAAqC;AAExB,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,sBAAsB,EAAE,2CAA2C,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IACjC,IAAI,CAAC;QACH,mBAAmB;QACnB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QAErE,eAAe;QACf,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACpD,2BAA2B;YAC3B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBACnD,EAAE,CAAC,QAAQ,CAAC,SAAS,OAAO,uBAAuB,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,uBAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,uCAAuC;QACvC,MAAM,gBAAgB,GAAG,cAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAE3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,4BAA4B;QAC5B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const importCommand: Command;
3
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SAiEtB,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.importCommand = void 0;
7
+ const commander_1 = require("commander");
8
+ const web3_js_1 = require("@solana/web3.js");
9
+ const encryption_1 = require("../../core/storage/encryption");
10
+ const filesystem_1 = require("../../core/storage/filesystem");
11
+ const bs58_1 = __importDefault(require("bs58"));
12
+ exports.importCommand = new commander_1.Command('import')
13
+ .description('šŸ“Ÿ Import existing wallet from private key')
14
+ .argument('<agent-id>', 'Agent identifier for the imported wallet')
15
+ .requiredOption('--private-key <key>', 'Base58 encoded private key')
16
+ .option('--network <network>', 'Network to use (devnet, mainnet-beta, testnet)', 'mainnet-beta')
17
+ .action(async (agentId, options) => {
18
+ try {
19
+ // Check if wallet already exists
20
+ if (await filesystem_1.FileSystemStorage.exists(agentId)) {
21
+ console.error(`\nāŒ Error: Wallet for agent "${agentId}" already exists`);
22
+ console.log('\nUse a different agent ID or delete the existing wallet first.');
23
+ console.log('');
24
+ process.exit(1);
25
+ }
26
+ console.log('\nšŸ“Ÿ PAW - Import Wallet');
27
+ console.log('Agent ID:', agentId);
28
+ console.log('Network: ', options.network);
29
+ console.log('');
30
+ // Decode private key from base58
31
+ let keypair;
32
+ try {
33
+ const privateKeyBytes = bs58_1.default.decode(options.privateKey);
34
+ keypair = web3_js_1.Keypair.fromSecretKey(privateKeyBytes);
35
+ }
36
+ catch (error) {
37
+ console.error('āŒ Error: Invalid private key');
38
+ console.log(`\nDetails: ${error.message}`);
39
+ console.log('');
40
+ process.exit(1);
41
+ }
42
+ // Generate passphrase for encryption
43
+ const passphrase = encryption_1.EncryptionService.generatePassphrase();
44
+ // Encrypt keypair
45
+ const encryptedKeypair = encryption_1.EncryptionService.encrypt(keypair, passphrase);
46
+ // Save encrypted keypair to disk
47
+ await filesystem_1.FileSystemStorage.saveKeypair(agentId, encryptedKeypair);
48
+ // Save passphrase (encrypted with machine-specific key)
49
+ await filesystem_1.FileSystemStorage.savePassphrase(agentId, passphrase);
50
+ // Save config
51
+ await filesystem_1.FileSystemStorage.saveConfig(agentId, {
52
+ agentId,
53
+ publicKey: keypair.publicKey.toBase58(),
54
+ createdAt: new Date().toISOString(),
55
+ network: options.network,
56
+ });
57
+ console.log('āœ… Wallet imported successfully!\n');
58
+ console.log('Agent ID:', agentId);
59
+ console.log('Address: ', keypair.publicKey.toBase58());
60
+ console.log('Network: ', options.network);
61
+ console.log('');
62
+ // Clear keypair from memory
63
+ encryption_1.EncryptionService.clearKeypair(keypair);
64
+ }
65
+ catch (error) {
66
+ console.error('\nāŒ Error:', error.message);
67
+ process.exit(1);
68
+ }
69
+ });
70
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const multiSendCommand: Command;
3
+ //# sourceMappingURL=multi-send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/multi-send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,gBAAgB,SAiHzB,CAAC"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.multiSendCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const manager_1 = require("../../core/wallet/manager");
6
+ const solana_1 = require("../../utils/solana");
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ exports.multiSendCommand = new commander_1.Command('multi-send')
9
+ .description('šŸ“Ÿ Send SOL to multiple addresses')
10
+ .argument('<agent-id>', 'Agent identifier')
11
+ .requiredOption('--addresses <addresses>', 'Comma-separated list of recipient addresses')
12
+ .requiredOption('--amounts <amounts>', 'Comma-separated list of amounts (in SOL)')
13
+ .option('--network <network>', 'Network to use (devnet, mainnet-beta, testnet)', 'mainnet-beta')
14
+ .action(async (agentId, options) => {
15
+ try {
16
+ console.log('\nšŸ“Ÿ PAW - Multi-Send');
17
+ console.log('Agent ID:', agentId);
18
+ console.log('Network: ', options.network);
19
+ console.log('');
20
+ // Parse addresses and amounts
21
+ const addresses = options.addresses.split(',').map((addr) => addr.trim());
22
+ const amounts = options.amounts.split(',').map((amt) => parseFloat(amt.trim()));
23
+ // Validate
24
+ if (addresses.length !== amounts.length) {
25
+ console.error('āŒ Error: Number of addresses must match number of amounts');
26
+ console.log(`\nAddresses: ${addresses.length}, Amounts: ${amounts.length}`);
27
+ console.log('');
28
+ process.exit(1);
29
+ }
30
+ if (addresses.length === 0) {
31
+ console.error('āŒ Error: At least one recipient required');
32
+ console.log('');
33
+ process.exit(1);
34
+ }
35
+ // Validate addresses
36
+ const recipients = [];
37
+ for (let i = 0; i < addresses.length; i++) {
38
+ try {
39
+ recipients.push(new web3_js_1.PublicKey(addresses[i]));
40
+ }
41
+ catch (error) {
42
+ console.error(`āŒ Error: Invalid address at position ${i + 1}: ${addresses[i]}`);
43
+ console.log('');
44
+ process.exit(1);
45
+ }
46
+ }
47
+ // Calculate total
48
+ const totalAmount = amounts.reduce((sum, amt) => sum + amt, 0);
49
+ const totalLamports = Math.floor(totalAmount * web3_js_1.LAMPORTS_PER_SOL);
50
+ console.log('šŸ“‹ Transfer Summary:');
51
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
52
+ for (let i = 0; i < addresses.length; i++) {
53
+ console.log(`${i + 1}. ${addresses[i]}`);
54
+ console.log(` Amount: ${amounts[i]} SOL`);
55
+ }
56
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
57
+ console.log(`Total: ${totalAmount} SOL (${recipients.length} recipients)`);
58
+ console.log('');
59
+ // Load keypair
60
+ const keypair = await manager_1.WalletManager.loadKeypairAuto(agentId);
61
+ // Check balance
62
+ const connection = solana_1.SolanaClient.getConnection(options.network);
63
+ const balance = await connection.getBalance(keypair.publicKey);
64
+ const balanceSOL = balance / web3_js_1.LAMPORTS_PER_SOL;
65
+ // Estimate fees (5000 lamports per transfer + base fee)
66
+ const estimatedFees = (recipients.length * 5000 + 5000) / web3_js_1.LAMPORTS_PER_SOL;
67
+ const totalNeeded = totalAmount + estimatedFees;
68
+ if (balanceSOL < totalNeeded) {
69
+ console.error(`āŒ Error: Insufficient balance`);
70
+ console.log(`\nRequired: ${totalNeeded.toFixed(6)} SOL (${totalAmount} + ~${estimatedFees.toFixed(6)} fees)`);
71
+ console.log(`Available: ${balanceSOL.toFixed(6)} SOL`);
72
+ console.log('');
73
+ process.exit(1);
74
+ }
75
+ console.log('šŸ’° Balance: ', balanceSOL.toFixed(6), 'SOL');
76
+ console.log('šŸ’ø Estimated fees: ~', estimatedFees.toFixed(6), 'SOL');
77
+ console.log('');
78
+ // Build transaction with multiple transfers
79
+ const transaction = new web3_js_1.Transaction();
80
+ for (let i = 0; i < recipients.length; i++) {
81
+ const lamports = Math.floor(amounts[i] * web3_js_1.LAMPORTS_PER_SOL);
82
+ transaction.add(web3_js_1.SystemProgram.transfer({
83
+ fromPubkey: keypair.publicKey,
84
+ toPubkey: recipients[i],
85
+ lamports,
86
+ }));
87
+ }
88
+ console.log('šŸ“¤ Sending transactions...');
89
+ // Send transaction
90
+ const signature = await connection.sendTransaction(transaction, [keypair]);
91
+ console.log('ā³ Confirming...');
92
+ // Confirm transaction
93
+ await connection.confirmTransaction(signature);
94
+ console.log('\nāœ… Multi-send completed!');
95
+ console.log('Signature:', signature);
96
+ console.log('Explorer: https://explorer.solana.com/tx/' + signature);
97
+ console.log('');
98
+ }
99
+ catch (error) {
100
+ console.error('\nāŒ Error:', error.message);
101
+ process.exit(1);
102
+ }
103
+ });
104
+ //# sourceMappingURL=multi-send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-send.js","sourceRoot":"","sources":["../../../src/cli/commands/multi-send.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,eAAO,MAAM,WAAW,SAkEpB,CAAC"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,eAAO,MAAM,WAAW,SAkHpB,CAAC"}
@@ -7,12 +7,14 @@ const engine_1 = require("../../core/signer/engine");
7
7
  const solana_1 = require("../../utils/solana");
8
8
  const filesystem_1 = require("../../core/storage/filesystem");
9
9
  const web3_js_1 = require("@solana/web3.js");
10
+ const spl_token_1 = require("@solana/spl-token");
10
11
  exports.sendCommand = new commander_1.Command('send')
11
- .description('šŸ“Ÿ Send SOL to another address')
12
+ .description('šŸ“Ÿ Send SOL or SPL tokens to another address')
12
13
  .argument('[agent-id]', 'Agent identifier')
13
14
  .option('--agent-id <id>', 'Agent identifier (alternative)')
14
15
  .requiredOption('--to <address>', 'Recipient address')
15
- .requiredOption('--amount <amount>', 'Amount in SOL')
16
+ .requiredOption('--amount <amount>', 'Amount to send')
17
+ .option('--token <mint>', 'SPL token mint address (omit for SOL)')
16
18
  .option('--network <network>', 'Network to use (overrides config)')
17
19
  .action(async (agentIdArg, options) => {
18
20
  try {
@@ -31,24 +33,48 @@ exports.sendCommand = new commander_1.Command('send')
31
33
  const config = await filesystem_1.FileSystemStorage.loadConfig(agentId);
32
34
  network = config.network || 'mainnet-beta';
33
35
  }
36
+ const isSPLToken = !!options.token;
34
37
  console.log('\nšŸ“Ÿ PAW - Send Transaction');
35
38
  console.log('Agent ID:', agentId);
36
39
  console.log('To: ', options.to);
37
- console.log('Amount: ', options.amount, 'SOL');
40
+ console.log('Amount: ', options.amount, isSPLToken ? 'tokens' : 'SOL');
41
+ if (isSPLToken) {
42
+ console.log('Token: ', options.token);
43
+ }
38
44
  console.log('Network: ', network);
39
45
  // Load keypair
40
46
  const keypair = await manager_1.WalletManager.loadKeypairAuto(agentId);
41
47
  // Get connection
42
48
  const connection = solana_1.SolanaClient.getConnection(network);
43
- // Create transfer instruction
44
- const lamports = Math.floor(parseFloat(options.amount) * web3_js_1.LAMPORTS_PER_SOL);
45
- const transferInstruction = web3_js_1.SystemProgram.transfer({
46
- fromPubkey: keypair.publicKey,
47
- toPubkey: new web3_js_1.PublicKey(options.to),
48
- lamports,
49
- });
50
- // Create transaction
51
- const transaction = new web3_js_1.Transaction().add(transferInstruction);
49
+ let transaction;
50
+ if (isSPLToken) {
51
+ // SPL Token Transfer
52
+ console.log('\nPreparing SPL token transfer...');
53
+ const mintPubkey = new web3_js_1.PublicKey(options.token);
54
+ const recipientPubkey = new web3_js_1.PublicKey(options.to);
55
+ // Get mint info to determine decimals
56
+ const mintInfo = await (0, spl_token_1.getMint)(connection, mintPubkey);
57
+ const decimals = mintInfo.decimals;
58
+ const amount = Math.floor(parseFloat(options.amount) * Math.pow(10, decimals));
59
+ console.log('Token decimals:', decimals);
60
+ // Get or create associated token accounts
61
+ console.log('Getting token accounts...');
62
+ const sourceAccount = await (0, spl_token_1.getOrCreateAssociatedTokenAccount)(connection, keypair, mintPubkey, keypair.publicKey);
63
+ const destinationAccount = await (0, spl_token_1.getOrCreateAssociatedTokenAccount)(connection, keypair, mintPubkey, recipientPubkey);
64
+ // Create transfer instruction
65
+ const transferInstruction = (0, spl_token_1.createTransferInstruction)(sourceAccount.address, destinationAccount.address, keypair.publicKey, amount);
66
+ transaction = new web3_js_1.Transaction().add(transferInstruction);
67
+ }
68
+ else {
69
+ // SOL Transfer
70
+ const lamports = Math.floor(parseFloat(options.amount) * web3_js_1.LAMPORTS_PER_SOL);
71
+ const transferInstruction = web3_js_1.SystemProgram.transfer({
72
+ fromPubkey: keypair.publicKey,
73
+ toPubkey: new web3_js_1.PublicKey(options.to),
74
+ lamports,
75
+ });
76
+ transaction = new web3_js_1.Transaction().add(transferInstruction);
77
+ }
52
78
  // Sign and send
53
79
  console.log('\nSigning transaction...');
54
80
  const signature = await engine_1.SignerEngine.signAndSend(transaction, keypair, connection);
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":";;;AAAA,yCAAoC;AACpC,uDAA0D;AAC1D,qDAAwD;AACxD,+CAAkD;AAClD,8DAAkE;AAClE,6CAMyB;AACzB,iDAI2B;AAEd,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,8CAA8C,CAAC;KAC3D,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;KAC1C,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;KAC3D,cAAc,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;KACrD,cAAc,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;KACrD,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;KACjE,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,OAAO,GAAG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,kDAAkD;QAClD,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,8BAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC3D,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC;QAC7C,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;QAEnC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxE,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAElC,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,uBAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE7D,iBAAiB;QACjB,MAAM,UAAU,GAAG,qBAAY,CAAC,aAAa,CAAC,OAAkB,CAAC,CAAC;QAElE,IAAI,WAAwB,CAAC;QAE7B,IAAI,UAAU,EAAE,CAAC;YACf,qBAAqB;YACrB,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YAEjD,MAAM,UAAU,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,IAAI,mBAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAElD,sCAAsC;YACtC,MAAM,QAAQ,GAAG,MAAM,IAAA,mBAAO,EAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;YAE/E,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;YAEzC,0CAA0C;YAC1C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,MAAM,aAAa,GAAG,MAAM,IAAA,6CAAiC,EAC3D,UAAU,EACV,OAAO,EACP,UAAU,EACV,OAAO,CAAC,SAAS,CAClB,CAAC;YAEF,MAAM,kBAAkB,GAAG,MAAM,IAAA,6CAAiC,EAChE,UAAU,EACV,OAAO,EACP,UAAU,EACV,eAAe,CAChB,CAAC;YAEF,8BAA8B;YAC9B,MAAM,mBAAmB,GAAG,IAAA,qCAAyB,EACnD,aAAa,CAAC,OAAO,EACrB,kBAAkB,CAAC,OAAO,EAC1B,OAAO,CAAC,SAAS,EACjB,MAAM,CACP,CAAC;YAEF,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,eAAe;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,0BAAgB,CAAC,CAAC;YAC3E,MAAM,mBAAmB,GAAG,uBAAa,CAAC,QAAQ,CAAC;gBACjD,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,QAAQ,EAAE,IAAI,mBAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,QAAQ;aACT,CAAC,CAAC;YAEH,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC3D,CAAC;QAED,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,MAAM,qBAAY,CAAC,WAAW,CAC9C,WAAW,EACX,OAAO,EACP,UAAU,CACX,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,4CAA4C,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
package/dist/cli/index.js CHANGED
@@ -11,6 +11,9 @@ const history_1 = require("./commands/history");
11
11
  const config_1 = require("./commands/config");
12
12
  const tokens_1 = require("./commands/tokens");
13
13
  const dashboard_1 = require("./commands/dashboard");
14
+ const export_1 = require("./commands/export");
15
+ const import_1 = require("./commands/import");
16
+ const multi_send_1 = require("./commands/multi-send");
14
17
  const program = new commander_1.Command();
15
18
  program
16
19
  .name('paw')
@@ -18,14 +21,17 @@ program
18
21
  .version('0.1.0');
19
22
  // Register commands
20
23
  program.addCommand(init_1.initCommand);
24
+ program.addCommand(import_1.importCommand);
21
25
  program.addCommand(dashboard_1.dashboardCommand);
22
26
  program.addCommand(config_1.configCommand);
23
27
  program.addCommand(address_1.addressCommand);
24
28
  program.addCommand(balance_1.balanceCommand);
25
29
  program.addCommand(tokens_1.tokensCommand);
26
30
  program.addCommand(send_1.sendCommand);
31
+ program.addCommand(multi_send_1.multiSendCommand);
27
32
  program.addCommand(swap_1.swapCommand);
28
33
  program.addCommand(history_1.historyCommand);
34
+ program.addCommand(export_1.exportCommand);
29
35
  // Parse arguments
30
36
  program.parse();
31
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,gDAAoD;AACpD,gDAAoD;AACpD,0CAA8C;AAC9C,0CAA8C;AAC9C,gDAAoD;AACpD,8CAAkD;AAClD,8CAAkD;AAClD,oDAAwD;AAExD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AAEnC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,0CAA8C;AAC9C,gDAAoD;AACpD,gDAAoD;AACpD,0CAA8C;AAC9C,0CAA8C;AAC9C,gDAAoD;AACpD,8CAAkD;AAClD,8CAAkD;AAClD,oDAAwD;AACxD,8CAAkD;AAClD,8CAAkD;AAClD,sDAAyD;AAEzD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,4BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,6BAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAElC,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pocketagent/paw",
3
- "version": "1.0.2",
4
- "description": "PocketAgent Wallet - Lightning-fast agentic wallet for AI agents on Solana šŸ“Ÿ",
3
+ "version": "1.0.4",
4
+ "description": "PocketAgent Wallet - agentic wallet for AI agents on Solana šŸ“Ÿ",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": "dist/cli/index.js",
@@ -9,7 +9,7 @@
9
9
  "dist",
10
10
  "README.md",
11
11
  "LICENSE",
12
- "skills/SKILLS.md"
12
+ "skills/**/*"
13
13
  ],
14
14
  "scripts": {
15
15
  "build": "tsc",
@@ -56,18 +56,21 @@
56
56
  "packageManager": "yarn@4.5.2",
57
57
  "dependencies": {
58
58
  "@jup-ag/referral-sdk": "^0.3.0",
59
+ "@solana/spl-token": "^0.4.14",
59
60
  "@solana/web3.js": "^1.98.4",
60
61
  "blessed": "^0.1.81",
61
62
  "blessed-contrib": "^4.11.0",
62
63
  "bs58": "^6.0.0",
63
64
  "chalk": "^5.6.2",
64
65
  "cli-table3": "^0.6.5",
65
- "commander": "^14.0.3"
66
+ "commander": "^14.0.3",
67
+ "qrcode-terminal": "^0.12.0"
66
68
  },
67
69
  "devDependencies": {
68
70
  "@types/blessed": "^0",
69
71
  "@types/jest": "^30.0.0",
70
72
  "@types/node": "^25.3.0",
73
+ "@types/qrcode-terminal": "^0",
71
74
  "@typescript-eslint/eslint-plugin": "^8.56.0",
72
75
  "@typescript-eslint/parser": "^8.56.0",
73
76
  "eslint": "^10.0.0",
package/skills/SKILLS.md DELETED
@@ -1,393 +0,0 @@
1
- # šŸ“Ÿ PAW Skills for AI Agents
2
-
3
- **PocketAgent Wallet (PAW)** - Lightning-fast autonomous wallet for AI agents on Solana
4
-
5
- ## What is PAW?
6
-
7
- PAW is a high-performance agentic wallet designed for AI agents to execute crypto operations at Telegram bot speed. Built with Helius RPC for maximum throughput.
8
-
9
- Key capabilities:
10
- - Create and manage wallets programmatically
11
- - Sign transactions automatically (no human approval needed)
12
- - Execute swaps in milliseconds via Jupiter DEX
13
- - Hold SOL and any SPL token
14
- - Real-time balance and transaction tracking
15
-
16
- ## Quick Command Reference
17
-
18
- ### Essential Commands
19
-
20
- ```bash
21
- # Create wallet (defaults to mainnet-beta for real trading)
22
- paw init <agent-id>
23
-
24
- # Or specify network:
25
- # paw init <agent-id> --network devnet # For testing with free SOL
26
- # paw init <agent-id> --network mainnet-beta # For real trading (default)
27
-
28
- # Get address
29
- paw address <agent-id>
30
-
31
- # Check total portfolio (SOL + tokens in USD)
32
- paw balance <agent-id>
33
-
34
- # List all tokens
35
- paw tokens <agent-id>
36
-
37
- # Send SOL
38
- paw send <agent-id> --to <address> --amount <sol-amount>
39
-
40
- # Swap tokens (Jupiter DEX)
41
- paw swap <agent-id> --from <token> --to <token> --amount <amount>
42
-
43
- # View transaction history
44
- paw history <agent-id>
45
-
46
- # Configure wallet settings
47
- paw config <agent-id> --network <devnet|mainnet-beta|testnet>
48
- paw config <agent-id> --slippage <bps>
49
- paw config <agent-id> --priority-fee <lamports>
50
- paw config <agent-id> --show
51
- ```
52
-
53
- ## AI Agent Workflow Examples
54
-
55
- ### Example 1: Check Balance Before Action
56
-
57
- ```bash
58
- # Get balance
59
- paw balance trading-bot-001
60
-
61
- # Output shows total portfolio:
62
- # šŸ’° Total Portfolio:
63
- # ~1.649990 SOL
64
- # ~138.68 USD
65
- ```
66
-
67
- ### Example 2: Fast Token Swap
68
-
69
- ```bash
70
- # Swap 0.1 SOL to USDC on mainnet
71
- paw swap trading-bot-001 --from SOL --to USDC --amount 0.1 --network mainnet-beta
72
-
73
- # Executes in <2 seconds using Jupiter aggregator
74
- ```
75
-
76
- ### Example 3: Send Payment
77
-
78
- ```bash
79
- # Send 0.5 SOL to another agent
80
- paw send agent-alice --to DJcVfT6dienfSbudJzZ82WN4EkVPgVaT18oBK971Yi2c --amount 0.5
81
-
82
- # Or send to another agent by ID (if you know their address)
83
- paw send agent-alice --to <address> --amount 0.5
84
- ```
85
-
86
- ### Example 4: Monitor Transactions
87
-
88
- ```bash
89
- # Check last 10 transactions
90
- paw history trading-bot-001 --limit 10
91
-
92
- # Shows table with:
93
- # - Transaction signature
94
- # - Type (send/receive)
95
- # - Amount
96
- # - Status (success/failed)
97
- # - Timestamp
98
- ```
99
-
100
- ### Example 5: Multi-Agent Setup
101
-
102
- ```bash
103
- # Create multiple agents
104
- paw init agent-alice
105
- paw init agent-bob
106
- paw init trading-bot-001
107
-
108
- # Each agent has independent wallet and config
109
- # Stored in ~/.paw/agents/<agent-id>/
110
- ```
111
-
112
- ## Decision-Making Script for AI Agents
113
-
114
- ```bash
115
- #!/bin/bash
116
- # Autonomous trading agent
117
-
118
- AGENT="trading-bot-001"
119
-
120
- # 1. Check portfolio
121
- BALANCE=$(paw balance $AGENT)
122
-
123
- # 2. Get transaction history
124
- HISTORY=$(paw history $AGENT --limit 5)
125
-
126
- # 3. Make decision based on balance
127
- # If balance > 1 SOL, swap some to USDC
128
- paw swap $AGENT --from SOL --to USDC --amount 0.5
129
-
130
- # 4. Verify transaction
131
- paw history $AGENT --limit 1
132
- ```
133
-
134
- ## Performance Features
135
-
136
- ### Lightning Fast Execution
137
- - **Helius RPC**: Premium RPC endpoints for mainnet and devnet
138
- - **Connection Pooling**: Reuses connections for speed
139
- - **Jupiter DEX**: Best price aggregation across all Solana DEXs
140
- - **Real-time Prices**: Live SOL price from CoinGecko
141
-
142
- ### Speed Comparison
143
- - Balance check: ~200ms
144
- - Token swap: ~1-2 seconds
145
- - Send transaction: ~500ms
146
- - History fetch: ~300ms
147
-
148
- Similar to Telegram trading bots - fast enough for real-time trading!
149
-
150
- ## Network Configuration
151
-
152
- ```bash
153
- # Set network (persists in config)
154
- paw config <agent-id> --network mainnet-beta
155
-
156
- # Set default slippage for all swaps (in basis points)
157
- paw config <agent-id> --slippage 1000 # 10% for meme coins
158
-
159
- # Set default priority fee for faster execution
160
- paw config <agent-id> --priority-fee 100000 # 100k lamports
161
-
162
- # Set multiple settings at once
163
- paw config <agent-id> --network mainnet-beta --slippage 1000 --priority-fee 100000
164
-
165
- # View current configuration
166
- paw config <agent-id> --show
167
-
168
- # Networks:
169
- # - devnet: Free testing (use faucet for SOL)
170
- # - mainnet-beta: Real money, production
171
- # - testnet: Testing network
172
-
173
- # Override config for single command
174
- paw balance <agent-id> --network mainnet-beta
175
- paw swap <agent-id> --from SOL --to USDC --amount 0.1 --slippage 500
176
- ```
177
-
178
- ## Common Token Addresses
179
-
180
- ```bash
181
- # Mainnet tokens
182
- SOL: Native token (use "SOL")
183
- USDC: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
184
- USDT: Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB
185
- BONK: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263
186
-
187
- # Use token symbol or mint address
188
- paw swap bot-1 --from SOL --to USDC --amount 0.1
189
- ```
190
-
191
- ## Security Model
192
-
193
- ### Double Encryption (Safe Inside a Safe)
194
- 1. **Layer 1**: Wallet keypair encrypted with AES-256-GCM + passphrase
195
- 2. **Layer 2**: Passphrase encrypted with machine-specific key
196
-
197
- ### Machine-Specific Key
198
- Generated from:
199
- - Hostname + Username + OS + Architecture + Home directory
200
- - Wallet files are useless if stolen (only work on your machine)
201
-
202
- ### Memory Safety
203
- - Keypairs loaded only when needed
204
- - Cleared from memory immediately after use
205
- - No plaintext secrets on disk
206
-
207
- ## Getting Started on Devnet (Testing)
208
-
209
- ```bash
210
- # 1. Create wallet on devnet for testing
211
- paw init my-first-agent --network devnet
212
-
213
- # 2. Get address
214
- ADDRESS=$(paw address my-first-agent | grep "Address:" | awk '{print $2}')
215
-
216
- # 3. Get free devnet SOL
217
- solana airdrop 2 $ADDRESS --url devnet
218
-
219
- # 4. Check balance
220
- paw balance my-first-agent
221
-
222
- # 5. Test send
223
- paw send my-first-agent --to <another-address> --amount 0.1
224
-
225
- # 6. Check history
226
- paw history my-first-agent
227
- ```
228
-
229
- ## Use Cases for AI Agents
230
-
231
- 1. **High-Frequency Trading Bot**: Execute trades based on price signals
232
- 2. **Meme Coin Trading**: Snipe launches, scalp pumps, automated take-profit
233
- 3. **Portfolio Manager**: Rebalance assets automatically
234
- 4. **Payment Processor**: Handle recurring payments
235
- 5. **Arbitrage Bot**: Cross-DEX arbitrage opportunities
236
- 6. **Yield Optimizer**: Move funds to highest yield protocols
237
- 7. **Market Maker**: Provide liquidity and earn fees
238
- 8. **DCA Bot**: Dollar-cost averaging strategy
239
-
240
- ## Meme Trading Capabilities
241
-
242
- PAW is built for fast, autonomous meme coin trading:
243
-
244
- ### Quick Meme Trading Commands
245
-
246
- ```bash
247
- # Buy meme coin with custom slippage
248
- paw swap bot --from SOL --to <MEME_MINT> --amount 0.5 --slippage 1000
249
-
250
- # Sell meme coin fast with priority fee
251
- paw swap bot --from <MEME_MINT> --to SOL --amount 1000000 --slippage 1000 --priority-fee 100000
252
-
253
- # Trade popular meme coins by symbol
254
- paw swap bot --from SOL --to BONK --amount 0.5 --slippage 500
255
- ```
256
-
257
- ### Slippage Settings for Meme Coins
258
-
259
- ```bash
260
- --slippage 50 # 0.5% - Stable tokens
261
- --slippage 100 # 1% - Normal trading
262
- --slippage 500 # 5% - Meme coins (volatile)
263
- --slippage 1000 # 10% - High volatility / low liquidity
264
- --slippage 5000 # 50% - New launches / extreme volatility
265
- ```
266
-
267
- ### Priority Fees for Speed
268
-
269
- ```bash
270
- --priority-fee 10000 # Normal speed
271
- --priority-fee 50000 # Fast
272
- --priority-fee 100000 # Very fast (meme launches)
273
- --priority-fee 500000 # Ultra fast (competitive sniping)
274
- ```
275
-
276
- ### Example: Sniper Bot
277
-
278
- ```bash
279
- #!/bin/bash
280
- # Snipe new token launch
281
-
282
- AGENT="sniper-bot"
283
- TARGET="<NEW_MEME_MINT>"
284
-
285
- # Fast execution with high priority
286
- paw swap $AGENT \
287
- --from SOL \
288
- --to $TARGET \
289
- --amount 0.5 \
290
- --slippage 2000 \
291
- --priority-fee 500000
292
-
293
- # Verify purchase
294
- paw tokens $AGENT | grep $TARGET
295
- ```
296
-
297
- ### Example: Take Profit Bot
298
-
299
- ```bash
300
- #!/bin/bash
301
- # Sell when target hit
302
-
303
- AGENT="profit-bot"
304
- MEME="<MEME_MINT>"
305
-
306
- # Sell 50% of holdings
307
- paw swap $AGENT \
308
- --from $MEME \
309
- --to SOL \
310
- --amount 500000 \
311
- --slippage 1000 \
312
- --priority-fee 100000
313
- ```
314
-
315
- ### Popular Meme Coins
316
-
317
- ```bash
318
- BONK: DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263
319
- WIF: EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm
320
- POPCAT: 7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr
321
-
322
- # Use symbol or mint address
323
- paw swap bot --from SOL --to BONK --amount 0.5
324
- ```
325
-
326
- ### Why PAW is Fast for Meme Trading
327
-
328
- - **Helius RPC**: Premium endpoints for fastest execution
329
- - **Jupiter DEX**: Aggregates ALL Solana DEXs for best prices
330
- - **Auto Priority Fees**: Transactions land faster during congestion
331
- - **<2 Second Swaps**: Fast enough to snipe launches and catch pumps
332
- - **No Human Approval**: Fully autonomous execution
333
-
334
- For detailed meme trading strategies, see: `docs/MEME_TRADING_GUIDE.md`
335
-
336
- ## Command Output Format
337
-
338
- All commands output clean, parseable text:
339
-
340
- ```bash
341
- # Balance output
342
- šŸ“Ÿ PAW - Balance
343
- Agent ID: trading-bot-001
344
- Address: HWd4qkpz5r7c9zSFSUGy2MkkvwuvFd3tqiMkCLiMyb4D
345
- Network: devnet
346
-
347
- šŸ’° Total Portfolio:
348
- ~1.649990 SOL
349
- ~138.68 USD
350
-
351
- # Easy to parse with grep/awk for automation
352
- ```
353
-
354
- ## Error Handling
355
-
356
- PAW provides clear error messages:
357
-
358
- ```bash
359
- # Insufficient balance
360
- āŒ Error: Insufficient balance. Required: 1.5 SOL, Available: 0.5 SOL
361
-
362
- # Invalid address
363
- āŒ Error: Invalid recipient address
364
-
365
- # Network issues
366
- āŒ Error: Failed to connect to Solana network
367
- ```
368
-
369
- ## Tips for AI Agents
370
-
371
- 1. **Always check balance before transactions**
372
- 2. **Use --network flag to override config when needed**
373
- 3. **Monitor transaction history to verify operations**
374
- 4. **Start on devnet for testing, move to mainnet when ready**
375
- 5. **Use tokens command to see all assets**
376
- 6. **Set network in config to avoid repeating --network flag**
377
-
378
- ## File Locations
379
-
380
- ```bash
381
- # Wallet data
382
- ~/.paw/agents/<agent-id>/wallet.enc
383
- ~/.paw/agents/<agent-id>/passphrase.enc
384
- ~/.paw/agents/<agent-id>/config.json
385
-
386
- # All encrypted except config.json
387
- ```
388
-
389
- ---
390
-
391
- **Built for speed, security, and autonomy** šŸ“Ÿ
392
-
393
- For issues or questions: https://github.com/pocketagent/paw