modules

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2024 License: LGPL-3.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrSubscriptionTransport = errors.New("subscriptions are not available on this transport")
	ErrStartBlockHashEmpty   = errors.New("the start block hash cannot be an empty value")
)
View Source
var (
	// UnsafeMethods is a list of all unsafe rpc methods of https://github.com/w3f/PSPs/blob/master/PSPs/drafts/psp-6.md
	UnsafeMethods = []string{
		"system_addReservedPeer",
		"system_removeReservedPeer",
		"author_submitExtrinsic",
		"author_removeExtrinsic",
		"author_insertKey",
		"author_rotateKeys",
		"state_getPairs",
		"state_getKeysPaged",
		"state_queryStorage",
		"state_trie",
	}

	// AliasesMethods is a map that links the original methods to their aliases
	AliasesMethods = map[string]string{
		"chain_getHead":          "chain_getBlockHash",
		"account_nextIndex":      "system_accountNextIndex",
		"chain_getFinalisedHead": "chain_getFinalizedHead",
	}
)
View Source
var ErrProvidedKeyDoesNotMatch = errors.New("generated public key does not equal provided public key")

Functions

func IsUnsafe added in v0.7.0

func IsUnsafe(name string) bool

IsUnsafe returns true if the `name` has the suffix

func NewMockAnyAPI added in v0.8.0

func NewMockAnyAPI(ctrl *gomock.Controller) *modulesmocks.MockCoreAPI

NewMockAnyAPI creates and return an rpc CoreAPI interface mock

func NewMockAnyBlockAPI added in v0.8.0

func NewMockAnyBlockAPI(ctrl *gomock.Controller) *modulesmocks.MockBlockAPI

NewMockAnyBlockAPI creates and return an rpc BlockAPI interface mock

func NewMockAnyStorageAPI added in v0.8.0

func NewMockAnyStorageAPI(ctrl *gomock.Controller) *modulesmocks.MockStorageAPI

NewMockAnyStorageAPI creates and return an rpc StorageAPI interface mock

Types

type AuthorModule

type AuthorModule struct {
	// contains filtered or unexported fields
}

AuthorModule holds a pointer to the API

func NewAuthorModule

func NewAuthorModule(logger *log.Logger, coreAPI CoreAPI, txStateAPI TransactionStateAPI) *AuthorModule

NewAuthorModule creates a new Author module.

func (*AuthorModule) HasKey

func (am *AuthorModule) HasKey(r *http.Request, req *[]string, res *bool) error

HasKey Checks if the keystore has private keys for the given public key and key type.

func (*AuthorModule) HasSessionKeys added in v0.7.0

func (am *AuthorModule) HasSessionKeys(r *http.Request, req *HasSessionKeyRequest, res *HasSessionKeyResponse) error

HasSessionKeys checks if the keystore has private keys for the given session public keys.

func (*AuthorModule) InsertKey

func (am *AuthorModule) InsertKey(r *http.Request, req *KeyInsertRequest, _ *KeyInsertResponse) error

InsertKey inserts a key into the keystore

func (*AuthorModule) PendingExtrinsics

func (am *AuthorModule) PendingExtrinsics(r *http.Request, req *EmptyRequest, res *PendingExtrinsicsResponse) error

PendingExtrinsics Returns all pending extrinsics

func (*AuthorModule) RemoveExtrinsic

RemoveExtrinsic Remove given extrinsic from the pool and temporarily ban it to prevent reimporting

func (*AuthorModule) RotateKeys

func (am *AuthorModule) RotateKeys(r *http.Request, req *EmptyRequest, res *KeyRotateResponse) error

RotateKeys Generate new session keys and returns the corresponding public keys

func (*AuthorModule) SubmitAndWatchExtrinsic

func (am *AuthorModule) SubmitAndWatchExtrinsic(r *http.Request, req *Extrinsic, res *ExtrinsicStatus) error

SubmitAndWatchExtrinsic Submit and subscribe to watch an extrinsic until unsubscribed

func (*AuthorModule) SubmitExtrinsic

func (am *AuthorModule) SubmitExtrinsic(r *http.Request, req *Extrinsic, res *ExtrinsicHashResponse) error

SubmitExtrinsic Submit a fully formatted extrinsic for block inclusion

type BlockAPI

