/*
Lethean Blockchain API

OpenAPI for Lethean Blockchain

API version: 6.0.1
*/

// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.

package lthn

import (
	"encoding/json"
)

// checks if the InfoModel type satisfies the MappedNullable interface at compile time
var _ MappedNullable = &InfoModel{}

// InfoModel struct for InfoModel
type InfoModel struct {
	Height *int32 `json:"height,omitempty"`
	TxCount *int32 `json:"tx_count,omitempty"`
	TxPoolSize *int32 `json:"tx_pool_size,omitempty"`
	AltBlocksCount *int32 `json:"alt_blocks_count,omitempty"`
	OutgoingConnectionsCount *int32 `json:"outgoing_connections_count,omitempty"`
	IncomingConnectionsCount *int32 `json:"incoming_connections_count,omitempty"`
	SynchronizedConnectionsCount *int32 `json:"synchronized_connections_count,omitempty"`
	WhitePeerlistSize *int32 `json:"white_peerlist_size,omitempty"`
	GreyPeerlistSize *int32 `json:"grey_peerlist_size,omitempty"`
	CurrentBlocksMedian *int32 `json:"current_blocks_median,omitempty"`
	AliasCount *int32 `json:"alias_count,omitempty"`
	CurrentMaxAllowedBlockSize *int32 `json:"current_max_allowed_block_size,omitempty"`
	DaemonNetworkState *string `json:"daemon_network_state,omitempty"`
	SynchronizationStartHeight *int32 `json:"synchronization_start_height,omitempty"`
	MaxNetSeenHeight *int32 `json:"max_net_seen_height,omitempty"`
	Mi *MaintainersInfoModel `json:"mi,omitempty"`
	PosAllowed *bool `json:"pos_allowed,omitempty"`
	PosDifficulty *string `json:"pos_difficulty,omitempty"`
	PowDifficulty *int32 `json:"pow_difficulty,omitempty"`
	DefaultFee *int32 `json:"default_fee,omitempty"`
	MinimumFee *int32 `json:"minimum_fee,omitempty"`
	IsHardforkActive []bool `json:"is_hardfork_active,omitempty"`
	NetTimeDeltaMedian *int64 `json:"net_time_delta_median,omitempty"`
	CurrentNetworkHashrate50 *int32 `json:"current_network_hashrate_50,omitempty"`
	CurrentNetworkHashrate350 *int32 `json:"current_network_hashrate_350,omitempty"`
	SecondsFor10Blocks *int32 `json:"seconds_for_10_blocks,omitempty"`
	SecondsFor30Blocks *int32 `json:"seconds_for_30_blocks,omitempty"`
	TransactionsCntPerDay []int32 `json:"transactions_cnt_per_day,omitempty"`
	TransactionsVolumePerDay []int32 `json:"transactions_volume_per_day,omitempty"`
	LastPosTimestamp *int32 `json:"last_pos_timestamp,omitempty"`
	LastPowTimestamp *int32 `json:"last_pow_timestamp,omitempty"`
	TotalCoins *string `json:"total_coins,omitempty"`
	LastBlockSize *int32 `json:"last_block_size,omitempty"`
	TxCountInLastBlock *int32 `json:"tx_count_in_last_block,omitempty"`
	PosSequenceFactor *float64 `json:"pos_sequence_factor,omitempty"`
	PowSequenceFactor *float64 `json:"pow_sequence_factor,omitempty"`
	BlockReward *int32 `json:"block_reward,omitempty"`
	LastBlockTotalReward *int32 `json:"last_block_total_reward,omitempty"`
	PosDiffTotalCoinsRate *int32 `json:"pos_diff_total_coins_rate,omitempty"`
	LastBlockTimestamp *int32 `json:"last_block_timestamp,omitempty"`
	LastBlockHash *string `json:"last_block_hash,omitempty"`
	PosBlockTsShiftVsActual *int64 `json:"pos_block_ts_shift_vs_actual,omitempty"`
	OutsStat *map[string]int32 `json:"outs_stat,omitempty"`
	PerformanceData *PerformanceModel `json:"performance_data,omitempty"`
	OffersCount *int32 `json:"offers_count,omitempty"`
	ExpirationMedianTimestamp *int32 `json:"expiration_median_timestamp,omitempty"`
	AdditionalProperties map[string]interface{}
}

type _InfoModel InfoModel

// NewInfoModel instantiates a new InfoModel object
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed
func NewInfoModel() *InfoModel {
	this := InfoModel{}
	return &this
}

// NewInfoModelWithDefaults instantiates a new InfoModel object
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set
func NewInfoModelWithDefaults() *InfoModel {
	this := InfoModel{}
	return &this
}

// GetHeight returns the Height field value if set, zero value otherwise.
func (o *InfoModel) GetHeight() int32 {
	if o == nil || IsNil(o.Height) {
		var ret int32
		return ret
	}
	return *o.Height
}

// GetHeightOk returns a tuple with the Height field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetHeightOk() (*int32, bool) {
	if o == nil || IsNil(o.Height) {
		return nil, false
	}
	return o.Height, true
}

// HasHeight returns a boolean if a field has been set.
func (o *InfoModel) HasHeight() bool {
	if o != nil && !IsNil(o.Height) {
		return true
	}

	return false
}

// SetHeight gets a reference to the given int32 and assigns it to the Height field.
func (o *InfoModel) SetHeight(v int32) {
	o.Height = &v
}

// GetTxCount returns the TxCount field value if set, zero value otherwise.
func (o *InfoModel) GetTxCount() int32 {
	if o == nil || IsNil(o.TxCount) {
		var ret int32
		return ret
	}
	return *o.TxCount
}

// GetTxCountOk returns a tuple with the TxCount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetTxCountOk() (*int32, bool) {
	if o == nil || IsNil(o.TxCount) {
		return nil, false
	}
	return o.TxCount, true
}

// HasTxCount returns a boolean if a field has been set.
func (o *InfoModel) HasTxCount() bool {
	if o != nil && !IsNil(o.TxCount) {
		return true
	}

	return false
}

// SetTxCount gets a reference to the given int32 and assigns it to the TxCount field.
func (o *InfoModel) SetTxCount(v int32) {
	o.TxCount = &v
}

// GetTxPoolSize returns the TxPoolSize field value if set, zero value otherwise.
func (o *InfoModel) GetTxPoolSize() int32 {
	if o == nil || IsNil(o.TxPoolSize) {
		var ret int32
		return ret
	}
	return *o.TxPoolSize
}

// GetTxPoolSizeOk returns a tuple with the TxPoolSize field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetTxPoolSizeOk() (*int32, bool) {
	if o == nil || IsNil(o.TxPoolSize) {
		return nil, false
	}
	return o.TxPoolSize, true
}

// HasTxPoolSize returns a boolean if a field has been set.
func (o *InfoModel) HasTxPoolSize() bool {
	if o != nil && !IsNil(o.TxPoolSize) {
		return true
	}

	return false
}

// SetTxPoolSize gets a reference to the given int32 and assigns it to the TxPoolSize field.
func (o *InfoModel) SetTxPoolSize(v int32) {
	o.TxPoolSize = &v
}

// GetAltBlocksCount returns the AltBlocksCount field value if set, zero value otherwise.
func (o *InfoModel) GetAltBlocksCount() int32 {
	if o == nil || IsNil(o.AltBlocksCount) {
		var ret int32
		return ret
	}
	return *o.AltBlocksCount
}

// GetAltBlocksCountOk returns a tuple with the AltBlocksCount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetAltBlocksCountOk() (*int32, bool) {
	if o == nil || IsNil(o.AltBlocksCount) {
		return nil, false
	}
	return o.AltBlocksCount, true
}

// HasAltBlocksCount returns a boolean if a field has been set.
func (o *InfoModel) HasAltBlocksCount() bool {
	if o != nil && !IsNil(o.AltBlocksCount) {
		return true
	}

	return false
}

