autrace 0.0.5 → 0.0.6

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.
@@ -0,0 +1,98 @@
1
+ #!/usr/bin/env node
2
+ import { AUTrace, AUVisualizer } from './index.js';
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ import chalk from 'chalk';
6
+ import yargs from 'yargs';
7
+ import { hideBin } from 'yargs/helpers';
8
+ //import { createServer } from 'http';
9
+ //import { createReadStream } from 'fs';
10
+ //import open from 'open';
11
+ import { fetchZkAppTransactionByHash } from './helper.js';
12
+ yargs(hideBin(process.argv))
13
+ .usage('Usage: $0 [options]')
14
+ .option('tx', {
15
+ alias: 't',
16
+ describe: 'Transaction hash to analyze',
17
+ type: 'string',
18
+ })
19
+ /*.option('file', {
20
+ alias: 'f',
21
+ describe: 'JSON file containing transaction data',
22
+ type: 'string',
23
+ })*/
24
+ .example('$0 --tx 5JuCdmp1PeRnnXhJJ5pHCDC7N3wpBG49DxBG82N8o49f8K7YcDpZ', 'Analyze transaction from the blockchain')
25
+ //.example('$0 --file ./transaction.json', 'Analyze transaction from a local file')
26
+ .check((argv) => {
27
+ if (argv.tx && argv.file) {
28
+ throw new Error('Please provide either --tx or --file, not both');
29
+ }
30
+ if (!argv.tx && !argv.file) {
31
+ throw new Error('Please provide either --tx or --file');
32
+ }
33
+ return true;
34
+ })
35
+ .help()
36
+ .alias('help', 'h')
37
+ .epilog('For more information visit https://github.com/ronykris/autrace')
38
+ .parseAsync()
39
+ .then(async (argv) => {
40
+ await main(argv);
41
+ })
42
+ .catch(error => {
43
+ console.error(chalk.red('Argument error:'), error.message);
44
+ process.exit(1);
45
+ });
46
+ const main = async (argv) => {
47
+ try {
48
+ console.log(chalk.blue('AUTrace - Blockchain Transaction Analyzer'));
49
+ console.log(chalk.blue('========================================='));
50
+ let transactionData;
51
+ if (argv.tx) {
52
+ console.log(chalk.yellow(`Fetching transaction ${argv.tx} from API...`));
53
+ transactionData = await fetchZkAppTransactionByHash(argv.tx);
54
+ console.log(transactionData);
55
+ }
56
+ else if (argv.file) {
57
+ console.log(chalk.yellow(`Loading transaction from file ${argv.file}...`));
58
+ transactionData = loadTransactionFromFile(argv.file);
59
+ }
60
+ if (!transactionData) {
61
+ console.error(chalk.red('Failed to load transaction data'));
62
+ process.exit(1);
63
+ }
64
+ const autrace = new AUTrace();
65
+ autrace.clearTransactionState();
66
+ console.log(chalk.yellow('Analyzing transaction...'));
67
+ autrace.getTransactions(transactionData);
68
+ //console.log(chalk.yellow('Fetching history...'));
69
+ const history = autrace.getStateHistory();
70
+ history.forEach((state, index) => {
71
+ console.log(`State ${index}:`, state);
72
+ });
73
+ const visualizer = new AUVisualizer(history);
74
+ await visualizer.generateTransactionVisualization(history[0]);
75
+ }
76
+ catch (error) {
77
+ console.error(chalk.red('Error:'), error instanceof Error ? error.message : String(error));
78
+ process.exit(1);
79
+ }
80
+ };
81
+ /**
82
+ * Load transaction data from a local file
83
+ */
84
+ function loadTransactionFromFile(filePath) {
85
+ try {
86
+ const resolvedPath = path.resolve(process.cwd(), filePath);
87
+ if (!fs.existsSync(resolvedPath)) {
88
+ throw new Error(`File not found: ${resolvedPath}`);
89
+ }
90
+ const fileContent = fs.readFileSync(resolvedPath, 'utf8');
91
+ return JSON.parse(fileContent);
92
+ }
93
+ catch (error) {
94
+ console.error(chalk.red('Error loading transaction file:'), error instanceof Error ? error.message : String(error));
95
+ throw error;
96
+ }
97
+ }
98
+ //# sourceMappingURL=aucli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aucli.js","sourceRoot":"","sources":["../../src/aucli.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export declare class AUTrace {
22
22
  private buildEdgesFromRelationships;
