github.com/Finschia/finschia-sdk@v0.48.1/x/slashing/types/signing_info.go (about)

     1  package types
     2  
     3  import (
     4  	"fmt"
     5  	"time"
     6  
     7  	"github.com/Finschia/finschia-sdk/codec"
     8  	sdk "github.com/Finschia/finschia-sdk/types"
     9  )
    10  
    11  // NewValidatorSigningInfo creates a new ValidatorSigningInfo instance
    12  //
    13  //nolint:interfacer
    14  func NewValidatorSigningInfo(
    15  	condAddr sdk.ConsAddress, startHeight, indexOffset int64,
    16  	jailedUntil time.Time, tombstoned bool, missedBlocksCounter int64,
    17  ) ValidatorSigningInfo {
    18  	return ValidatorSigningInfo{
    19  		Address:             condAddr.String(),
    20  		StartHeight:         startHeight,
    21  		IndexOffset:         indexOffset,
    22  		JailedUntil:         jailedUntil,
    23  		Tombstoned:          tombstoned,
    24  		MissedBlocksCounter: missedBlocksCounter,
    25  	}
    26  }
    27  
    28  // String implements the stringer interface for ValidatorSigningInfo
    29  func (i ValidatorSigningInfo) String() string {
    30  	return fmt.Sprintf(`Validator Signing Info:
    31    Address:               %s
    32    Start Height:          %d
    33    Index Offset:          %d
    34    Jailed Until:          %v
    35    Tombstoned:            %t
    36    Missed Blocks Counter: %d`,
    37  		i.Address, i.StartHeight, i.IndexOffset, i.JailedUntil,
    38  		i.Tombstoned, i.MissedBlocksCounter)
    39  }
    40  
    41  // unmarshal a validator signing info from a store value
    42  func UnmarshalValSigningInfo(cdc codec.Codec, value []byte) (signingInfo ValidatorSigningInfo, err error) {
    43  	err = cdc.Unmarshal(value, &signingInfo)
    44  	return signingInfo, err
    45  }