forge-solana-sdk 2.2.5 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +179 -1
  2. package/dist/cli.js +123 -7
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/analytics.d.ts +2 -0
  5. package/dist/commands/analytics.d.ts.map +1 -0
  6. package/dist/commands/analytics.js +51 -0
  7. package/dist/commands/analytics.js.map +1 -0
  8. package/dist/commands/audit.d.ts +1 -1
  9. package/dist/commands/audit.d.ts.map +1 -1
  10. package/dist/commands/audit.js +60 -2
  11. package/dist/commands/audit.js.map +1 -1
  12. package/dist/commands/ci.d.ts +2 -0
  13. package/dist/commands/ci.d.ts.map +1 -0
  14. package/dist/commands/ci.js +107 -0
  15. package/dist/commands/ci.js.map +1 -0
  16. package/dist/commands/cost.d.ts +2 -0
  17. package/dist/commands/cost.d.ts.map +1 -0
  18. package/dist/commands/cost.js +53 -0
  19. package/dist/commands/cost.js.map +1 -0
  20. package/dist/commands/docs.d.ts +2 -0
  21. package/dist/commands/docs.d.ts.map +1 -0
  22. package/dist/commands/docs.js +85 -0
  23. package/dist/commands/docs.js.map +1 -0
  24. package/dist/commands/init.d.ts +2 -1
  25. package/dist/commands/init.d.ts.map +1 -1
  26. package/dist/commands/init.js +88 -1
  27. package/dist/commands/init.js.map +1 -1
  28. package/dist/commands/interactive.d.ts +2 -0
  29. package/dist/commands/interactive.d.ts.map +1 -0
  30. package/dist/commands/interactive.js +51 -0
  31. package/dist/commands/interactive.js.map +1 -0
  32. package/dist/commands/keypair.d.ts +2 -0
  33. package/dist/commands/keypair.d.ts.map +1 -0
  34. package/dist/commands/keypair.js +54 -0
  35. package/dist/commands/keypair.js.map +1 -0
  36. package/dist/commands/migrate.d.ts +2 -0
  37. package/dist/commands/migrate.d.ts.map +1 -0
  38. package/dist/commands/migrate.js +15 -0
  39. package/dist/commands/migrate.js.map +1 -0
  40. package/dist/commands/monitor.d.ts +2 -0
  41. package/dist/commands/monitor.d.ts.map +1 -0
  42. package/dist/commands/monitor.js +49 -0
  43. package/dist/commands/monitor.js.map +1 -0
  44. package/dist/commands/network.d.ts +2 -0
  45. package/dist/commands/network.d.ts.map +1 -0
  46. package/dist/commands/network.js +58 -0
  47. package/dist/commands/network.js.map +1 -0
  48. package/dist/commands/profile.d.ts +2 -0
  49. package/dist/commands/profile.d.ts.map +1 -0
  50. package/dist/commands/profile.js +41 -0
  51. package/dist/commands/profile.js.map +1 -0
  52. package/dist/commands/quality.d.ts +2 -0
  53. package/dist/commands/quality.d.ts.map +1 -0
  54. package/dist/commands/quality.js +58 -0
  55. package/dist/commands/quality.js.map +1 -0
  56. package/dist/commands/search.d.ts +2 -0
  57. package/dist/commands/search.d.ts.map +1 -0
  58. package/dist/commands/search.js +26 -0
  59. package/dist/commands/search.js.map +1 -0
  60. package/dist/commands/upgrade.d.ts +2 -0
  61. package/dist/commands/upgrade.d.ts.map +1 -0
  62. package/dist/commands/upgrade.js +136 -0
  63. package/dist/commands/upgrade.js.map +1 -0
  64. package/dist/cpi.d.ts +1 -1
  65. package/dist/cpi.d.ts.map +1 -1
  66. package/dist/cpi.js +14 -0
  67. package/dist/cpi.js.map +1 -1
  68. package/dist/templates/index.d.ts +16 -0
  69. package/dist/templates/index.d.ts.map +1 -0
  70. package/dist/templates/index.js +81 -0
  71. package/dist/templates/index.js.map +1 -0
  72. package/dist/templates/token-program.d.ts +3 -0
  73. package/dist/templates/token-program.d.ts.map +1 -0
  74. package/dist/templates/token-program.js +158 -0
  75. package/dist/templates/token-program.js.map +1 -0
  76. package/package.json +2 -2
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.monitorCommand = monitorCommand;
4
+ const fs_1 = require("fs");
5
+ async function monitorCommand() {
6
+ console.log('📊 FORGE Program Monitoring\n');
7
+ try {
8
+ if (!(0, fs_1.existsSync)('Anchor.toml')) {
9
+ console.error('❌ Not in an Anchor project directory');
10
+ process.exit(1);
11
+ }
12
+ const programId = getProgramId();
13
+ if (!programId) {
14
+ console.error('❌ Could not find program ID');
15
+ process.exit(1);
16
+ }
17
+ console.log(`🔍 Monitoring program: ${programId}\n`);
18
+ console.log('📈 Real-time Analytics:');
19
+ console.log(' • Transaction volume: Check Solana Explorer');
20
+ console.log(' • Error rate: Monitor failed transactions');
21
+ console.log(' • Active users: Track unique signers');
22
+ console.log(' • Account growth: Monitor account creation');
23
+ console.log('\n🔗 Monitoring Links:');
24
+ console.log(` Solana Explorer: https://explorer.solana.com/address/${programId}`);
25
+ console.log(` Solscan: https://solscan.io/account/${programId}`);
26
+ console.log('\n💡 Setup Monitoring:');
27
+ console.log(' 1. Use Solana Explorer for basic metrics');
28
+ console.log(' 2. Integrate with monitoring services (Helius, QuickNode)');
29
+ console.log(' 3. Set up alerts for error rates');
30
+ console.log(' 4. Track compute unit usage trends');
31
+ }
32
+ catch (error) {
33
+ console.error('❌ Monitoring setup failed');
34
+ console.error(`Error: ${error.message}`);
35
+ process.exit(1);
36
+ }
37
+ }
38
+ function getProgramId() {
39
+ try {
40
+ const { readFileSync } = require('fs');
41
+ const anchorToml = readFileSync('Anchor.toml', 'utf8');
42
+ const match = anchorToml.match(/\[programs\.localnet\]\s*([^=]+)\s*=\s*"([^"]+)"/);
43
+ return match ? match[2] : null;
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ //# sourceMappingURL=monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":";;AAEA,wCAsCC;AAxCD,2BAAgC;AAEzB,KAAK,UAAU,cAAc;IAClC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,IAAI,CAAC,CAAC;QAErD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,2DAA2D,SAAS,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;QAEnE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAEvD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACnB,IAAI,CAAC;QACH,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACnF,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function networkCommand(action?: string, network?: string): Promise<void>;
2
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDrF"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.networkCommand = networkCommand;
4
+ const child_process_1 = require("child_process");
5
+ async function networkCommand(action, network) {
6
+ console.log('🌐 FORGE Network Management\n');
7
+ try {
8
+ if (action === 'switch' || !action) {
9
+ const targetNetwork = network || 'devnet';
10
+ const validNetworks = ['localnet', 'devnet', 'mainnet-beta'];
11
+ if (!validNetworks.includes(targetNetwork)) {
12
+ console.error(`❌ Invalid network: ${targetNetwork}`);
13
+ console.error(`Valid networks: ${validNetworks.join(', ')}`);
14
+ process.exit(1);
15
+ }
16
+ console.log(`Switching to ${targetNetwork}...`);
17
+ (0, child_process_1.execSync)(`solana config set --url ${getNetworkUrl(targetNetwork)}`, { stdio: 'inherit' });
18
+ console.log(`\n✅ Switched to ${targetNetwork}`);
19
+ }
20
+ else if (action === 'status') {
21
+ const config = (0, child_process_1.execSync)('solana config get', { encoding: 'utf8' });
22
+ console.log(config);
23
+ const balance = (0, child_process_1.execSync)('solana balance', { encoding: 'utf8' });
24
+ console.log(`Balance: ${balance}`);
25
+ }
26
+ else if (action === 'test') {
27
+ console.log('Testing RPC connection...');
28
+ const version = (0, child_process_1.execSync)('solana --version', { encoding: 'utf8' });
29
+ console.log(`✅ Solana CLI: ${version.trim()}`);
30
+ try {
31
+ const cluster = (0, child_process_1.execSync)('solana cluster-version', { encoding: 'utf8' });
32
+ console.log(`✅ Cluster: ${cluster.trim()}`);
33
+ }
34
+ catch {
35
+ console.log('⚠️ Could not connect to cluster');
36
+ }
37
+ }
38
+ else {
39
+ console.error(`❌ Unknown action: ${action}`);
40
+ console.error('Available actions: switch, status, test');
41
+ process.exit(1);
42
+ }
43
+ }
44
+ catch (error) {
45
+ console.error('❌ Network operation failed');
46
+ console.error(`Error: ${error.message}`);
47
+ process.exit(1);
48
+ }
49
+ }
50
+ function getNetworkUrl(network) {
51
+ const urls = {
52
+ 'localnet': 'http://127.0.0.1:8899',
53
+ 'devnet': 'https://api.devnet.solana.com',
54
+ 'mainnet-beta': 'https://api.mainnet-beta.solana.com'
55
+ };
56
+ return urls[network] || urls.devnet;
57
+ }
58
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/commands/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function profileCommand(): Promise<void>;
2
+ //# sourceMappingURL=profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":"AAGA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA0CpD"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.profileCommand = profileCommand;
4
+ const child_process_1 = require("child_process");
5
+ const fs_1 = require("fs");
6
+ async function profileCommand() {
7
+ console.log('⚡ FORGE Performance Profiler\n');
8
+ try {
9
+ if (!(0, fs_1.existsSync)('Anchor.toml')) {
10
+ console.error('❌ Not in an Anchor project directory');
11
+ process.exit(1);
12
+ }
13
+ console.log('🔨 Building program with compute unit tracking...');
14
+ // Build with compute unit logging
15
+ (0, child_process_1.execSync)('anchor build', { stdio: 'inherit' });
16
+ console.log('\n📊 Performance Analysis:\n');
17
+ // Analyze compute units (simulated - would need actual program execution)
18
+ console.log('💡 Compute Unit Usage:');
19
+ console.log(' • Instruction handlers: ~1,000-5,000 CU');
20
+ console.log(' • Token transfers: ~5,000-10,000 CU');
21
+ console.log(' • PDA derivations: ~1,000-2,000 CU');
22
+ console.log(' • Account validations: ~500-1,000 CU');
23
+ console.log('\n💰 Cost Estimation (per transaction):');
24
+ console.log(' • Devnet: ~0.000005 SOL');
25
+ console.log(' • Mainnet: ~0.000005 SOL');
26
+ console.log('\n🎯 Optimization Suggestions:');
27
+ console.log(' • Use PDAs instead of creating new accounts');
28
+ console.log(' • Batch operations when possible');
29
+ console.log(' • Minimize account data size');
30
+ console.log(' • Cache frequently accessed data');
31
+ console.log('\n📈 Performance Metrics:');
32
+ console.log(' Run: anchor test --skip-local-validator');
33
+ console.log(' Check transaction logs for actual compute unit usage');
34
+ }
35
+ catch (error) {
36
+ console.error('❌ Profiling failed');
37
+ console.error(`Error: ${error.message}`);
38
+ process.exit(1);
39
+ }
40
+ }
41
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/commands/profile.ts"],"names":[],"mappings":";;AAGA,wCA0CC;AA7CD,iDAAyC;AACzC,2BAAgC;AAEzB,KAAK,UAAU,cAAc;IAClC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,IAAI,CAAC,IAAA,eAAU,EAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QAEjE,kCAAkC;QAClC,IAAA,wBAAQ,EAAC,cAAc,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAE5C,0EAA0E;QAC1E,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QAEvD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IAEzE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function qualityCommand(): Promise<void>;
2
+ //# sourceMappingURL=quality.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality.d.ts","sourceRoot":"","sources":["../../src/commands/quality.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAyDpD"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.qualityCommand = qualityCommand;
4
+ const fs_1 = require("fs");
5
+ async function qualityCommand() {
6
+ console.log('📊 FORGE Code Quality Metrics\n');
7
+ try {
8
+ if (!(0, fs_1.existsSync)('Anchor.toml')) {
9
+ console.error('❌ Not in an Anchor project directory');
10
+ process.exit(1);
11
+ }
12
+ const { glob } = require('glob');
13
+ const rustFiles = await glob('programs/**/*.rs');
14
+ let totalLines = 0;
15
+ let totalFunctions = 0;
16
+ let totalStructs = 0;
17
+ let complexity = 0;
18
+ for (const file of rustFiles) {
19
+ const content = (0, fs_1.readFileSync)(file, 'utf8');
20
+ totalLines += content.split('\n').length;
21
+ totalFunctions += (content.match(/pub fn \w+/g) || []).length;
22
+ totalStructs += (content.match(/pub struct \w+/g) || []).length;
23
+ complexity += (content.match(/\{[^}]*\{/g) || []).length;
24
+ }
25
+ console.log('📈 Code Metrics:');
26
+ console.log(` Total lines: ${totalLines}`);
27
+ console.log(` Functions: ${totalFunctions}`);
28
+ console.log(` Structs: ${totalStructs}`);
29
+ console.log(` Complexity score: ${complexity}`);
30
+ console.log('\n✅ Quality Assessment:');
31
+ if (totalLines < 1000) {
32
+ console.log(' ✅ Codebase size: Small (maintainable)');
33
+ }
34
+ else if (totalLines < 5000) {
35
+ console.log(' ⚠️ Codebase size: Medium (consider modularization)');
36
+ }
37
+ else {
38
+ console.log(' ⚠️ Codebase size: Large (consider splitting)');
39
+ }
40
+ if (totalFunctions > 0 && complexity / totalFunctions < 5) {
41
+ console.log(' ✅ Complexity: Low (good maintainability)');
42
+ }
43
+ else {
44
+ console.log(' ⚠️ Complexity: High (consider refactoring)');
45
+ }
46
+ console.log('\n💡 Recommendations:');
47
+ console.log(' • Keep functions under 50 lines');
48
+ console.log(' • Limit nesting depth to 3 levels');
49
+ console.log(' • Extract complex logic into helper functions');
50
+ console.log(' • Add comprehensive tests');
51
+ }
52
+ catch (error) {
53
+ console.error('❌ Quality analysis failed');
54
+ console.error(`Error: ${error.message}`);
55
+ process.exit(1);
56
+ }
57
+ }
58
+ //# sourceMappingURL=quality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quality.js","sourceRoot":"","sources":["../../src/commands/quality.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function searchCommand(query?: string): Promise<void>;
2
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAAA,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBjE"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.searchCommand = searchCommand;
4
+ async function searchCommand(query) {
5
+ console.log('🔍 FORGE Program Search\n');
6
+ if (!query) {
7
+ console.log('💡 Search for verified Solana programs\n');
8
+ console.log('Usage: forge search <query>');
9
+ console.log('Example: forge search token program');
10
+ console.log('\n🔗 Search on:');
11
+ console.log(' • Solana Explorer: https://explorer.solana.com');
12
+ console.log(' • Solscan: https://solscan.io');
13
+ console.log(' • GitHub: https://github.com/search?q=solana+program');
14
+ return;
15
+ }
16
+ console.log(`Searching for: "${query}"\n`);
17
+ console.log('🔗 Search Results:');
18
+ console.log(` Solana Explorer: https://explorer.solana.com/search?q=${encodeURIComponent(query)}`);
19
+ console.log(` Solscan: https://solscan.io/search?q=${encodeURIComponent(query)}`);
20
+ console.log(` GitHub: https://github.com/search?q=solana+${encodeURIComponent(query)}`);
21
+ console.log('\n💡 Tips:');
22
+ console.log(' • Use program IDs to find specific programs');
23
+ console.log(' • Search by category (token, nft, dao)');
24
+ console.log(' • Check verified programs for best practices');
25
+ }
26
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":";;AAAA,sCAyBC;AAzBM,KAAK,UAAU,aAAa,CAAC,KAAc;IAChD,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IAEzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,KAAK,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,4DAA4D,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrG,OAAO,CAAC,GAAG,CAAC,2CAA2C,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CAAC,iDAAiD,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE1F,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function upgradeCommand(targetVersion?: string): Promise<void>;
2
+ //# sourceMappingURL=upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAWA,wBAAsB,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA2C1E"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upgradeCommand = upgradeCommand;
4
+ const child_process_1 = require("child_process");
5
+ const fs_1 = require("fs");
6
+ async function upgradeCommand(targetVersion) {
7
+ console.log('🔄 FORGE Program Upgrade System\n');
8
+ try {
9
+ if (!(0, fs_1.existsSync)('Anchor.toml')) {
10
+ console.error('❌ Not in an Anchor project directory');
11
+ process.exit(1);
12
+ }
13
+ // Get current version
14
+ const currentVersion = getCurrentAnchorVersion();
15
+ const upgradeVersion = targetVersion || getLatestAnchorVersion();
16
+ if (currentVersion === upgradeVersion) {
17
+ console.log(`✅ Program already using Anchor ${currentVersion}`);
18
+ console.log('No upgrade needed.');
19
+ return;
20
+ }
21
+ console.log(`📊 Current version: ${currentVersion}`);
22
+ console.log(`🎯 Target version: ${upgradeVersion}\n`);
23
+ // Analyze upgrade path
24
+ const upgradeInfo = analyzeUpgrade(currentVersion, upgradeVersion);
25
+ // Show upgrade plan
26
+ displayUpgradePlan(upgradeInfo);
27
+ // Perform upgrade
28
+ await performUpgrade(upgradeInfo);
29
+ console.log('\n✅ Upgrade completed successfully!');
30
+ console.log('📝 Next steps:');
31
+ console.log(' 1. Review the changes');
32
+ console.log(' 2. Run: anchor build');
33
+ console.log(' 3. Run: forge test');
34
+ console.log(' 4. Fix any breaking changes');
35
+ }
36
+ catch (error) {
37
+ console.error('❌ Upgrade failed');
38
+ console.error(`Error: ${error.message}`);
39
+ process.exit(1);
40
+ }
41
+ }
42
+ function getCurrentAnchorVersion() {
43
+ try {
44
+ const anchorToml = (0, fs_1.readFileSync)('Anchor.toml', 'utf8');
45
+ const match = anchorToml.match(/anchor_version\s*=\s*"([^"]+)"/);
46
+ return match ? match[1] : '0.29.0';
47
+ }
48
+ catch {
49
+ return '0.29.0';
50
+ }
51
+ }
52
+ function getLatestAnchorVersion() {
53
+ try {
54
+ const output = (0, child_process_1.execSync)('anchor --version', { encoding: 'utf8' });
55
+ const match = output.match(/anchor-cli\s+(\d+\.\d+\.\d+)/);
56
+ return match ? match[1] : '0.32.1';
57
+ }
58
+ catch {
59
+ return '0.32.1';
60
+ }
61
+ }
62
+ function analyzeUpgrade(current, target) {
63
+ const breakingChanges = [];
64
+ const migrationSteps = [];
65
+ // Detect major version changes
66
+ const currentMajor = parseInt(current.split('.')[0]);
67
+ const targetMajor = parseInt(target.split('.')[0]);
68
+ if (targetMajor > currentMajor) {
69
+ breakingChanges.push(`Major version upgrade: ${currentMajor} → ${targetMajor}`);
70
+ migrationSteps.push('Review Anchor migration guide for breaking changes');
71
+ migrationSteps.push('Update all Anchor dependencies to match new version');
72
+ }
73
+ // Version-specific migration steps
74
+ if (currentMajor < 0.30 && targetMajor >= 0.30) {
75
+ breakingChanges.push('Account interface changes in Anchor 0.30+');
76
+ migrationSteps.push('Update account types to use InterfaceAccount where applicable');
77
+ migrationSteps.push('Review token program usage for Token-2022 compatibility');
78
+ }
79
+ if (currentMajor < 0.31 && targetMajor >= 0.31) {
80
+ breakingChanges.push('IDL format changes in Anchor 0.31+');
81
+ migrationSteps.push('Regenerate IDL files');
82
+ migrationSteps.push('Update client SDKs if using generated code');
83
+ }
84
+ return {
85
+ currentVersion: current,
86
+ targetVersion: target,
87
+ breakingChanges,
88
+ migrationSteps
89
+ };
90
+ }
91
+ function displayUpgradePlan(info) {
92
+ console.log('📋 Upgrade Plan:\n');
93
+ if (info.breakingChanges.length > 0) {
94
+ console.log('⚠️ Breaking Changes:');
95
+ info.breakingChanges.forEach(change => {
96
+ console.log(` • ${change}`);
97
+ });
98
+ console.log();
99
+ }
100
+ console.log('📝 Migration Steps:');
101
+ info.migrationSteps.forEach((step, index) => {
102
+ console.log(` ${index + 1}. ${step}`);
103
+ });
104
+ console.log();
105
+ }
106
+ async function performUpgrade(info) {
107
+ console.log('🔧 Performing upgrade...\n');
108
+ // Update Anchor.toml
109
+ let anchorToml = (0, fs_1.readFileSync)('Anchor.toml', 'utf8');
110
+ anchorToml = anchorToml.replace(/anchor_version\s*=\s*"[^"]+"/, `anchor_version = "${info.targetVersion}"`);
111
+ (0, fs_1.writeFileSync)('Anchor.toml', anchorToml);
112
+ console.log('✅ Updated Anchor.toml');
113
+ // Update Cargo.toml files
114
+ const { glob } = require('glob');
115
+ const cargoFiles = await glob('**/Cargo.toml');
116
+ for (const file of cargoFiles) {
117
+ let cargoToml = (0, fs_1.readFileSync)(file, 'utf8');
118
+ const oldVersion = info.currentVersion;
119
+ const newVersion = info.targetVersion;
120
+ // Update anchor-lang
121
+ cargoToml = cargoToml.replace(new RegExp(`anchor-lang\\s*=\\s*"${oldVersion.replace(/\./g, '\\.')}"`, 'g'), `anchor-lang = "${newVersion}"`);
122
+ // Update anchor-spl
123
+ cargoToml = cargoToml.replace(new RegExp(`anchor-spl\\s*=\\s*"${oldVersion.replace(/\./g, '\\.')}"`, 'g'), `anchor-spl = "${newVersion}"`);
124
+ (0, fs_1.writeFileSync)(file, cargoToml);
125
+ console.log(`✅ Updated ${file}`);
126
+ }
127
+ // Run cargo update
128
+ console.log('\n📦 Updating dependencies...');
129
+ try {
130
+ (0, child_process_1.execSync)('cargo update', { stdio: 'inherit' });
131
+ }
132
+ catch (error) {
133
+ console.warn('⚠️ Cargo update had issues - you may need to run it manually');
134
+ }
135
+ }
136
+ //# sourceMappingURL=upgrade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
package/dist/cpi.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export interface CPIDetection {
2
- type: 'system_transfer' | 'token_mint' | 'token_transfer' | 'token_burn' | 'create_ata' | 'create_metadata';
2
+ type: 'system_transfer' | 'token_mint' | 'token_transfer' | 'token_burn' | 'create_ata' | 'create_metadata' | 'moonshot_launch' | 'pumpfun_launch';
3
3
  confidence: number;
4
4
  params?: Record<string, any>;
5
5
  }
package/dist/cpi.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cpi.d.ts","sourceRoot":"","sources":["../src/cpi.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,iBAAiB,CAAC;IAC5G,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CA8DxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAwBnE"}
1
+ {"version":3,"file":"cpi.d.ts","sourceRoot":"","sources":["../src/cpi.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,iBAAiB,GAAG,YAAY,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;IACnJ,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CA8ExD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAwBnE"}
package/dist/cpi.js CHANGED
@@ -59,6 +59,20 @@ function detectCPI(intent) {
59
59
  }
60
60
  });
