OSDN Git Service

fix bug for vote & normal output (#433)
[bytom/vapor.git] / wallet / utxo.go
index bc60f56..a1b44fa 100644 (file)
@@ -209,13 +209,9 @@ func txInToUtxos(tx *types.Tx, statusFail bool) []*account.UTXO {
 }
 
 func txOutToUtxos(tx *types.Tx, statusFail bool, blockHeight uint64) []*account.UTXO {
-       validHeight := uint64(0)
-       if tx.Inputs[0].InputType() == types.CoinbaseInputType {
-               validHeight = blockHeight + consensus.ActiveNetParams.CoinbasePendingBlockNumber
-       }
-
        utxos := []*account.UTXO{}
        for i, out := range tx.Outputs {
+               validHeight := uint64(0)
                entryOutput, err := tx.Entry(*tx.ResultIds[i])
                if err != nil {
                        log.WithFields(log.Fields{"module": logModule, "err": err}).Error("txOutToUtxos fail on get entryOutput")
@@ -228,6 +224,11 @@ func txOutToUtxos(tx *types.Tx, statusFail bool, blockHeight uint64) []*account.
                        if (statusFail && *out.AssetAmount().AssetId != *consensus.BTMAssetID) || out.AssetAmount().Amount == uint64(0) {
                                continue
                        }
+
+                       if tx.Inputs[0].InputType() == types.CoinbaseInputType {
+                               validHeight = blockHeight + consensus.ActiveNetParams.CoinbasePendingBlockNumber
+                       }
+
                        utxo = &account.UTXO{
                                OutputID:       *tx.OutputID(i),
                                AssetID:        *out.AssetAmount().AssetId,