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  }