// SetAltBlocksCount gets a reference to the given int32 and assigns it to the AltBlocksCount field.
func (o *InfoModel) SetAltBlocksCount(v int32) {
	o.AltBlocksCount = &v
}

// GetOutgoingConnectionsCount returns the OutgoingConnectionsCount field value if set, zero value otherwise.
func (o *InfoModel) GetOutgoingConnectionsCount() int32 {
	if o == nil || IsNil(o.OutgoingConnectionsCount) {
		var ret int32
		return ret
	}
	return *o.OutgoingConnectionsCount
}

// GetOutgoingConnectionsCountOk returns a tuple with the OutgoingConnectionsCount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetOutgoingConnectionsCountOk() (*int32, bool) {
	if o == nil || IsNil(o.OutgoingConnectionsCount) {
		return nil, false
	}
	return o.OutgoingConnectionsCount, true
}

// HasOutgoingConnectionsCount returns a boolean if a field has been set.
func (o *InfoModel) HasOutgoingConnectionsCount() bool {
	if o != nil && !IsNil(o.OutgoingConnectionsCount) {
		return true
	}

	return false
}

// SetOutgoingConnectionsCount gets a reference to the given int32 and assigns it to the OutgoingConnectionsCount field.
func (o *InfoModel) SetOutgoingConnectionsCount(v int32) {
	o.OutgoingConnectionsCount = &v
}

// GetIncomingConnectionsCount returns the IncomingConnectionsCount field value if set, zero value otherwise.
func (o *InfoModel) GetIncomingConnectionsCount() int32 {
	if o == nil || IsNil(o.IncomingConnectionsCount) {
		var ret int32
		return ret
	}
	return *o.IncomingConnectionsCount
}

// GetIncomingConnectionsCountOk returns a tuple with the IncomingConnectionsCount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetIncomingConnectionsCountOk() (*int32, bool) {
	if o == nil || IsNil(o.IncomingConnectionsCount) {
		return nil, false
	}
	return o.IncomingConnectionsCount, true
}

// HasIncomingConnectionsCount returns a boolean if a field has been set.
func (o *InfoModel) HasIncomingConnectionsCount() bool {
	if o != nil && !IsNil(o.IncomingConnectionsCount) {
		return true
	}

	return false
}

// SetIncomingConnectionsCount gets a reference to the given int32 and assigns it to the IncomingConnectionsCount field.
func (o *InfoModel) SetIncomingConnectionsCount(v int32) {
	o.IncomingConnectionsCount = &v
}

// GetSynchronizedConnectionsCount returns the SynchronizedConnectionsCount field value if set, zero value otherwise.
func (o *InfoModel) GetSynchronizedConnectionsCount() int32 {
	if o == nil || IsNil(o.SynchronizedConnectionsCount) {
		var ret int32
		return ret
	}
	return *o.SynchronizedConnectionsCount
}

// GetSynchronizedConnectionsCountOk returns a tuple with the SynchronizedConnectionsCount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetSynchronizedConnectionsCountOk() (*int32, bool) {
	if o == nil || IsNil(o.SynchronizedConnectionsCount) {
		return nil, false
	}
	return o.SynchronizedConnectionsCount, true
}

// HasSynchronizedConnectionsCount returns a boolean if a field has been set.
func (o *InfoModel) HasSynchronizedConnectionsCount() bool {
	if o != nil && !IsNil(o.SynchronizedConnectionsCount) {
		return true
	}

	return false
}

// SetSynchronizedConnectionsCount gets a reference to the given int32 and assigns it to the SynchronizedConnectionsCount field.
func (o *InfoModel) SetSynchronizedConnectionsCount(v int32) {
	o.SynchronizedConnectionsCount = &v
}

// GetWhitePeerlistSize returns the WhitePeerlistSize field value if set, zero value otherwise.
func (o *InfoModel) GetWhitePeerlistSize() int32 {
	if o == nil || IsNil(o.WhitePeerlistSize) {
		var ret int32
		return ret
	}
	return *o.WhitePeerlistSize
}

// GetWhitePeerlistSizeOk returns a tuple with the WhitePeerlistSize field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetWhitePeerlistSizeOk() (*int32, bool) {
	if o == nil || IsNil(o.WhitePeerlistSize) {
		return nil, false
	}
	return o.WhitePeerlistSize, true
}

// HasWhitePeerlistSize returns a boolean if a field has been set.
func (o *InfoModel) HasWhitePeerlistSize() bool {
	if o != nil && !IsNil(o.WhitePeerlistSize) {
		return true
	}

	return false
}

// SetWhitePeerlistSize gets a reference to the given int32 and assigns it to the WhitePeerlistSize field.
func (o *InfoModel) SetWhitePeerlistSize(v int32) {
	o.WhitePeerlistSize = &v
}

// GetGreyPeerlistSize returns the GreyPeerlistSize field value if set, zero value otherwise.
func (o *InfoModel) GetGreyPeerlistSize() int32 {
	if o == nil || IsNil(o.GreyPeerlistSize) {
		var ret int32
		return ret
	}
	return *o.GreyPeerlistSize
}

// GetGreyPeerlistSizeOk returns a tuple with the GreyPeerlistSize field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetGreyPeerlistSizeOk() (*int32, bool) {
	if o == nil || IsNil(o.GreyPeerlistSize) {
		return nil, false
	}
	return o.GreyPeerlistSize, true
}

// HasGreyPeerlistSize returns a boolean if a field has been set.
func (o *InfoModel) HasGreyPeerlistSize() bool {
	if o != nil && !IsNil(o.GreyPeerlistSize) {
		return true
	}

	return false
}

// SetGreyPeerlistSize gets a reference to the given int32 and assigns it to the GreyPeerlistSize field.
func (o *InfoModel) SetGreyPeerlistSize(v int32) {
	o.GreyPeerlistSize = &v
}

// GetCurrentBlocksMedian returns the CurrentBlocksMedian field value if set, zero value otherwise.
func (o *InfoModel) GetCurrentBlocksMedian() int32 {
	if o == nil || IsNil(o.CurrentBlocksMedian) {
		var ret int32
		return ret
	}
	return *o.CurrentBlocksMedian
}

// GetCurrentBlocksMedianOk returns a tuple with the CurrentBlocksMedian field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetCurrentBlocksMedianOk() (*int32, bool) {
	if o == nil || IsNil(o.CurrentBlocksMedian) {
		return nil, false
	}
	return o.CurrentBlocksMedian, true
}

// HasCurrentBlocksMedian returns a boolean if a field has been set.
func (o *InfoModel) HasCurrentBlocksMedian() bool {
	if o != nil && !IsNil(o.CurrentBlocksMedian) {
		return true
	}

	return false
}

// SetCurrentBlocksMedian gets a reference to the given int32 and assigns it to the CurrentBlocksMedian field.
func (o *InfoModel) SetCurrentBlocksMedian(v int32) {
	o.CurrentBlocksMedian = &v
}

// GetAliasCount returns the AliasCount field value if set, zero value otherwise.
func (o *InfoModel) GetAliasCount() int32 {
	if o == nil || IsNil(o.AliasCount) {
		var ret int32
		return ret
	}
	return *o.AliasCount
}

// GetAliasCountOk returns a tuple with the AliasCount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetAliasCountOk() (*int32, bool) {
	if o == nil || IsNil(o.AliasCount) {
		return nil, false
	}
	return o.AliasCount, true
}

// HasAliasCount returns a boolean if a field has been set.
func (o *InfoModel) HasAliasCount() bool {
	if o != nil && !IsNil(o.AliasCount) {
		return true
	}

	return false
}

// SetAliasCount gets a reference to the given int32 and assigns it to the AliasCount field.
func (o *InfoModel) SetAliasCount(v int32) {
	o.AliasCount = &v
}

