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
package/README.md CHANGED
@@ -24,9 +24,18 @@ forge init my-project
24
24
  # With intent-driven CPI generation
25
25
  forge init my-project --intent "transfer 100 tokens safely"
26
26
 
27
+ # With program template
28
+ forge init my-token --template token-program
29
+
27
30
  # With specific Anchor version
28
31
  forge init my-project --anchor-version 0.31.0
29
32
 
33
+ # Interactive setup wizard
34
+ forge interactive
35
+
36
+ # List available templates
37
+ forge list-templates
38
+
30
39
  cd my-project
31
40
  ```
32
41
 
@@ -119,6 +128,162 @@ forge verify
119
128
  - āœ… Generate Solana Explorer verification links
120
129
  - āœ… Save local verification record
121
130
 
131
+ ### Program Templates
132
+ ```bash
133
+ # List all available templates
134
+ forge list-templates
135
+
136
+ # Create project from template
137
+ forge init my-token --template token-program
138
+ forge init my-nft --template nft-marketplace
139
+ forge init my-dao --template dao-governance
140
+ ```
141
+
142
+ **Available Templates:**
143
+ - šŸŖ™ **token-program**: Complete SPL token with mint/transfer/burn
144
+ - šŸ–¼ļø **nft-marketplace**: NFT marketplace with royalties
145
+ - šŸ—³ļø **dao-governance**: DAO with proposals and voting
146
+ - šŸ’Ž **staking-rewards**: Token staking with rewards
147
+ - šŸ”„ **escrow-swap**: Trustless token swap
148
+ - ā° **token-vesting**: Time-based vesting schedules
149
+ - šŸš€ **moonshot-fair-launch**: Moonshot-compatible bonding curve
150
+ - šŸ’Š **pumpfun-launch**: Standard Pump.fun meme token
151
+
152
+ ### Program Upgrade & Migration
153
+ ```bash
154
+ # Upgrade to latest Anchor version
155
+ forge upgrade
156
+
157
+ # Upgrade to specific version
158
+ forge upgrade 0.32.1
159
+
160
+ # Migration assistant (with additional checks)
161
+ forge migrate 0.32.1
162
+ ```
163
+
164
+ ### Performance Analysis
165
+ ```bash
166
+ forge profile
167
+ ```
168
+
169
+ **Performance Insights:**
170
+ - ⚔ Compute unit usage analysis
171
+ - šŸ’° Cost estimation per transaction
172
+ - šŸŽÆ Optimization suggestions
173
+ - šŸ“Š Gas usage reports
174
+
175
+ ### Program Monitoring
176
+ ```bash
177
+ forge monitor
178
+ ```
179
+
180
+ **Monitoring Features:**
181
+ - šŸ“ˆ Real-time transaction volume
182
+ - šŸ” Error rate tracking
183
+ - šŸ‘„ Active user analytics
184
+ - šŸ“Š Account growth metrics
185
+
186
+ ### Interactive Setup
187
+ ```bash
188
+ forge interactive
189
+ ```
190
+
191
+ **Guided Wizard:**
192
+ - šŸ“¦ Project name selection
193
+ - šŸ“š Template selection
194
+ - šŸ’” Intent-driven generation
195
+ - šŸ”§ Anchor version configuration
196
+
197
+ ### Documentation Generation
198
+ ```bash
199
+ forge docs
200
+ ```
201
+
202
+ **Auto-Generated Docs:**
203
+ - šŸ“– API documentation from IDL
204
+ - šŸ“‹ Instruction reference
205
+ - šŸ—ļø Account structure docs
206
+ - šŸ”— Integration examples
207
+
208
+ ### Code Quality Analysis
209
+ ```bash
210
+ forge quality
211
+ ```
212
+
213
+ **Quality Metrics:**
214
+ - šŸ“Š Code complexity scoring
215
+ - šŸ“ Function/struct counts
216
+ - āœ… Maintainability assessment
217
+ - šŸ’” Refactoring recommendations
218
+
219
+ ### Cost Calculator
220
+ ```bash
221
+ forge cost
222
+ ```
223
+
224
+ **Cost Analysis:**
225
+ - šŸ’¾ Deployment costs (~2.5 SOL)
226
+ - ⚔ Per-transaction fees
227
+ - šŸ“ˆ Monthly operation estimates
228
+ - šŸ’” Optimization tips
229
+
230
+ ### Keypair Management
231
+ ```bash
232
+ # Generate new keypair
233
+ forge keypair generate
234
+
235
+ # Generate to specific path
236
+ forge keypair generate ./my-keypair.json
237
+
238
+ # Import keypair
239
+ forge keypair import ./keypair.json
240
+
241
+ # Show keypair info
242
+ forge keypair info
243
+ ```
244
+
245
+ ### Network Management
246
+ ```bash
247
+ # Switch network
248
+ forge network switch devnet
249
+ forge network switch mainnet-beta
250
+
251
+ # Check network status
252
+ forge network status
253
+
254
+ # Test RPC connection
255
+ forge network test
256
+ ```
257
+
258
+ ### Program Search
259
+ ```bash
260
+ # Search for programs
261
+ forge search token program
262
+ forge search nft marketplace
263
+ ```
264
+
265
+ ### Analytics Dashboard
266
+ ```bash
267
+ forge analytics
268
+ ```
269
+
270
+ **Analytics Links:**
271
+ - šŸ”— Solana Explorer integration
272
+ - šŸ“Š Transaction volume tracking
273
+ - šŸ“ˆ User activity metrics
274
+
275
+ ### CI/CD Integration
276
+ ```bash
277
+ # Generate GitHub Actions workflow
278
+ forge ci github
279
+ ```
280
+
281
+ **Generated Workflow:**
282
+ - āœ… Auto-test on push/PR
283
+ - āœ… Security audit checks
284
+ - āœ… Code quality validation
285
+ - āœ… Auto-deploy to devnet
286
+
122
287
  ### Update FORGE
123
288
  ```bash
