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 }