// GetCurrentMaxAllowedBlockSize returns the CurrentMaxAllowedBlockSize field value if set, zero value otherwise.
func (o *InfoModel) GetCurrentMaxAllowedBlockSize() int32 {
	if o == nil || IsNil(o.CurrentMaxAllowedBlockSize) {
		var ret int32
		return ret
	}
	return *o.CurrentMaxAllowedBlockSize
}

// GetCurrentMaxAllowedBlockSizeOk returns a tuple with the CurrentMaxAllowedBlockSize field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetCurrentMaxAllowedBlockSizeOk() (*int32, bool) {
	if o == nil || IsNil(o.CurrentMaxAllowedBlockSize) {
		return nil, false
	}
	return o.CurrentMaxAllowedBlockSize, true
}

// HasCurrentMaxAllowedBlockSize returns a boolean if a field has been set.
func (o *InfoModel) HasCurrentMaxAllowedBlockSize() bool {
	if o != nil && !IsNil(o.CurrentMaxAllowedBlockSize) {
		return true
	}

	return false
}

// SetCurrentMaxAllowedBlockSize gets a reference to the given int32 and assigns it to the CurrentMaxAllowedBlockSize field.
func (o *InfoModel) SetCurrentMaxAllowedBlockSize(v int32) {
	o.CurrentMaxAllowedBlockSize = &v
}

// GetDaemonNetworkState returns the DaemonNetworkState field value if set, zero value otherwise.
func (o *InfoModel) GetDaemonNetworkState() string {
	if o == nil || IsNil(o.DaemonNetworkState) {
		var ret string
		return ret
	}
	return *o.DaemonNetworkState
}

// GetDaemonNetworkStateOk returns a tuple with the DaemonNetworkState field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetDaemonNetworkStateOk() (*string, bool) {
	if o == nil || IsNil(o.DaemonNetworkState) {
		return nil, false
	}
	return o.DaemonNetworkState, true
}

// HasDaemonNetworkState returns a boolean if a field has been set.
func (o *InfoModel) HasDaemonNetworkState() bool {
	if o != nil && !IsNil(o.DaemonNetworkState) {
		return true
	}

	return false
}

// SetDaemonNetworkState gets a reference to the given string and assigns it to the DaemonNetworkState field.
func (o *InfoModel) SetDaemonNetworkState(v string) {
	o.DaemonNetworkState = &v
}

// GetSynchronizationStartHeight returns the SynchronizationStartHeight field value if set, zero value otherwise.
func (o *InfoModel) GetSynchronizationStartHeight() int32 {
	if o == nil || IsNil(o.SynchronizationStartHeight) {
		var ret int32
		return ret
	}
	return *o.SynchronizationStartHeight
}

// GetSynchronizationStartHeightOk returns a tuple with the SynchronizationStartHeight field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetSynchronizationStartHeightOk() (*int32, bool) {
	if o == nil || IsNil(o.SynchronizationStartHeight) {
		return nil, false
	}
	return o.SynchronizationStartHeight, true
}

// HasSynchronizationStartHeight returns a boolean if a field has been set.
func (o *InfoModel) HasSynchronizationStartHeight() bool {
	if o != nil && !IsNil(o.SynchronizationStartHeight) {
		return true
	}

	return false
}

// SetSynchronizationStartHeight gets a reference to the given int32 and assigns it to the SynchronizationStartHeight field.
func (o *InfoModel) SetSynchronizationStartHeight(v int32) {
	o.SynchronizationStartHeight = &v
}

// GetMaxNetSeenHeight returns the MaxNetSeenHeight field value if set, zero value otherwise.
func (o *InfoModel) GetMaxNetSeenHeight() int32 {
	if o == nil || IsNil(o.MaxNetSeenHeight) {
		var ret int32
		return ret
	}
	return *o.MaxNetSeenHeight
}

// GetMaxNetSeenHeightOk returns a tuple with the MaxNetSeenHeight field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetMaxNetSeenHeightOk() (*int32, bool) {
	if o == nil || IsNil(o.MaxNetSeenHeight) {
		return nil, false
	}
	return o.MaxNetSeenHeight, true
}

// HasMaxNetSeenHeight returns a boolean if a field has been set.
func (o *InfoModel) HasMaxNetSeenHeight() bool {
	if o != nil && !IsNil(o.MaxNetSeenHeight) {
		return true
	}

	return false
}

// SetMaxNetSeenHeight gets a reference to the given int32 and assigns it to the MaxNetSeenHeight field.
func (o *InfoModel) SetMaxNetSeenHeight(v int32) {
	o.MaxNetSeenHeight = &v
}

// GetMi returns the Mi field value if set, zero value otherwise.
func (o *InfoModel) GetMi() MaintainersInfoModel {
	if o == nil || IsNil(o.Mi) {
		var ret MaintainersInfoModel
		return ret
	}
	return *o.Mi
}

// GetMiOk returns a tuple with the Mi field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetMiOk() (*MaintainersInfoModel, bool) {
	if o == nil || IsNil(o.Mi) {
		return nil, false
	}
	return o.Mi, true
}

// HasMi returns a boolean if a field has been set.
func (o *InfoModel) HasMi() bool {
	if o != nil && !IsNil(o.Mi) {
		return true
	}

	return false
}

// SetMi gets a reference to the given MaintainersInfoModel and assigns it to the Mi field.
func (o *InfoModel) SetMi(v MaintainersInfoModel) {
	o.Mi = &v
}

// GetPosAllowed returns the PosAllowed field value if set, zero value otherwise.
func (o *InfoModel) GetPosAllowed() bool {
	if o == nil || IsNil(o.PosAllowed) {
		var ret bool
		return ret
	}
	return *o.PosAllowed
}

// GetPosAllowedOk returns a tuple with the PosAllowed field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetPosAllowedOk() (*bool, bool) {
	if o == nil || IsNil(o.PosAllowed) {
		return nil, false
	}
	return o.PosAllowed, true
}

// HasPosAllowed returns a boolean if a field has been set.
func (o *InfoModel) HasPosAllowed() bool {
	if o != nil && !IsNil(o.PosAllowed) {
		return true
	}

	return false
}

// SetPosAllowed gets a reference to the given bool and assigns it to the PosAllowed field.
func (o *InfoModel) SetPosAllowed(v bool) {
	o.PosAllowed = &v
}

// GetPosDifficulty returns the PosDifficulty field value if set, zero value otherwise.
func (o *InfoModel) GetPosDifficulty() string {
	if o == nil || IsNil(o.PosDifficulty) {
		var ret string
		return ret
	}
	return *o.PosDifficulty
}

// GetPosDifficultyOk returns a tuple with the PosDifficulty field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetPosDifficultyOk() (*string, bool) {
	if o == nil || IsNil(o.PosDifficulty) {
		return nil, false
	}
	return o.PosDifficulty, true
}

// HasPosDifficulty returns a boolean if a field has been set.
func (o *InfoModel) HasPosDifficulty() bool {
	if o != nil && !IsNil(o.PosDifficulty) {
		return true
	}

	return false
}

// SetPosDifficulty gets a reference to the given string and assigns it to the PosDifficulty field.
func (o *InfoModel) SetPosDifficulty(v string) {
	o.PosDifficulty = &v
}

// GetPowDifficulty returns the PowDifficulty field value if set, zero value otherwise.
func (o *InfoModel) GetPowDifficulty() int32 {
	if o == nil || IsNil(o.PowDifficulty) {
		var ret int32
		return ret
	}
	return *o.PowDifficulty
}

// GetPowDifficultyOk returns a tuple with the PowDifficulty field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetPowDifficultyOk() (*int32, bool) {
	if o == nil || IsNil(o.PowDifficulty) {
		return nil, false
	}
	return o.PowDifficulty, true
}

// HasPowDifficulty returns a boolean if a field has been set.
func (o *InfoModel) HasPowDifficulty() bool {
	if o != nil && !IsNil(o.PowDifficulty) {
		return true
	}

	return false
}

// SetPowDifficulty gets a reference to the given int32 and assigns it to the PowDifficulty field.
func (o *InfoModel) SetPowDifficulty(v int32) {
	o.PowDifficulty = &v
}

// GetDefaultFee returns the DefaultFee field value if set, zero value otherwise.
func (o *InfoModel) GetDefaultFee() int32 {
	if o == nil || IsNil(o.DefaultFee) {
		var ret int32
		return ret
	}
	return *o.DefaultFee
}

// GetDefaultFeeOk returns a tuple with the DefaultFee field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetDefaultFeeOk() (*int32, bool) {
	if o == nil || IsNil(o.DefaultFee) {
		return nil, false
	}
	return o.DefaultFee, true
}

// HasDefaultFee returns a boolean if a field has been set.
func (o *InfoModel) HasDefaultFee() bool {
	if o != nil && !IsNil(o.DefaultFee) {
		return true
	}

	return false
}

// SetDefaultFee gets a reference to the given int32 and assigns it to the DefaultFee field.
func (o *InfoModel) SetDefaultFee(v int32) {
	o.DefaultFee = &v
}

// GetMinimumFee returns the MinimumFee field value if set, zero value otherwise.
func (o *InfoModel) GetMinimumFee() int32 {
	if o == nil || IsNil(o.MinimumFee) {
		var ret int32
		return ret
	}
	return *o.MinimumFee
}

// GetMinimumFeeOk returns a tuple with the MinimumFee field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetMinimumFeeOk() (*int32, bool) {
	if o == nil || IsNil(o.MinimumFee) {
		return nil, false
	}
	return o.MinimumFee, true
}

// HasMinimumFee returns a boolean if a field has been set.
func (o *InfoModel) HasMinimumFee() bool {
	if o != nil && !IsNil(o.MinimumFee) {
		return true
	}

	return false
}

// SetMinimumFee gets a reference to the given int32 and assigns it to the MinimumFee field.
func (o *InfoModel) SetMinimumFee(v int32) {
	o.MinimumFee = &v
}

// GetIsHardforkActive returns the IsHardforkActive field value if set, zero value otherwise.
func (o *InfoModel) GetIsHardforkActive() []bool {
	if o == nil || IsNil(o.IsHardforkActive) {
		var ret []bool
		return ret
	}
	return o.IsHardforkActive
}

// GetIsHardforkActiveOk returns a tuple with the IsHardforkActive field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetIsHardforkActiveOk() ([]bool, bool) {
	if o == nil || IsNil(o.IsHardforkActive) {
		return nil, false
	}
	return o.IsHardforkActive, true
}

// HasIsHardforkActive returns a boolean if a field has been set.
func (o *InfoModel) HasIsHardforkActive() bool {
	if o != nil && !IsNil(o.IsHardforkActive) {
		return true
	}

	return false
}

// SetIsHardforkActive gets a reference to the given []bool and assigns it to the IsHardforkActive field.
func (o *InfoModel) SetIsHardforkActive(v []bool) {
	o.IsHardforkActive = v
}

// GetNetTimeDeltaMedian returns the NetTimeDeltaMedian field value if set, zero value otherwise.
func (o *InfoModel) GetNetTimeDeltaMedian() int64 {
	if o == nil || IsNil(o.NetTimeDeltaMedian) {
		var ret int64
		return ret
	}
	return *o.NetTimeDeltaMedian
}

// GetNetTimeDeltaMedianOk returns a tuple with the NetTimeDeltaMedian field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetNetTimeDeltaMedianOk() (*int64, bool) {
	if o == nil || IsNil(o.NetTimeDeltaMedian) {
		return nil, false
	}
	return o.NetTimeDeltaMedian, true
}

// HasNetTimeDeltaMedian returns a boolean if a field has been set.
func (o *InfoModel) HasNetTimeDeltaMedian() bool {
	if o != nil && !IsNil(o.NetTimeDeltaMedian) {
		return true
	}

	return false
}

// SetNetTimeDeltaMedian gets a reference to the given int64 and assigns it to the NetTimeDeltaMedian field.
func (o *InfoModel) SetNetTimeDeltaMedian(v int64) {
	o.NetTimeDeltaMedian = &v
}

// GetCurrentNetworkHashrate50 returns the CurrentNetworkHashrate50 field value if set, zero value otherwise.
func (o *InfoModel) GetCurrentNetworkHashrate50() int32 {
	if o == nil || IsNil(o.CurrentNetworkHashrate50) {
		var ret int32
		return ret
	}
	return *o.CurrentNetworkHashrate50
}

// GetCurrentNetworkHashrate50Ok returns a tuple with the CurrentNetworkHashrate50 field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetCurrentNetworkHashrate50Ok() (*int32, bool) {
	if o == nil || IsNil(o.CurrentNetworkHashrate50) {
		return nil, false
	}
	return o.CurrentNetworkHashrate50, true
}

// HasCurrentNetworkHashrate50 returns a boolean if a field has been set.
func (o *InfoModel) HasCurrentNetworkHashrate50() bool {
	if o != nil && !IsNil(o.CurrentNetworkHashrate50) {
		return true
	}

	return false
}

// SetCurrentNetworkHashrate50 gets a reference to the given int32 and assigns it to the CurrentNetworkHashrate50 field.
func (o *InfoModel) SetCurrentNetworkHashrate50(v int32) {
	o.CurrentNetworkHashrate50 = &v
}

// GetCurrentNetworkHashrate350 returns the CurrentNetworkHashrate350 field value if set, zero value otherwise.
func (o *InfoModel) GetCurrentNetworkHashrate350() int32 {
	if o == nil || IsNil(o.CurrentNetworkHashrate350) {
		var ret int32
		return ret
	}
	return *o.CurrentNetworkHashrate350
}

// GetCurrentNetworkHashrate350Ok returns a tuple with the CurrentNetworkHashrate350 field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetCurrentNetworkHashrate350Ok() (*int32, bool) {
	if o == nil || IsNil(o.CurrentNetworkHashrate350) {
		return nil, false
	}
	return o.CurrentNetworkHashrate350, true
}

// HasCurrentNetworkHashrate350 returns a boolean if a field has been set.
func (o *InfoModel) HasCurrentNetworkHashrate350() bool {
	if o != nil && !IsNil(o.CurrentNetworkHashrate350) {
		return true
	}

	return false
}

// SetCurrentNetworkHashrate350 gets a reference to the given int32 and assigns it to the CurrentNetworkHashrate350 field.
func (o *InfoModel) SetCurrentNetworkHashrate350(v int32) {
	o.CurrentNetworkHashrate350 = &v
}

// GetSecondsFor10Blocks returns the SecondsFor10Blocks field value if set, zero value otherwise.
func (o *InfoModel) GetSecondsFor10Blocks() int32 {
	if o == nil || IsNil(o.SecondsFor10Blocks) {
		var ret int32
		return ret
	}
	return *o.SecondsFor10Blocks
}

// GetSecondsFor10BlocksOk returns a tuple with the SecondsFor10Blocks field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetSecondsFor10BlocksOk() (*int32, bool) {
	if o == nil || IsNil(o.SecondsFor10Blocks) {
		return nil, false
	}
	return o.SecondsFor10Blocks, true
}

// HasSecondsFor10Blocks returns a boolean if a field has been set.
func (o *InfoModel) HasSecondsFor10Blocks() bool {
	if o != nil && !IsNil(o.SecondsFor10Blocks) {
		return true
	}

	return false
}

// SetSecondsFor10Blocks gets a reference to the given int32 and assigns it to the SecondsFor10Blocks field.
func (o *InfoModel) SetSecondsFor10Blocks(v int32) {
	o.SecondsFor10Blocks = &v
}

// GetSecondsFor30Blocks returns the SecondsFor30Blocks field value if set, zero value otherwise.
func (o *InfoModel) GetSecondsFor30Blocks() int32 {
	if o == nil || IsNil(o.SecondsFor30Blocks) {
		var ret int32
		return ret
	}
	return *o.SecondsFor30Blocks
}

// GetSecondsFor30BlocksOk returns a tuple with the SecondsFor30Blocks field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetSecondsFor30BlocksOk() (*int32, bool) {
	if o == nil || IsNil(o.SecondsFor30Blocks) {
		return nil, false
	}
	return o.SecondsFor30Blocks, true
}

// HasSecondsFor30Blocks returns a boolean if a field has been set.
func (o *InfoModel) HasSecondsFor30Blocks() bool {
	if o != nil && !IsNil(o.SecondsFor30Blocks) {
		return true
	}

	return false
}

// SetSecondsFor30Blocks gets a reference to the given int32 and assigns it to the SecondsFor30Blocks field.
func (o *InfoModel) SetSecondsFor30Blocks(v int32) {
	o.SecondsFor30Blocks = &v
}

// GetTransactionsCntPerDay returns the TransactionsCntPerDay field value if set, zero value otherwise.
func (o *InfoModel) GetTransactionsCntPerDay() []int32 {
	if o == nil || IsNil(o.TransactionsCntPerDay) {
		var ret []int32
		return ret
	}
	return o.TransactionsCntPerDay
}

// GetTransactionsCntPerDayOk returns a tuple with the TransactionsCntPerDay field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetTransactionsCntPerDayOk() ([]int32, bool) {
	if o == nil || IsNil(o.TransactionsCntPerDay) {
		return nil, false
	}
	return o.TransactionsCntPerDay, true
}

// HasTransactionsCntPerDay returns a boolean if a field has been set.
func (o *InfoModel) HasTransactionsCntPerDay() bool {
	if o != nil && !IsNil(o.TransactionsCntPerDay) {
		return true
	}

	return false
}

// SetTransactionsCntPerDay gets a reference to the given []int32 and assigns it to the TransactionsCntPerDay field.
func (o *InfoModel) SetTransactionsCntPerDay(v []int32) {
	o.TransactionsCntPerDay = v
}

// GetTransactionsVolumePerDay returns the TransactionsVolumePerDay field value if set, zero value otherwise.
func (o *InfoModel) GetTransactionsVolumePerDay() []int32 {
	if o == nil || IsNil(o.TransactionsVolumePerDay) {
		var ret []int32
		return ret
	}
	return o.TransactionsVolumePerDay
}

// GetTransactionsVolumePerDayOk returns a tuple with the TransactionsVolumePerDay field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetTransactionsVolumePerDayOk() ([]int32, bool) {
	if o == nil || IsNil(o.TransactionsVolumePerDay) {
		return nil, false
	}
	return o.TransactionsVolumePerDay, true
}

// HasTransactionsVolumePerDay returns a boolean if a field has been set.
func (o *InfoModel) HasTransactionsVolumePerDay() bool {
	if o != nil && !IsNil(o.TransactionsVolumePerDay) {
		return true
	}

	return false
}

// SetTransactionsVolumePerDay gets a reference to the given []int32 and assigns it to the TransactionsVolumePerDay field.
func (o *InfoModel) SetTransactionsVolumePerDay(v []int32) {
	o.TransactionsVolumePerDay = v
}

// GetLastPosTimestamp returns the LastPosTimestamp field value if set, zero value otherwise.
func (o *InfoModel) GetLastPosTimestamp() int32 {
	if o == nil || IsNil(o.LastPosTimestamp) {
		var ret int32
		return ret
	}
	return *o.LastPosTimestamp
}

// GetLastPosTimestampOk returns a tuple with the LastPosTimestamp field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetLastPosTimestampOk() (*int32, bool) {
	if o == nil || IsNil(o.LastPosTimestamp) {
		return nil, false
	}
	return o.LastPosTimestamp, true
}

// HasLastPosTimestamp returns a boolean if a field has been set.
func (o *InfoModel) HasLastPosTimestamp() bool {
	if o != nil && !IsNil(o.LastPosTimestamp) {
		return true
	}

	return false
}

// SetLastPosTimestamp gets a reference to the given int32 and assigns it to the LastPosTimestamp field.
func (o *InfoModel) SetLastPosTimestamp(v int32) {
	o.LastPosTimestamp = &v
}

// GetLastPowTimestamp returns the LastPowTimestamp field value if set, zero value otherwise.
func (o *InfoModel) GetLastPowTimestamp() int32 {
	if o == nil || IsNil(o.LastPowTimestamp) {
		var ret int32
		return ret
	}
	return *o.LastPowTimestamp
}

// GetLastPowTimestampOk returns a tuple with the LastPowTimestamp field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetLastPowTimestampOk() (*int32, bool) {
	if o == nil || IsNil(o.LastPowTimestamp) {
		return nil, false
	}
	return o.LastPowTimestamp, true
}

// HasLastPowTimestamp returns a boolean if a field has been set.
func (o *InfoModel) HasLastPowTimestamp() bool {
	if o != nil && !IsNil(o.LastPowTimestamp) {
		return true
	}

	return false
}

// SetLastPowTimestamp gets a reference to the given int32 and assigns it to the LastPowTimestamp field.
func (o *InfoModel) SetLastPowTimestamp(v int32) {
	o.LastPowTimestamp = &v
}

// GetTotalCoins returns the TotalCoins field value if set, zero value otherwise.
func (o *InfoModel) GetTotalCoins() string {
	if o == nil || IsNil(o.TotalCoins) {
		var ret string
		return ret
	}
	return *o.TotalCoins
}

// GetTotalCoinsOk returns a tuple with the TotalCoins field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetTotalCoinsOk() (*string, bool) {
	if o == nil || IsNil(o.TotalCoins) {
		return nil, false
	}
	return o.TotalCoins, true
}

// HasTotalCoins returns a boolean if a field has been set.
func (o *InfoModel) HasTotalCoins() bool {
	if o != nil && !IsNil(o.TotalCoins) {
		return true
	}

	return false
}

// SetTotalCoins gets a reference to the given string and assigns it to the TotalCoins field.
func (o *InfoModel) SetTotalCoins(v string) {
	o.TotalCoins = &v
}

// GetLastBlockSize returns the LastBlockSize field value if set, zero value otherwise.
func (o *InfoModel) GetLastBlockSize() int32 {
	if o == nil || IsNil(o.LastBlockSize) {
		var ret int32
		return ret
	}
	return *o.LastBlockSize
}

// GetLastBlockSizeOk returns a tuple with the LastBlockSize field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetLastBlockSizeOk() (*int32, bool) {
	if o == nil || IsNil(o.LastBlockSize) {
		return nil, false
	}
	return o.LastBlockSize, true
}

// HasLastBlockSize returns a boolean if a field has been set.
func (o *InfoModel) HasLastBlockSize() bool {
	if o != nil && !IsNil(o.LastBlockSize) {
		return true
	}

	return false
}

// SetLastBlockSize gets a reference to the given int32 and assigns it to the LastBlockSize field.
func (o *InfoModel) SetLastBlockSize(v int32) {
	o.LastBlockSize = &v
}

// GetTxCountInLastBlock returns the TxCountInLastBlock field value if set, zero value otherwise.
func (o *InfoModel) GetTxCountInLastBlock() int32 {
	if o == nil || IsNil(o.TxCountInLastBlock) {
		var ret int32
		return ret
	}
	return *o.TxCountInLastBlock
}

