mirror of
https://github.com/LBRYFoundation/lbcwallet.git
synced 2025-08-29 00:11:34 +00:00
wallet: call InsertTxCheckIfExists
to add a relevant tx
Let the method `addRelevantTx` use `InsertTxCheckIfExists` to insert a relevant transaction. If the transaction has already been recorded, the method call `addRelevantTx` will return early and not proceed with duplicating work of checking every output and duplicating the tx notification to the notification server.
This commit is contained in:
parent
0066eee3ea
commit
419381b749
1 changed files with 9 additions and 1 deletions
|
@ -280,11 +280,19 @@ func (w *Wallet) addRelevantTx(dbtx walletdb.ReadWriteTx, rec *wtxmgr.TxRecord,
|
||||||
// relevant. This assumption will not hold true when SPV support is
|
// relevant. This assumption will not hold true when SPV support is
|
||||||
// added, but until then, simply insert the transaction because there
|
// added, but until then, simply insert the transaction because there
|
||||||
// should either be one or more relevant inputs or outputs.
|
// should either be one or more relevant inputs or outputs.
|
||||||
err := w.TxStore.InsertTx(txmgrNs, rec, block)
|
exists, err := w.TxStore.InsertTxCheckIfExists(txmgrNs, rec, block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the transaction has already been recorded, we can return early.
|
||||||
|
// Note: Returning here is safe as we're within the context of an atomic
|
||||||
|
// database transaction, so we don't need to worry about the MarkUsed
|
||||||
|
// calls below.
|
||||||
|
if exists {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// Check every output to determine whether it is controlled by a wallet
|
// Check every output to determine whether it is controlled by a wallet
|
||||||
// key. If so, mark the output as a credit.
|
// key. If so, mark the output as a credit.
|
||||||
for i, output := range rec.MsgTx.TxOut {
|
for i, output := range rec.MsgTx.TxOut {
|
||||||
|
|
Loading…
Add table
Reference in a new issue