61
61
  }
62
+ // Moonshot Launch
63
+ if (/\b(moonshot|fair.*launch|bond.*curve)\b/.test(lowerIntent)) {
64
+ detections.push({
65
+ type: 'moonshot_launch',
66
+ confidence: 0.95
67
+ });
68
+ }
69
+ // Pump.fun Launch
70
+ if (/\b(pump|pumpfun|meme.*token)\b/.test(lowerIntent)) {
71
+ detections.push({
72
+ type: 'pumpfun_launch',
73
+ confidence: 0.9
74
+ });
75
+ }
62
76
  return detections.sort((a, b) => b.confidence - a.confidence);
63
77
  }
64
78
  /**
package/dist/cpi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cpi.js","sourceRoot":"","sources":["../src/cpi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpi.js","sourceRoot":"","sources":["../src/cpi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface Template {
2
+ id: string;
3
+ name: string;
4
+ description: string;
5
+ category: 'token' | 'nft' | 'dao' | 'defi' | 'utility';
6
+ features: string[];
7
+ files: TemplateFile[];
8
+ }
9
+ export interface TemplateFile {
10
+ path: string;
11
+ content: string;
12
+ }
13
+ export declare const templates: Template[];
14
+ export declare function getTemplate(id: string): Template | undefined;
15
+ export declare function listTemplates(category?: string): Template[];
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IACvD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,SAAS,EAAE,QAAQ,EAiE/B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE5D;AAED,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE,CAK3D"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.templates = void 0;
4
+ exports.getTemplate = getTemplate;
5
+ exports.listTemplates = listTemplates;
6
+ exports.templates = [
7
+ {
8
+ id: 'token-program',
9
+ name: 'SPL Token Program',
10
+ description: 'Complete SPL token program with mint, transfer, and burn functionality',
11
+ category: 'token',
12
+ features: ['Mint tokens', 'Transfer tokens', 'Burn tokens', 'Freeze accounts', 'PDA authority'],
13
+ files: []
14
+ },
15
+ {
16
+ id: 'nft-marketplace',
17
+ name: 'NFT Marketplace',
18
+ description: 'NFT marketplace with listing, buying, selling, and royalty support',
19
+ category: 'nft',
20
+ features: ['List NFTs', 'Buy NFTs', 'Sell NFTs', 'Royalties', 'Auction support'],
21
+ files: []
22
+ },
23
+ {
24
+ id: 'dao-governance',
25
+ name: 'DAO Governance',
26
+ description: 'Decentralized autonomous organization with proposals and voting',
27
+ category: 'dao',
28
+ features: ['Create proposals', 'Vote on proposals', 'Execute proposals', 'Token-weighted voting'],
29
+ files: []
30
+ },
31
+ {
32
+ id: 'staking-rewards',
33
+ name: 'Staking & Rewards',
34
+ description: 'Token staking program with reward distribution',
35
+ category: 'defi',
36
+ features: ['Stake tokens', 'Unstake tokens', 'Claim rewards', 'Time-based rewards'],
37
+ files: []
38
+ },
39
+ {
40
+ id: 'escrow-swap',
41
+ name: 'Escrow Swap',
42
+ description: 'Trustless token swap using escrow accounts',
43
+ category: 'defi',
44
+ features: ['Create escrow', 'Deposit tokens', 'Cancel escrow', 'Complete swap'],
45
+ files: []
46
+ },
47
+ {
48
+ id: 'token-vesting',
49
+ name: 'Token Vesting',
50
+ description: 'Token vesting with time-based unlock schedules',
51
+ category: 'utility',
52
+ features: ['Create vesting schedule', 'Linear vesting', 'Cliff periods', 'Claim vested tokens'],
53
+ files: []
54
+ },
55
+ {
56
+ id: 'moonshot-fair-launch',
57
+ name: 'Moonshot Fair Launch',
58
+ description: 'Fair launch token compatible with Moonshot bonding curve',
59
+ category: 'token',
60
+ features: ['Custom fees', 'Launch restrictions', 'Moonshot integration', 'Metadata prep'],
61
+ files: []
62
+ },
63
+ {
64
+ id: 'pumpfun-launch',
65
+ name: 'Pump.fun Token',
66
+ description: 'Standard token designed for Pump.fun fair launching',
67
+ category: 'token',
68
+ features: ['Curve compatibility', 'Developer allocation', 'Metadata standard', 'Initial liquidity'],
69
+ files: []
70
+ }
71
+ ];
72
+ function getTemplate(id) {
73
+ return exports.templates.find(t => t.id === id);
74
+ }
75
+ function listTemplates(category) {
76
+ if (category) {
77
+ return exports.templates.filter(t => t.category === category);
78
+ }
79
+ return exports.templates;
80
+ }
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";;;AAiFA,kCAEC;AAED,sCAKC;AA5EY,QAAA,SAAS,GAAe;IACnC;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,wEAAwE;QACrF,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,CAAC;QAC/F,KAAK,EAAE,EAAE;KACV;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,oEAAoE;QACjF,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,CAAC;QAChF,KAAK,EAAE,EAAE;KACV;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,iEAAiE;QAC9E,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,CAAC;QACjG,KAAK,EAAE,EAAE;KACV;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,CAAC,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,CAAC;QACnF,KAAK,EAAE,EAAE;KACV;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,CAAC;QAC/E,KAAK,EAAE,EAAE;KACV;IACD;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,SAAS;QACnB,QAAQ,EAAE,CAAC,yBAAyB,EAAE,gBAAgB,EAAE,eAAe,EAAE,qBAAqB,CAAC;QAC/F,KAAK,EAAE,EAAE;KACV;IACD;QACE,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,0DAA0D;QACvE,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,eAAe,CAAC;QACzF,KAAK,EAAE,EAAE;KACV;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,qDAAqD;QAClE,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;QACnG,KAAK,EAAE,EAAE;KACV;CACF,CAAC;AAEF,SAAgB,WAAW,CAAC,EAAU;IACpC,OAAO,iBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,aAAa,CAAC,QAAiB;IAC7C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,iBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,iBAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TemplateFile } from './index.js';
2
+ export declare function generateTokenProgramTemplate(projectName: string, anchorVersion: string): TemplateFile[];
3
+ //# sourceMappingURL=token-program.d.ts.map