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.
@@ -1,6 +1,9 @@
1
1
  import { promises as fs } from 'fs';
2
2
  import child_process from 'child_process';
3
3
  import util from 'util';
4
+ import * as d3 from 'd3';
5
+ import { JSDOM } from 'jsdom';
6
+ import sharp from 'sharp';
4
7
  const exec = util.promisify(child_process.exec);
5
8
  export class AUVisualizer {
6
9
  constructor(stateHistory) {
@@ -101,6 +104,92 @@ export class AUVisualizer {
101
104
  });
102
105
  return mermaidCode;
103
106
  };
107
+ this.generateBlockchainSection = (txState) => {
108
+ if (!txState.blockchainData) {
109
+ return '';
110
+ }
111
+ const data = txState.blockchainData;
112
+ let md = '## Blockchain Transaction Details\n\n';
113
+ md += `- **Transaction Hash**: \`${data.txHash || 'Unknown'}\`\n`;
114
+ md += `- **Block Height**: ${data.blockHeight || 'Unknown'}\n`;
115
+ md += `- **Status**: ${data.status || 'Unknown'}\n`;
116
+ if (data.timestamp) {
117
+ const date = new Date(data.timestamp);
118
+ md += `- **Timestamp**: ${date.toISOString()}\n`;
119
+ }
120
+ if (data.memo) {
121
+ md += `- **Memo**: ${data.memo}\n`;
122
+ }
123
+ // Add failure information if applicable
124
+ if (data.status === 'failed' && data.failures && data.failures.length > 0) {
125
+ md += '\n### Failures\n\n';
126
+ data.failures.forEach(failure => {
127
+ md += `- **Account Update ${failure.index}**: ${failure.failureReason}\n`;
128
+ });
129
+ }
130
+ return md;
131
+ };
132
+ this.convertSvgToPngWithSharp = async (svgPath, pngPath) => {
133
+ try {
134
+ const svgBuffer = await fs.readFile(svgPath);
135
+ await sharp(svgBuffer)
136
+ .png()
137
+ .flatten({ background: { r: 255, g: 255, b: 255 } }) // Add white background
138
+ .toFile(pngPath);
139
+ console.log(`Successfully converted SVG to PNG at: ${pngPath}`);
140
+ return pngPath;
141
+ }
142
+ catch (error) {
143
+ console.error('Error converting SVG to PNG:', error);
144
+ throw error;
145
+ }
146
+ };
147
+ this.generateBlockchainFlowWithPng = async (txState, svgPath = 'blockchain_flow.svg', pngPath = 'blockchain_flow.png') => {
148
+ try {
149
+ await this.generateBlockchainFlowSVG(txState, svgPath);
150
+ await this.convertSvgToPngWithSharp(svgPath, pngPath);
151
+ return {
152
+ svgPath,
153
+ pngPath
154
+ };
155
+ }
156
+ catch (error) {
157
+ console.error('Error generating blockchain flow PNG:', error);
158
+ throw error;
159
+ }
160
+ };
161
+ this.generateTransactionVisualization = async (txState, outputFormat = 'png', outputPath) => {
162
+ const defaultPaths = {
163
+ 'svg': 'transaction_visualization.svg',
164
+ 'png': 'transaction_visualization.png'
165
+ };
166
+ const finalOutputPath = outputPath || defaultPaths[outputFormat];
167
+ // Detect if this is a blockchain transaction
168
+ const isBlockchainTx = !!txState.blockchainData;
169
+ if (isBlockchainTx) {
170
+ this.generateBlockchainVisualization(txState, outputFormat, finalOutputPath);
171
+ //this.generateBlockchainFlowSVG(txState, outputPath);
172
+ }
173
+ else {
174
+ // Use standard visualization
175
+ if (outputFormat === 'svg') {
176
+ return this.generateSVG(finalOutputPath);
177
+ }
178
+ else {
179
+ const tempSvgPath = 'temp_transaction_visualization.svg';
180
+ await this.generateSVG(tempSvgPath);
181
+ try {
182
+ await this.convertSvgToPngWithSharp(tempSvgPath, finalOutputPath);
183
+ await fs.unlink(tempSvgPath);
184
+ console.log(`Successfully generated transaction PNG at: ${finalOutputPath}`);
185
+ }
186
+ catch (error) {
187
+ console.error('Error converting SVG to PNG:', error);
188
+ throw error;
189
+ }
190
+ }
191
+ }
192
+ };
104
193
  this.stateHistory = stateHistory;
