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 }