func (a *Client) GetStakingPool(params *GetStakingPoolParams) (*GetStakingPoolOK, error) {
	if params == nil {
		params = NewGetStakingPoolParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingPool",
		Method:             "GET",
		PathPattern:        "/staking/pool",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingPoolReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetStakingPoolOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetStakingPool: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
/*
GetStakingPool gets the current state of the staking pool
package staking
import (
	"fmt"
	"github.com/go-openapi/runtime"
	"github.com/go-openapi/strfmt"
)
func New(transport runtime.ClientTransport, formats strfmt.Registry) ClientService {
	return &Client{transport: transport, formats: formats}
}
type Client struct {
	transport runtime.ClientTransport
	formats   strfmt.Registry
}
type ClientService interface {
	GetStakingDelegatorsDelegatorAddrDelegations(params *GetStakingDelegatorsDelegatorAddrDelegationsParams) (*GetStakingDelegatorsDelegatorAddrDelegationsOK, error)
	GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddr(params *GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddrParams) (*GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddrOK, error)
	GetStakingDelegatorsDelegatorAddrTxs(params *GetStakingDelegatorsDelegatorAddrTxsParams) (*GetStakingDelegatorsDelegatorAddrTxsOK, *GetStakingDelegatorsDelegatorAddrTxsNoContent, error)
	GetStakingDelegatorsDelegatorAddrUnbondingDelegations(params *GetStakingDelegatorsDelegatorAddrUnbondingDelegationsParams) (*GetStakingDelegatorsDelegatorAddrUnbondingDelegationsOK, error)
	GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddr(params *GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddrParams) (*GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddrOK, error)
	GetStakingDelegatorsDelegatorAddrValidators(params *GetStakingDelegatorsDelegatorAddrValidatorsParams) (*GetStakingDelegatorsDelegatorAddrValidatorsOK, error)
	GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddr(params *GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddrParams) (*GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddrOK, error)
	GetStakingParameters(params *GetStakingParametersParams) (*GetStakingParametersOK, error)
	GetStakingPool(params *GetStakingPoolParams) (*GetStakingPoolOK, error)
	GetStakingRedelegations(params *GetStakingRedelegationsParams) (*GetStakingRedelegationsOK, error)
	GetStakingValidators(params *GetStakingValidatorsParams) (*GetStakingValidatorsOK, error)
	GetStakingValidatorsValidatorAddr(params *GetStakingValidatorsValidatorAddrParams) (*GetStakingValidatorsValidatorAddrOK, error)
	GetStakingValidatorsValidatorAddrDelegations(params *GetStakingValidatorsValidatorAddrDelegationsParams) (*GetStakingValidatorsValidatorAddrDelegationsOK, error)
	GetStakingValidatorsValidatorAddrUnbondingDelegations(params *GetStakingValidatorsValidatorAddrUnbondingDelegationsParams) (*GetStakingValidatorsValidatorAddrUnbondingDelegationsOK, error)
	PostStakingDelegatorsDelegatorAddrDelegations(params *PostStakingDelegatorsDelegatorAddrDelegationsParams) (*PostStakingDelegatorsDelegatorAddrDelegationsOK, error)
	PostStakingDelegatorsDelegatorAddrUnbondingDelegations(params *PostStakingDelegatorsDelegatorAddrUnbondingDelegationsParams) (*PostStakingDelegatorsDelegatorAddrUnbondingDelegationsOK, error)
	SetTransport(transport runtime.ClientTransport)
}
func (a *Client) GetStakingDelegatorsDelegatorAddrDelegations(params *GetStakingDelegatorsDelegatorAddrDelegationsParams) (*GetStakingDelegatorsDelegatorAddrDelegationsOK, error) {
	if params == nil {
		params = NewGetStakingDelegatorsDelegatorAddrDelegationsParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingDelegatorsDelegatorAddrDelegations",
		Method:             "GET",
		PathPattern:        "/staking/delegators/{delegatorAddr}/delegations",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingDelegatorsDelegatorAddrDelegationsReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetStakingDelegatorsDelegatorAddrDelegationsOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetStakingDelegatorsDelegatorAddrDelegations: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddr(params *GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddrParams) (*GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddrOK, error) {
	if params == nil {
		params = NewGetStakingDelegatorsDelegatorAddrDelegationsValidatorAddrParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddr",
		Method:             "GET",
		PathPattern:        "/staking/delegators/{delegatorAddr}/delegations/{validatorAddr}",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddrReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddrOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetStakingDelegatorsDelegatorAddrDelegationsValidatorAddr: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetStakingDelegatorsDelegatorAddrTxs(params *GetStakingDelegatorsDelegatorAddrTxsParams) (*GetStakingDelegatorsDelegatorAddrTxsOK, *GetStakingDelegatorsDelegatorAddrTxsNoContent, error) {
	if params == nil {
		params = NewGetStakingDelegatorsDelegatorAddrTxsParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingDelegatorsDelegatorAddrTxs",
		Method:             "GET",
		PathPattern:        "/staking/delegators/{delegatorAddr}/txs",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingDelegatorsDelegatorAddrTxsReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, nil, err
	}
	switch value := result.(type) {
	case *GetStakingDelegatorsDelegatorAddrTxsOK:
		return value, nil, nil
	case *GetStakingDelegatorsDelegatorAddrTxsNoContent:
		return nil, value, nil
	}
	msg := fmt.Sprintf("unexpected success response for staking: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetStakingDelegatorsDelegatorAddrUnbondingDelegations(params *GetStakingDelegatorsDelegatorAddrUnbondingDelegationsParams) (*GetStakingDelegatorsDelegatorAddrUnbondingDelegationsOK, error) {
	if params == nil {
		params = NewGetStakingDelegatorsDelegatorAddrUnbondingDelegationsParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingDelegatorsDelegatorAddrUnbondingDelegations",
		Method:             "GET",
		PathPattern:        "/staking/delegators/{delegatorAddr}/unbonding_delegations",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingDelegatorsDelegatorAddrUnbondingDelegationsReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetStakingDelegatorsDelegatorAddrUnbondingDelegationsOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetStakingDelegatorsDelegatorAddrUnbondingDelegations: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddr(params *GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddrParams) (*GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddrOK, error) {
	if params == nil {
		params = NewGetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddrParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddr",
		Method:             "GET",
		PathPattern:        "/staking/delegators/{delegatorAddr}/unbonding_delegations/{validatorAddr}",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddrReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddrOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetStakingDelegatorsDelegatorAddrUnbondingDelegationsValidatorAddr: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetStakingDelegatorsDelegatorAddrValidators(params *GetStakingDelegatorsDelegatorAddrValidatorsParams) (*GetStakingDelegatorsDelegatorAddrValidatorsOK, error) {
	if params == nil {
		params = NewGetStakingDelegatorsDelegatorAddrValidatorsParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingDelegatorsDelegatorAddrValidators",
		Method:             "GET",
		PathPattern:        "/staking/delegators/{delegatorAddr}/validators",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingDelegatorsDelegatorAddrValidatorsReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetStakingDelegatorsDelegatorAddrValidatorsOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetStakingDelegatorsDelegatorAddrValidators: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddr(params *GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddrParams) (*GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddrOK, error) {
	if params == nil {
		params = NewGetStakingDelegatorsDelegatorAddrValidatorsValidatorAddrParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddr",
		Method:             "GET",
		PathPattern:        "/staking/delegators/{delegatorAddr}/validators/{validatorAddr}",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddrReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddrOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetStakingDelegatorsDelegatorAddrValidatorsValidatorAddr: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}
func (a *Client) GetStakingParameters(params *GetStakingParametersParams) (*GetStakingParametersOK, error) {
	if params == nil {
		params = NewGetStakingParametersParams()
	}
	result, err := a.transport.Submit(&runtime.ClientOperation{
		ID:                 "GetStakingParameters",
		Method:             "GET",
		PathPattern:        "/staking/parameters",
		ProducesMediaTypes: []string{"application/json"},
		ConsumesMediaTypes: []string{"application/json"},
		Schemes:            []string{"https"},
		Params:             params,
		Reader:             &GetStakingParametersReader{formats: a.formats},
		Context:            params.Context,
		Client:             params.HTTPClient,
	})
	if err != nil {
		return nil, err
	}
	success, ok := result.(*GetStakingParametersOK)
	if ok {
		return success, nil
	}
	msg := fmt.Sprintf("unexpected success response for GetStakingParameters: API contract not enforced by server. Client expected to get an error, but got: %T", result)
	panic(msg)
}