// restructCoinbaseTx build coinbase transaction with aggregate outputs when it achieved the specified block height
func restructCoinbaseTx(tx *types.Tx, rewards []state.CoinbaseReward) error {
+ if len(rewards) == 0 {
+ return nil
+ }
+
for _, r := range rewards {
tx.Outputs = append(tx.Outputs, types.NewIntraChainOutput(*consensus.BTMAssetID, r.Amount, r.ControlProgram))
}
return nil, err
}
- if _, err := consensusResult.AttachCoinbaseReward(b); err != nil {
+ if err := consensusResult.AttachCoinbaseReward(b); err != nil {
return nil, err
}
}
// restruct coinbase transaction
- if len(rewards) > 0 {
- if err = restructCoinbaseTx(b.Transactions[0], rewards); err != nil {
- return nil, errors.Wrap(err, "fail on createCoinbaseTx")
- }
+ if err = restructCoinbaseTx(b.Transactions[0], rewards); err != nil {
+ return nil, errors.Wrap(err, "fail on createCoinbaseTx")
}
txEntries[0] = b.Transactions[0].Tx