type BlockAPI interface {
	GetHeader(hash common.Hash) (*types.Header, error)
	BestBlockHash() common.Hash
	GetBlockByHash(hash common.Hash) (*types.Block, error)
	GetHashByNumber(blockNumber uint) (common.Hash, error)
	GetFinalisedHash(uint64, uint64) (common.Hash, error)
	GetHighestFinalisedHash() (common.Hash, error)
	HasJustification(hash common.Hash) (bool, error)
	GetJustification(hash common.Hash) ([]byte, error)
	GetImportedBlockNotifierChannel() chan *types.Block
	FreeImportedBlockNotifierChannel(ch chan *types.Block)
	GetFinalisedNotifierChannel() chan *types.FinalisationInfo
	FreeFinalisedNotifierChannel(ch chan *types.FinalisationInfo)
	RangeInMemory(start, end common.Hash) ([]common.Hash, error)
	RegisterRuntimeUpdatedChannel(ch chan<- runtime.Version) (uint32, error)
	UnregisterRuntimeUpdatedChannel(id uint32) bool
	GetRuntime(blockHash common.Hash) (instance runtime.Instance, err error)
}

BlockAPI is the interface for the block state

type BlockFinalityAPI added in v0.7.0

type BlockFinalityAPI interface {
	GetSetID() uint64
	GetRound() uint64
	GetVoters() grandpa.Voters
	PreVotes() []ed25519.PublicKeyBytes
	PreCommits() []ed25519.PublicKeyBytes
}

BlockFinalityAPI is the interface for handling block finalisation methods

type BlockProducerAPI added in v0.2.0

type BlockProducerAPI interface {
	Pause() error
	Resume() error
	EpochLength() uint64
	SlotDuration() uint64
}

BlockProducerAPI is the interface for BlockProducer methods

type ChainBlock

type ChainBlock struct {
	Header ChainBlockHeaderResponse `json:"header"`
	Body   []string                 `json:"extrinsics"`
}

ChainBlock struct to hold json instance of a block

type ChainBlockHeaderDigest

type ChainBlockHeaderDigest struct {
	Logs []string `json:"logs"`
}

ChainBlockHeaderDigest struct to hold digest logs

type ChainBlockHeaderResponse

type ChainBlockHeaderResponse struct {
	ParentHash     string                 `json:"parentHash"`
	Number         string                 `json:"number"`
	StateRoot      string                 `json:"stateRoot"`
	ExtrinsicsRoot string                 `json:"extrinsicsRoot"`
	Digest         ChainBlockHeaderDigest `json:"digest"`
}

ChainBlockHeaderResponse struct

func HeaderToJSON

func HeaderToJSON(header types.Header) (ChainBlockHeaderResponse, error)

HeaderToJSON converts types.Header to ChainBlockHeaderResponse

type ChainBlockNumberRequest

type ChainBlockNumberRequest struct {
	Block interface{}
}

ChainBlockNumberRequest interface can accept string, float64 or []

type ChainBlockResponse

type ChainBlockResponse struct {
	Block ChainBlock `json:"block"`
}

ChainBlockResponse struct

type ChainFinalizedHeadRequest added in v0.3.0

type ChainFinalizedHeadRequest struct {
	Round uint64
	SetID uint64
}

ChainFinalizedHeadRequest ...

type ChainHashRequest

type ChainHashRequest struct {
	Bhash *common.Hash
}

ChainHashRequest Hash as a string

type ChainHashResponse

type ChainHashResponse interface{}

ChainHashResponse interface to handle response

type ChainModule

type ChainModule struct {
	// contains filtered or unexported fields
}

ChainModule is an RPC module providing access to storage API points.

func NewChainModule

func NewChainModule(api BlockAPI) *ChainModule

NewChainModule creates a new State module.

func (*ChainModule) GetBlock

func (cm *ChainModule) GetBlock(r *http.Request, req *ChainHashRequest, res *ChainBlockResponse) error

GetBlock Get header and body of a relay chain block. If no block hash is provided, the latest block body will be returned.

func (*ChainModule) GetBlockHash

func (cm *ChainModule) GetBlockHash(r *http.Request, req *ChainBlockNumberRequest, res *ChainHashResponse) error

GetBlockHash Get hash of the 'n-th' block in the canon chain. If no parameters are provided, the latest block hash gets returned.

func (*ChainModule) GetFinalizedHead

func (cm *ChainModule) GetFinalizedHead(r *http.Request, req *EmptyRequest, res *ChainHashResponse) error

GetFinalizedHead returns the most recently finalised block hash

func (*ChainModule) GetFinalizedHeadByRound added in v0.2.0

func (cm *ChainModule) GetFinalizedHeadByRound(
	r *http.Request, req *ChainFinalizedHeadRequest, res *ChainHashResponse) error

GetFinalizedHeadByRound returns the hash of the block finalised at the given round and setID

func (*ChainModule) GetHeader

GetHeader Get header of a relay chain block. If no block hash is provided, the latest block header will be returned.

func (*ChainModule) SubscribeFinalizedHeads

func (cm *ChainModule) SubscribeFinalizedHeads(_ *http.Request, _ *EmptyRequest, _ *ChainBlockHeaderResponse) error

SubscribeFinalizedHeads handled by websocket handler, but this func should remain here so it's added to rpc_methods list

func (*ChainModule) SubscribeNewHead

