From f77a50b4e1e857e71d0be55bcdb888e90feb70f4 Mon Sep 17 00:00:00 2001 From: Chris Fenos Date: Tue, 21 Aug 2018 17:12:13 -0400 Subject: [PATCH] Internal transaction by hash functionality added --- .../table/internalTransactions/internalRow.js | 31 ++++---- .../internalTransactions/internalTable.js | 22 ++++-- .../table/transactions/transactionTable.js | 3 + shyftBlockExplorerUI/src/containers/App.js | 78 ++++++++++++------- 4 files changed, 82 insertions(+), 52 deletions(-) diff --git a/shyftBlockExplorerUI/src/components/table/internalTransactions/internalRow.js b/shyftBlockExplorerUI/src/components/table/internalTransactions/internalRow.js index c5ea468852..bc7dac8533 100644 --- a/shyftBlockExplorerUI/src/components/table/internalTransactions/internalRow.js +++ b/shyftBlockExplorerUI/src/components/table/internalTransactions/internalRow.js @@ -25,11 +25,7 @@ class InternalTransactionsTable extends Component { } render() { - const table = this.state.data.map((data, i) => { - - console.log(data); - - + const table = this.state.data.map((data, i) => { const conversion = data.Rewards / 10000000000000000000; return }); @@ -53,17 +50,17 @@ class InternalTransactionsTable extends Component { - - - - - - - - - - - + + + + + + + + + + + {table} diff --git a/shyftBlockExplorerUI/src/components/table/internalTransactions/internalTable.js b/shyftBlockExplorerUI/src/components/table/internalTransactions/internalTable.js index e5e12988c6..8959a749fe 100644 --- a/shyftBlockExplorerUI/src/components/table/internalTransactions/internalTable.js +++ b/shyftBlockExplorerUI/src/components/table/internalTransactions/internalTable.js @@ -7,21 +7,27 @@ const InternalTable = (props) => { return ( - + - + - - - - + + + + ) diff --git a/shyftBlockExplorerUI/src/components/table/transactions/transactionTable.js b/shyftBlockExplorerUI/src/components/table/transactions/transactionTable.js index e33dc1098e..bb62a01cff 100644 --- a/shyftBlockExplorerUI/src/components/table/transactions/transactionTable.js +++ b/shyftBlockExplorerUI/src/components/table/transactions/transactionTable.js @@ -4,6 +4,9 @@ import arrow from '../../assets/arrow_right_black.png'; import { Link } from 'react-router-dom' const TransactionTable = (props) => { + console.log("in transaction table") + console.log(props) + window.bar = props let flag; if(props.txHash.indexOf("GENESIS") !== -1) { flag = false diff --git a/shyftBlockExplorerUI/src/containers/App.js b/shyftBlockExplorerUI/src/containers/App.js index 9503871339..59a61c56c7 100644 --- a/shyftBlockExplorerUI/src/containers/App.js +++ b/shyftBlockExplorerUI/src/containers/App.js @@ -24,8 +24,6 @@ import BlockTxs from "../components/table/transactions/blockTx"; ///**INTERNAL TRANSACTIONS**/// import InternalTransactionRow from '../components/table/internalTransactions/internalRow'; - - ///**BLOCKS**/// import BlocksRow from '../components/table/blocks/blockRows'; import DetailBlockTable from '../components/table/blocks/blocksDetailsRow'; @@ -68,6 +66,7 @@ class App extends Component { }; detailTransactionHandler = async(txHash) => { + console.log("detail tx handler") try { const response = await axios.get(`http://localhost:8080/api/get_transaction/${txHash}`); await this.setState({ transactionDetailData: response.data, overlayTriggered: true, overlayContent: "transaction" }) @@ -78,7 +77,6 @@ class App extends Component { }; detailAccountHandler = async(addr) => { - try { const response = await axios.get(`http://localhost:8080/api/get_account_txs/${addr}`) await this.setState({ accountDetailData: response.data, reqAccount: addr, overlayTriggered: false }) @@ -88,15 +86,22 @@ class App extends Component { } }; - detailInternalHandler = async() => { - - console.log("in internal request"); + detailInternalHandler = async(txHash) => { + console.log("********* detaik Internal ") + try { + const response = await axios.get(`http://localhost:8080/api/get_internal_transactions/${txHash}`) + await this.setState({ internalDetailData: response.data, reqAccount: txHash, overlayTriggered: true, overlayContent: "internal" }) + } + catch(error) { + console.log(error) + } + }; + + getInternalTransactions = async() => { try { const response = await axios.get(`http://localhost:8080/api/get_internal_transactions/`) - - console.log(response.data); - await this.setState({ internalDetailData: response.data, overlayTriggered: false }) + await this.setState({ internalTransactions: response.data, overlayTriggered: false }) } catch(error) { console.log(error) @@ -131,32 +136,45 @@ class App extends Component { getBlockData = (data, page) => { let components = []; let dataEntry; - - if(page === "account") { + if(page === "account" || page === "internal") { dataEntry = data[0]; - } else { + } + else { dataEntry = data; } - for (let key in dataEntry) { let value = dataEntry[key]; if (dataEntry["To"] === null) { delete dataEntry["To"] } - components.push( - - - - {key} - - - {value} - - - - ); + if( key === "Input" || key === "Output") { + components.push( + + + + {key} + + + + + + + ); + } else { + components.push( + + + + {key} + + + {value} + + + + ); + } } - return components; } @@ -180,6 +198,10 @@ class App extends Component { title = "ACCOUNT OVERVIEW"; data = this.state.accountDetailData; break; + case "internal" : + title = "Internal Transaction Overview"; + data = this.state.internalDetailData; + break; default: console.log("error"); } @@ -242,7 +264,9 @@ class App extends Component {
+ getInternalTransactionsHandler={this.getInternalTransactions} + detailInternalHandler={this.detailInternalHandler} + />
} />
Block HashActionToFromGasGas UsedIDInputOutputTimeValueBlock HashActionToFromGasGas UsedIDInputOutputTimeValue
props.detailBlockHandler(props.Number)}> - {props.Hash} - +
props.detailInternalHandler(props.Hash)}> + {props.Hash} +
+
{props.Action} {props.To} {props.From} {props.Gas} props.getBlocksMined(props.Coinbase)}>{props.Coinbase} {props.ID} + + + + {props.Time} {props.Value}