// GetTxCountInLastBlockOk returns a tuple with the TxCountInLastBlock field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetTxCountInLastBlockOk() (*int32, bool) {
	if o == nil || IsNil(o.TxCountInLastBlock) {
		return nil, false
	}
	return o.TxCountInLastBlock, true
}

// HasTxCountInLastBlock returns a boolean if a field has been set.
func (o *InfoModel) HasTxCountInLastBlock() bool {
	if o != nil && !IsNil(o.TxCountInLastBlock) {
		return true
	}

	return false
}

// SetTxCountInLastBlock gets a reference to the given int32 and assigns it to the TxCountInLastBlock field.
func (o *InfoModel) SetTxCountInLastBlock(v int32) {
	o.TxCountInLastBlock = &v
}

// GetPosSequenceFactor returns the PosSequenceFactor field value if set, zero value otherwise.
func (o *InfoModel) GetPosSequenceFactor() float64 {
	if o == nil || IsNil(o.PosSequenceFactor) {
		var ret float64
		return ret
	}
	return *o.PosSequenceFactor
}

// GetPosSequenceFactorOk returns a tuple with the PosSequenceFactor field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetPosSequenceFactorOk() (*float64, bool) {
	if o == nil || IsNil(o.PosSequenceFactor) {
		return nil, false
	}
	return o.PosSequenceFactor, true
}

// HasPosSequenceFactor returns a boolean if a field has been set.
func (o *InfoModel) HasPosSequenceFactor() bool {
	if o != nil && !IsNil(o.PosSequenceFactor) {
		return true
	}

	return false
}

// SetPosSequenceFactor gets a reference to the given float64 and assigns it to the PosSequenceFactor field.
func (o *InfoModel) SetPosSequenceFactor(v float64) {
	o.PosSequenceFactor = &v
}

// GetPowSequenceFactor returns the PowSequenceFactor field value if set, zero value otherwise.
func (o *InfoModel) GetPowSequenceFactor() float64 {
	if o == nil || IsNil(o.PowSequenceFactor) {
		var ret float64
		return ret
	}
	return *o.PowSequenceFactor
}

// GetPowSequenceFactorOk returns a tuple with the PowSequenceFactor field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetPowSequenceFactorOk() (*float64, bool) {
	if o == nil || IsNil(o.PowSequenceFactor) {
		return nil, false
	}
	return o.PowSequenceFactor, true
}

// HasPowSequenceFactor returns a boolean if a field has been set.
func (o *InfoModel) HasPowSequenceFactor() bool {
	if o != nil && !IsNil(o.PowSequenceFactor) {
		return true
	}

	return false
}

// SetPowSequenceFactor gets a reference to the given float64 and assigns it to the PowSequenceFactor field.
func (o *InfoModel) SetPowSequenceFactor(v float64) {
	o.PowSequenceFactor = &v
}

// GetBlockReward returns the BlockReward field value if set, zero value otherwise.
func (o *InfoModel) GetBlockReward() int32 {
	if o == nil || IsNil(o.BlockReward) {
		var ret int32
		return ret
	}
	return *o.BlockReward
}

// GetBlockRewardOk returns a tuple with the BlockReward field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetBlockRewardOk() (*int32, bool) {
	if o == nil || IsNil(o.BlockReward) {
		return nil, false
	}
	return o.BlockReward, true
}

// HasBlockReward returns a boolean if a field has been set.
func (o *InfoModel) HasBlockReward() bool {
	if o != nil && !IsNil(o.BlockReward) {
		return true
	}

	return false
}

// SetBlockReward gets a reference to the given int32 and assigns it to the BlockReward field.
func (o *InfoModel) SetBlockReward(v int32) {
	o.BlockReward = &v
}

// GetLastBlockTotalReward returns the LastBlockTotalReward field value if set, zero value otherwise.
func (o *InfoModel) GetLastBlockTotalReward() int32 {
	if o == nil || IsNil(o.LastBlockTotalReward) {
		var ret int32
		return ret
	}
	return *o.LastBlockTotalReward
}

// GetLastBlockTotalRewardOk returns a tuple with the LastBlockTotalReward field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetLastBlockTotalRewardOk() (*int32, bool) {
	if o == nil || IsNil(o.LastBlockTotalReward) {
		return nil, false
	}
	return o.LastBlockTotalReward, true
}

// HasLastBlockTotalReward returns a boolean if a field has been set.
func (o *InfoModel) HasLastBlockTotalReward() bool {
	if o != nil && !IsNil(o.LastBlockTotalReward) {
		return true
	}

	return false
}

// SetLastBlockTotalReward gets a reference to the given int32 and assigns it to the LastBlockTotalReward field.
func (o *InfoModel) SetLastBlockTotalReward(v int32) {
	o.LastBlockTotalReward = &v
}

// GetPosDiffTotalCoinsRate returns the PosDiffTotalCoinsRate field value if set, zero value otherwise.
func (o *InfoModel) GetPosDiffTotalCoinsRate() int32 {
	if o == nil || IsNil(o.PosDiffTotalCoinsRate) {
		var ret int32
		return ret
	}
	return *o.PosDiffTotalCoinsRate
}

// GetPosDiffTotalCoinsRateOk returns a tuple with the PosDiffTotalCoinsRate field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetPosDiffTotalCoinsRateOk() (*int32, bool) {
	if o == nil || IsNil(o.PosDiffTotalCoinsRate) {
		return nil, false
	}
	return o.PosDiffTotalCoinsRate, true
}

// HasPosDiffTotalCoinsRate returns a boolean if a field has been set.
func (o *InfoModel) HasPosDiffTotalCoinsRate() bool {
	if o != nil && !IsNil(o.PosDiffTotalCoinsRate) {
		return true
	}

	return false
}

// SetPosDiffTotalCoinsRate gets a reference to the given int32 and assigns it to the PosDiffTotalCoinsRate field.
func (o *InfoModel) SetPosDiffTotalCoinsRate(v int32) {
	o.PosDiffTotalCoinsRate = &v
}

// GetLastBlockTimestamp returns the LastBlockTimestamp field value if set, zero value otherwise.
func (o *InfoModel) GetLastBlockTimestamp() int32 {
	if o == nil || IsNil(o.LastBlockTimestamp) {
		var ret int32
		return ret
	}
	return *o.LastBlockTimestamp
}

// GetLastBlockTimestampOk returns a tuple with the LastBlockTimestamp field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetLastBlockTimestampOk() (*int32, bool) {
	if o == nil || IsNil(o.LastBlockTimestamp) {
		return nil, false
	}
	return o.LastBlockTimestamp, true
}

// HasLastBlockTimestamp returns a boolean if a field has been set.
func (o *InfoModel) HasLastBlockTimestamp() bool {
	if o != nil && !IsNil(o.LastBlockTimestamp) {
		return true
	}

	return false
}

// SetLastBlockTimestamp gets a reference to the given int32 and assigns it to the LastBlockTimestamp field.
func (o *InfoModel) SetLastBlockTimestamp(v int32) {
	o.LastBlockTimestamp = &v
}

// GetLastBlockHash returns the LastBlockHash field value if set, zero value otherwise.
func (o *InfoModel) GetLastBlockHash() string {
	if o == nil || IsNil(o.LastBlockHash) {
		var ret string
		return ret
	}
	return *o.LastBlockHash
}

// GetLastBlockHashOk returns a tuple with the LastBlockHash field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetLastBlockHashOk() (*string, bool) {
	if o == nil || IsNil(o.LastBlockHash) {
		return nil, false
	}
	return o.LastBlockHash, true
}

// HasLastBlockHash returns a boolean if a field has been set.
func (o *InfoModel) HasLastBlockHash() bool {
	if o != nil && !IsNil(o.LastBlockHash) {
		return true
	}

	return false
}

// SetLastBlockHash gets a reference to the given string and assigns it to the LastBlockHash field.
func (o *InfoModel) SetLastBlockHash(v string) {
	o.LastBlockHash = &v
}