func (cm *ChainModule) SubscribeNewHead(r *http.Request, req *EmptyRequest, res *ChainBlockHeaderResponse) error

SubscribeNewHead handled by websocket handler, but this func should remain here so it's added to rpc_methods list

func (*ChainModule) SubscribeNewHeads

func (cm *ChainModule) SubscribeNewHeads(r *http.Request, req *EmptyRequest, res *ChainBlockHeaderResponse) error

SubscribeNewHeads handled by websocket handler, but this func should remain here so it's added to rpc_methods list

type ChildStateModule added in v0.7.0

type ChildStateModule struct {
	// contains filtered or unexported fields
}

ChildStateModule is the module responsible to implement all the childstate RPC calls

func NewChildStateModule added in v0.7.0

func NewChildStateModule(s StorageAPI, b BlockAPI) *ChildStateModule

NewChildStateModule returns a new ChildStateModule

func (*ChildStateModule) GetKeys added in v0.7.0

func (cs *ChildStateModule) GetKeys(_ *http.Request, req *GetKeysRequest, res *[]string) error

GetKeys returns the keys from the specified child storage. The keys can also be filtered based on a prefix.

func (*ChildStateModule) GetStorage added in v0.7.0

GetStorage returns a child storage entry.

func (*ChildStateModule) GetStorageHash added in v0.7.0

func (cs *ChildStateModule) GetStorageHash(_ *http.Request, req *GetStorageHash, res *string) error

GetStorageHash returns the hash of a child storage entry

func (*ChildStateModule) GetStorageSize added in v0.7.0

func (cs *ChildStateModule) GetStorageSize(_ *http.Request, req *GetChildStorageRequest, res *uint64) error

GetStorageSize returns the size of a child storage entry.

type ChildStateStorageRequest added in v0.7.0

type ChildStateStorageRequest struct {
	ChildStorageKey []byte       `json:"childStorageKey"`
	Key             []byte       `json:"key"`
	Hash            *common.Hash `json:"block"`
}

ChildStateStorageRequest holds json fields

type CoreAPI

type CoreAPI interface {
	InsertKey(kp core.KeyPair, keystoreType string) error
	HasKey(pubKeyStr string, keyType string) (bool, error)
	GetRuntimeVersion(bhash *common.Hash) (runtime.Version, error)
	HandleSubmittedExtrinsic(types.Extrinsic) error
	GetMetadata(bhash *common.Hash) ([]byte, error)
	DecodeSessionKeys(enc []byte) ([]byte, error)
	GetReadProofAt(block common.Hash, keys [][]byte) (common.Hash, [][]byte, error)
}

CoreAPI is the interface for the core methods

type DevModule added in v0.2.0

type DevModule struct {
	// contains filtered or unexported fields
}

DevModule is an RPC module that provides developer endpoints

func NewDevModule added in v0.2.0

func NewDevModule(bp BlockProducerAPI, net NetworkAPI) *DevModule

NewDevModule creates a new Dev module.

func (*DevModule) Control added in v0.2.0

func (m *DevModule) Control(r *http.Request, req *[]string, res *string) error

Control to send start and stop messages to services

func (*DevModule) EpochLength added in v0.3.0

func (m *DevModule) EpochLength(r *http.Request, req *EmptyRequest, res *string) error

EpochLength Dev RPC to return epoch length

func (*DevModule) SlotDuration added in v0.3.0

func (m *DevModule) SlotDuration(r *http.Request, req *EmptyRequest, res *string) error

SlotDuration Dev RPC to return slot duration

type EmptyRequest

type EmptyRequest struct{}

EmptyRequest represents an RPC request with no fields

type Extrinsic

type Extrinsic struct {
	Data string
}

Extrinsic represents a hex-encoded extrinsic

type ExtrinsicHashResponse

type ExtrinsicHashResponse string

ExtrinsicHashResponse is used as Extrinsic hash response

type ExtrinsicOrHash

type ExtrinsicOrHash struct {
	Hash      common.Hash
	Extrinsic []byte
}

ExtrinsicOrHash is a type for Hash and Extrinsic array of bytes

type ExtrinsicOrHashRequest

type ExtrinsicOrHashRequest []ExtrinsicOrHash

ExtrinsicOrHashRequest is a array of ExtrinsicOrHash

type ExtrinsicStatus

type ExtrinsicStatus struct {
	IsFuture    bool
	IsReady     bool
	IsFinalized bool
	AsFinalized common.Hash
	IsUsurped   bool
	AsUsurped   common.Hash
	IsBroadcast bool
	AsBroadcast []string
	IsDropped   bool
	IsInvalid   bool
}

ExtrinsicStatus holds the actual valid statuses

type GenSyncSpecRequest added in v0.7.0

type GenSyncSpecRequest struct {
	Raw bool
}

