diff --git a/blockchain/chain.go b/blockchain/chain.go index 3cf4b75c..3b6e1e02 100644 --- a/blockchain/chain.go +++ b/blockchain/chain.go @@ -647,10 +647,10 @@ func (b *BlockChain) connectBlock(node *blockNode, block, parent *dcrutil.Block, isTreasuryEnabled := checkTxFlags.IsTreasuryEnabled() // Sanity check the correct number of stxos are provided. - if len(stxos) != countSpentOutputs(block, isTreasuryEnabled) { + if len(stxos) != countSpentOutputs(block) { panicf("provided %v stxos for block %v (height %v) which spends %v "+ "outputs", len(stxos), node.hash, node.height, - countSpentOutputs(block, isTreasuryEnabled)) + countSpentOutputs(block)) } // Write any modified block index entries to the database before @@ -689,7 +689,7 @@ func (b *BlockChain) connectBlock(node *blockNode, block, parent *dcrutil.Block, curTotalTxns := b.stateSnapshot.TotalTxns curTotalSubsidy := b.stateSnapshot.TotalSubsidy b.stateLock.RUnlock() - subsidy := calculateAddedSubsidy(block, parent, isTreasuryEnabled) + subsidy := calculateAddedSubsidy(block, parent) numTxns := uint64(len(block.Transactions()) + len(block.STransactions())) blockSize := uint64(block.MsgBlock().Header.Size) state := newBestState(node, blockSize, numTxns, curTotalTxns+numTxns, @@ -866,7 +866,6 @@ func (b *BlockChain) disconnectBlock(node *blockNode, block, parent *dcrutil.Blo if err != nil { return err } - isTreasuryEnabled := checkTxFlags.IsTreasuryEnabled() // Write any modified block index entries to the database before // updating the best state. @@ -895,7 +894,7 @@ func (b *BlockChain) disconnectBlock(node *blockNode, block, parent *dcrutil.Blo numParentTxns := uint64(len(parent.Transactions()) + len(parent.STransactions())) numBlockTxns := uint64(len(block.Transactions()) + len(block.STransactions())) newTotalTxns := curTotalTxns - numBlockTxns - subsidy := calculateAddedSubsidy(block, parent, isTreasuryEnabled) + subsidy := calculateAddedSubsidy(block, parent) newTotalSubsidy := curTotalSubsidy - subsidy prevNode := node.parent state := newBestState(prevNode, parentBlockSize, numParentTxns, @@ -997,7 +996,7 @@ func countSpentRegularOutputs(block *dcrutil.Block) int { // countSpentStakeOutputs returns the number of utxos the stake transactions in // the passed block spend. -func countSpentStakeOutputs(block *dcrutil.Block, isTreasuryEnabled bool) int { +func countSpentStakeOutputs(block *dcrutil.Block) int { var numSpent int for _, stx := range block.MsgBlock().STransactions { // Exclude the vote stakebase since it has no input. @@ -1017,9 +1016,8 @@ func countSpentStakeOutputs(block *dcrutil.Block, isTreasuryEnabled bool) int { } // countSpentOutputs returns the number of utxos the passed block spends. -func countSpentOutputs(block *dcrutil.Block, isTreasuryEnabled bool) int { - return countSpentRegularOutputs(block) + - countSpentStakeOutputs(block, isTreasuryEnabled) +func countSpentOutputs(block *dcrutil.Block) int { + return countSpentRegularOutputs(block) + countSpentStakeOutputs(block) } // loadOrCreateFilter attempts to load and return the version 2 GCS filter for @@ -1239,7 +1237,7 @@ func (b *BlockChain) reorganizeChainInternal(target *blockNode) error { // Skip validation if the block has already been validated. However, // the utxo view still needs to be updated and the stxos and header // commitment data are still needed. - numSpentOutputs := countSpentOutputs(block, isTreasuryEnabled) + numSpentOutputs := countSpentOutputs(block) stxos := make([]spentTxOut, 0, numSpentOutputs) var hdrCommitments headerCommitmentData if b.index.NodeStatus(n).HasValidated() { diff --git a/blockchain/chainio.go b/blockchain/chainio.go index c7ec7266..9b377cd2 100644 --- a/blockchain/chainio.go +++ b/blockchain/chainio.go @@ -646,7 +646,7 @@ func decodeSpentTxOut(serialized []byte, stxo *spentTxOut, amount int64, // format comments, this function also requires the transactions that spend the // txouts and a utxo view that contains any remaining existing utxos in the // transactions referenced by the inputs to the passed transactions. -func deserializeSpendJournalEntry(serialized []byte, txns []*wire.MsgTx, isTreasuryEnabled bool) ([]spentTxOut, error) { +func deserializeSpendJournalEntry(serialized []byte, txns []*wire.MsgTx) ([]spentTxOut, error) { // Calculate the total number of stxos. var numStxos int for _, tx := range txns { @@ -769,8 +769,7 @@ func dbFetchSpendJournalEntry(dbTx database.Tx, block *dcrutil.Block, isTreasury panicf("missing spend journal data for %s", block.Hash()) } - stxos, err := deserializeSpendJournalEntry(serialized, blockTxns, - isTreasuryEnabled) + stxos, err := deserializeSpendJournalEntry(serialized, blockTxns) if err != nil { // Ensure any deserialization errors are returned as database // corruption errors. diff --git a/blockchain/chainio_test.go b/blockchain/chainio_test.go index a48bc5a8..adeaf26d 100644 --- a/blockchain/chainio_test.go +++ b/blockchain/chainio_test.go @@ -706,7 +706,7 @@ func TestSpendJournalSerialization(t *testing.T) { // Deserialize to a spend journal entry. gotEntry, err := deserializeSpendJournalEntry(test.serialized, - test.blockTxns, noTreasury) + test.blockTxns) if err != nil { t.Errorf("%q: unexpected error: %v", test.name, err) continue @@ -778,7 +778,7 @@ func TestSpendJournalErrors(t *testing.T) { // Ensure the expected error type is returned and the returned // slice is nil. stxos, err := deserializeSpendJournalEntry(test.serialized, - test.blockTxns, noTreasury) + test.blockTxns) if !errors.As(err, &test.errType) { t.Errorf("%q: expected error type does not match - got %T, want %T", test.name, err, test.errType) diff --git a/blockchain/indexers/addrindex.go b/blockchain/indexers/addrindex.go index a41cfe1a..77f44ce4 100644 --- a/blockchain/indexers/addrindex.go +++ b/blockchain/indexers/addrindex.go @@ -1043,7 +1043,7 @@ func (idx *AddrIndex) indexUnconfirmedAddresses(scriptVersion uint16, pkScript [ // some or all addresses not being indexed. // // This function is safe for concurrent access. -func (idx *AddrIndex) AddUnconfirmedTx(tx *dcrutil.Tx, prevScripts PrevScripter, isTreasuryEnabled bool) { +func (idx *AddrIndex) AddUnconfirmedTx(tx *dcrutil.Tx, prevScripts PrevScripter) { // Index addresses of all referenced previous transaction outputs. // // The existence checks are elided since this is only called after the diff --git a/blockchain/sequencelock.go b/blockchain/sequencelock.go index 82e0e8cf..d8111f87 100644 --- a/blockchain/sequencelock.go +++ b/blockchain/sequencelock.go @@ -32,7 +32,7 @@ type SequenceLock struct { // to the IsSSGen function in the stake package and exists to make calling code // that does not care about the specific reason the transaction is not a // stakebase, rather only if it is one or not. -func isStakeBaseTx(tx *wire.MsgTx, isTreasuryEnabled bool) bool { +func isStakeBaseTx(tx *wire.MsgTx) bool { return stake.IsSSGen(tx) } @@ -57,7 +57,7 @@ func (b *BlockChain) calcSequenceLock(node *blockNode, tx *dcrutil.Tx, view *Utx msgTx := tx.MsgTx() enforce := isActive && msgTx.Version >= 2 if !enforce || standalone.IsCoinBaseTx(msgTx, isTreasuryEnabled) || - isStakeBaseTx(msgTx, isTreasuryEnabled) { + isStakeBaseTx(msgTx) { return sequenceLock, nil } diff --git a/blockchain/subsidy.go b/blockchain/subsidy.go index cbbd89cc..27ee87d8 100644 --- a/blockchain/subsidy.go +++ b/blockchain/subsidy.go @@ -177,7 +177,7 @@ func checkTreasuryBase(subsidyCache *standalone.SubsidyCache, tx *dcrutil.Tx, he // and its parent. The blocks passed to this function MUST be valid blocks // that have already been confirmed to abide by the consensus rules of the // network, or the function might panic. -func calculateAddedSubsidy(block, parent *dcrutil.Block, isTreasuryEnabled bool) int64 { +func calculateAddedSubsidy(block, parent *dcrutil.Block) int64 { var subsidy int64 if headerApprovesParent(&block.MsgBlock().Header) { subsidy += parent.MsgBlock().Transactions[0].TxIn[0].ValueIn diff --git a/blockchain/utxoviewpoint.go b/blockchain/utxoviewpoint.go index ee1611a2..6a81573e 100644 --- a/blockchain/utxoviewpoint.go +++ b/blockchain/utxoviewpoint.go @@ -493,10 +493,10 @@ func (view *UtxoViewpoint) disconnectDisapprovedBlock(db database.DB, block *dcr } // Sanity check the correct number of stxos are provided. - if len(stxos) != countSpentOutputs(block, isTreasuryEnabled) { + if len(stxos) != countSpentOutputs(block) { panicf("provided %v stxos for block %v (height %v) which spends %v "+ "outputs", len(stxos), block.Hash(), block.MsgBlock().Header.Height, - countSpentOutputs(block, isTreasuryEnabled)) + countSpentOutputs(block)) } return view.disconnectRegularTransactions(block, stxos, isTreasuryEnabled, @@ -586,10 +586,10 @@ func (view *UtxoViewpoint) disconnectBlock(block, parent *dcrutil.Block, stxos []spentTxOut, isTreasuryEnabled, isAutoRevocationsEnabled bool) error { // Sanity check the correct number of stxos are provided. - if len(stxos) != countSpentOutputs(block, isTreasuryEnabled) { + if len(stxos) != countSpentOutputs(block) { panicf("provided %v stxos for block %v (height %v) which spends %v "+ "outputs", len(stxos), block.Hash(), block.MsgBlock().Header.Height, - countSpentOutputs(block, isTreasuryEnabled)) + countSpentOutputs(block)) } // Load all of the utxos referenced by the inputs for all transactions in diff --git a/blockchain/validate.go b/blockchain/validate.go index a67ac951..ace03b31 100644 --- a/blockchain/validate.go +++ b/blockchain/validate.go @@ -3327,8 +3327,7 @@ func checkNumSigOps(tx *dcrutil.Tx, view *UtxoViewpoint, index int, txTree bool, // single stakebase transactions (votes) within a block. This function skips a // ton of checks already performed by CheckTransactionInputs. func checkStakeBaseAmounts(subsidyCache *standalone.SubsidyCache, height int64, - txs []*dcrutil.Tx, view *UtxoViewpoint, isTreasuryEnabled, - isSubsidySplitEnabled bool) error { + txs []*dcrutil.Tx, view *UtxoViewpoint, isSubsidySplitEnabled bool) error { for _, tx := range txs { msgTx := tx.MsgTx() @@ -3644,7 +3643,7 @@ func (b *BlockChain) checkTransactionsAndConnect(inputFees dcrutil.Amount, node } err := checkStakeBaseAmounts(b.subsidyCache, node.height, txs, view, - isTreasuryEnabled, isSubsidySplitEnabled) + isSubsidySplitEnabled) if err != nil { return err } diff --git a/blockchain/validate_test.go b/blockchain/validate_test.go index 8ec162f4..540780e1 100644 --- a/blockchain/validate_test.go +++ b/blockchain/validate_test.go @@ -120,7 +120,7 @@ func TestBlockchainSpendJournal(t *testing.T) { return err } - ntx := countSpentOutputs(block, noTreasury) + ntx := countSpentOutputs(block) stxos, err := dbFetchSpendJournalEntry(dbTx, block, noTreasury) if err != nil { diff --git a/internal/mempool/mempool.go b/internal/mempool/mempool.go index 381bd8dd..be79a90f 100644 --- a/internal/mempool/mempool.go +++ b/internal/mempool/mempool.go @@ -975,7 +975,7 @@ func (mp *TxPool) addTransaction(utxoView *blockchain.UtxoViewpoint, // Add unconfirmed address index entries associated with the transaction // if enabled. if mp.cfg.AddrIndex != nil { - mp.cfg.AddrIndex.AddUnconfirmedTx(tx, utxoView, isTreasuryEnabled) + mp.cfg.AddrIndex.AddUnconfirmedTx(tx, utxoView) } if mp.cfg.ExistsAddrIndex != nil { mp.cfg.ExistsAddrIndex.AddUnconfirmedTx(msgTx) diff --git a/internal/rpcserver/rpcserver.go b/internal/rpcserver/rpcserver.go index b98bc294..91a2ea70 100644 --- a/internal/rpcserver/rpcserver.go +++ b/internal/rpcserver/rpcserver.go @@ -4086,7 +4086,7 @@ type retrievedTx struct { // fetchInputTxos fetches the outpoints from all transactions referenced by the // inputs to the passed transaction by checking the transaction mempool first // then the transaction index for those already mined into blocks. -func fetchInputTxos(s *Server, tx *wire.MsgTx, isTreasuryEnabled bool) (map[wire.OutPoint]wire.TxOut, error) { +func fetchInputTxos(s *Server, tx *wire.MsgTx) (map[wire.OutPoint]wire.TxOut, error) { originOutputs := make(map[wire.OutPoint]wire.TxOut) voteTx := stake.IsSSGen(tx) for txInIndex, txIn := range tx.TxIn { @@ -4254,7 +4254,7 @@ func createVinListPrevOut(s *Server, mtx *wire.MsgTx, var originOutputs map[wire.OutPoint]wire.TxOut if vinExtra || len(filterAddrMap) > 0 { var err error - originOutputs, err = fetchInputTxos(s, mtx, isTreasuryEnabled) + originOutputs, err = fetchInputTxos(s, mtx) if err != nil { return nil, err }