124
289
  forge update
@@ -145,10 +310,23 @@ FORGE transforms natural language intents into production-ready Solana programs.
145
310
 
146
311
  ### Core Features
147
312
  - āœ… **Intent-Driven Generation**: `"transfer 100 tokens safely"` → Modern CPI code
313
+ - āœ… **Program Templates Library**: 6 battle-tested templates (Token, NFT, DAO, Staking, Escrow, Vesting)
148
314
  - āœ… **Automated Testing Framework**: Comprehensive test suites with security validation
149
315
  - āœ… **Contract Verification**: Source code transparency on Solana Explorer
150
316
  - āœ… **Multi-Environment Deployment**: Deploy to devnet/mainnet/localnet with safety checks
151
- - āœ… **Security Audit Tools**: Automated security analysis and best practices validation
317
+ - āœ… **Security Audit Tools**: Automated security analysis (--deep for advanced checks)
318
+ - āœ… **Program Upgrade System**: Version management and migration assistance
319
+ - āœ… **Performance Profiler**: Compute unit analysis and optimization suggestions
320
+ - āœ… **Program Monitoring**: Real-time analytics and activity tracking
321
+ - āœ… **Interactive CLI**: Guided project setup wizard
322
+ - āœ… **Documentation Generator**: Auto-generate API docs from IDL
323
+ - āœ… **Code Quality Metrics**: Complexity analysis and maintainability scoring
324
+ - āœ… **Cost Calculator**: Deployment and operation cost estimation
325
+ - āœ… **Keypair Management**: Secure keypair generation and import utilities
326
+ - āœ… **Network Utilities**: Switch between networks, test connections
327
+ - āœ… **Program Search**: Find verified programs and best practices
328
+ - āœ… **CI/CD Integration**: GitHub Actions workflow generation
329
+ - āœ… **Fair-Launch Support**: Integrated Moonshot & Pump.fun launching
152
330
  - āœ… **Complete Anchor Workspace**: Ready-to-build projects with proper structure
153
331
  - āœ… **Client SDK Generation**: Auto-generated TypeScript SDK for program interaction
154
332
  - āœ… **Modern CPI Helpers**: `transfer_checked`, `mint_to`, PDA signers with `ctx.bumps`
package/dist/cli.js CHANGED
@@ -10,18 +10,38 @@ const generate_sdk_js_1 = require("./commands/generate-sdk.js");
10
10
  const audit_js_1 = require("./commands/audit.js");
11
11
  const test_js_1 = require("./commands/test.js");
12
12
  const verify_js_1 = require("./commands/verify.js");
13
+ const upgrade_js_1 = require("./commands/upgrade.js");
14
+ const profile_js_1 = require("./commands/profile.js");
15
+ const monitor_js_1 = require("./commands/monitor.js");
16
+ const interactive_js_1 = require("./commands/interactive.js");
17
+ const docs_js_1 = require("./commands/docs.js");
18
+ const migrate_js_1 = require("./commands/migrate.js");
19
+ const quality_js_1 = require("./commands/quality.js");
20
+ const cost_js_1 = require("./commands/cost.js");
21
+ const keypair_js_1 = require("./commands/keypair.js");
22
+ const network_js_1 = require("./commands/network.js");
23
+ const search_js_1 = require("./commands/search.js");
24
+ const analytics_js_1 = require("./commands/analytics.js");
25
+ const ci_js_1 = require("./commands/ci.js");
13
26
  const program = new commander_1.Command();
14
27
  program
15
28
  .name('forge')
16
29
  .description('FORGE - Intent-driven app assembly on Solana')
17
- .version('2.2.5');
30
+ .version('3.0.0');
18
31
  program
19
32
  .command('init [projectName]')
20
33
  .description('Initialize a new FORGE project')
21
34
  .option('-i, --intent <intent>', 'Describe what the program should do (enables CPI generation)')
22
35
  .option('-a, --anchor-version <version>', 'Specify Anchor version (default: 0.32.1)', '0.32.1')
36
+ .option('-t, --template <template>', 'Use a program template (token-program, nft-marketplace, dao-governance, staking-rewards, escrow-swap, token-vesting)')
23
37
  .action(async (projectName, options) => {
24
- await (0, init_js_1.initCommand)(projectName, options.intent, options.anchorVersion);
38
+ await (0, init_js_1.initCommand)(projectName, options.intent, options.anchorVersion, options.template);
39
+ });
40
+ program
41
+ .command('list-templates')
42
+ .description('List available program templates')
43
+ .action(async () => {
44
+ await (0, init_js_1.listTemplatesCommand)();
25
45
  });
26
46
  program
27
47
  .command('deploy')
@@ -33,8 +53,9 @@ program
33
53
  program
34
54
  .command('audit')
35
55
  .description('Run security audit on Anchor program')
36
- .action(async () => {
37
- await (0, audit_js_1.auditCommand)();
56
+ .option('--deep', 'Run deep security analysis with advanced checks')
57
+ .action(async (options) => {
58
+ await (0, audit_js_1.auditCommand)(options.deep);
38
59
  });
39
60
  program
40
61
  .command('test')
@@ -48,6 +69,84 @@ program
48
69
  .action(async () => {
49
70
  await (0, verify_js_1.verifyCommand)();
50
71
  });
72
+ program
73
+ .command('upgrade [version]')
74
+ .description('Upgrade Anchor program to a new version')
75
+ .action(async (version) => {
76
+ await (0, upgrade_js_1.upgradeCommand)(version);
77
+ });
78
+ program
79
+ .command('profile')
80
+ .description('Analyze program performance and compute unit usage')
81
+ .action(async () => {
82
+ await (0, profile_js_1.profileCommand)();
83
+ });
84
+ program
85
+ .command('monitor')
86
+ .description('Monitor program activity and analytics')
87
+ .action(async () => {
88
+ await (0, monitor_js_1.monitorCommand)();
89
+ });
90
+ program
91
+ .command('interactive')
92
+ .description('Interactive project setup wizard')
93
+ .action(async () => {
94
+ await (0, interactive_js_1.interactiveCommand)();
95
+ });
96
+ program
97
+ .command('docs')
98
+ .description('Generate API documentation from IDL')
99
+ .action(async () => {
100
+ await (0, docs_js_1.docsCommand)();
101
+ });
102
+ program
103
+ .command('migrate [version]')
104
+ .description('Migrate program between Anchor versions')
105
+ .action(async (version) => {
106
+ await (0, migrate_js_1.migrateCommand)(version);
107
+ });
108
+ program
109
+ .command('quality')
110
+ .description('Analyze code quality metrics')
111
+ .action(async () => {
112
+ await (0, quality_js_1.qualityCommand)();
113
+ });
114
+ program
115
+ .command('cost')
116
+ .description('Calculate deployment and operation costs')
117
+ .action(async () => {
118
+ await (0, cost_js_1.costCommand)();
119
+ });
120
+ program
121
+ .command('keypair [action] [path]')
122
+ .description('Manage keypairs (generate, import, info)')
123
+ .action(async (action, path) => {
124
+ await (0, keypair_js_1.keypairCommand)(action, path);
125
+ });
126
+ program
127
+ .command('network [action] [network]')
128
+ .description('Manage Solana network connections (switch, status, test)')
129
+ .action(async (action, network) => {
130
+ await (0, network_js_1.networkCommand)(action, network);
131
+ });
132
+ program
133
+ .command('search [query]')
134
+ .description('Search for verified Solana programs')
135
+ .action(async (query) => {
136
+ await (0, search_js_1.searchCommand)(query);
137
+ });
138
+ program
139
+ .command('analytics')
140
+ .description('View program analytics and metrics')
141
+ .action(async () => {
142
+ await (0, analytics_js_1.analyticsCommand)();
143
+ });
144
+ program
145
+ .command('ci [platform]')
146
+ .description('Generate CI/CD workflows (github)')
147
+ .action(async (platform) => {
148
+ await (0, ci_js_1.ciCommand)(platform);
149
+ });
51
150
  program
52
151
  .command('generate-sdk [outputDir]')
53
152
  .description('Generate TypeScript SDK from Anchor program')
@@ -69,13 +168,30 @@ program
69
168
  // Show logo on help
70
169
  program.on('--help', () => {
71
170
  console.log(ascii_js_1.logo);
72
- console.log('\nCommands:');
171
+ console.log('\nCore Commands:');
73
172
  console.log(' init Create new Anchor projects');
74
- console.log(' audit Run security audit on program');
173
+ console.log(' interactive Interactive project setup wizard');
174
+ console.log(' list-templates List available program templates');
175
+ console.log('\nDevelopment:');
75
176
  console.log(' test Generate and run comprehensive tests');
177
+ console.log(' audit Run security audit (--deep for advanced)');
178
+ console.log(' quality Analyze code quality metrics');
179
+ console.log(' profile Analyze performance and compute units');
180
+ console.log(' docs Generate API documentation');
181
+ console.log('\nDeployment:');
182
+ console.log(' deploy Deploy to Solana (--env: devnet/mainnet)');
76
183
  console.log(' verify Verify contract on Solana Explorer');
77
- console.log(' deploy Deploy to Solana network');
184
+ console.log(' upgrade Upgrade Anchor program version');
185
+ console.log(' migrate Migrate between Anchor versions');
186
+ console.log('\nUtilities:');
78
187
  console.log(' generate-sdk Generate TypeScript SDK from program');
188
+ console.log(' monitor Monitor program activity');
189
+ console.log(' analytics View program analytics');
190
+ console.log(' cost Calculate deployment costs');
191
+ console.log(' keypair Manage keypairs (generate/import/info)');
192
+ console.log(' network Manage network connections');
193
+ console.log(' search Search verified Solana programs');
194
+ console.log(' ci Generate CI/CD workflows');
79
195
  console.log(' status Check environment & versions');
80
196
  console.log(' update Update FORGE to latest version');
81
197
  console.log('\nFORGE does not:');
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,yCAAkC;AAClC,gDAAiD;AACjD,oDAAqD;AACrD,oDAAoE;AACpE,gEAAgE;AAChE,kDAAmD;AACnD,gDAAiD;AACjD,oDAAqD;AAErD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,uBAAuB,EAAE,8DAA8D,CAAC;KAC/F,MAAM,CAAC,gCAAgC,EAAE,0CAA0C,EAAE,QAAQ,CAAC;KAC9F,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;IACrC,MAAM,IAAA,qBAAW,EAAC,WAAW,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,yBAAyB,EAAE,sEAAsE,EAAE,QAAQ,CAAC;KACnH,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAA,yBAAa,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,uBAAY,GAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,qBAAW,GAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,yBAAa,GAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,0BAA0B,CAAC;KACnC,WAAW,CAAC,6CAA6C,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;IAC1B,MAAM,IAAA,oCAAkB,EAAC,SAAS,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,yBAAa,GAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAA,yBAAa,GAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,oBAAoB;AACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,eAAI,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function analyticsCommand(): Promise<void>;
2
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/commands/analytics.ts"],"names":[],"mappings":"AAEA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwCtD"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.analyticsCommand = analyticsCommand;
4
+ const fs_1 = require("fs");
5
+ async function analyticsCommand() {
6
+ console.log('šŸ“Š FORGE Program Analytics\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(`šŸ“ˆ Analytics for: ${programId}\n`);
18
+ console.log('šŸ”— Analytics Dashboard:');
19
+ console.log(` Solana Explorer: https://explorer.solana.com/address/${programId}`);
20
+ console.log(` Solscan: https://solscan.io/account/${programId}`);
21
+ console.log(` Helius: https://helius.dev (requires API key)`);
22
+ console.log('\nšŸ“Š Available Metrics:');
23
+ console.log(' • Transaction volume');
24
+ console.log(' • Unique users');
25
+ console.log(' • Error rate');
26
+ console.log(' • Compute unit usage');
27
+ console.log(' • Account growth');
28
+ console.log('\nšŸ’” Integration Options:');
29
+ console.log(' 1. Use Solana Explorer for basic metrics');
30
+ console.log(' 2. Integrate Helius API for advanced analytics');
31
+ console.log(' 3. Use QuickNode for real-time monitoring');
32
+ console.log(' 4. Build custom dashboard with RPC calls');
33
+ }
34
+ catch (error) {
35
+ console.error('āŒ Analytics setup failed');
36
+ console.error(`Error: ${error.message}`);
37
+ process.exit(1);
38
+ }
39
+ }
40
+ function getProgramId() {
41
+ try {
42
+ const { readFileSync } = require('fs');
43
+ const anchorToml = readFileSync('Anchor.toml', 'utf8');
44
+ const match = anchorToml.match(/\[programs\.localnet\]\s*([^=]+)\s*=\s*"([^"]+)"/);
45
+ return match ? match[2] : null;
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/commands/analytics.ts"],"names":[],"mappings":";;AAEA,4CAwCC;AA1CD,2BAAgC;AAEzB,KAAK,UAAU,gBAAgB;IACpC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,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,qBAAqB,SAAS,IAAI,CAAC,CAAC;QAEhD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,2DAA2D,SAAS,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAEnC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE7D,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,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"}
@@ -1,2 +1,2 @@
1
- export declare function auditCommand(): Promise<void>;
1
+ export declare function auditCommand(deep?: boolean): Promise<void>;
2
2
  //# sourceMappingURL=audit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAWA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAuClD"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"AAWA,wBAAsB,YAAY,CAAC,IAAI,GAAE,OAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CvE"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.auditCommand = auditCommand;
4
4
  const fs_1 = require("fs");
5
- async function auditCommand() {
6
- console.log('šŸ” Running FORGE Security Audit...\n');
5
+ async function auditCommand(deep = false) {
6
+ console.log(`šŸ” Running FORGE Security Audit${deep ? ' (Deep Analysis)' : ''}...\n`);
7
7
  const results = [];
8
8
  try {
9
9
  // Check if we're in an Anchor project
@@ -25,6 +25,10 @@ async function auditCommand() {
25
25
  results.push(...await checkPerformanceIssues());
26
26
  console.log('šŸ›”ļø Checking access control...');
27
27
  results.push(...await checkAccessControl());
28
+ if (deep) {
29
+ console.log('šŸ”¬ Running deep analysis...');
30
+ results.push(...await deepAnalysis());
31
+ }
28
32
  // Display results
29
33
  displayResults(results);
30
34
  }
@@ -196,6 +200,60 @@ async function checkAccessControl() {
196
200
  }
197
201
  return results;
198
202
  }
203
+ async function deepAnalysis() {
204
+ const results = [];
205
+ try {
206
+ const { glob } = require('glob');
207
+ const rustFiles = await glob('programs/**/*.rs');
208
+ for (const file of rustFiles) {
209
+ const content = (0, fs_1.readFileSync)(file, 'utf8');
210
+ // Reentrancy detection
211
+ if (content.includes('invoke') && content.includes('invoke_signed')) {
212
+ results.push({
213
+ severity: 'high',
214
+ title: 'Potential Reentrancy Risk',
215
+ description: 'Multiple invoke calls detected - potential reentrancy vulnerability',
216
+ location: file,
217
+ recommendation: 'Use checks-effects-interactions pattern and add reentrancy guards'
218
+ });
219
+ }
220
+ // Integer overflow in loops
221
+ if (content.includes('for') && content.includes('+') && !content.includes('checked_')) {
222
+ results.push({
223
+ severity: 'medium',
224
+ title: 'Potential Loop Overflow',
225
+ description: 'Loop counter may overflow without checks',
226
+ location: file,
227
+ recommendation: 'Add bounds checking for loop iterations'
228
+ });
229
+ }
230
+ // Missing error handling
231
+ if (content.includes('unwrap()') || content.includes('expect(')) {
232
+ results.push({
233
+ severity: 'medium',
234
+ title: 'Unsafe Error Handling',
235
+ description: 'Using unwrap() or expect() may cause program to panic',
236
+ location: file,
237
+ recommendation: 'Use proper error handling with Result types'
238
+ });
239
+ }
240
+ // Direct account data manipulation
241
+ if (content.includes('try_borrow_mut') && !content.includes('require!')) {
242
+ results.push({
243
+ severity: 'high',
244
+ title: 'Unvalidated Account Mutation',
245
+ description: 'Account data mutated without validation',
246
+ location: file,
247
+ recommendation: 'Add validation checks before mutating account data'
248
+ });
249
+ }
250
+ }
251
+ }
252
+ catch (error) {
253
+ // Ignore glob errors
254
+ }
255
+ return results;
256
+ }
199
257
  function displayResults(results) {
200
258
  if (results.length === 0) {
201
259
  console.log('\nāœ… No security issues found!');
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/commands/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function ciCommand(platform?: string): Promise<void>;
2
+ //# sourceMappingURL=ci.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/commands/ci.ts"],"names":[],"mappings":"AAGA,wBAAsB,SAAS,CAAC,QAAQ,GAAE,MAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B1E"}