GenSyncSpecRequest represents request to get chain specification.

type GetChildStorageRequest added in v0.7.0

type GetChildStorageRequest struct {
	KeyChild []byte
	EntryKey []byte
	Hash     *common.Hash
}

GetChildStorageRequest the request to get the entry child storage hash

type GetKeysRequest added in v0.7.0

type GetKeysRequest struct {
	Key    []byte
	Prefix []byte
	Hash   *common.Hash
}

GetKeysRequest represents the request to retrieve the keys of a child storage

type GetStorageHash added in v0.7.0

type GetStorageHash struct {
	KeyChild []byte
	EntryKey []byte
	Hash     *common.Hash
}

GetStorageHash the request to get the entry child storage hash

type GrandpaModule added in v0.3.0

type GrandpaModule struct {
	// contains filtered or unexported fields
}

GrandpaModule init parameters

func NewGrandpaModule added in v0.3.0

func NewGrandpaModule(api BlockAPI, finalityAPI BlockFinalityAPI) *GrandpaModule

NewGrandpaModule creates a new Grandpa rpc module.

func (*GrandpaModule) ProveFinality added in v0.3.0

func (gm *GrandpaModule) ProveFinality(r *http.Request, req *ProveFinalityRequest, res *ProveFinalityResponse) error

ProveFinality for the provided block number, the Justification for the last block in the set is written to the response. The response is a SCALE encoded proof array. The proof array is empty if the block number is not finalized. Returns error which are included in the response if they occur.

func (*GrandpaModule) RoundState added in v0.7.0

func (gm *GrandpaModule) RoundState(r *http.Request, req *EmptyRequest, res *RoundStateResponse) error

RoundState returns the state of the current best round state as well as the ongoing background rounds.

type HasSessionKeyRequest added in v0.7.0

type HasSessionKeyRequest struct {
	PublicKeys string
}

HasSessionKeyRequest is used to receive the rpc data

type HasSessionKeyResponse added in v0.7.0

type HasSessionKeyResponse bool

HasSessionKeyResponse is the response to the RPC call author_hasSessionKeys

type Infoer added in v0.8.0

type Infoer interface {
	Info(s string)
}

Infoer logs strings at the info level.

type KeyInsertRequest

type KeyInsertRequest struct {
	Type      string
	Seed      string
	PublicKey string
}

KeyInsertRequest is used as model for the JSON

type KeyInsertResponse

type KeyInsertResponse []byte

KeyInsertResponse []byte

type KeyRotateResponse

type KeyRotateResponse []byte

KeyRotateResponse is a byte array used to rotate

type KeyValueOption

type KeyValueOption []byte

KeyValueOption struct holds json fields

type MethodsResponse

type MethodsResponse struct {
	Methods []string `json:"methods"`
}

MethodsResponse struct representing methods

type NetworkAPI

type NetworkAPI interface {
	Health() common.Health
	NetworkState() common.NetworkState
	Peers() []common.PeerInfo
	NodeRoles() common.NetworkRole
	Stop() error
	Start() error
	StartingBlock() int64
	AddReservedPeers(addrs ...string) error
	RemoveReservedPeers(addrs ...string) error
}

NetworkAPI interface for network state methods

type NetworkStateString added in v0.2.0

type NetworkStateString struct {
	PeerID     string
	Multiaddrs []string
}

NetworkStateString Network State represented as string so JSON encode/decoding works

type OffchainLocalStorageGet added in v0.7.0

type OffchainLocalStorageGet struct {
	Kind string
	Key  string
}

OffchainLocalStorageGet represents the request format to retrieve data from offchain storage

type OffchainLocalStorageSet added in v0.7.0

type OffchainLocalStorageSet struct {
	Kind  string
	Key   string
	Value string
}

OffchainLocalStorageSet represents the request format to store data into offchain storage

type OffchainModule added in v0.7.0

type OffchainModule struct {
	// contains filtered or unexported fields
}

OffchainModule defines the RPC module to Offchain methods

func NewOffchainModule added in v0.7.0

func NewOffchainModule(ns RuntimeStorageAPI) *OffchainModule

NewOffchainModule creates a RPC module to Offchain methods

func (*OffchainModule) LocalStorageGet added in v0.7.0

func (s *OffchainModule) LocalStorageGet(_ *http.Request, req *OffchainLocalStorageGet, res *StringResponse) error

LocalStorageGet get offchain local storage under given key and prefix

func (*OffchainModule) LocalStorageSet added in v0.7.0

func (s *OffchainModule) LocalStorageSet(_ *http.Request, req *OffchainLocalStorageSet, _ *StringResponse) error

LocalStorageSet set offchain local storage under given key and prefix

type PaymentModule added in v0.7.0

type PaymentModule struct {
	// contains filtered or unexported fields
}