// GetPosBlockTsShiftVsActual returns the PosBlockTsShiftVsActual field value if set, zero value otherwise.
func (o *InfoModel) GetPosBlockTsShiftVsActual() int64 {
	if o == nil || IsNil(o.PosBlockTsShiftVsActual) {
		var ret int64
		return ret
	}
	return *o.PosBlockTsShiftVsActual
}

// GetPosBlockTsShiftVsActualOk returns a tuple with the PosBlockTsShiftVsActual field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetPosBlockTsShiftVsActualOk() (*int64, bool) {
	if o == nil || IsNil(o.PosBlockTsShiftVsActual) {
		return nil, false
	}
	return o.PosBlockTsShiftVsActual, true
}

// HasPosBlockTsShiftVsActual returns a boolean if a field has been set.
func (o *InfoModel) HasPosBlockTsShiftVsActual() bool {
	if o != nil && !IsNil(o.PosBlockTsShiftVsActual) {
		return true
	}

	return false
}

// SetPosBlockTsShiftVsActual gets a reference to the given int64 and assigns it to the PosBlockTsShiftVsActual field.
func (o *InfoModel) SetPosBlockTsShiftVsActual(v int64) {
	o.PosBlockTsShiftVsActual = &v
}

// GetOutsStat returns the OutsStat field value if set, zero value otherwise.
func (o *InfoModel) GetOutsStat() map[string]int32 {
	if o == nil || IsNil(o.OutsStat) {
		var ret map[string]int32
		return ret
	}
	return *o.OutsStat
}

// GetOutsStatOk returns a tuple with the OutsStat field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetOutsStatOk() (*map[string]int32, bool) {
	if o == nil || IsNil(o.OutsStat) {
		return nil, false
	}
	return o.OutsStat, true
}

// HasOutsStat returns a boolean if a field has been set.
func (o *InfoModel) HasOutsStat() bool {
	if o != nil && !IsNil(o.OutsStat) {
		return true
	}

	return false
}

// SetOutsStat gets a reference to the given map[string]int32 and assigns it to the OutsStat field.
func (o *InfoModel) SetOutsStat(v map[string]int32) {
	o.OutsStat = &v
}

// GetPerformanceData returns the PerformanceData field value if set, zero value otherwise.
func (o *InfoModel) GetPerformanceData() PerformanceModel {
	if o == nil || IsNil(o.PerformanceData) {
		var ret PerformanceModel
		return ret
	}
	return *o.PerformanceData
}

// GetPerformanceDataOk returns a tuple with the PerformanceData field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetPerformanceDataOk() (*PerformanceModel, bool) {
	if o == nil || IsNil(o.PerformanceData) {
		return nil, false
	}
	return o.PerformanceData, true
}

// HasPerformanceData returns a boolean if a field has been set.
func (o *InfoModel) HasPerformanceData() bool {
	if o != nil && !IsNil(o.PerformanceData) {
		return true
	}

	return false
}

// SetPerformanceData gets a reference to the given PerformanceModel and assigns it to the PerformanceData field.
func (o *InfoModel) SetPerformanceData(v PerformanceModel) {
	o.PerformanceData = &v
}

// GetOffersCount returns the OffersCount field value if set, zero value otherwise.
func (o *InfoModel) GetOffersCount() int32 {
	if o == nil || IsNil(o.OffersCount) {
		var ret int32
		return ret
	}
	return *o.OffersCount
}

// GetOffersCountOk returns a tuple with the OffersCount field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetOffersCountOk() (*int32, bool) {
	if o == nil || IsNil(o.OffersCount) {
		return nil, false
	}
	return o.OffersCount, true
}

// HasOffersCount returns a boolean if a field has been set.
func (o *InfoModel) HasOffersCount() bool {
	if o != nil && !IsNil(o.OffersCount) {
		return true
	}

	return false
}

// SetOffersCount gets a reference to the given int32 and assigns it to the OffersCount field.
func (o *InfoModel) SetOffersCount(v int32) {
	o.OffersCount = &v
}

// GetExpirationMedianTimestamp returns the ExpirationMedianTimestamp field value if set, zero value otherwise.
func (o *InfoModel) GetExpirationMedianTimestamp() int32 {
	if o == nil || IsNil(o.ExpirationMedianTimestamp) {
		var ret int32
		return ret
	}
	return *o.ExpirationMedianTimestamp
}

// GetExpirationMedianTimestampOk returns a tuple with the ExpirationMedianTimestamp field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *InfoModel) GetExpirationMedianTimestampOk() (*int32, bool) {
	if o == nil || IsNil(o.ExpirationMedianTimestamp) {
		return nil, false
	}
	return o.ExpirationMedianTimestamp, true
}

// HasExpirationMedianTimestamp returns a boolean if a field has been set.
func (o *InfoModel) HasExpirationMedianTimestamp() bool {
	if o != nil && !IsNil(o.ExpirationMedianTimestamp) {
		return true
	}

	return false
}

// SetExpirationMedianTimestamp gets a reference to the given int32 and assigns it to the ExpirationMedianTimestamp field.
func (o *InfoModel) SetExpirationMedianTimestamp(v int32) {
	o.ExpirationMedianTimestamp = &v
}

func (o InfoModel) MarshalJSON() ([]byte, error) {
	toSerialize,err := o.ToMap()
	if err != nil {
		return []byte{}, err
	}
	return json.Marshal(toSerialize)
}