23
23
  clearTransactionState: () => void;
24
24
  getTransactionState: (transaction: any) => TransactionState;
25
+ getBlockchainTransactionState: (blockchainTx: any) => TransactionState;
25
26
  getTransactions: (...transactionStates: any[]) => void;
26
27
  getStateHistory(): any[];
28
+ getBlockchainTxnStateWithFlowAnalysis: (blockchainTx: any) => TransactionState;
27
29
  }
@@ -1,11 +1,25 @@
1
1
  import { SmartContractAnalyzer } from './ContractAnalyser.js';
2
2
  import { AccountUpdateAnalyzer } from './AccountUpdateAnalyzer.js';
3
+ import { adaptBlockchainTransaction } from './BlockchainAdapter.js';
4
+ import { BlockchainFlowAnalyzer } from './BlockchainFlowAnalyzer.js';
3
5
  export class AUTrace {
4
6
  constructor() {
5
7
  this.transactionSnapshots = [];
6
8
  this.traverseTransaction = (transaction) => {
7
9
  if (!transaction)
8
10
  return;
11
+ // Extract blockchain data if available
12
+ if (transaction.originalBlockchainData) {
13
+ const blockchainTx = transaction.originalBlockchainData;
14
+ this.transactionState.blockchainData = {
15
+ blockHeight: blockchainTx.blockHeight,
16
+ txHash: blockchainTx.txHash,
17
+ timestamp: blockchainTx.timestamp,
18
+ memo: blockchainTx.memo || '',
19
+ status: blockchainTx.txStatus || 'unknown',
20
+ failures: blockchainTx.failures || []
21
+ };
22
+ }
9
23
  const accountUpdates = transaction.transaction.accountUpdates || [];
10
24
  this.transactionState.metadata.accountUpdates = accountUpdates.length;
11
25
  accountUpdates.forEach((au) => {
@@ -27,28 +41,67 @@ export class AUTrace {
27
41
  }*/
28
42
  // Calculate fees
29
43
  if (au.body.balanceChange) {
30
- const magnitude = au.body.balanceChange.magnitude.toString();
44
+ //const magnitude = au.body.balanceChange.magnitude.toString();
45
+ let magnitudeRaw = au.body.balanceChange.magnitude;
46
+ let magnitude;
47
+ if (typeof magnitudeRaw === "bigint") {
48
+ magnitude = magnitudeRaw;
49
+ }
50
+ else if (typeof magnitudeRaw === "string") {
51
+ if (/^\d+$/.test(magnitudeRaw)) {
52
+ // String contains an integer (e.g., "1000000000"), convert directly
53
+ magnitude = BigInt(magnitudeRaw);
54
+ }
55
+ else if (/^\d+\.\d+$/.test(magnitudeRaw)) {
56
+ // String contains a decimal (e.g., "0.467684313"), convert safely
57
+ const magnitudeFloat = parseFloat(magnitudeRaw);
58
+ magnitude = BigInt(Math.round(magnitudeFloat * 1e9)); // Convert MINA to nanomina
59
+ }
60
+ else {
61
+ throw new Error(`Unexpected magnitude string format: ${magnitudeRaw}`);
62
+ }
63
+ }
64
+ else if (typeof magnitudeRaw === "number") {
65
+ // If it's already a float, multiply and round before converting
66
+ const magnitudeInteger = Math.round(magnitudeRaw * 1e9); // Convert MINA to nanomina
67
+ magnitude = BigInt(magnitudeInteger);
68
+ }
69
+ else {
70
+ throw new Error(`Unexpected magnitude type: ${typeof magnitudeRaw}, value: ${magnitudeRaw}`);
71
+ }
72
+ //console.log("DEBUG: Converted magnitude to BigInt:", magnitude)
31
73
  // If balance change is negative, it's a fee
32
74
  if (au.body.balanceChange.isNegative()) {
33
75
  // Convert to nanomina
34
- const feesInNanomina = BigInt(magnitude);
76
+ //const feesInNanomina = BigInt(magnitude);
77
+ const feesInNanomina = magnitude;
35
78
  // Convert current total from MINA to nanomina for calculation
36
79
  const currentTotalNanomina = this.transactionState.metadata.totalFees === 0
37
- ? BigInt(0)
38
- : BigInt(this.transactionState.metadata.totalFees * 1e9);
80
+ //? BigInt(0)
81
+ ? 0n
82
+ : BigInt(Math.round(Number(this.transactionState.metadata.totalFees) * 1e9));
39
83
  const newTotalNanomina = currentTotalNanomina + feesInNanomina;
40
84
  // Convert back to MINA and store as number
41
- this.transactionState.metadata.totalFees = Number(newTotalNanomina) / 1e9;
85
+ this.transactionState.metadata.totalFees = Number(newTotalNanomina) / 1000000000;
42
86
  }
43
87
  }
44
88
  if (!this.transactionState.nodes.has(auMetadata.id)) {
45
89
  const nodeType = this.determineNodeType(au);
90
+ // Extract additional metadata
91
+ const failed = au.metadata?.failed || false;
92
+ const failureReason = au.metadata?.failureReason;
93
+ const tokenId = au.metadata?.tokenId;
94
+ const callDepth = au.metadata?.callDepth || 0;
46
95
  const node = {
47
96
  id: auMetadata.id,
48
97
  type: nodeType,
49
98
  label: auMetadata.label,
50
99
  publicKey: auMetadata.publicKey,
51
- contractType: this.extractContractType(au)
100
+ contractType: this.extractContractType(au),
101
+ failed,
102
+ failureReason,
103
+ tokenId,
104
+ callDepth
52
105
  };
53
106
  this.transactionState.nodes.set(auMetadata.id, node);
54
107
  }
@@ -56,6 +109,11 @@ export class AUTrace {
56
109
  this.updateBalanceState(auMetadata);
57
110
  };
58
111
  this.extractAUMetadata = (au) => {
112
+ // Extract label, checking if it's a failed operation
113
+ let label = au.label || 'Unnamed Update';
114
+ if (au.metadata?.failed) {
115
+ label = `[FAILED] ${label}`;
116
+ }
59
117
  return {
60
118
  id: au.id.toString(),
61
119
  label: au.label || 'Unnamed Update',
@@ -63,7 +121,11 @@ export class AUTrace {
63
121
  publicKey: au.body.publicKey.toBase58(),
64
122
  balanceChange: au.body.balanceChange.toString(),
65
123
  methodName: au.lazyAuthorization?.methodName,
66
- args: au.lazyAuthorization?.args
124
+ args: au.lazyAuthorization?.args,
125
+ // Additional metadata
126
+ failed: au.metadata?.failed || false,
127
+ tokenId: au.metadata?.tokenId,
128
+ callDepth: au.metadata?.callDepth || 0
67
129
  };
68
130
  };
69
131
  this.extractContractType = (au) => {
@@ -96,9 +158,10 @@ export class AUTrace {
96
158
  const currentBalance = this.transactionState.balanceStates.get(auMetadata.id) || [0];
97
159
  // Get the last known balance
98
160
  const lastBalance = currentBalance[currentBalance.length - 1] ?? 0;
99
- const balanceChange = auMetadata.balanceChange ?
100
- BigInt(auMetadata.balanceChange) :
101
- BigInt(0);
161
+ //console.log("DEBUG: Converting balanceChange to BigInt:", auMetadata.balanceChange, "Type:", typeof auMetadata.balanceChange);
162
+ const balanceChange = auMetadata.balanceChange
163
+ ? BigInt(Math.round(Number(auMetadata.balanceChange) * 1e9))
164
+ : 0n;
102
165
  const newBalance = BigInt(lastBalance?.toString()) + balanceChange;
103
166
  currentBalance.push(Number(newBalance));
104
167
  this.transactionState.balanceStates.set(auMetadata.id, currentBalance);
@@ -114,8 +177,11 @@ export class AUTrace {
114
177
  totalFees: 0,
115
178
  accountUpdates: 0
116
179
  },
117
- relationships: new Map()
180
+ relationships: new Map(),
181
+ blockchainData: undefined
118
182
  };
183
+ // Also reset the account update analyzer
184
+ this.auAnalyzer.reset();
119
185
  };
120
186
  this.getTransactionState = (transaction) => {
121
187
  if (!this.transactionState) {
@@ -125,8 +191,22 @@ export class AUTrace {
125
191
  this.transactionState.nodes = new Map();
126
192
  this.transactionState.edges = [];
127
193
  this.transactionState.relationships = new Map();
194
+ this.transactionState.blockchainData = undefined;
128
195
  }
129
- this.traverseTransaction(transaction);
196
+ // Check if this is a blockchain transaction and adapt it if needed
197
+ const isBlockchainTx = !transaction?.transaction?.accountUpdates &&
198
+ (transaction.updatedAccounts || transaction.txHash);
199
+ // Use the adapter if this is a blockchain transaction
200
+ const processableTx = isBlockchainTx ?
201
+ adaptBlockchainTransaction(transaction) :
202
+ transaction;
203
+ this.traverseTransaction(processableTx);
204
+ // Reset the account update analyzer before processing
205
+ this.auAnalyzer.reset();
206
+ const accountUpdates = processableTx.transaction.accountUpdates || [];
207
+ accountUpdates.forEach((au) => {
208
+ this.auAnalyzer.processAccountUpdate(au);
209
+ });
130
210
  const auRelationships = this.auAnalyzer.getRelationships();
131
211
  const plainRelationships = new Map();
132
212
  auRelationships.forEach((rel, key) => {
@@ -138,14 +218,30 @@ export class AUTrace {
138
218
  const expandedChildren = Array.isArray(rel.children) && rel.children.length > 0
139
219
  ? rel.children.join(', ')
140
220
  : '';
141
- const expandedMethod = rel.method
142
- ? `Contract: ${rel.method.contract ?? ''}, Method: ${rel.method.name ?? ''}`
143
- : 'N/A';
144
- const expandedStateChanges = Array.isArray(rel.stateChanges)
145
- ? rel.stateChanges
146
- .map(change => `Field: ${change.field ?? ''}, IsSome: ${change.value?.isSome ?? false}, Value: ${change.value?.value ?? '0'}`)
147
- .join(' | ')
148
- : 'No State Changes';
221
+ let expandedMethod = 'N/A';
222
+ if (rel.method) {
223
+ if (typeof rel.method === 'object') {
224
+ expandedMethod = `Contract: ${rel.method.contract ?? ''}, Method: ${rel.method.name ?? ''}`;
225
+ }
226
+ else {
227
+ expandedMethod = String(rel.method);
228
+ }
229
+ }
230
+ let expandedStateChanges = 'No State Changes';
231
+ if (Array.isArray(rel.stateChanges) && rel.stateChanges.length > 0) {
232
+ expandedStateChanges = rel.stateChanges
233
+ .map(change => {
234
+ if (typeof change === 'object') {
235
+ return `Field: ${change.field ?? ''}, Value: ${typeof change.value === 'object'
236
+ ? (change.value?.value ?? '0')
237
+ : (change.value ?? '0')}`;
238
+ }
239
+ else {
240
+ return String(change);
241
+ }
242
+ })
243
+ .join(' | ');
244
+ }
149
245
  plainRelationships.set(key, {
150
246
  ...rel,
151
247
  children: expandedChildren,
@@ -169,12 +265,15 @@ export class AUTrace {
169
265
  const fee = (typeof operation.fee === 'number' || typeof operation.fee === 'string')
170
266
  ? `, Fee: ${operation.fee}`
171
267
  : '';
268
+ const status = edge.failed ? 'failed' : (operation.status ?? 'success');
172
269
  const flattenedOperation = `Sequence: ${operation.sequence ?? 'N/A'}, Type: ${operation.type ?? 'N/A'}, Status: ${operation.status ?? 'N/A'}${amount}${fee}`;
173
270
  return {
174
271
  id: edge.id,
175
272
  fromNode: edge.fromNode,
176
273
  toNode: edge.toNode,
177
- operation: flattenedOperation
274
+ operation: flattenedOperation,
275
+ failed: edge.failed,
276
+ failureReason: edge.failureReason
178
277
  };
179
278
  });
180
279
  /*const state = {
@@ -193,21 +292,16 @@ export class AUTrace {
193
292
  totalFees: this.getTotalFeesInMina() // Add here to convert to MINA
194
293
  },*/
195
294
  metadata: this.transactionState.metadata,
196
- relationships: plainRelationships
295
+ relationships: plainRelationships,
296
+ // Add metadata from blockchain transaction if available
297
+ blockchainData: this.transactionState.blockchainData
197
298
  };
198
299
  //this.transactionSnapshots = [...this.transactionSnapshots, state];
199
300
  this.transactionSnapshots = [...this.transactionSnapshots, finalState];
200
- return {
201
- nodes: this.transactionState.nodes,
202
- edges: expandedEdges,
203
- balanceStates: this.transactionState.balanceStates,
204
- /*metadata: {
205
- ...this.transactionState.metadata,
206
- totalFees: this.getTotalFeesInMina() // Add here to convert to MINA
207
- },*/
208
- metadata: this.transactionState.metadata,
209
- relationships: plainRelationships
210
- };
301
+ return finalState;
302
+ };
303
+ this.getBlockchainTransactionState = (blockchainTx) => {
304
+ return this.getTransactionState(blockchainTx);
211
305
  };
212
306
  this.getTransactions = (...transactionStates) => {
213
307
  for (const txState of transactionStates) {
@@ -216,6 +310,13 @@ export class AUTrace {
216
310
  }
217
311
  }
218
312
  };
313
+ this.getBlockchainTxnStateWithFlowAnalysis = (blockchainTx) => {
314
+ // First get normal transaction state
315
+ const txState = this.getBlockchainTransactionState(blockchainTx);
316
+ const onchainFlowAnalyzer = new BlockchainFlowAnalyzer();
317
+ // Then enhance it with flow analysis
318
+ return onchainFlowAnalyzer.enhanceTransactionState(txState, blockchainTx);
319
+ };
219
320
  this.auAnalyzer = new AccountUpdateAnalyzer();
220
321
  this.contractAnalyzer = new SmartContractAnalyzer();
221
322
  this.contractAnalysis = new Map();
@@ -229,7 +330,8 @@ export class AUTrace {
229
330
  totalFees: 0,
230
331
  accountUpdates: 0
231
332
  },
232
- relationships: new Map()
333
+ relationships: new Map(),
334
+ blockchainData: undefined
233
335
  };
234
336
  }
235
337
  initializeContracts(contracts) {
@@ -1 +1 @@
1
- {"version":3,"file":"autrace.js","sourceRoot":"","sources":["../../src/autrace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autrace.js","sourceRoot":"","sources":["../../src/autrace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const BLOCKBERRY_API_KEY: string;
2
+ export declare const BLOCKBERRY_API_BASE = "https://api.blockberry.one/mina-mainnet/v1";
@@ -0,0 +1,5 @@
1
+ import dotenv from "dotenv";
2
+ dotenv.config();
3
+ export const BLOCKBERRY_API_KEY = process.env.BLOCKBERRY_API_KEY || "";
4
+ export const BLOCKBERRY_API_BASE = "https://api.blockberry.one/mina-mainnet/v1";
5
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,EAAE,CAAA;AAEf,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAA;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const fetchZkAppTransactionByHash: (txHash: string) => Promise<any | null>;
@@ -0,0 +1,23 @@
1
+ import axios from "axios";
2
+ import { BLOCKBERRY_API_BASE, BLOCKBERRY_API_KEY } from "./config.js";
3
+ export const fetchZkAppTransactionByHash = async (txHash) => {
4
+ try {
5
+ const response = await axios.get(`${BLOCKBERRY_API_BASE}/zkapps/txs/${txHash}`, {
6
+ headers: {
7
+ "Accept": "application/json",
8
+ "x-api-key": BLOCKBERRY_API_KEY
9
+ }
10
+ });
11
+ return response.data;
12
+ }
13
+ catch (error) {
14
+ if (axios.isAxiosError(error)) {
15
+ console.error(`Error fetching zkApp transaction ${txHash}: ${error.message}`, error.response?.data);
16
+ }
17
+ else {
18
+ console.error(`Error fetching zkApp transaction ${txHash}: ${error.message}`);
19
+ }
20
+ return null;
21
+ }
22
+ };
23
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtE,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAAE,MAAc,EAAuB,EAAE;IACrF,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAC5B,GAAG,mBAAmB,eAAe,MAAM,EAAE,EAC7C;YACI,OAAO,EAAE;gBACL,QAAQ,EAAE,kBAAkB;gBAC5B,WAAW,EAAE,kBAAkB;aAClC;SACJ,CACJ,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxG,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "autrace",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Account Update analyser for MINA",
5
5
  "main": "build/src/index.js",
6
6
  "types": "build/src/index.d.ts",
7
+ "bin": {
8
+ "aucli": "build/src/aucli.js"
9
+ },
7
10
  "files": [
8
11
  "build",
9
12
  "README.md",
@@ -35,16 +38,28 @@
35
38
  ],
36
39
  "scripts": {
37
40
  "test": "echo \"Error: no test specified\" && exit 1",
38
- "build": "tsc"
41
+ "build": "tsc",
42
+ "version": "npm run build && git add .",
43
+ "prepublishOnly": "npm run build",
44
+ "postversion": "git push && git push --tags",
45
+ "aucli": "node ./build/src/aucli.js --tx 5JtfKFZWH2sdVGL8U93nxD5cQDZuRaNyj3pCvgQHKTLqXQVFBTid"
39
46
  },
40
- "author": "krish",
41
- "license": "ISC",
47
+ "author": "0xkrish",
48
+ "license": "MIT",
42
49
  "devDependencies": {
50
+ "@types/jsdom": "^21.1.7",
43
51
  "@types/node": "^22.13.0",
52
+ "@types/yargs": "^17.0.33",
44
53
  "typescript": "^5.7.3"
45
54
  },
46
55
  "dependencies": {
47
56
  "@mermaid-js/mermaid-cli": "^11.4.2",
48
- "o1js": "^2.2.0"
57
+ "axios": "^1.8.1",
58
+ "d3": "^7.9.0",
59
+ "dotenv": "^16.4.7",
60
+ "jsdom": "^26.0.0",
61
+ "o1js": "^2.2.0",
62
+ "sharp": "^0.33.5",
63
+ "yargs": "^17.7.2"
49
64
  }
50
65
  }