mirror of
https://github.com/LBRYFoundation/lbcwallet.git
synced 2025-08-23 17:47:29 +00:00
wallet: extract addUtxo in create TX test
This commit is contained in:
parent
66edcae704
commit
314cd98152
1 changed files with 49 additions and 35 deletions
|
@ -18,6 +18,14 @@ import (
|
||||||
"github.com/btcsuite/btcwallet/wtxmgr"
|
"github.com/btcsuite/btcwallet/wtxmgr"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
testBlockHash, _ = chainhash.NewHashFromStr(
|
||||||
|
"00000000000000017188b968a371bab95aa43522665353b646e41865abae" +
|
||||||
|
"02a4",
|
||||||
|
)
|
||||||
|
testBlockHeight int32 = 276425
|
||||||
|
)
|
||||||
|
|
||||||
// TestTxToOutput checks that no new address is added to he database if we
|
// TestTxToOutput checks that no new address is added to he database if we
|
||||||
// request a dry run of the txToOutputs call. It also makes sure a subsequent
|
// request a dry run of the txToOutputs call. It also makes sure a subsequent
|
||||||
// non-dry run call produces a similar transaction to the dry-run.
|
// non-dry run call produces a similar transaction to the dry-run.
|
||||||
|
@ -45,41 +53,7 @@ func TestTxToOutputsDryRun(t *testing.T) {
|
||||||
txOut,
|
txOut,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
addUtxo(t, w, incomingTx)
|
||||||
var b bytes.Buffer
|
|
||||||
if err := incomingTx.Serialize(&b); err != nil {
|
|
||||||
t.Fatalf("unable to serialize tx: %v", err)
|
|
||||||
}
|
|
||||||
txBytes := b.Bytes()
|
|
||||||
|
|
||||||
rec, err := wtxmgr.NewTxRecord(txBytes, time.Now())
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("unable to create tx record: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// The block meta will be inserted to tell the wallet this is a
|
|
||||||
// confirmed transaction.
|
|
||||||
blockHash, _ := chainhash.NewHashFromStr(
|
|
||||||
"00000000000000017188b968a371bab95aa43522665353b646e41865abae02a4")
|
|
||||||
block := &wtxmgr.BlockMeta{
|
|
||||||
Block: wtxmgr.Block{Hash: *blockHash, Height: 276425},
|
|
||||||
Time: time.Unix(1387737310, 0),
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := walletdb.Update(w.db, func(tx walletdb.ReadWriteTx) error {
|
|
||||||
ns := tx.ReadWriteBucket(wtxmgrNamespaceKey)
|
|
||||||
err = w.TxStore.InsertTx(ns, rec, block)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
err = w.TxStore.AddCredit(ns, rec, block, 0, false)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}); err != nil {
|
|
||||||
t.Fatalf("failed inserting tx: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Now tell the wallet to create a transaction paying to the specified
|
// Now tell the wallet to create a transaction paying to the specified
|
||||||
// outputs.
|
// outputs.
|
||||||
|
@ -175,3 +149,43 @@ func TestTxToOutputsDryRun(t *testing.T) {
|
||||||
"than wet run")
|
"than wet run")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// addUtxo add the given transaction to the wallet's database marked as a
|
||||||
|
// confirmed UTXO .
|
||||||
|
func addUtxo(t *testing.T, w *Wallet, incomingTx *wire.MsgTx) {
|
||||||
|
var b bytes.Buffer
|
||||||
|
if err := incomingTx.Serialize(&b); err != nil {
|
||||||
|
t.Fatalf("unable to serialize tx: %v", err)
|
||||||
|
}
|
||||||
|
txBytes := b.Bytes()
|
||||||
|
|
||||||
|
rec, err := wtxmgr.NewTxRecord(txBytes, time.Now())
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("unable to create tx record: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// The block meta will be inserted to tell the wallet this is a
|
||||||
|
// confirmed transaction.
|
||||||
|
block := &wtxmgr.BlockMeta{
|
||||||
|
Block: wtxmgr.Block{
|
||||||
|
Hash: *testBlockHash,
|
||||||
|
Height: testBlockHeight,
|
||||||
|
},
|
||||||
|
Time: time.Unix(1387737310, 0),
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := walletdb.Update(w.db, func(tx walletdb.ReadWriteTx) error {
|
||||||
|
ns := tx.ReadWriteBucket(wtxmgrNamespaceKey)
|
||||||
|
err = w.TxStore.InsertTx(ns, rec, block)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
err = w.TxStore.AddCredit(ns, rec, block, 0, false)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}); err != nil {
|
||||||
|
t.Fatalf("failed inserting tx: %v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue