Merge pull request #269 from ArtemKolodko/etch_internal_txs

Allow to fetch internal and logs
pull/270/head
Artem 2 years ago committed by GitHub
commit e70047235d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 58
      src/api/client.ts
  2. 16
      src/pages/TransactionPage/index.tsx

@ -72,35 +72,35 @@ export function getStakingTransactionByField(params: [number, "hash", string]) {
export function getInternalTransactionsByField(params: any[], blockNumber?: string) { export function getInternalTransactionsByField(params: any[], blockNumber?: string) {
// fallback to rpc as we don't keep old records older than 34000000 any more in postgres // fallback to rpc as we don't keep old records older than 34000000 any more in postgres
if (!blockNumber || +blockNumber < 34000000) { // if (!blockNumber || +blockNumber < 34000000) {
const queryType = params[1] // const queryType = params[1]
if (queryType !== 'transaction_hash') { // if (queryType !== 'transaction_hash') {
console.error('use only transaction hash to get internal transactions') // console.error('use only transaction hash to get internal transactions')
return [] as InternalTransaction[] // return [] as InternalTransaction[]
} // }
//
const txHash = params[2] // const txHash = params[2]
// // //
console.info('internal transactions is not available to serve') // console.info('internal transactions is not available to serve')
return [] as InternalTransaction[] // return [] as InternalTransaction[]
// todo note check error field may not work properly // // todo note check error field may not work properly
/* return eth_traceTransaction(txHash).then(txs => { // /* return eth_traceTransaction(txHash).then(txs => {
const mapTxs = txs.map((tx: any, i: number) => ({ // const mapTxs = txs.map((tx: any, i: number) => ({
type: tx.action.type || tx.type, // type: tx.action.type || tx.type,
value: tx.value, // value: tx.value,
input: tx.action.input, // input: tx.action.input,
output: tx.result.output, // output: tx.result.output,
transactionHash: tx.transactionHash, // transactionHash: tx.transactionHash,
gasUsed: tx.result.gasUsed, // gasUsed: tx.result.gasUsed,
index: i, // index: i,
to: tx.action.to, // to: tx.action.to,
from: tx.action.from, // from: tx.action.from,
error: tx.result.error, // error: tx.result.error,
gas: tx.action.gas // gas: tx.action.gas
})) // }))
return mapTxs as InternalTransaction[] // return mapTxs as InternalTransaction[]
}) */ // }) */
} // }
return transport("getInternalTransactionsByField", params) as Promise<InternalTransaction[]>; return transport("getInternalTransactionsByField", params) as Promise<InternalTransaction[]>;
} }

@ -150,14 +150,14 @@ export const TransactionPage = () => {
const contractShardID = process.env.REACT_APP_CONTRACT_SHARD ? (process.env.REACT_APP_CONTRACT_SHARD || 0) : 0 const contractShardID = process.env.REACT_APP_CONTRACT_SHARD ? (process.env.REACT_APP_CONTRACT_SHARD || 0) : 0
if (tx.hash && [0, contractShardID].includes(tx.shardID)) { if (tx.hash && [0, contractShardID].includes(tx.shardID)) {
const SevenDaysBlock = 60 * 60 * 24 * 7 / 2 // const SevenDaysBlock = 60 * 60 * 24 * 7 / 2
const txDate = new Date(tx.timestamp).getTime() // const txDate = new Date(tx.timestamp).getTime()
const now = Date.now() // const now = Date.now()
//
if (now - txDate > SevenDaysBlock) { // if (now - txDate > SevenDaysBlock) {
console.log('no logs served') // console.log('no logs served')
return // return
} // }
try { try {
//@ts-ignore //@ts-ignore

Loading…
Cancel
Save