autrace 0.0.4 → 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.
- package/README.md +8 -3
- package/build/src/AccountUpdateAnalyzer.d.ts +5 -0
- package/build/src/AccountUpdateAnalyzer.js +87 -5
- package/build/src/AccountUpdateAnalyzer.js.map +1 -1
- package/build/src/BlockchainAdapter.d.ts +1 -0
- package/build/src/BlockchainAdapter.js +184 -0
- package/build/src/BlockchainAdapter.js.map +1 -0
- package/build/src/BlockchainFlowAnalyzer.d.ts +17 -0
- package/build/src/BlockchainFlowAnalyzer.js +284 -0
- package/build/src/BlockchainFlowAnalyzer.js.map +1 -0
- package/build/src/Interface.d.ts +67 -1
- package/build/src/Visualiser.d.ts +14 -0
- package/build/src/Visualiser.js +464 -0
- package/build/src/Visualiser.js.map +1 -1
- package/build/src/aucli.d.ts +2 -0
- package/build/src/aucli.js +98 -0
- package/build/src/aucli.js.map +1 -0
- package/build/src/autrace.d.ts +2 -0
- package/build/src/autrace.js +136 -34
- package/build/src/autrace.js.map +1 -1
- package/build/src/config.d.ts +2 -0
- package/build/src/config.js +5 -0
- package/build/src/config.js.map +1 -0
- package/build/src/helper.d.ts +1 -0
- package/build/src/helper.js +23 -0
- package/build/src/helper.js.map +1 -0
- package/package.json +20 -5
@@ -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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"}
|
package/build/src/autrace.d.ts
CHANGED
@@ -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
|
}
|
package/build/src/autrace.js
CHANGED
@@ -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
|
-
|
38
|
-
|
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) /
|
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
|
-
|
100
|
-
|
101
|
-
BigInt(
|
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
|
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
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
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
|
-
|
202
|
-
|
203
|
-
|
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) {
|
package/build/src/autrace.js.map
CHANGED
@@ -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 @@
|
|
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.
|
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": "
|
41
|
-
"license": "
|
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
|
-
"
|
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
|
}
|