PaymentModule holds all the RPC implementation of polkadot payment rpc api

func NewPaymentModule added in v0.7.0

func NewPaymentModule(blockAPI BlockAPI) *PaymentModule

NewPaymentModule returns a pointer to PaymentModule

func (*PaymentModule) QueryInfo added in v0.7.0

QueryInfo query the known data about the fee of an extrinsic at the given block

type PaymentQueryInfoRequest added in v0.7.0

type PaymentQueryInfoRequest struct {
	// hex SCALE encoded extrinsic
	Ext string
	// hex optional block hash indicating the state
	Hash *common.Hash
}

PaymentQueryInfoRequest represents the request to get the fee of an extrinsic in a given block

type PaymentQueryInfoResponse added in v0.7.0

type PaymentQueryInfoResponse struct {
	Weight     uint64 `json:"weight"`
	Class      int    `json:"class"`
	PartialFee string `json:"partialFee"`
}

PaymentQueryInfoResponse holds the response fields to the query info RPC method

type PendingExtrinsicsResponse

type PendingExtrinsicsResponse []string

PendingExtrinsicsResponse is a bi-dimensional array of bytes for allocating the pending extrinsics

type ProveFinalityRequest added in v0.3.0

type ProveFinalityRequest struct {
	BlockNumber uint32 `json:"blockNumber"`
}

ProveFinalityRequest request struct

type ProveFinalityResponse added in v0.3.0

type ProveFinalityResponse []string

ProveFinalityResponse is an optional SCALE encoded proof array

type RPCAPI

type RPCAPI interface {
	Methods() []string
}

RPCAPI is the interface for methods related to RPC service

type RPCModule

type RPCModule struct {
	// contains filtered or unexported fields
}

RPCModule is a RPC module providing access to RPC methods

func NewRPCModule

func NewRPCModule(rpcapi RPCAPI) *RPCModule

NewRPCModule creates a new RPC api module

func (*RPCModule) Methods

func (rm *RPCModule) Methods(r *http.Request, req *EmptyRequest, res *MethodsResponse) error

Methods responds with list of methods available via RPC call

type RemoveExtrinsicsResponse

type RemoveExtrinsicsResponse []common.Hash

RemoveExtrinsicsResponse is a array of hash used to Remove extrinsics

type RoundState added in v0.7.0

type RoundState struct {
	Round           uint32 `json:"round"`
	TotalWeight     uint32 `json:"totalWeight"`
	ThresholdWeight uint32 `json:"thresholdWeight"`
	Prevotes        Votes  `json:"prevotes"`
	Precommits      Votes  `json:"precommits"`
}

RoundState json format for roundState RPC call

type RoundStateResponse added in v0.7.0

type RoundStateResponse struct {
	SetID      uint32       `json:"setId"`
	Best       RoundState   `json:"best"`
	Background []RoundState `json:"background"`
}

RoundStateResponse response to roundState RPC call

type RuntimeStorageAPI added in v0.7.0

type RuntimeStorageAPI interface {
	SetLocal(k, v []byte) error
	SetPersistent(k, v []byte) error
	GetLocal(k []byte) ([]byte, error)
	GetPersistent(k []byte) ([]byte, error)
}

RuntimeStorageAPI is the interface to interacts with the node storage

type StateCallRequest

type StateCallRequest struct {
	Method string       `json:"method"`
	Params string       `json:"params"`
	Block  *common.Hash `json:"block"`
}

StateCallRequest holds json fields

type StateCallResponse

type StateCallResponse string

StateCallResponse holds the result of the call

type StateChildStorageResponse added in v0.3.0

type StateChildStorageResponse string

StateChildStorageResponse is a hash value

type StateChildStorageSizeResponse added in v0.3.0

type StateChildStorageSizeResponse uint64

StateChildStorageSizeResponse is a unint value

type StateGetReadProofRequest added in v0.7.0

type StateGetReadProofRequest struct {
	Keys []string
	Hash common.Hash
}

StateGetReadProofRequest json fields

type StateGetReadProofResponse added in v0.7.0

type StateGetReadProofResponse struct {
	At    common.Hash `json:"at"`
	Proof []string    `json:"proof"`
}

StateGetReadProofResponse holds the response format

type StateKeysResponse

type StateKeysResponse [][]byte

StateKeysResponse field to store the state keys

type StateMetadataResponse

type StateMetadataResponse string

StateMetadataResponse holds the metadata

type StateModule

type StateModule struct {
	// contains filtered or unexported fields
}

StateModule is an RPC module providing access to storage API points.

func NewStateModule

func NewStateModule(net NetworkAPI, storage StorageAPI, core CoreAPI, blockAPI BlockAPI) *StateModule

NewStateModule creates a new State module.

func (*StateModule) Call

Call makes a call to the runtime.

func (*StateModule) GetKeysPaged added in v0.3.0

GetKeysPaged Returns the keys with prefix with pagination support.

func (*StateModule) GetMetadata

GetMetadata calls runtime Metadata_metadata function

func (*StateModule) GetPairs

func (sm *StateModule) GetPairs(_ *http.Request, req *StatePairRequest, res *StatePairResponse) error

GetPairs returns the keys with prefix, leave empty to get all the keys.

func (*StateModule) GetReadProof added in v0.7.0

GetReadProof returns the proof to the received storage keys

func (*StateModule) GetRuntimeVersion

GetRuntimeVersion Get the runtime version at a given block. If no block hash is provided, the latest version gets returned.

func (*StateModule) GetStorage

func (sm *StateModule) GetStorage(
	_ *http.Request, req *StateStorageRequest, res *StateStorageResponse) error

GetStorage Returns a storage entry at a specific block's state. If not block hash is provided, the latest value is returned.

func (*StateModule) GetStorageHash

func (sm *StateModule) GetStorageHash(
	_ *http.Request, req *StateStorageHashRequest, res *StateStorageHashResponse) error

GetStorageHash returns the blake2b hash of a storage entry at a block's state. If no block hash is provided, the latest value is returned.

func (*StateModule) GetStorageSize

func (sm *StateModule) GetStorageSize(
	_ *http.Request, req *StateStorageSizeRequest, res *StateStorageSizeResponse) error

GetStorageSize returns the size of a storage entry at a block's state. If no block hash is provided, the latest value is used.

func (*StateModule) QueryStorage

QueryStorage queries historical storage entries (by key) starting from a given request start block and until a given end block, or until the best block if the given end block is nil.

func (*StateModule) QueryStorageAt added in v0.8.0

func (sm *StateModule) QueryStorageAt(
	_ *http.Request, request *StateStorageQueryAtRequest, response *[]StorageChangeSetResponse) error

QueryStorageAt queries historical storage entries (by key) at the block hash given or the best block if the given block hash is nil

func (*StateModule) SubscribeRuntimeVersion

func (sm *StateModule) SubscribeRuntimeVersion(
	r *http.Request, _ *StateStorageQueryRangeRequest, res *StateRuntimeVersionResponse) error

SubscribeRuntimeVersion initialised a runtime version subscription and returns the current version See dot/rpc/subscription

func (*StateModule) SubscribeStorage

SubscribeStorage Storage subscription. If storage keys are specified, it creates a message for each block which changes the specified storage keys. If none are specified, then it creates a message for every block. This endpoint communicates over the Websocket protocol, but this func should remain here so it's added to rpc_methods list

func (*StateModule) Trie added in v0.8.0

Trie RPC method returns a list of scale encoded trie.Entry{Key byte, Value byte} representing all the entries in a trie for a block hash, if no block hash is given then it uses the best block hash

type StatePairRequest added in v0.3.0

type StatePairRequest struct {
	Prefix *string `validate:"required"`
	Bhash  *common.Hash
}

StatePairRequest holds json field

type StatePairResponse added in v0.3.0

type StatePairResponse []interface{}

StatePairResponse is a key values

type StateRuntimeMetadataQuery

type StateRuntimeMetadataQuery struct {
	Bhash *common.Hash
}

StateRuntimeMetadataQuery is a hash value

type StateRuntimeVersionRequest added in v0.3.0

type StateRuntimeVersionRequest struct {
	Bhash *common.Hash
}

StateRuntimeVersionRequest is hash value

type StateRuntimeVersionResponse

type StateRuntimeVersionResponse struct {
	SpecName           string        `json:"specName"`
	ImplName           string        `json:"implName"`
	AuthoringVersion   uint32        `json:"authoringVersion"`
	SpecVersion        uint32        `json:"specVersion"`
	ImplVersion        uint32        `json:"implVersion"`
	TransactionVersion uint32        `json:"transactionVersion"`
	Apis               []interface{} `json:"apis"`
}

StateRuntimeVersionResponse is the runtime version response

func NewStateRuntimeVersionResponse added in v0.7.0

func NewStateRuntimeVersionResponse(runtimeVersion runtime.Version) (
	response StateRuntimeVersionResponse)

NewStateRuntimeVersionResponse converts a runtime.Version to a StateRuntimeVersionResponse struct.

type StateStorageDataResponse

type StateStorageDataResponse string

StateStorageDataResponse field to store data response

type StateStorageHashRequest added in v0.3.0

type StateStorageHashRequest struct {
	Key   string `validate:"required"`
	Bhash *common.Hash
}

StateStorageHashRequest holds json field

type StateStorageHashResponse

type StateStorageHashResponse string

StateStorageHashResponse is a hash value

type StateStorageKeyRequest

type StateStorageKeyRequest struct {
	Prefix   string       `json:"prefix"`
	Qty      uint32       `json:"qty"`
	AfterKey string       `json:"afterKey"`
	Block    *common.Hash `json:"block"`
}

StateStorageKeyRequest holds json fields

type StateStorageKeysQuery

type StateStorageKeysQuery [][]byte

StateStorageKeysQuery field to store storage keys

type StateStorageKeysResponse

type StateStorageKeysResponse []string

StateStorageKeysResponse field for storage keys

type StateStorageQueryAtRequest added in v0.8.0

type StateStorageQueryAtRequest struct {
	Keys []string    `json:"keys" validate:"required"`
	At   common.Hash `json:"at"`
}

StateStorageQueryAtRequest holds json fields

type StateStorageQueryRangeRequest

type StateStorageQueryRangeRequest struct {
	Keys       []string    `json:"keys" validate:"required"`
	StartBlock common.Hash `json:"startBlock" validate:"required"`
	EndBlock   common.Hash `json:"block"`
}

StateStorageQueryRangeRequest holds json fields

type StateStorageRequest added in v0.3.0

type StateStorageRequest struct {
	Key   string `validate:"required"`
	Bhash *common.Hash
}

StateStorageRequest holds json field

type StateStorageResponse added in v0.3.0

type StateStorageResponse string

StateStorageResponse storage hash value

type StateStorageSizeRequest added in v0.3.0

type StateStorageSizeRequest struct {
	Key   string `validate:"required"`
	Bhash *common.Hash
}

StateStorageSizeRequest holds json field

type StateStorageSizeResponse

type StateStorageSizeResponse uint64

StateStorageSizeResponse the default size for response

type StateTrieAtRequest added in v0.8.0

type StateTrieAtRequest struct {
	At *common.Hash `json:"at"`
}

type StateTrieResponse added in v0.8.0

type StateTrieResponse []string

type StorageAPI

type StorageAPI interface {
	GetStorage(root *common.Hash, key []byte) ([]byte, error)
	GetStorageChild(root *common.Hash, keyToChild []byte) (*trie.Trie, error)
	GetStorageFromChild(root *common.Hash, keyToChild, key []byte) ([]byte, error)
	GetStorageByBlockHash(bhash *common.Hash, key []byte) ([]byte, error)
	Entries(root *common.Hash) (map[string][]byte, error)
	GetStateRootFromBlock(bhash *common.Hash) (*common.Hash, error)
	GetKeysWithPrefix(root *common.Hash, prefix []byte) ([][]byte, error)
	RegisterStorageObserver(observer state.Observer)
	UnregisterStorageObserver(observer state.Observer)
}

StorageAPI is the interface for the storage state

type StorageChangeSetResponse

type StorageChangeSetResponse struct {
	Block *common.Hash `json:"block"`
	// Changes is a slice of arrays of string pointers instead of just strings
	// so that the JSON encoder can handle nil values as NULL instead of empty
	// strings.
	Changes [][2]*string `json:"changes"`
}

StorageChangeSetResponse is the struct that holds the block and changes

type StorageKey

type StorageKey []byte

StorageKey is the key for the storage

type StringRequest added in v0.3.0

type StringRequest struct {
	String string
}

StringRequest holds string request

type StringResponse

type StringResponse string

StringResponse holds the string response

type SyncAPI added in v0.7.0

type SyncAPI interface {
	HighestBlock() uint
}

SyncAPI is the interface to interact with the sync service

type SyncStateAPI added in v0.7.0

type SyncStateAPI interface {
	GenSyncSpec(raw bool) (*genesis.Genesis, error)
}

SyncStateAPI is the interface to interact with sync state.

func NewStateSync added in v0.7.0

func NewStateSync(gData *genesis.Data, storageAPI StorageAPI) (SyncStateAPI, error)

NewStateSync creates an instance of SyncStateAPI given a chain specification.

type SyncStateModule added in v0.7.0

type SyncStateModule struct {
	// contains filtered or unexported fields
}

SyncStateModule is an RPC module to interact with sync state methods.

func NewSyncStateModule added in v0.7.0

func NewSyncStateModule(syncStateAPI SyncStateAPI) *SyncStateModule

NewSyncStateModule creates an instance of SyncStateModule given SyncStateAPI.

func (*SyncStateModule) GenSyncSpec added in v0.7.0

func (ss *SyncStateModule) GenSyncSpec(_ *http.Request, req *GenSyncSpecRequest, res *genesis.Genesis) error

GenSyncSpec returns the JSON serialised chain specification running the node (i.e. the current state state), with a sync state.

type SyncStateResponse added in v0.7.0

type SyncStateResponse struct {
	CurrentBlock  uint32 `json:"currentBlock"`
	HighestBlock  uint32 `json:"highestBlock"`
	StartingBlock uint32 `json:"startingBlock"`
}

SyncStateResponse is the struct to return on the system_syncState rpc call

type SystemAPI

type SystemAPI interface {
	SystemName() string
	SystemVersion() string
	Properties() map[string]interface{}
	ChainType() string
	ChainName() string
}

SystemAPI is the interface for handling system methods

type SystemHealthResponse

type SystemHealthResponse common.Health

SystemHealthResponse struct to marshal json

type SystemModule

type SystemModule struct {
	// contains filtered or unexported fields
}

SystemModule is an RPC module providing access to core API points

func NewSystemModule

func NewSystemModule(net NetworkAPI, sys SystemAPI, core CoreAPI,
	storage StorageAPI, txAPI TransactionStateAPI, blockAPI BlockAPI,
	syncAPI SyncAPI) *SystemModule

NewSystemModule creates a new API instance

func (*SystemModule) AccountNextIndex added in v0.3.0

func (sm *SystemModule) AccountNextIndex(r *http.Request, req *StringRequest, res *U64Response) error

AccountNextIndex Returns the next valid index (aka. nonce) for given account.

func (*SystemModule) AddReservedPeer added in v0.7.0

func (sm *SystemModule) AddReservedPeer(r *http.Request, req *StringRequest, res *[]byte) error

AddReservedPeer adds a reserved peer. The string parameter should encode a p2p multiaddr.

func (*SystemModule) Chain

func (sm *SystemModule) Chain(r *http.Request, req *EmptyRequest, res *string) error

Chain returns the runtime chain

func (*SystemModule) ChainType added in v0.3.0

func (sm *SystemModule) ChainType(r *http.Request, req *EmptyRequest, res *string) error

ChainType returns the chain type

func (*SystemModule) Health

func (sm *SystemModule) Health(r *http.Request, req *EmptyRequest, res *SystemHealthResponse) error

Health returns the information about the health of the network

func (*SystemModule) LocalListenAddresses added in v0.7.0

func (sm *SystemModule) LocalListenAddresses(r *http.Request, req *EmptyRequest, res *[]string) error

LocalListenAddresses Returns the libp2p multiaddresses that the local node is listening on

func (*SystemModule) LocalPeerId added in v0.7.0

func (sm *SystemModule) LocalPeerId(r *http.Request, req *EmptyRequest, res *string) error

LocalPeerId Returns the base58-encoded PeerId fo the node.

func (*SystemModule) Name

func (sm *SystemModule) Name(r *http.Request, req *EmptyRequest, res *string) error

Name returns the runtime name

func (*SystemModule) NetworkState

func (sm *SystemModule) NetworkState(r *http.Request, req *EmptyRequest, res *SystemNetworkStateResponse) error

NetworkState returns the network state (basic information about the host)

func (*SystemModule) NodeRoles

func (sm *SystemModule) NodeRoles(r *http.Request, req *EmptyRequest, res *[]interface{}) error

NodeRoles Returns the roles the node is running as.

func (*SystemModule) Peers

func (sm *SystemModule) Peers(r *http.Request, req *EmptyRequest, res *SystemPeersResponse) error

Peers returns peer information for each connected and confirmed peer

func (*SystemModule) Properties

func (sm *SystemModule) Properties(r *http.Request, req *EmptyRequest, res *interface{}) error

Properties returns the runtime properties

func (*SystemModule) RemoveReservedPeer added in v0.7.0

func (sm *SystemModule) RemoveReservedPeer(r *http.Request, req *StringRequest, res *[]byte) error

RemoveReservedPeer remove a reserved peer. The string should encode only the PeerId

func (*SystemModule) SyncState added in v0.7.0

func (sm *SystemModule) SyncState(r *http.Request, req *EmptyRequest, res *SyncStateResponse) error

SyncState Returns the state of the syncing of the node.

func (*SystemModule) Version

func (sm *SystemModule) Version(r *http.Request, req *EmptyRequest, res *string) error

Version returns the runtime version

type SystemNetworkStateResponse

type SystemNetworkStateResponse struct {
	NetworkState NetworkStateString `json:"networkState"`
}

SystemNetworkStateResponse struct to marshal json

type SystemPeersResponse

type SystemPeersResponse []common.PeerInfo

SystemPeersResponse struct to marshal json

type Telemetry added in v0.8.0

type Telemetry interface {
	SendMessage(msg json.Marshaler)
}

Telemetry is the telemetry client to send telemetry messages.

type TransactionStateAPI added in v0.2.0

type TransactionStateAPI interface {
	Pending() []*transaction.ValidTransaction
}

TransactionStateAPI ...

type U64Response added in v0.3.0

type U64Response uint64

U64Response holds U64 response

type Votes added in v0.7.0

type Votes struct {
	CurrentWeight uint32   `json:"currentWeight"`
	Missing       []string `json:"missing"`
}

Votes struct formats rpc call

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL