aboutsummaryrefslogblamecommitdiffstats
path: root/params/gen_dexcon_config.go
blob: bbbf8e91039e9a6768ee99bfc835e664b0130840 (plain) (tree)
1
2
3
4
5
6
7
8
9







                                                          
                                                  







                                                       






                                                                                    
                                                                              
                                                                                

                                                                            
                                                                                

                                                                                   
                                                                             
                                                                              

                                                                                   


                                             
                           
                                                          
                                         


                                                                            
                                                                
                                           

                                   
                                           

                                                 
                                     
                                       
                                                 





                                                                                 





                                                          






                                                                                    
                                                                              
                                                                                

                                                                            
                                                                                

                                                                                   
                                                                             
                                                                              

                                                                                   




                                                           


                                                      


                                    


                                                     


                                                  







                                                                       
         


                                                           


                                                    





                                            


                                                    





                                                          


                                              

                                                



                                                          





                                                                    

                  
// Code generated by github.com/fjl/gencodec. DO NOT EDIT.

package params

import (
    "encoding/json"
    "math/big"

    "github.com/dexon-foundation/dexon/common"
    "github.com/dexon-foundation/dexon/common/math"
)

var _ = (*dexconConfigSpecMarshaling)(nil)

// MarshalJSON marshals as JSON.
func (d DexconConfig) MarshalJSON() ([]byte, error) {
    type DexconConfig struct {
        GenesisCRSText    string                  `json:"genesisCRSText"`
        Owner             common.Address          `json:"owner"`
        MinStake          *math.HexOrDecimal256   `json:"minStake"`
        LockupPeriod      uint64                  `json:"lockupPeriod"`
        MiningVelocity    float32                 `json:"miningVelocity"`
        NextHalvingSupply *math.HexOrDecimal256   `json:"nextHalvingSupply"`
        LastHalvedAmount  *math.HexOrDecimal256   `json:"lastHalvedAmount"`
        MinGasPrice       *math.HexOrDecimal256   `json:"minGasPrice"`
        BlockGasLimit     uint64                  `json:"blockGasLimit"`
        LambdaBA          uint64                  `json:"lambdaBA"`
        LambdaDKG         uint64                  `json:"lambdaDKG"`
        NotarySetSize     uint32                  `json:"notarySetSize"`
        NotaryParamAlpha  float32                 `json:"notaryParamAlpha"`
        NotaryParamBeta   float32                 `json:"notaryParamBeta"`
        DKGSetSize        uint32                  `json:"dkgSetSize"`
        RoundLength       uint64                  `json:"roundLength"`
        MinBlockInterval  uint64                  `json:"minBlockInterval"`
        FineValues        []*math.HexOrDecimal256 `json:"fineValues"`
    }
    var enc DexconConfig
    enc.GenesisCRSText = d.GenesisCRSText
    enc.Owner = d.Owner
    enc.MinStake = (*math.HexOrDecimal256)(d.MinStake)
    enc.LockupPeriod = d.LockupPeriod
    enc.MiningVelocity = d.MiningVelocity
    enc.NextHalvingSupply = (*math.HexOrDecimal256)(d.NextHalvingSupply)
    enc.LastHalvedAmount = (*math.HexOrDecimal256)(d.LastHalvedAmount)
    enc.MinGasPrice = (*math.HexOrDecimal256)(d.MinGasPrice)
    enc.BlockGasLimit = d.BlockGasLimit
    enc.LambdaBA = d.LambdaBA
    enc.LambdaDKG = d.LambdaDKG
    enc.NotarySetSize = d.NotarySetSize
    enc.NotaryParamAlpha = d.NotaryParamAlpha
    enc.NotaryParamBeta = d.NotaryParamBeta
    enc.DKGSetSize = d.DKGSetSize
    enc.RoundLength = d.RoundLength
    enc.MinBlockInterval = d.MinBlockInterval
    if d.FineValues != nil {
        enc.FineValues = make([]*math.HexOrDecimal256, len(d.FineValues))
        for k, v := range d.FineValues {
            enc.FineValues[k] = (*math.HexOrDecimal256)(v)
        }
    }
    return json.Marshal(&enc)
}

// UnmarshalJSON unmarshals from JSON.
func (d *DexconConfig) UnmarshalJSON(input []byte) error {
    type DexconConfig struct {
        GenesisCRSText    *string                 `json:"genesisCRSText"`
        Owner             *common.Address         `json:"owner"`
        MinStake          *math.HexOrDecimal256   `json:"minStake"`
        LockupPeriod      *uint64                 `json:"lockupPeriod"`
        MiningVelocity    *float32                `json:"miningVelocity"`
        NextHalvingSupply *math.HexOrDecimal256   `json:"nextHalvingSupply"`
        LastHalvedAmount  *math.HexOrDecimal256   `json:"lastHalvedAmount"`
        MinGasPrice       *math.HexOrDecimal256   `json:"minGasPrice"`
        BlockGasLimit     *uint64                 `json:"blockGasLimit"`
        LambdaBA          *uint64                 `json:"lambdaBA"`
        LambdaDKG         *uint64                 `json:"lambdaDKG"`
        NotarySetSize     *uint32                 `json:"notarySetSize"`
        NotaryParamAlpha  *float32                `json:"notaryParamAlpha"`
        NotaryParamBeta   *float32                `json:"notaryParamBeta"`
        DKGSetSize        *uint32                 `json:"dkgSetSize"`
        RoundLength       *uint64                 `json:"roundLength"`
        MinBlockInterval  *uint64                 `json:"minBlockInterval"`
        FineValues        []*math.HexOrDecimal256 `json:"fineValues"`
    }
    var dec DexconConfig
    if err := json.Unmarshal(input, &dec); err != nil {
        return err
    }
    if dec.GenesisCRSText != nil {
        d.GenesisCRSText = *dec.GenesisCRSText
    }
    if dec.Owner != nil {
        d.Owner = *dec.Owner
    }
    if dec.MinStake != nil {
        d.MinStake = (*big.Int)(dec.MinStake)
    }
    if dec.LockupPeriod != nil {
        d.LockupPeriod = *dec.LockupPeriod
    }
    if dec.MiningVelocity != nil {
        d.MiningVelocity = *dec.MiningVelocity
    }
    if dec.NextHalvingSupply != nil {
        d.NextHalvingSupply = (*big.Int)(dec.NextHalvingSupply)
    }
    if dec.LastHalvedAmount != nil {
        d.LastHalvedAmount = (*big.Int)(dec.LastHalvedAmount)
    }
    if dec.MinGasPrice != nil {
        d.MinGasPrice = (*big.Int)(dec.MinGasPrice)
    }
    if dec.BlockGasLimit != nil {
        d.BlockGasLimit = *dec.BlockGasLimit
    }
    if dec.LambdaBA != nil {
        d.LambdaBA = *dec.LambdaBA
    }
    if dec.LambdaDKG != nil {
        d.LambdaDKG = *dec.LambdaDKG
    }
    if dec.NotarySetSize != nil {
        d.NotarySetSize = *dec.NotarySetSize
    }
    if dec.NotaryParamAlpha != nil {
        d.NotaryParamAlpha = *dec.NotaryParamAlpha
    }
    if dec.NotaryParamBeta != nil {
        d.NotaryParamBeta = *dec.NotaryParamBeta
    }
    if dec.DKGSetSize != nil {
        d.DKGSetSize = *dec.DKGSetSize
    }
    if dec.RoundLength != nil {
        d.RoundLength = *dec.RoundLength
    }
    if dec.MinBlockInterval != nil {
        d.MinBlockInterval = *dec.MinBlockInterval
    }
    if dec.FineValues != nil {
        d.FineValues = make([]*big.Int, len(dec.FineValues))
        for k, v := range dec.FineValues {
            d.FineValues[k] = (*big.Int)(v)
        }
    }
    return nil
}