Compute values of internal transactions in balance history
This commit is contained in:
parent
fed5fb3dac
commit
4b3c821629
@ -1465,6 +1465,35 @@ func (w *Worker) balanceHistoryForTxid(addrDesc bchain.AddressDescriptor, txid s
|
||||
}
|
||||
}
|
||||
}
|
||||
// process internal transactions
|
||||
if eth.ProcessInternalTransactions {
|
||||
internalData, err := w.db.GetEthereumInternalData(txid)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if internalData != nil {
|
||||
for i := range internalData.Transfers {
|
||||
f := &internalData.Transfers[i]
|
||||
txAddrDesc, err := w.chainParser.GetAddrDescFromAddress(f.From)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if bytes.Equal(addrDesc, txAddrDesc) {
|
||||
(*big.Int)(bh.SentSat).Add((*big.Int)(bh.SentSat), &f.Value)
|
||||
if f.From == f.To {
|
||||
(*big.Int)(bh.SentToSelfSat).Add((*big.Int)(bh.SentToSelfSat), &f.Value)
|
||||
}
|
||||
}
|
||||
txAddrDesc, err = w.chainParser.GetAddrDescFromAddress(f.To)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if bytes.Equal(addrDesc, txAddrDesc) {
|
||||
(*big.Int)(bh.ReceivedSat).Add((*big.Int)(bh.ReceivedSat), &f.Value)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for i := range bchainTx.Vin {
|
||||
bchainVin := &bchainTx.Vin[i]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user