github.com/sixexorg/magnetic-ring@v0.0.0-20191119090307-31705a21e419/store/mainchain/validation/tx_handler_system.go (about) 1 package validation 2 3 import ( 4 "github.com/sixexorg/magnetic-ring/core/mainchain/types" 5 ) 6 7 func systemTxRoute(tx *types.Transaction) ([]*OpLog, bool) { 8 switch tx.TxType { 9 case types.ConsensusLeague: 10 return AnalysisConsensusLeague(tx), true 11 case types.RaiseUT: 12 return AnalysisRaiseUT(tx), true 13 case types.EnergyToMain: 14 return AnalysisEnergyToMain(tx), true 15 case types.ApplyPass: 16 return AnalysisApplyPass(tx), true 17 18 } 19 return nil, false 20 } 21 22 func AnalysisConsensusLeague(tx *types.Transaction) []*OpLog { 23 oplogs := make([]*OpLog, 0, 1) 24 oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.From, tx.TxData.Fee, League_gas_destroy)) 25 return oplogs 26 } 27 func AnalysisRaiseUT(tx *types.Transaction) []*OpLog { 28 oplogs := make([]*OpLog, 0, 4) 29 oplogs = append(oplogs, oplogPraseAddresUint64(tx.TxData.From, tx.TxData.Nonce, Account_nonce_add)) 30 oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.From, tx.TxData.MetaBox, Account_box_sub)) 31 oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.LeagueId, tx.TxData.MetaBox, League_raise)) 32 return oplogs 33 } 34 func AnalysisEnergyToMain(tx *types.Transaction) []*OpLog { 35 oplogs := make([]*OpLog, 0, 1) 36 oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.From, tx.TxData.Energy, Account_energy_add)) 37 //oplogs = append(oplogs, oplogPraseAddressBigInt(tx.TxData.LeagueId, tx.TxData.MetaBox, League_gas_sub)) 38 return oplogs 39 } 40 func AnalysisApplyPass(tx *types.Transaction) []*OpLog { 41 oplogs := make([]*OpLog, 0, 1) 42 oplogs = append(oplogs, oplogPraseAddresAddress(tx.TxData.From, tx.TxData.LeagueId, League_member_add)) 43 return oplogs 44 }