github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/store/orgchain/validation/tx_handler_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/orgchain/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  	return nil, false
    16  }
    17  func AnalysisGetBonus(tx *types.Transaction) []*OpLog {
    18  	oplogs := make([]*OpLog, 0, 2)
    19  	oplogs = append(oplogs, oplogPraseAddresUint64(tx.TxData.From, tx.TxData.Nonce, Account_nonce_add))
    20  	oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.From, tx.TxData.Fee, Account_bonus_fee))
    21  	return oplogs
    22  }
    23  
    24  func analysisBonusAfter(account common.Address, bonusLeft uint64, amount *big.Int) []*OpLog {
    25  	oplogs := make([]*OpLog, 0, 2)
    26  	oplogs = append(oplogs, oplogPraseAddresUint64(account, bonusLeft, Account_bonus_left))
    27  	oplogs = append(oplogs, oplogPraseAddressBigInt(account, amount, Account_energy_add))
    28  	return oplogs
    29  }