github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/store/mainchain/validation/tx_hanlder_bonus.go (about)

     1  package validation
     2  
     3  import (
     4  	"math/big"
     5  
     6  	"github.com/sixexorg/magnetic-ring/common"
     7  	"github.com/sixexorg/magnetic-ring/core/mainchain/types"
     8  )
     9  
    10  func bonusTxRoute(tx *types.Transaction) ([]*OpLog, bool) {
    11  	switch tx.TxType {
    12  	case types.GetBonus:
    13  		return AnalysisGetBonus(tx), true
    14  	}
    15  
    16  	return nil, false
    17  }
    18  
    19  func AnalysisGetBonus(tx *types.Transaction) []*OpLog {
    20  	oplogs := make([]*OpLog, 0, 2)
    21  	oplogs = append(oplogs, oplogPraseAddresUint64(tx.TxData.From, tx.TxData.Nonce, Account_nonce_add))
    22  	oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.From, tx.TxData.Fee, Account_bonus_fee))
    23  	return oplogs
    24  }
    25  
    26  func analysisBonusAfter(account common.Address, bonusLeft uint64, amount *big.Int) []*OpLog {
    27  	oplogs := make([]*OpLog, 0, 2)
    28  	oplogs = append(oplogs, oplogPraseAddresUint64(account, bonusLeft, Account_bonus_left))
    29  	oplogs = append(oplogs, oplogPraseAddressBigInt(account, amount, Account_energy_add))
    30  	return oplogs
    31  }