105
194
  this.entities = new Map();
106
195
  this.processEntities();
@@ -446,5 +535,380 @@ export class AUVisualizer {
446
535
  throw error;
447
536
  }
448
537
  }
538
+ generateBlockchainMarkdown(txState) {
539
+ let markdown = '# Blockchain Transaction Analysis\n\n';
540
+ // Add blockchain-specific section
541
+ markdown += this.generateBlockchainSection(txState);
542
+ // Add standard sections
543
+ markdown += this.generateEntityRegistry();
544
+ markdown += this.generateTransactionFlow();
545
+ markdown += this.generateMetadata();
546
+ return markdown;
547
+ }
548
+ buildEdgesIfMissing(txState) {
549
+ // If edges already exist, don't do anything
550
+ if (txState.edges && txState.edges.length > 0) {
551
+ console.log(`Edges already exist (${txState.edges.length}), skipping edge generation`);
552
+ return txState;
553
+ }
554
+ const edges = [];
555
+ const nodeIds = Array.from(txState.nodes.keys());
556
+ console.log(`Found ${nodeIds.length} nodes for edge generation`);
557
+ // Fee payer relationship - connect fee payer to other accounts
558
+ const feePayer = this.findFeePayer(txState);
559
+ console.log(`Fee payer detection result: ${feePayer || 'None found'}`);
560
+ if (feePayer) {
561
+ console.log(`Connecting fee payer ${feePayer} to all other nodes`);
562
+ // Connect fee payer to all other nodes (except itself)
563
+ nodeIds.forEach(nodeId => {
564
+ if (nodeId !== feePayer) {
565
+ edges.push({
566
+ fromNode: feePayer,
567
+ toNode: nodeId,
568
+ operation: 'Fee Payment/Initiation',
569
+ failed: txState.blockchainData?.status === 'failed'
570
+ });
571
+ }
572
+ });
573
+ }
574
+ // Sequential relationships - create a chain of operations in sequence
575
+ console.log(`Creating sequential edges for ${nodeIds.length} nodes`);
576
+ for (let i = 0; i < nodeIds.length - 1; i++) {
577
+ // Skip if this would create a duplicate edge
578
+ if (!edges.some(e => e.fromNode === nodeIds[i] && e.toNode === nodeIds[i + 1])) {
579
+ edges.push({
580
+ fromNode: nodeIds[i],
581
+ toNode: nodeIds[i + 1],
582
+ operation: 'Sequence',
583
+ failed: txState.blockchainData?.status === 'failed'
584
+ });
585
+ }
586
+ }
587
+ // Token relationships - connect operations on the same token
588
+ const tokenGroups = this.groupNodesByToken(txState);
589
+ console.log(`Found ${tokenGroups.size} token groups`);
590
+ tokenGroups.forEach((nodeIds, tokenId) => {
591
+ if (nodeIds.length > 1 && tokenId !== 'wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf') {
592
+ console.log(`Creating edges for token ${tokenId.substring(0, 10)}...`);
593
+ for (let i = 0; i < nodeIds.length - 1; i++) {
594
+ edges.push({
595
+ fromNode: nodeIds[i],
596
+ toNode: nodeIds[i + 1],
597
+ operation: 'Token Operation',
598
+ failed: txState.blockchainData?.status === 'failed'
599
+ });
600
+ }
601
+ }
602
+ });
603
+ console.log(`Generated ${edges.length} edges total`);
604
+ // Return updated state with edges
605
+ return {
606
+ ...txState,
607
+ edges: edges
608
+ };
609
+ }
610
+ findFeePayer(txState) {
611
+ // Try to find fee payer from blockchain data
612
+ if (txState.blockchainData?.feePayerAddress) {
613
+ console.log(`Found feePayerAddress in blockchain data: ${txState.blockchainData.feePayerAddress.substring(0, 10)}...`);
614
+ // Look for node with matching address
615
+ for (const [id, node] of txState.nodes.entries()) {
616
+ if (node.publicKey === txState.blockchainData.feePayerAddress) {
617
+ console.log(`Found fee payer node by address match: ${id}`);
618
+ return id;
619
+ }
620
+ }
621
+ console.log("No node with matching feePayerAddress found");
622
+ }
623
+ // Alternatively, look for node with negative balance change
624
+ for (const [id, node] of txState.nodes.entries()) {
625
+ console.log(`Node ${id} balance change: ${node.balanceChange || 'undefined'}`);
626
+ if (node.balanceChange && node.balanceChange < 0) {
627
+ console.log(`Found fee payer node by negative balance: ${id}`);
628
+ return id;
629
+ }
630
+ }
631
+ console.log("No fee payer found");
632
+ return undefined;
633
+ }
634
+ groupNodesByToken(txState) {
635
+ const tokenGroups = new Map();
636
+ txState.nodes.forEach((node, id) => {
637
+ const tokenId = node.tokenId || 'default';
638
+ if (!tokenGroups.has(tokenId)) {
639
+ tokenGroups.set(tokenId, []);
640
+ }
641
+ tokenGroups.get(tokenId).push(id);
642
+ });
643
+ return tokenGroups;
644
+ }
645
+ async generateBlockchainFlowSVG(txState, outputPath = 'blockchain_flow.svg') {
646
+ try {
647
+ txState = this.buildEdgesIfMissing(txState);
648
+ // Create a virtual DOM for server-side rendering
649
+ const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>');
650
+ const document = dom.window.document;
651
+ global.document = document;
652
+ // Create SVG container
653
+ const width = 1200;
654
+ const height = 800;
655
+ const svg = d3.select(document.body)
656
+ .append('svg')
657
+ .attr('xmlns', 'http://www.w3.org/2000/svg')
658
+ .attr('width', width)
659
+ .attr('height', height)
660
+ .attr('viewBox', `0 0 ${width} ${height}`);
661
+ // Add title
662
+ svg.append('text')
663
+ .attr('x', width / 2)
664
+ .attr('y', 30)
665
+ .attr('text-anchor', 'middle')
666
+ .attr('font-family', 'Arial')
667
+ .attr('font-size', '20px')
668
+ .attr('font-weight', 'bold')
669
+ .text(`Transaction Flow: ${txState.blockchainData?.txHash?.substring(0, 16) || 'Unknown'}...`);
670
+ // Add status
671
+ svg.append('text')
672
+ .attr('x', width / 2)
673
+ .attr('y', 60)
674
+ .attr('text-anchor', 'middle')
675
+ .attr('font-family', 'Arial')
676
+ .attr('font-size', '16px')
677
+ .text(`Status: ${txState.blockchainData?.status || 'Unknown'}`);
678
+ // Create arrow markers for different relationship types
679
+ const defs = svg.append('defs');
680
+ const markers = [
681
+ { id: 'arrow-black', color: 'black' },
682
+ { id: 'arrow-red', color: 'red' },
683
+ { id: 'arrow-green', color: 'green' },
684
+ { id: 'arrow-blue', color: 'blue' },
685
+ { id: 'arrow-purple', color: 'purple' }
686
+ ];
687
+ markers.forEach(marker => {
688
+ defs.append('marker')
689
+ .attr('id', marker.id)
690
+ .attr('viewBox', '0 0 10 10')
691
+ .attr('refX', 25)
692
+ .attr('refY', 5)
693
+ .attr('markerWidth', 6)
694
+ .attr('markerHeight', 6)
695
+ .attr('orient', 'auto')
696
+ .append('path')
697
+ .attr('d', 'M 0 0 L 10 5 L 0 10 z')
698
+ .attr('fill', marker.color);
699
+ });
700
+ // Extract and convert nodes from txState
701
+ const nodesArray = [];
702
+ const nodeMap = new Map();
703
+ // Debug information
704
+ console.log(`Processing transaction state with ${txState.nodes.size} nodes and ${txState.edges.length} edges`);
705
+ // Process nodes
706
+ txState.nodes.forEach((node, id) => {
707
+ const publicKey = node.publicKey || '';
708
+ // Format address as xxxx....xxxxx (first 4 and last 4 characters)
709
+ const shortAddress = publicKey.length > 8
710
+ ? `${publicKey.substring(0, 6)}....${publicKey.substring(publicKey.length - 6)}`
711
+ : publicKey;
712
+ const nodeData = {
713
+ id,
714
+ label: node.label || 'Unknown',
715
+ publicKey: node.publicKey,
716
+ //shortAddress: node.publicKey.substring(0, 10) + '...',
717
+ shortAddress: shortAddress,
718
+ type: node.type,
719
+ failed: !!node.failed,
720
+ failureReason: node.failureReason,
721
+ tokenId: node.tokenId,
722
+ // These will be filled in by the simulation
723
+ x: undefined,
724
+ y: undefined
725
+ };
726
+ nodesArray.push(nodeData);
727
+ nodeMap.set(id, nodeData);
728
+ });
729
+ // Extract edges
730
+ const linksArray = [];
731
+ txState.edges.forEach((edge, i) => {
732
+ // Validate source and target nodes exist
733
+ if (nodeMap.has(edge.fromNode) && nodeMap.has(edge.toNode)) {
734
+ linksArray.push({
735
+ id: `edge${i}`,
736
+ source: nodeMap.get(edge.fromNode),
737
+ target: nodeMap.get(edge.toNode),
738
+ operation: edge.operation,
739
+ failed: !!edge.failed
740
+ });
741
+ }
742
+ else {
743
+ console.warn(`Edge references non-existent node: ${edge.fromNode} -> ${edge.toNode}`);
744
+ }
745
+ });
746
+ console.log(`Processed ${nodesArray.length} nodes and ${linksArray.length} links for visualization`);
747
+ // Set initial positions manually (in a grid layout) instead of using force simulation
748
+ const gridCols = Math.ceil(Math.sqrt(nodesArray.length));
749
+ const cellWidth = width / (gridCols + 1);
750
+ const cellHeight = height / (Math.ceil(nodesArray.length / gridCols) + 1);
751
+ nodesArray.forEach((node, i) => {
752
+ const row = Math.floor(i / gridCols);
753
+ const col = i % gridCols;
754
+ node.x = (col + 1) * cellWidth;
755
+ node.y = (row + 1) * cellHeight;
756
+ });
757
+ // Draw links
758
+ const link = svg.append('g')
759
+ .selectAll('line')
760
+ .data(linksArray)
761
+ .enter().append('line')
762
+ .attr('x1', d => d.source.x)
763
+ .attr('y1', d => d.source.y)
764
+ .attr('x2', d => d.target.x)
765
+ .attr('y2', d => d.target.y)
766
+ .attr('stroke', d => d.failed ? 'red' : 'black')
767
+ .attr('stroke-width', 2)
768
+ .attr('stroke-dasharray', d => d.failed ? '5,5' : null)
769
+ .attr('marker-end', d => `url(#arrow-${d.failed ? 'red' : 'black'})`);
770
+ // Add link labels
771
+ const linkText = svg.append('g')
772
+ .selectAll('text')
773
+ .data(linksArray)
774
+ .enter().append('text')
775
+ .attr('x', d => (d.source.x + d.target.x) / 2)
776
+ .attr('y', d => (d.source.y + d.target.y) / 2 - 10)
777
+ .attr('text-anchor', 'middle')
778
+ .attr('font-family', 'Arial')
779
+ .attr('font-size', '12px')
780
+ .attr('fill', d => d.failed ? 'red' : 'black')
781
+ .text(d => {
782
+ if (!d.operation)
783
+ return '';
784
+ const opStr = typeof d.operation === 'string' ? d.operation : JSON.stringify(d.operation);
785
+ return opStr.length > 30 ? opStr.substring(0, 27) + '...' : opStr;
786
+ });
787
+ // Draw nodes
788
+ const node = svg.append('g')
789
+ .selectAll('g')
790
+ .data(nodesArray)
791
+ .enter().append('g')
792
+ .attr('transform', d => `translate(${d.x},${d.y})`);
793
+ // Add circles for nodes
794
+ node.append('circle')
795
+ .attr('r', 20)
796
+ .attr('fill', d => {
797
+ if (d.failed)
798
+ return '#FFCCCC';
799
+ if (d.type === 'contract')
800
+ return '#DDA0DD';
801
+ if (d.tokenId && d.tokenId !== 'wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf')
802
+ return '#CCFFCC';
803
+ return '#B3E0FF';
804
+ })
805
+ .attr('stroke', d => d.failed ? 'red' : '#333')
806
+ .attr('stroke-width', 2);
807
+ /*
808
+ // Add labels to nodes
809
+ node.append('text')
810
+ .attr('dy', 5)
811
+ .attr('text-anchor', 'middle')
812
+ .attr('font-family', 'Arial')
813
+ .attr('font-size', '12px')
814
+ .text(d => d.shortAddress);
815
+
816
+ // Add subtitle text for nodes
817
+ node.append('text')
818
+ .attr('dy', 25)
819
+ .attr('text-anchor', 'middle')
820
+ .attr('font-family', 'Arial')
821
+ .attr('font-size', '10px')
822
+ .attr('fill', d => d.failed ? 'red' : 'black')
823
+ .text(d => {
824
+ if (d.failed) return d.failureReason ? d.failureReason.substring(0, 15) : 'Failed';
825
+ if (d.tokenId && d.tokenId !== 'wSHV2S4qX9jFsLjQo8r1BsMLH2ZRKsZx6EJd1sbozGPieEC4Jf') return 'Custom Token';
826
+ return d.type === 'contract' ? 'Contract' : 'Account';
827
+ });
828
+ */
829
+ // Add address below the node
830
+ node.append('text')
831
+ .attr('dy', 40)
832
+ .attr('text-anchor', 'middle')
833
+ .attr('font-family', 'Arial')
834
+ .attr('font-size', '12px')
835
+ .text(d => d.shortAddress);
836
+ // Add additional info (failure reason) if needed
837
+ node.append('text')
838
+ .attr('dy', 55)
839
+ .attr('text-anchor', 'middle')
840
+ .attr('font-family', 'Arial')
841
+ .attr('font-size', '10px')
842
+ .attr('fill', 'red')
843
+ .text(d => {
844
+ if (d.failed && d.failureReason)
845
+ return d.failureReason.substring(0, 15);
846
+ return '';
847
+ });
848
+ // Add legend
849
+ const legend = svg.append('g')
850
+ .attr('transform', 'translate(50, 100)');
851
+ const legendItems = [
852
+ { color: '#B3E0FF', label: 'Account' },
853
+ { color: '#DDA0DD', label: 'Contract' },
854
+ { color: '#CCFFCC', label: 'Token Operation' },
855
+ { color: '#FFCCCC', label: 'Failed Operation' }
856
+ ];
857
+ legendItems.forEach((item, i) => {
858
+ const g = legend.append('g')
859
+ .attr('transform', `translate(0, ${i * 25})`);
860
+ g.append('rect')
861
+ .attr('width', 20)
862
+ .attr('height', 20)
863
+ .attr('fill', item.color)
864
+ .attr('stroke', '#333')
865
+ .attr('stroke-width', 1);
866
+ g.append('text')
867
+ .attr('x', 30)
868
+ .attr('y', 15)
869
+ .attr('font-family', 'Arial')
870
+ .attr('font-size', '14px')
871
+ .text(item.label);
872
+ });
873
+ // Save SVG to file
874
+ const svgString = document.body.innerHTML;
875
+ await fs.writeFile(outputPath, svgString);
876
+ console.log(`Successfully generated blockchain flow SVG at: ${outputPath}`);
877
+ return outputPath;
878
+ }
879
+ catch (error) {
880
+ console.error('Error generating blockchain flow SVG:', error);
881
+ throw error;
882
+ }
883
+ }
884
+ async generateBlockchainVisualization(txState, outputFormat = 'png', outputPath) {
885
+ // Default output paths based on format
886
+ const defaultPaths = {
887
+ 'svg': 'blockchain_flow.svg',
888
+ 'png': 'blockchain_flow.png',
889
+ 'md': 'blockchain_analysis.md'
890
+ };
891
+ const finalOutputPath = outputPath || defaultPaths[outputFormat];
892
+ switch (outputFormat) {
893
+ case 'svg':
894
+ return this.generateBlockchainFlowSVG(txState, finalOutputPath);
895
+ case 'png':
896
+ const tempSvgPath = 'temp_blockchain_flow.svg';
897
+ try {
898
+ const result = await this.generateBlockchainFlowWithPng(txState, tempSvgPath, finalOutputPath);
899
+ await fs.unlink(tempSvgPath);
900
+ return finalOutputPath;
901
+ }
902
+ catch (error) {
903
+ console.error('Error generating blockchain flow PNG:', error);
904
+ throw error;
905
+ }
906
+ case 'md':
907
+ const markdown = this.generateBlockchainMarkdown(txState);
908
+ await fs.writeFile(finalOutputPath, markdown);
909
+ console.log(`Successfully generated blockchain analysis markdown at: ${finalOutputPath}`);
910
+ return finalOutputPath;
911
+ }
912
+ }
449
913
  }
450
914
  //# sourceMappingURL=Visualiser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Visualiser.js","sourceRoot":"","sources":["../../src/Visualiser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Visualiser.js","sourceRoot":"","sources":["../../src/Visualiser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};