Fix invalid BlockHeight for unconfirmed transactions #301
parent
83b1552dfa
commit
1c192f6d0b
|
@ -121,7 +121,7 @@ func (w *Worker) GetTransaction(txid string, spendingTxs bool, specificJSON bool
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTransactionFromBchainTx reads transaction data from txid
|
// GetTransactionFromBchainTx reads transaction data from txid
|
||||||
func (w *Worker) GetTransactionFromBchainTx(bchainTx *bchain.Tx, height uint32, spendingTxs bool, specificJSON bool) (*Tx, error) {
|
func (w *Worker) GetTransactionFromBchainTx(bchainTx *bchain.Tx, height int, spendingTxs bool, specificJSON bool) (*Tx, error) {
|
||||||
var err error
|
var err error
|
||||||
var ta *db.TxAddresses
|
var ta *db.TxAddresses
|
||||||
var tokens []TokenTransfer
|
var tokens []TokenTransfer
|
||||||
|
@ -134,7 +134,7 @@ func (w *Worker) GetTransactionFromBchainTx(bchainTx *bchain.Tx, height uint32,
|
||||||
return nil, errors.Annotatef(err, "GetTxAddresses %v", bchainTx.Txid)
|
return nil, errors.Annotatef(err, "GetTxAddresses %v", bchainTx.Txid)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
blockhash, err = w.db.GetBlockHash(height)
|
blockhash, err = w.db.GetBlockHash(uint32(height))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Annotatef(err, "GetBlockHash %v", height)
|
return nil, errors.Annotatef(err, "GetBlockHash %v", height)
|
||||||
}
|
}
|
||||||
|
@ -236,7 +236,7 @@ func (w *Worker) GetTransactionFromBchainTx(bchainTx *bchain.Tx, height uint32,
|
||||||
if ta != nil {
|
if ta != nil {
|
||||||
vout.Spent = ta.Outputs[i].Spent
|
vout.Spent = ta.Outputs[i].Spent
|
||||||
if spendingTxs && vout.Spent {
|
if spendingTxs && vout.Spent {
|
||||||
err = w.setSpendingTxToVout(vout, bchainTx.Txid, height)
|
err = w.setSpendingTxToVout(vout, bchainTx.Txid, uint32(height))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("setSpendingTxToVout error %v, %v, output %v", err, vout.AddrDesc, vout.N)
|
glog.Errorf("setSpendingTxToVout error %v, %v, output %v", err, vout.AddrDesc, vout.N)
|
||||||
}
|
}
|
||||||
|
@ -312,7 +312,7 @@ func (w *Worker) GetTransactionFromBchainTx(bchainTx *bchain.Tx, height uint32,
|
||||||
}
|
}
|
||||||
r := &Tx{
|
r := &Tx{
|
||||||
Blockhash: blockhash,
|
Blockhash: blockhash,
|
||||||
Blockheight: int(height),
|
Blockheight: height,
|
||||||
Blocktime: bchainTx.Blocktime,
|
Blocktime: bchainTx.Blocktime,
|
||||||
Confirmations: bchainTx.Confirmations,
|
Confirmations: bchainTx.Confirmations,
|
||||||
FeesSat: (*Amount)(&feesSat),
|
FeesSat: (*Amount)(&feesSat),
|
||||||
|
|
|
@ -36,7 +36,7 @@ func NewTxCache(db *RocksDB, chain bchain.BlockChain, metrics *common.Metrics, i
|
||||||
|
|
||||||
// GetTransaction returns transaction either from RocksDB or if not present from blockchain
|
// GetTransaction returns transaction either from RocksDB or if not present from blockchain
|
||||||
// it the transaction is confirmed, it is stored in the RocksDB
|
// it the transaction is confirmed, it is stored in the RocksDB
|
||||||
func (c *TxCache) GetTransaction(txid string) (*bchain.Tx, uint32, error) {
|
func (c *TxCache) GetTransaction(txid string) (*bchain.Tx, int, error) {
|
||||||
var tx *bchain.Tx
|
var tx *bchain.Tx
|
||||||
var h uint32
|
var h uint32
|
||||||
var err error
|
var err error
|
||||||
|
@ -50,7 +50,7 @@ func (c *TxCache) GetTransaction(txid string) (*bchain.Tx, uint32, error) {
|
||||||
_, bestheight, _ := c.is.GetSyncState()
|
_, bestheight, _ := c.is.GetSyncState()
|
||||||
tx.Confirmations = bestheight - h + 1
|
tx.Confirmations = bestheight - h + 1
|
||||||
c.metrics.TxCacheEfficiency.With(common.Labels{"status": "hit"}).Inc()
|
c.metrics.TxCacheEfficiency.With(common.Labels{"status": "hit"}).Inc()
|
||||||
return tx, h, nil
|
return tx, int(h), nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tx, err = c.chain.GetTransaction(txid)
|
tx, err = c.chain.GetTransaction(txid)
|
||||||
|
@ -97,7 +97,7 @@ func (c *TxCache) GetTransaction(txid string) (*bchain.Tx, uint32, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
h = 0
|
return tx, -1, nil
|
||||||
}
|
}
|
||||||
return tx, h, nil
|
return tx, int(h), nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue