diff --git a/chainntnfs/interface_test.go b/chainntnfs/interface_test.go index c9c83c20a..e4fe3fbdb 100644 --- a/chainntnfs/interface_test.go +++ b/chainntnfs/interface_test.go @@ -58,10 +58,10 @@ var ( testAddr = addrPk.AddressPubKeyHash() ) -func getTestTxId(miner *rpctest.Harness) (*chainhash.Hash, error) { +func getTestTxIdAndScript(miner *rpctest.Harness) (*chainhash.Hash, []byte, error) { script, err := txscript.PayToAddrScript(testAddr) if err != nil { - return nil, err + return nil, nil, err } outputs := []*wire.TxOut{ @@ -70,7 +70,13 @@ func getTestTxId(miner *rpctest.Harness) (*chainhash.Hash, error) { PkScript: script, }, } - return miner.SendOutputs(outputs, 10) + + txid, err := miner.SendOutputs(outputs, 10) + if err != nil { + return nil, nil, err + } + + return txid, script, nil } func waitForMempoolTx(r *rpctest.Harness, txid *chainhash.Hash) error { @@ -116,7 +122,7 @@ func testSingleConfirmationNotification(miner *rpctest.Harness, // We're spending from a coinbase output here, so we use the dedicated // function. - txid, err := getTestTxId(miner) + txid, pkScript, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test tx: %v", err) } @@ -134,8 +140,9 @@ func testSingleConfirmationNotification(miner *rpctest.Harness, // Now that we have a txid, register a confirmation notification with // the chainntfn source. numConfs := uint32(1) - confIntent, err := notifier.RegisterConfirmationsNtfn(txid, numConfs, - uint32(currentHeight)) + confIntent, err := notifier.RegisterConfirmationsNtfn( + txid, pkScript, numConfs, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) } @@ -184,7 +191,7 @@ func testMultiConfirmationNotification(miner *rpctest.Harness, // // Again, we'll begin by creating a fresh transaction, so we can obtain // a fresh txid. - txid, err := getTestTxId(miner) + txid, pkScript, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test addr: %v", err) } @@ -200,8 +207,9 @@ func testMultiConfirmationNotification(miner *rpctest.Harness, } numConfs := uint32(6) - confIntent, err := notifier.RegisterConfirmationsNtfn(txid, numConfs, - uint32(currentHeight)) + confIntent, err := notifier.RegisterConfirmationsNtfn( + txid, pkScript, numConfs, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) } @@ -242,12 +250,13 @@ func testBatchConfirmationNotification(miner *rpctest.Harness, // verify they're each notified at the proper number of confirmations // below. for i, numConfs := range confSpread { - txid, err := getTestTxId(miner) + txid, pkScript, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test addr: %v", err) } - confIntent, err := notifier.RegisterConfirmationsNtfn(txid, - numConfs, uint32(currentHeight)) + confIntent, err := notifier.RegisterConfirmationsNtfn( + txid, pkScript, numConfs, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) } @@ -303,7 +312,7 @@ func testBatchConfirmationNotification(miner *rpctest.Harness, func createSpendableOutput(miner *rpctest.Harness, t *testing.T) (*wire.OutPoint, []byte) { - txid, err := getTestTxId(miner) + txid, _, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test addr: %v", err) } @@ -554,7 +563,7 @@ func testMultiClientConfirmationNotification(miner *rpctest.Harness, // We'd like to test the case of a multiple clients registered to // receive a confirmation notification for the same transaction. - txid, err := getTestTxId(miner) + txid, pkScript, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test tx: %v", err) } @@ -578,8 +587,9 @@ func testMultiClientConfirmationNotification(miner *rpctest.Harness, // Register for a conf notification for the above generated txid with // numConfsClients distinct clients. for i := 0; i < numConfsClients; i++ { - confClient, err := notifier.RegisterConfirmationsNtfn(txid, - numConfs, uint32(currentHeight)) + confClient, err := notifier.RegisterConfirmationsNtfn( + txid, pkScript, numConfs, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register for confirmation: %v", err) } @@ -620,7 +630,7 @@ func testTxConfirmedBeforeNtfnRegistration(miner *rpctest.Harness, // spending from a coinbase output here, so we use the dedicated // function. - txid3, err := getTestTxId(miner) + txid3, pkScript3, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test tx: %v", err) } @@ -640,7 +650,7 @@ func testTxConfirmedBeforeNtfnRegistration(miner *rpctest.Harness, t.Fatalf("unable to generate block: %v", err) } - txid1, err := getTestTxId(miner) + txid1, pkScript1, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test tx: %v", err) } @@ -650,7 +660,7 @@ func testTxConfirmedBeforeNtfnRegistration(miner *rpctest.Harness, t.Fatalf("tx not relayed to miner: %v", err) } - txid2, err := getTestTxId(miner) + txid2, pkScript2, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test tx: %v", err) } @@ -675,8 +685,9 @@ func testTxConfirmedBeforeNtfnRegistration(miner *rpctest.Harness, // which is included in the last block. The height hint is the height before // the block is included. This notification should fire immediately since // only 1 confirmation is required. - ntfn1, err := notifier.RegisterConfirmationsNtfn(txid1, 1, - uint32(currentHeight)) + ntfn1, err := notifier.RegisterConfirmationsNtfn( + txid1, pkScript1, 1, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) } @@ -713,8 +724,9 @@ func testTxConfirmedBeforeNtfnRegistration(miner *rpctest.Harness, // Register a confirmation notification for tx2, requiring 3 confirmations. // This transaction is only partially confirmed, so the notification should // not fire yet. - ntfn2, err := notifier.RegisterConfirmationsNtfn(txid2, 3, - uint32(currentHeight)) + ntfn2, err := notifier.RegisterConfirmationsNtfn( + txid2, pkScript2, 3, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) } @@ -740,8 +752,9 @@ func testTxConfirmedBeforeNtfnRegistration(miner *rpctest.Harness, // Finally register a confirmation notification for tx3, requiring 1 // confirmation. Ensure that conf notifications do not refire on txs // 1 or 2. - ntfn3, err := notifier.RegisterConfirmationsNtfn(txid3, 1, - uint32(currentHeight-1)) + ntfn3, err := notifier.RegisterConfirmationsNtfn( + txid3, pkScript3, 1, uint32(currentHeight-1), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) } @@ -775,7 +788,7 @@ func testLazyNtfnConsumer(miner *rpctest.Harness, // Create a transaction to be notified about. We'll register for // notifications on this transaction but won't be prompt in checking them - txid, err := getTestTxId(miner) + txid, pkScript, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test tx: %v", err) } @@ -798,8 +811,9 @@ func testLazyNtfnConsumer(miner *rpctest.Harness, t.Fatalf("unable to generate blocks: %v", err) } - firstConfIntent, err := notifier.RegisterConfirmationsNtfn(txid, numConfs, - uint32(currentHeight)) + firstConfIntent, err := notifier.RegisterConfirmationsNtfn( + txid, pkScript, numConfs, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) } @@ -812,7 +826,7 @@ func testLazyNtfnConsumer(miner *rpctest.Harness, // Now make another transaction, just because we haven't checked to see // if the first transaction has confirmed doesn't mean that we shouldn't // be able to see if this transaction confirms first - txid, err = getTestTxId(miner) + txid, pkScript, err = getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test tx: %v", err) } @@ -829,9 +843,9 @@ func testLazyNtfnConsumer(miner *rpctest.Harness, numConfs = 1 - secondConfIntent, err := notifier.RegisterConfirmationsNtfn(txid, numConfs, - uint32(currentHeight)) - + secondConfIntent, err := notifier.RegisterConfirmationsNtfn( + txid, pkScript, numConfs, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) } @@ -1150,7 +1164,7 @@ func testReorgConf(miner *rpctest.Harness, notifier chainntnfs.ChainNotifier, t.Fatalf("unable to remove node: %v", err) } - txid, err := getTestTxId(miner) + txid, pkScript, err := getTestTxIdAndScript(miner) if err != nil { t.Fatalf("unable to create test tx: %v", err) } @@ -1168,8 +1182,9 @@ func testReorgConf(miner *rpctest.Harness, notifier chainntnfs.ChainNotifier, // Now that we have a txid, register a confirmation notification with // the chainntfn source. numConfs := uint32(2) - confIntent, err := notifier.RegisterConfirmationsNtfn(txid, numConfs, - uint32(currentHeight)) + confIntent, err := notifier.RegisterConfirmationsNtfn( + txid, pkScript, numConfs, uint32(currentHeight), + ) if err != nil { t.Fatalf("unable to register ntfn: %v", err) }