func (o InfoModel) ToMap() (map[string]interface{}, error) {
	toSerialize := map[string]interface{}{}
	if !IsNil(o.Height) {
		toSerialize["height"] = o.Height
	}
	if !IsNil(o.TxCount) {
		toSerialize["tx_count"] = o.TxCount
	}
	if !IsNil(o.TxPoolSize) {
		toSerialize["tx_pool_size"] = o.TxPoolSize
	}
	if !IsNil(o.AltBlocksCount) {
		toSerialize["alt_blocks_count"] = o.AltBlocksCount
	}
	if !IsNil(o.OutgoingConnectionsCount) {
		toSerialize["outgoing_connections_count"] = o.OutgoingConnectionsCount
	}
	if !IsNil(o.IncomingConnectionsCount) {
		toSerialize["incoming_connections_count"] = o.IncomingConnectionsCount
	}
	if !IsNil(o.SynchronizedConnectionsCount) {
		toSerialize["synchronized_connections_count"] = o.SynchronizedConnectionsCount
	}
	if !IsNil(o.WhitePeerlistSize) {
		toSerialize["white_peerlist_size"] = o.WhitePeerlistSize
	}
	if !IsNil(o.GreyPeerlistSize) {
		toSerialize["grey_peerlist_size"] = o.GreyPeerlistSize
	}
	if !IsNil(o.CurrentBlocksMedian) {
		toSerialize["current_blocks_median"] = o.CurrentBlocksMedian
	}
	if !IsNil(o.AliasCount) {
		toSerialize["alias_count"] = o.AliasCount
	}
	if !IsNil(o.CurrentMaxAllowedBlockSize) {
		toSerialize["current_max_allowed_block_size"] = o.CurrentMaxAllowedBlockSize
	}
	if !IsNil(o.DaemonNetworkState) {
		toSerialize["daemon_network_state"] = o.DaemonNetworkState
	}
	if !IsNil(o.SynchronizationStartHeight) {
		toSerialize["synchronization_start_height"] = o.SynchronizationStartHeight
	}
	if !IsNil(o.MaxNetSeenHeight) {
		toSerialize["max_net_seen_height"] = o.MaxNetSeenHeight
	}
	if !IsNil(o.Mi) {
		toSerialize["mi"] = o.Mi
	}
	if !IsNil(o.PosAllowed) {
		toSerialize["pos_allowed"] = o.PosAllowed
	}
	if !IsNil(o.PosDifficulty) {
		toSerialize["pos_difficulty"] = o.PosDifficulty
	}
	if !IsNil(o.PowDifficulty) {
		toSerialize["pow_difficulty"] = o.PowDifficulty
	}
	if !IsNil(o.DefaultFee) {
		toSerialize["default_fee"] = o.DefaultFee
	}
	if !IsNil(o.MinimumFee) {
		toSerialize["minimum_fee"] = o.MinimumFee
	}
	if !IsNil(o.IsHardforkActive) {
		toSerialize["is_hardfork_active"] = o.IsHardforkActive
	}
	if !IsNil(o.NetTimeDeltaMedian) {
		toSerialize["net_time_delta_median"] = o.NetTimeDeltaMedian
	}
	if !IsNil(o.CurrentNetworkHashrate50) {
		toSerialize["current_network_hashrate_50"] = o.CurrentNetworkHashrate50
	}
	if !IsNil(o.CurrentNetworkHashrate350) {
		toSerialize["current_network_hashrate_350"] = o.CurrentNetworkHashrate350
	}
	if !IsNil(o.SecondsFor10Blocks) {
		toSerialize["seconds_for_10_blocks"] = o.SecondsFor10Blocks
	}
	if !IsNil(o.SecondsFor30Blocks) {
		toSerialize["seconds_for_30_blocks"] = o.SecondsFor30Blocks
	}
	if !IsNil(o.TransactionsCntPerDay) {
		toSerialize["transactions_cnt_per_day"] = o.TransactionsCntPerDay
	}
	if !IsNil(o.TransactionsVolumePerDay) {
		toSerialize["transactions_volume_per_day"] = o.TransactionsVolumePerDay
	}
	if !IsNil(o.LastPosTimestamp) {
		toSerialize["last_pos_timestamp"] = o.LastPosTimestamp
	}
	if !IsNil(o.LastPowTimestamp) {
		toSerialize["last_pow_timestamp"] = o.LastPowTimestamp
	}
	if !IsNil(o.TotalCoins) {
		toSerialize["total_coins"] = o.TotalCoins
	}
	if !IsNil(o.LastBlockSize) {
		toSerialize["last_block_size"] = o.LastBlockSize
	}
	if !IsNil(o.TxCountInLastBlock) {
		toSerialize["tx_count_in_last_block"] = o.TxCountInLastBlock
	}
	if !IsNil(o.PosSequenceFactor) {
		toSerialize["pos_sequence_factor"] = o.PosSequenceFactor
	}
	if !IsNil(o.PowSequenceFactor) {
		toSerialize["pow_sequence_factor"] = o.PowSequenceFactor
	}
	if !IsNil(o.BlockReward) {
		toSerialize["block_reward"] = o.BlockReward
	}
	if !IsNil(o.LastBlockTotalReward) {
		toSerialize["last_block_total_reward"] = o.LastBlockTotalReward
	}
	if !IsNil(o.PosDiffTotalCoinsRate) {
		toSerialize["pos_diff_total_coins_rate"] = o.PosDiffTotalCoinsRate
	}
	if !IsNil(o.LastBlockTimestamp) {
		toSerialize["last_block_timestamp"] = o.LastBlockTimestamp
	}
	if !IsNil(o.LastBlockHash) {
		toSerialize["last_block_hash"] = o.LastBlockHash
	}
	if !IsNil(o.PosBlockTsShiftVsActual) {
		toSerialize["pos_block_ts_shift_vs_actual"] = o.PosBlockTsShiftVsActual
	}
	if !IsNil(o.OutsStat) {
		toSerialize["outs_stat"] = o.OutsStat
	}
	if !IsNil(o.PerformanceData) {
		toSerialize["performance_data"] = o.PerformanceData
	}
	if !IsNil(o.OffersCount) {
		toSerialize["offers_count"] = o.OffersCount
	}
	if !IsNil(o.ExpirationMedianTimestamp) {
		toSerialize["expiration_median_timestamp"] = o.ExpirationMedianTimestamp
	}

	for key, value := range o.AdditionalProperties {
		toSerialize[key] = value
	}

	return toSerialize, nil
}

func (o *InfoModel) UnmarshalJSON(data []byte) (err error) {
	varInfoModel := _InfoModel{}

	err = json.Unmarshal(data, &varInfoModel)

	if err != nil {
		return err
	}

	*o = InfoModel(varInfoModel)

	additionalProperties := make(map[string]interface{})

	if err = json.Unmarshal(data, &additionalProperties); err == nil {
		delete(additionalProperties, "height")
		delete(additionalProperties, "tx_count")
		delete(additionalProperties, "tx_pool_size")
		delete(additionalProperties, "alt_blocks_count")
		delete(additionalProperties, "outgoing_connections_count")
		delete(additionalProperties, "incoming_connections_count")
		delete(additionalProperties, "synchronized_connections_count")
		delete(additionalProperties, "white_peerlist_size")
		delete(additionalProperties, "grey_peerlist_size")
		delete(additionalProperties, "current_blocks_median")
		delete(additionalProperties, "alias_count")
		delete(additionalProperties, "current_max_allowed_block_size")
		delete(additionalProperties, "daemon_network_state")
		delete(additionalProperties, "synchronization_start_height")
		delete(additionalProperties, "max_net_seen_height")
		delete(additionalProperties, "mi")
		delete(additionalProperties, "pos_allowed")
		delete(additionalProperties, "pos_difficulty")
		delete(additionalProperties, "pow_difficulty")
		delete(additionalProperties, "default_fee")
		delete(additionalProperties, "minimum_fee")
		delete(additionalProperties, "is_hardfork_active")
		delete(additionalProperties, "net_time_delta_median")
		delete(additionalProperties, "current_network_hashrate_50")
		delete(additionalProperties, "current_network_hashrate_350")
		delete(additionalProperties, "seconds_for_10_blocks")
		delete(additionalProperties, "seconds_for_30_blocks")
		delete(additionalProperties, "transactions_cnt_per_day")
		delete(additionalProperties, "transactions_volume_per_day")
		delete(additionalProperties, "last_pos_timestamp")
		delete(additionalProperties, "last_pow_timestamp")
		delete(additionalProperties, "total_coins")
		delete(additionalProperties, "last_block_size")
		delete(additionalProperties, "tx_count_in_last_block")
		delete(additionalProperties, "pos_sequence_factor")
		delete(additionalProperties, "pow_sequence_factor")
		delete(additionalProperties, "block_reward")
		delete(additionalProperties, "last_block_total_reward")
		delete(additionalProperties, "pos_diff_total_coins_rate")
		delete(additionalProperties, "last_block_timestamp")
		delete(additionalProperties, "last_block_hash")
		delete(additionalProperties, "pos_block_ts_shift_vs_actual")
		delete(additionalProperties, "outs_stat")
		delete(additionalProperties, "performance_data")
		delete(additionalProperties, "offers_count")
		delete(additionalProperties, "expiration_median_timestamp")
		o.AdditionalProperties = additionalProperties
	}

	return err
}

type NullableInfoModel struct {
	value *InfoModel
	isSet bool
}

func (v NullableInfoModel) Get() *InfoModel {
	return v.value
}

func (v *NullableInfoModel) Set(val *InfoModel) {
	v.value = val
	v.isSet = true
}

func (v NullableInfoModel) IsSet() bool {
	return v.isSet
}

func (v *NullableInfoModel) Unset() {
	v.value = nil
	v.isSet = false
}

func NewNullableInfoModel(val *InfoModel) *NullableInfoModel {
	return &NullableInfoModel{value: val, isSet: true}
}

func (v NullableInfoModel) MarshalJSON() ([]byte, error) {
	return json.Marshal(v.value)
}

func (v *NullableInfoModel) UnmarshalJSON(src []byte) error {
	v.isSet = true
	return json.Unmarshal(src, &v.value)
}


