github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/store/orgchain/validation/tx_handler_system.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 systemTxRoute(tx *types.Transaction) ([]*OpLog, bool) { 11 switch tx.TxType { 12 case types.EnergyFromMain: 13 return AnalysisEnergyFromMain(tx), true 14 case types.RaiseUT: 15 return AnalsisRaiseUT(tx), true 16 } 17 return nil, false 18 } 19 20 func AnalysisEnergyFromMain(tx *types.Transaction) []*OpLog { 21 oplogs := make([]*OpLog, 0, 1) 22 oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.From, tx.TxData.Energy, Account_energy_add)) 23 return oplogs 24 } 25 func AnalsisRaiseUT(tx *types.Transaction) []*OpLog { 26 oplogs := make([]*OpLog, 0, 2) 27 ut := big.NewInt(int64(tx.TxData.Rate)) 28 ut.Mul(ut, tx.TxData.MetaBox) 29 oplogs = append(oplogs, oplogPraseAddressBigInt(common.Address{}, ut, League_Raise_ut)) 30 return oplogs 31 } 32 func AnalysisJoin(tx *types.Transaction) []*OpLog { 33 oplogs := make([]*OpLog, 0, 1) 34 oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.From, tx.TxData.Energy, Account_energy_add)) 35 return oplogs 36 }