chainlib

package
v2.5.3 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2024 License: Apache-2.0 Imports: 75 Imported by: 0

Documentation

Overview

Code generated by MockGen. DO NOT EDIT. Source: protocol/chainlib/chain_fetcher.go

Generated by this command:

mockgen -source=protocol/chainlib/chain_fetcher.go -destination protocol/chainlib/chain_fetcher_mock.go -package chainlib

Package chainlib is a generated GoMock package.

Package chainlib is a generated GoMock package.

Index

Constants

View Source
const (
	TendermintStatusQuery  = "status"
	ChainFetcherHeaderName = "X-LAVA-Provider"
)
View Source
const (
	ContextUserValueKeyDappID = "dappID"
	RetryListeningInterval    = 10 // seconds

	RPCProviderNodeAddressHash = "Lava-Provider-Node-Address-Hash"
	RPCProviderNodeExtension   = "Lava-Provider-Node-Extension"
	RpcProviderUniqueIdHeader  = "Lava-Provider-Unique-Id"
	WebSocketExtension         = "websocket"
)
View Source
const GRPCStatusCodeOnFailedMessages = 32
View Source
const SEP = "&"
View Source
const SubscriptionTimeoutDuration = 15 * time.Minute

Variables

View Source
var (
	IgnoreSubscriptionNotConfiguredError     = true
	IgnoreSubscriptionNotConfiguredErrorFlag = "ignore-subscription-not-configured-error"
)
View Source
var (
	InvalidResponses                   = []string{"null", "", "nil", "undefined"}
	FailedSendingSubscriptionToClients = sdkerrors.New("failed Sending Subscription To Clients", 1015, "Failed Sending Subscription To Clients connection might have been closed by the user")
	NoActiveSubscriptionFound          = sdkerrors.New("failed finding an active subscription on provider side", 1016, "no active subscriptions for hashed params.")
)

Functions

func CompareRequestedBlockInBatch

func CompareRequestedBlockInBatch(currentLatestRequestedBlock, currentEarliestRequestedBlock, parsedBlock int64) (latestCombinedBlock int64, earliestCombinedBlock int64)

split two requested blocks to the most advanced and most behind the hierarchy is as follows: NOT_APPLICABLE LATEST_BLOCK PENDING_BLOCK SAFE FINALIZED numeric value (descending) EARLIEST

func CreateChainLibMocks

func CreateChainLibMocks(
	ctx context.Context,
	specIndex string,
	apiInterface string,
	httpServerCallback http.HandlerFunc,
	wsServerCallback http.HandlerFunc,
	getToTopMostPath string,
	services []string,
) (cpar ChainParser, crout ChainRouter, cfetc chaintracker.ChainFetcher, closeServer func(), endpointRet *lavasession.RPCProviderEndpoint, errRet error)

generates a chain parser, a chain fetcher messages based on it apiInterface can either be an ApiInterface string as in spectypes.ApiInterfaceXXX or a number for an index in the apiCollections

func FormatResponseForParsing

func FormatResponseForParsing(reply *pairingtypes.RelayReply, chainMessage ChainMessageForSend) (parsable parser.RPCInput, err error)

func GetAddon

func GetAddon(chainMessage ChainMessageForSend) string

func GetComputeUnits

func GetComputeUnits(chainMessage ChainMessageForSend) uint64

func GetListenerWithRetryGrpc

func GetListenerWithRetryGrpc(protocol, addr string) net.Listener

func GetParseDirective added in v2.4.0

func GetParseDirective(api *types.Api, apiCollection *types.ApiCollection) *types.ParseDirective

func GetRelayTimeout

func GetRelayTimeout(chainMessage ChainMessageForSend, averageBlockTime time.Duration) time.Duration

func GetStateful

func GetStateful(chainMessage ChainMessageForSend) uint32

func GetTimeoutInfo

func GetTimeoutInfo(chainMessage ChainMessageForSend) common.TimeoutInfo

func HashCacheRequest

func HashCacheRequest(relayData *pairingtypes.RelayPrivateData, chainId string) ([]byte, func([]byte) []byte, error)

this method will calculate the request hash by changing the original object, and returning the data back to it after calculating the hash couldn't be used in parallel

func IsFunctionTagOfType added in v2.4.0

func IsFunctionTagOfType(chainMessage ChainMessageForSend, functionTag types.FUNCTION_TAG) bool

func IsHangingApi

func IsHangingApi(chainMessage ChainMessageForSend) bool

func ListenWithRetry

func ListenWithRetry(app *fiber.App, address string, chosenAddrCh *common.SafeChannelSender[string])

func ShouldSendToAllProviders

func ShouldSendToAllProviders(chainMessage ChainMessage) bool

func ValidateNilResponse

func ValidateNilResponse(responseString string) error

return if response is valid or not - true

Types

type ApiContainer

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

type ApiKey

type ApiKey struct {
	Name           string
	ConnectionType string
	InternalPath   string
}

type BaseChainParser

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

func (*BaseChainParser) Activate

func (bcp *BaseChainParser) Activate()

func (*BaseChainParser) Active

func (bcp *BaseChainParser) Active() bool

func (*BaseChainParser) BuildMapFromPolicyQuery

func (bcp *BaseChainParser) BuildMapFromPolicyQuery(policy PolicyInf, chainId string, apiInterface string) (map[string]struct{}, error)

func (*BaseChainParser) Construct

func (bcp *BaseChainParser) Construct(spec spectypes.Spec, internalPaths map[string]struct{}, taggedApis map[spectypes.FUNCTION_TAG]TaggedContainer,
	serverApis map[ApiKey]ApiContainer, apiCollections map[CollectionKey]*spectypes.ApiCollection, headers map[ApiKey]*spectypes.Header,
	verifications map[VerificationKey][]VerificationContainer, extensionParser extensionslib.ExtensionParser,
)

func (*BaseChainParser) ExtensionParsing

func (bcp *BaseChainParser) ExtensionParsing(addon string, parsedMessageArg *baseChainMessageContainer, extensionInfo extensionslib.ExtensionInfo)

func (*BaseChainParser) ExtensionsParser

func (bcp *BaseChainParser) ExtensionsParser() *extensionslib.ExtensionParser

func (*BaseChainParser) GetParsingByTag

func (bcp *BaseChainParser) GetParsingByTag(tag spectypes.FUNCTION_TAG) (parsing *spectypes.ParseDirective, apiCollection *spectypes.ApiCollection, existed bool)

func (*BaseChainParser) GetVerifications

func (bcp *BaseChainParser) GetVerifications(supported []string) (retVerifications []VerificationContainer, err error)

gets all verifications for an endpoint supporting multiple addons and extensions

func (*BaseChainParser) HandleHeaders

func (bcp *BaseChainParser) HandleHeaders(metadata []pairingtypes.Metadata, apiCollection *spectypes.ApiCollection, headersDirection spectypes.Header_HeaderType) (filteredHeaders []pairingtypes.Metadata, overwriteRequestedBlock string, ignoredMetadata []pairingtypes.Metadata)

func (*BaseChainParser) SeparateAddonsExtensions

func (bcp *BaseChainParser) SeparateAddonsExtensions(supported []string) (addons, extensions []string, err error)

this function errors if it meets a value that is neither a n addon or an extension

func (*BaseChainParser) SetPolicy

func (bcp *BaseChainParser) SetPolicy(policy PolicyInf, chainId string, apiInterface string) error

policy information contains all configured services (extensions and addons) allowed to be used by the consumer

func (*BaseChainParser) SetPolicyFromAddonAndExtensionMap

func (bcp *BaseChainParser) SetPolicyFromAddonAndExtensionMap(policyInformation map[string]struct{})

func (*BaseChainParser) UpdateBlockTime

func (bcp *BaseChainParser) UpdateBlockTime(newBlockTime time.Duration)

func (*BaseChainParser) Validate

func (bcp *BaseChainParser) Validate(nodeMessage *baseChainMessageContainer) error

type BaseChainProxy

type BaseChainProxy struct {
	ErrorHandler

	NodeUrl       common.NodeUrl
	ChainID       string
	HashedNodeUrl string
	// contains filtered or unexported fields
}

func (*BaseChainProxy) CapTimeoutForSend

func (bcp *BaseChainProxy) CapTimeoutForSend(ctx context.Context, chainMessage ChainMessageForSend) (context.Context, context.CancelFunc)

func (*BaseChainProxy) GetChainProxyInformation

func (bcp *BaseChainProxy) GetChainProxyInformation() (common.NodeUrl, string)

returns the node url and chain id for that proxy.

type BaseProtocolMessage added in v2.5.3

type BaseProtocolMessage struct {
	ChainMessage
	// contains filtered or unexported fields
}

func (*BaseProtocolMessage) GetBlockedProviders added in v2.5.3

func (bpm *BaseProtocolMessage) GetBlockedProviders() []string

func (*BaseProtocolMessage) GetDirectiveHeaders added in v2.5.3

func (bpm *BaseProtocolMessage) GetDirectiveHeaders() map[string]string

func (*BaseProtocolMessage) HashCacheRequest added in v2.5.3

func (bpm *BaseProtocolMessage) HashCacheRequest(chainId string) ([]byte, func([]byte) []byte, error)

func (*BaseProtocolMessage) RelayPrivateData added in v2.5.3

func (bpm *BaseProtocolMessage) RelayPrivateData() *pairingtypes.RelayPrivateData

type ChainFetcher

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

func NewChainFetcher

func NewChainFetcher(ctx context.Context, options *ChainFetcherOptions) *ChainFetcher

func (*ChainFetcher) ChainFetcherMetadata

func (cf *ChainFetcher) ChainFetcherMetadata() []pairingtypes.Metadata

func (*ChainFetcher) FetchBlockHashByNum

func (cf *ChainFetcher) FetchBlockHashByNum(ctx context.Context, blockNum int64) (string, error)

func (*ChainFetcher) FetchEndpoint

func (cf *ChainFetcher) FetchEndpoint() lavasession.RPCProviderEndpoint

func (*ChainFetcher) FetchLatestBlockNum

func (cf *ChainFetcher) FetchLatestBlockNum(ctx context.Context) (int64, error)

func (*ChainFetcher) Validate

func (cf *ChainFetcher) Validate(ctx context.Context) error

func (*ChainFetcher) Verify

func (cf *ChainFetcher) Verify(ctx context.Context, verification VerificationContainer, latestBlock uint64) error

type ChainFetcherIf

type ChainFetcherIf interface {
	FetchLatestBlockNum(ctx context.Context) (int64, error)
	FetchBlockHashByNum(ctx context.Context, blockNum int64) (string, error)
	FetchEndpoint() lavasession.RPCProviderEndpoint
	Validate(ctx context.Context) error
}

type ChainFetcherOptions

type ChainFetcherOptions struct {
	ChainRouter ChainRouter
	ChainParser ChainParser
	Endpoint    *lavasession.RPCProviderEndpoint
	Cache       *performance.Cache
}

type ChainListener

type ChainListener interface {
	Serve(ctx context.Context, cmdFlags common.ConsumerCmdFlags)
	GetListeningAddress() string
}

func NewChainListener

func NewChainListener(
	ctx context.Context,
	listenEndpoint *lavasession.RPCEndpoint,
	relaySender RelaySender,
	healthReporter HealthReporter,
	rpcConsumerLogs *metrics.RPCConsumerLogs,
	chainParser ChainParser,
	refererData *RefererData,
	consumerWsSubscriptionManager *ConsumerWSSubscriptionManager,
) (ChainListener, error)

type ChainMessage

type ChainMessage interface {
	SubscriptionIdExtractor(reply *rpcclient.JsonrpcMessage) string
	RequestedBlock() (latest int64, earliest int64)
	UpdateLatestBlockInMessage(latestBlock int64, modifyContent bool) (modified bool)
	AppendHeader(metadata []pairingtypes.Metadata)
	GetExtensions() []*spectypes.Extension
	OverrideExtensions(extensionNames []string, extensionParser *extensionslib.ExtensionParser)
	DisableErrorHandling()
	TimeoutOverride(...time.Duration) time.Duration
	GetForceCacheRefresh() bool
	SetForceCacheRefresh(force bool) bool
	CheckResponseError(data []byte, httpStatusCode int) (hasError bool, errorMessage string)
	GetRawRequestHash() ([]byte, error)

	ChainMessageForSend
}

type ChainMessageForSend

type ChainMessageForSend interface {
	TimeoutOverride(...time.Duration) time.Duration
	GetApi() *spectypes.Api
	GetRPCMessage() rpcInterfaceMessages.GenericMessage
	GetApiCollection() *spectypes.ApiCollection
	GetParseDirective() *spectypes.ParseDirective
	CheckResponseError(data []byte, httpStatusCode int) (hasError bool, errorMessage string)
}

func CraftChainMessage

func CraftChainMessage(parsing *spectypes.ParseDirective, connectionType string, chainParser ChainParser, craftData *CraftData, metadata []pairingtypes.Metadata) (ChainMessageForSend, error)

type ChainParser

type ChainParser interface {
	ParseMsg(url string, data []byte, connectionType string, metadata []pairingtypes.Metadata, extensionInfo extensionslib.ExtensionInfo) (ChainMessage, error)
	SetSpec(spec spectypes.Spec)
	DataReliabilityParams() (enabled bool, dataReliabilityThreshold uint32)
	ChainBlockStats() (allowedBlockLagForQosSync int64, averageBlockTime time.Duration, blockDistanceForFinalizedData, blocksInFinalizationProof uint32)
	GetParsingByTag(tag spectypes.FUNCTION_TAG) (parsing *spectypes.ParseDirective, apiCollection *spectypes.ApiCollection, existed bool)
	CraftMessage(parser *spectypes.ParseDirective, connectionType string, craftData *CraftData, metadata []pairingtypes.Metadata) (ChainMessageForSend, error)
	HandleHeaders(metadata []pairingtypes.Metadata, apiCollection *spectypes.ApiCollection, headersDirection spectypes.Header_HeaderType) (filtered []pairingtypes.Metadata, overwriteReqBlock string, ignoredMetadata []pairingtypes.Metadata)
	GetVerifications(supported []string) ([]VerificationContainer, error)
	SeparateAddonsExtensions(supported []string) (addons, extensions []string, err error)
	SetPolicy(policy PolicyInf, chainId string, apiInterface string) error
	Active() bool
	Activate()
	UpdateBlockTime(newBlockTime time.Duration)
	GetUniqueName() string
	ExtensionsParser() *extensionslib.ExtensionParser
}

func NewChainParser

func NewChainParser(apiInterface string) (chainParser ChainParser, err error)

type ChainProxy

type ChainProxy interface {
	GetChainProxyInformation() (common.NodeUrl, string)
	SendNodeMsg(ctx context.Context, ch chan interface{}, chainMessage ChainMessageForSend) (relayReply *RelayReplyWrapper, subscriptionID string, relayReplyServer *rpcclient.ClientSubscription, err error) // has to be thread safe, reuse code within ParseMsg as common functionality
}

func NewGrpcChainProxy

func NewGrpcChainProxy(ctx context.Context, nConns uint, rpcProviderEndpoint lavasession.RPCProviderEndpoint, parser ChainParser) (ChainProxy, error)

func NewJrpcChainProxy

func NewJrpcChainProxy(ctx context.Context, nConns uint, rpcProviderEndpoint lavasession.RPCProviderEndpoint, chainParser ChainParser) (ChainProxy, error)

func NewRestChainProxy

func NewRestChainProxy(ctx context.Context, nConns uint, rpcProviderEndpoint lavasession.RPCProviderEndpoint, chainParser ChainParser) (ChainProxy, error)

func NewtendermintRpcChainProxy

func NewtendermintRpcChainProxy(ctx context.Context, nConns uint, rpcProviderEndpoint lavasession.RPCProviderEndpoint, chainParser ChainParser) (ChainProxy, error)

type ChainRouter

type ChainRouter interface {
	SendNodeMsg(ctx context.Context, ch chan interface{}, chainMessage ChainMessageForSend, extensions []string) (relayReply *RelayReplyWrapper, subscriptionID string, relayReplyServer *rpcclient.ClientSubscription, proxyUrl common.NodeUrl, chainId string, err error) // has to be thread safe, reuse code within ParseMsg as common functionality
	ExtensionsSupported([]string) bool
}

func GetChainRouter

func GetChainRouter(ctx context.Context, nConns uint, rpcProviderEndpoint *lavasession.RPCProviderEndpoint, chainParser ChainParser) (ChainRouter, error)

type CollectionKey

type CollectionKey struct {
	ConnectionType string
	InternalPath   string
	Addon          string
}

type ConsumerWSSubscriptionManager added in v2.4.0

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

func NewConsumerWSSubscriptionManager added in v2.4.0

func NewConsumerWSSubscriptionManager(
	consumerSessionManager *lavasession.ConsumerSessionManager,
	relaySender RelaySender,
	refererData *RefererData,
	connectionType string,
	chainParser ChainParser,
	activeSubscriptionProvidersStorage *lavasession.ActiveSubscriptionProvidersStorage,
) *ConsumerWSSubscriptionManager

func (*ConsumerWSSubscriptionManager) CreateWebSocketConnectionUniqueKey added in v2.4.0

func (cwsm *ConsumerWSSubscriptionManager) CreateWebSocketConnectionUniqueKey(dappID, consumerIp, webSocketConnectionUniqueId string) string

func (*ConsumerWSSubscriptionManager) StartSubscription added in v2.4.0

func (cwsm *ConsumerWSSubscriptionManager) StartSubscription(
	webSocketCtx context.Context,
	protocolMessage ProtocolMessage,
	dappID string,
	consumerIp string,
	webSocketConnectionUniqueId string,
	metricsData *metrics.RelayMetrics,
) (firstReply *pairingtypes.RelayReply, repliesChan <-chan *pairingtypes.RelayReply, err error)

func (*ConsumerWSSubscriptionManager) Unsubscribe added in v2.4.0

func (cwsm *ConsumerWSSubscriptionManager) Unsubscribe(webSocketCtx context.Context, protocolMessage ProtocolMessage, dappID, consumerIp string, webSocketConnectionUniqueId string, metricsData *metrics.RelayMetrics) error

func (*ConsumerWSSubscriptionManager) UnsubscribeAll added in v2.4.0

func (cwsm *ConsumerWSSubscriptionManager) UnsubscribeAll(webSocketCtx context.Context, dappID, consumerIp string, webSocketConnectionUniqueId string, metricsData *metrics.RelayMetrics) error

type ConsumerWebsocketManager added in v2.4.0

type ConsumerWebsocketManager struct {
	WebsocketConnectionUID string
	// contains filtered or unexported fields
}

func NewConsumerWebsocketManager added in v2.4.0

func NewConsumerWebsocketManager(options ConsumerWebsocketManagerOptions) *ConsumerWebsocketManager

func (*ConsumerWebsocketManager) GetWebSocketConnectionUniqueId added in v2.4.0

func (cwm *ConsumerWebsocketManager) GetWebSocketConnectionUniqueId(dappId, userIp string) string

func (*ConsumerWebsocketManager) ListenToMessages added in v2.4.0

func (cwm *ConsumerWebsocketManager) ListenToMessages()

type ConsumerWebsocketManagerOptions added in v2.4.0

type ConsumerWebsocketManagerOptions struct {
	WebsocketConn                 *websocket.Conn
	RpcConsumerLogs               *metrics.RPCConsumerLogs
	RefererMatchString            string
	CmdFlags                      common.ConsumerCmdFlags
	RelayMsgLogMaxChars           int
	ChainID                       string
	ApiInterface                  string
	ConnectionType                string
	RefererData                   *RefererData
	RelaySender                   RelaySender
	ConsumerWsSubscriptionManager *ConsumerWSSubscriptionManager
	WebsocketConnectionUID        string
}

type CraftData

type CraftData struct {
	Path           string
	Data           []byte
	ConnectionType string
}

type DummyChainFetcher

type DummyChainFetcher struct {
	*ChainFetcher
}

func NewVerificationsOnlyChainFetcher

func NewVerificationsOnlyChainFetcher(ctx context.Context, chainRouter ChainRouter, chainParser ChainParser, endpoint *lavasession.RPCProviderEndpoint) *DummyChainFetcher

func (*DummyChainFetcher) FetchBlockHashByNum

func (cf *DummyChainFetcher) FetchBlockHashByNum(ctx context.Context, blockNum int64) (string, error)

overwrite this too

func (*DummyChainFetcher) FetchLatestBlockNum

func (cf *DummyChainFetcher) FetchLatestBlockNum(ctx context.Context) (int64, error)

overwrite this

func (*DummyChainFetcher) Validate

func (cf *DummyChainFetcher) Validate(ctx context.Context) error

type ErrorHandler

type ErrorHandler interface {
	HandleNodeError(context.Context, error) error
	HandleStatusError(int, bool) error
	HandleJSONFormatError([]byte) error
	ValidateRequestAndResponseIds(json.RawMessage, json.RawMessage) error
}

type GRPCErrorHandler

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

func (*GRPCErrorHandler) HandleJSONFormatError

func (geh *GRPCErrorHandler) HandleJSONFormatError(replyData []byte) error

func (*GRPCErrorHandler) HandleNodeError

func (geh *GRPCErrorHandler) HandleNodeError(ctx context.Context, nodeError error) error

func (*GRPCErrorHandler) HandleStatusError

func (geh *GRPCErrorHandler) HandleStatusError(statusCode int, strict bool) error

func (*GRPCErrorHandler) ValidateRequestAndResponseIds

func (geh *GRPCErrorHandler) ValidateRequestAndResponseIds(nodeMessageID json.RawMessage, replyMsgID json.RawMessage) error

type GrpcChainListener

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

func NewGrpcChainListener

func NewGrpcChainListener(
	ctx context.Context,
	listenEndpoint *lavasession.RPCEndpoint,
	relaySender RelaySender,
	healthReporter HealthReporter,
	rpcConsumerLogs *metrics.RPCConsumerLogs,
	chainParser ChainParser,
	refererData *RefererData,
) (chainListener *GrpcChainListener)

func (*GrpcChainListener) GetListeningAddress added in v2.4.0

func (apil *GrpcChainListener) GetListeningAddress() string

func (*GrpcChainListener) Serve

func (apil *GrpcChainListener) Serve(ctx context.Context, cmdFlags common.ConsumerCmdFlags)

Serve http server for GrpcChainListener

type GrpcChainParser

type GrpcChainParser struct {
	BaseChainParser
	// contains filtered or unexported fields
}

func NewGrpcChainParser

func NewGrpcChainParser() (chainParser *GrpcChainParser, err error)

NewGrpcChainParser creates a new instance of GrpcChainParser

func (*GrpcChainParser) ChainBlockStats

func (apip *GrpcChainParser) ChainBlockStats() (allowedBlockLagForQosSync int64, averageBlockTime time.Duration, blockDistanceForFinalizedData, blocksInFinalizationProof uint32)

ChainBlockStats returns block stats from spec (spec.AllowedBlockLagForQosSync, spec.AverageBlockTime, spec.BlockDistanceForFinalizedData)

func (*GrpcChainParser) CraftMessage

func (apip *GrpcChainParser) CraftMessage(parsing *spectypes.ParseDirective, connectionType string, craftData *CraftData, metadata []pairingtypes.Metadata) (ChainMessageForSend, error)

func (*GrpcChainParser) DataReliabilityParams

func (apip *GrpcChainParser) DataReliabilityParams() (enabled bool, dataReliabilityThreshold uint32)

DataReliabilityParams returns data reliability params from spec (spec.enabled and spec.dataReliabilityThreshold)

func (*GrpcChainParser) GetUniqueName

func (bcp *GrpcChainParser) GetUniqueName() string

func (*GrpcChainParser) ParseMsg

func (apip *GrpcChainParser) ParseMsg(url string, data []byte, connectionType string, metadata []pairingtypes.Metadata, extensionInfo extensionslib.ExtensionInfo) (ChainMessage, error)

ParseMsg parses message data into chain message object

func (*GrpcChainParser) SetSpec

func (apip *GrpcChainParser) SetSpec(spec spectypes.Spec)

SetSpec sets the spec for the GrpcChainParser

type GrpcChainProxy

type GrpcChainProxy struct {
	BaseChainProxy
	// contains filtered or unexported fields
}

func (*GrpcChainProxy) SendNodeMsg

func (cp *GrpcChainProxy) SendNodeMsg(ctx context.Context, ch chan interface{}, chainMessage ChainMessageForSend) (relayReply *RelayReplyWrapper, subscriptionID string, relayReplyServer *rpcclient.ClientSubscription, err error)

type GrpcNodeErrorResponse

type GrpcNodeErrorResponse struct {
	ErrorMessage string `json:"error_message"`
	ErrorCode    uint32 `json:"error_code"`
}

type HealthReporter

type HealthReporter interface {
	IsHealthy() bool
}

type JrpcChainProxy

type JrpcChainProxy struct {
	BaseChainProxy
	// contains filtered or unexported fields
}

func (*JrpcChainProxy) SendNodeMsg

func (cp *JrpcChainProxy) SendNodeMsg(ctx context.Context, ch chan interface{}, chainMessage ChainMessageForSend) (relayReply *RelayReplyWrapper, subscriptionID string, relayReplyServer *rpcclient.ClientSubscription, err error)

type JsonRPCChainListener

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

func NewJrpcChainListener

func NewJrpcChainListener(ctx context.Context, listenEndpoint *lavasession.RPCEndpoint,
	relaySender RelaySender, healthReporter HealthReporter,
	rpcConsumerLogs *metrics.RPCConsumerLogs,
	refererData *RefererData,
	consumerWsSubscriptionManager *ConsumerWSSubscriptionManager,
) (chainListener *JsonRPCChainListener)

NewJrpcChainListener creates a new instance of JsonRPCChainListener

func (*JsonRPCChainListener) GetListeningAddress added in v2.4.0

func (apil *JsonRPCChainListener) GetListeningAddress() string

func (*JsonRPCChainListener) Serve

func (apil *JsonRPCChainListener) Serve(ctx context.Context, cmdFlags common.ConsumerCmdFlags)

Serve http server for JsonRPCChainListener

type JsonRPCChainParser

type JsonRPCChainParser struct {
	BaseChainParser
}

func NewJrpcChainParser

func NewJrpcChainParser() (chainParser *JsonRPCChainParser, err error)

NewJrpcChainParser creates a new instance of JsonRPCChainParser

func (*JsonRPCChainParser) ChainBlockStats

func (apip *JsonRPCChainParser) ChainBlockStats() (allowedBlockLagForQosSync int64, averageBlockTime time.Duration, blockDistanceForFinalizedData, blocksInFinalizationProof uint32)

ChainBlockStats returns block stats from spec (spec.AllowedBlockLagForQosSync, spec.AverageBlockTime, spec.BlockDistanceForFinalizedData)

func (*JsonRPCChainParser) CraftMessage

func (apip *JsonRPCChainParser) CraftMessage(parsing *spectypes.ParseDirective, connectionType string, craftData *CraftData, metadata []pairingtypes.Metadata) (ChainMessageForSend, error)

func (*JsonRPCChainParser) DataReliabilityParams

func (apip *JsonRPCChainParser) DataReliabilityParams() (enabled bool, dataReliabilityThreshold uint32)

DataReliabilityParams returns data reliability params from spec (spec.enabled and spec.dataReliabilityThreshold)

func (*JsonRPCChainParser) GetInternalPaths

func (apip *JsonRPCChainParser) GetInternalPaths() map[string]struct{}

func (*JsonRPCChainParser) GetUniqueName

func (bcp *JsonRPCChainParser) GetUniqueName() string

func (*JsonRPCChainParser) ParseMsg

func (apip *JsonRPCChainParser) ParseMsg(url string, data []byte, connectionType string, metadata []pairingtypes.Metadata, extensionInfo extensionslib.ExtensionInfo) (ChainMessage, error)

this func parses message data into chain message object

func (*JsonRPCChainParser) SetSpec

func (apip *JsonRPCChainParser) SetSpec(spec spectypes.Spec)

SetSpec sets the spec for the JsonRPCChainParser

type JsonRPCErrorHandler

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

func (*JsonRPCErrorHandler) HandleJSONFormatError

func (geh *JsonRPCErrorHandler) HandleJSONFormatError(replyData []byte) error

func (*JsonRPCErrorHandler) HandleNodeError

func (jeh *JsonRPCErrorHandler) HandleNodeError(ctx context.Context, nodeError error) error

func (*JsonRPCErrorHandler) HandleStatusError

func (geh *JsonRPCErrorHandler) HandleStatusError(statusCode int, strict bool) error

func (*JsonRPCErrorHandler) ValidateRequestAndResponseIds

func (geh *JsonRPCErrorHandler) ValidateRequestAndResponseIds(nodeMessageID json.RawMessage, replyMsgID json.RawMessage) error

type LavaChainFetcher

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

func NewLavaChainFetcher

func NewLavaChainFetcher(ctx context.Context, clientCtx client.Context) *LavaChainFetcher

func (*LavaChainFetcher) FetchBlockHashByNum

func (lcf *LavaChainFetcher) FetchBlockHashByNum(ctx context.Context, blockNum int64) (string, error)

func (*LavaChainFetcher) FetchChainID

func (lcf *LavaChainFetcher) FetchChainID(ctx context.Context) (string, string, error)

func (*LavaChainFetcher) FetchEndpoint

func (lcf *LavaChainFetcher) FetchEndpoint() lavasession.RPCProviderEndpoint

func (*LavaChainFetcher) FetchLatestBlockNum

func (lcf *LavaChainFetcher) FetchLatestBlockNum(ctx context.Context) (int64, error)

type MethodRoute added in v2.5.3

type MethodRoute struct {
	lavasession.RouterKey
	// contains filtered or unexported fields
}

type MockChainFetcherIf

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

MockChainFetcherIf is a mock of ChainFetcherIf interface.

func NewMockChainFetcherIf

func NewMockChainFetcherIf(ctrl *gomock.Controller) *MockChainFetcherIf

NewMockChainFetcherIf creates a new mock instance.

func (*MockChainFetcherIf) EXPECT

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockChainFetcherIf) FetchBlockHashByNum

func (m *MockChainFetcherIf) FetchBlockHashByNum(ctx context.Context, blockNum int64) (string, error)

FetchBlockHashByNum mocks base method.

func (*MockChainFetcherIf) FetchEndpoint

FetchEndpoint mocks base method.

func (*MockChainFetcherIf) FetchLatestBlockNum

func (m *MockChainFetcherIf) FetchLatestBlockNum(ctx context.Context) (int64, error)

FetchLatestBlockNum mocks base method.

func (*MockChainFetcherIf) Validate

func (m *MockChainFetcherIf) Validate(ctx context.Context) error

Validate mocks base method.

type MockChainFetcherIfMockRecorder

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

MockChainFetcherIfMockRecorder is the mock recorder for MockChainFetcherIf.

func (*MockChainFetcherIfMockRecorder) FetchBlockHashByNum

func (mr *MockChainFetcherIfMockRecorder) FetchBlockHashByNum(ctx, blockNum any) *gomock.Call

FetchBlockHashByNum indicates an expected call of FetchBlockHashByNum.

func (*MockChainFetcherIfMockRecorder) FetchEndpoint

func (mr *MockChainFetcherIfMockRecorder) FetchEndpoint() *gomock.Call

FetchEndpoint indicates an expected call of FetchEndpoint.

func (*MockChainFetcherIfMockRecorder) FetchLatestBlockNum

func (mr *MockChainFetcherIfMockRecorder) FetchLatestBlockNum(ctx any) *gomock.Call

FetchLatestBlockNum indicates an expected call of FetchLatestBlockNum.

func (*MockChainFetcherIfMockRecorder) Validate

func (mr *MockChainFetcherIfMockRecorder) Validate(ctx any) *gomock.Call

Validate indicates an expected call of Validate.

type MockChainListener added in v2.4.0

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

MockChainListener is a mock of ChainListener interface.

func NewMockChainListener added in v2.4.0

func NewMockChainListener(ctrl *gomock.Controller) *MockChainListener

NewMockChainListener creates a new mock instance.

func (*MockChainListener) EXPECT added in v2.4.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockChainListener) GetListeningAddress added in v2.5.3

func (m *MockChainListener) GetListeningAddress() string

GetListeningAddress mocks base method.

func (*MockChainListener) Serve added in v2.4.0

func (m *MockChainListener) Serve(ctx context.Context, cmdFlags common.ConsumerCmdFlags)

Serve mocks base method.

type MockChainListenerMockRecorder added in v2.4.0

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

MockChainListenerMockRecorder is the mock recorder for MockChainListener.

func (*MockChainListenerMockRecorder) GetListeningAddress added in v2.5.3

func (mr *MockChainListenerMockRecorder) GetListeningAddress() *gomock.Call

GetListeningAddress indicates an expected call of GetListeningAddress.

func (*MockChainListenerMockRecorder) Serve added in v2.4.0

func (mr *MockChainListenerMockRecorder) Serve(ctx, cmdFlags interface{}) *gomock.Call

Serve indicates an expected call of Serve.

type MockChainMessage added in v2.4.0

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

MockChainMessage is a mock of ChainMessage interface.

func NewMockChainMessage added in v2.4.0

func NewMockChainMessage(ctrl *gomock.Controller) *MockChainMessage

NewMockChainMessage creates a new mock instance.

func (*MockChainMessage) AppendHeader added in v2.4.0

func (m *MockChainMessage) AppendHeader(metadata []types.Metadata)

AppendHeader mocks base method.

func (*MockChainMessage) CheckResponseError added in v2.4.0

func (m *MockChainMessage) CheckResponseError(data []byte, httpStatusCode int) (bool, string)

CheckResponseError mocks base method.

func (*MockChainMessage) DisableErrorHandling added in v2.4.0

func (m *MockChainMessage) DisableErrorHandling()

DisableErrorHandling mocks base method.

func (*MockChainMessage) EXPECT added in v2.4.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockChainMessage) GetApi added in v2.4.0

func (m *MockChainMessage) GetApi() *types0.Api

GetApi mocks base method.

func (*MockChainMessage) GetApiCollection added in v2.4.0

func (m *MockChainMessage) GetApiCollection() *types0.ApiCollection

GetApiCollection mocks base method.

func (*MockChainMessage) GetExtensions added in v2.4.0

func (m *MockChainMessage) GetExtensions() []*types0.Extension

GetExtensions mocks base method.

func (*MockChainMessage) GetForceCacheRefresh added in v2.4.0

func (m *MockChainMessage) GetForceCacheRefresh() bool

GetForceCacheRefresh mocks base method.

func (*MockChainMessage) GetParseDirective added in v2.4.0

func (m *MockChainMessage) GetParseDirective() *types0.ParseDirective

GetParseDirective mocks base method.

func (*MockChainMessage) GetRPCMessage added in v2.4.0

GetRPCMessage mocks base method.

func (*MockChainMessage) GetRawRequestHash added in v2.5.3

func (m *MockChainMessage) GetRawRequestHash() ([]byte, error)

GetRawRequestHash mocks base method.

func (*MockChainMessage) OverrideExtensions added in v2.4.0

func (m *MockChainMessage) OverrideExtensions(extensionNames []string, extensionParser *extensionslib.ExtensionParser)

OverrideExtensions mocks base method.

func (*MockChainMessage) RequestedBlock added in v2.4.0

func (m *MockChainMessage) RequestedBlock() (int64, int64)

RequestedBlock mocks base method.

func (*MockChainMessage) SetForceCacheRefresh added in v2.4.0

func (m *MockChainMessage) SetForceCacheRefresh(force bool) bool

SetForceCacheRefresh mocks base method.

func (*MockChainMessage) SubscriptionIdExtractor added in v2.5.3

func (m *MockChainMessage) SubscriptionIdExtractor(reply *rpcclient.JsonrpcMessage) string

SubscriptionIdExtractor mocks base method.

func (*MockChainMessage) TimeoutOverride added in v2.4.0

func (m *MockChainMessage) TimeoutOverride(arg0 ...time.Duration) time.Duration

TimeoutOverride mocks base method.

func (*MockChainMessage) UpdateLatestBlockInMessage added in v2.4.0

func (m *MockChainMessage) UpdateLatestBlockInMessage(latestBlock int64, modifyContent bool) bool

UpdateLatestBlockInMessage mocks base method.

type MockChainMessageForSend added in v2.4.0

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

MockChainMessageForSend is a mock of ChainMessageForSend interface.

func NewMockChainMessageForSend added in v2.4.0

func NewMockChainMessageForSend(ctrl *gomock.Controller) *MockChainMessageForSend

NewMockChainMessageForSend creates a new mock instance.

func (*MockChainMessageForSend) CheckResponseError added in v2.5.3

func (m *MockChainMessageForSend) CheckResponseError(data []byte, httpStatusCode int) (bool, string)

CheckResponseError mocks base method.

func (*MockChainMessageForSend) EXPECT added in v2.4.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockChainMessageForSend) GetApi added in v2.4.0

func (m *MockChainMessageForSend) GetApi() *types0.Api

GetApi mocks base method.

func (*MockChainMessageForSend) GetApiCollection added in v2.4.0

func (m *MockChainMessageForSend) GetApiCollection() *types0.ApiCollection

GetApiCollection mocks base method.

func (*MockChainMessageForSend) GetParseDirective added in v2.4.0

func (m *MockChainMessageForSend) GetParseDirective() *types0.ParseDirective

GetParseDirective mocks base method.

func (*MockChainMessageForSend) GetRPCMessage added in v2.4.0

GetRPCMessage mocks base method.

func (*MockChainMessageForSend) TimeoutOverride added in v2.4.0

func (m *MockChainMessageForSend) TimeoutOverride(arg0 ...time.Duration) time.Duration

TimeoutOverride mocks base method.

type MockChainMessageForSendMockRecorder added in v2.4.0

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

MockChainMessageForSendMockRecorder is the mock recorder for MockChainMessageForSend.

func (*MockChainMessageForSendMockRecorder) CheckResponseError added in v2.5.3

func (mr *MockChainMessageForSendMockRecorder) CheckResponseError(data, httpStatusCode interface{}) *gomock.Call

CheckResponseError indicates an expected call of CheckResponseError.

func (*MockChainMessageForSendMockRecorder) GetApi added in v2.4.0

GetApi indicates an expected call of GetApi.

func (*MockChainMessageForSendMockRecorder) GetApiCollection added in v2.4.0

func (mr *MockChainMessageForSendMockRecorder) GetApiCollection() *gomock.Call

GetApiCollection indicates an expected call of GetApiCollection.

func (*MockChainMessageForSendMockRecorder) GetParseDirective added in v2.4.0

func (mr *MockChainMessageForSendMockRecorder) GetParseDirective() *gomock.Call

GetParseDirective indicates an expected call of GetParseDirective.

func (*MockChainMessageForSendMockRecorder) GetRPCMessage added in v2.4.0

func (mr *MockChainMessageForSendMockRecorder) GetRPCMessage() *gomock.Call

GetRPCMessage indicates an expected call of GetRPCMessage.

func (*MockChainMessageForSendMockRecorder) TimeoutOverride added in v2.4.0

func (mr *MockChainMessageForSendMockRecorder) TimeoutOverride(arg0 ...interface{}) *gomock.Call

TimeoutOverride indicates an expected call of TimeoutOverride.

type MockChainMessageMockRecorder added in v2.4.0

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

MockChainMessageMockRecorder is the mock recorder for MockChainMessage.

func (*MockChainMessageMockRecorder) AppendHeader added in v2.4.0

func (mr *MockChainMessageMockRecorder) AppendHeader(metadata interface{}) *gomock.Call

AppendHeader indicates an expected call of AppendHeader.

func (*MockChainMessageMockRecorder) CheckResponseError added in v2.4.0

func (mr *MockChainMessageMockRecorder) CheckResponseError(data, httpStatusCode interface{}) *gomock.Call

CheckResponseError indicates an expected call of CheckResponseError.

func (*MockChainMessageMockRecorder) DisableErrorHandling added in v2.4.0

func (mr *MockChainMessageMockRecorder) DisableErrorHandling() *gomock.Call

DisableErrorHandling indicates an expected call of DisableErrorHandling.

func (*MockChainMessageMockRecorder) GetApi added in v2.4.0

GetApi indicates an expected call of GetApi.

func (*MockChainMessageMockRecorder) GetApiCollection added in v2.4.0

func (mr *MockChainMessageMockRecorder) GetApiCollection() *gomock.Call

GetApiCollection indicates an expected call of GetApiCollection.

func (*MockChainMessageMockRecorder) GetExtensions added in v2.4.0

func (mr *MockChainMessageMockRecorder) GetExtensions() *gomock.Call

GetExtensions indicates an expected call of GetExtensions.

func (*MockChainMessageMockRecorder) GetForceCacheRefresh added in v2.4.0

func (mr *MockChainMessageMockRecorder) GetForceCacheRefresh() *gomock.Call

GetForceCacheRefresh indicates an expected call of GetForceCacheRefresh.

func (*MockChainMessageMockRecorder) GetParseDirective added in v2.4.0

func (mr *MockChainMessageMockRecorder) GetParseDirective() *gomock.Call

GetParseDirective indicates an expected call of GetParseDirective.

func (*MockChainMessageMockRecorder) GetRPCMessage added in v2.4.0

func (mr *MockChainMessageMockRecorder) GetRPCMessage() *gomock.Call

GetRPCMessage indicates an expected call of GetRPCMessage.

func (*MockChainMessageMockRecorder) GetRawRequestHash added in v2.5.3

func (mr *MockChainMessageMockRecorder) GetRawRequestHash() *gomock.Call

GetRawRequestHash indicates an expected call of GetRawRequestHash.

func (*MockChainMessageMockRecorder) OverrideExtensions added in v2.4.0

func (mr *MockChainMessageMockRecorder) OverrideExtensions(extensionNames, extensionParser interface{}) *gomock.Call

OverrideExtensions indicates an expected call of OverrideExtensions.

func (*MockChainMessageMockRecorder) RequestedBlock added in v2.4.0

func (mr *MockChainMessageMockRecorder) RequestedBlock() *gomock.Call

RequestedBlock indicates an expected call of RequestedBlock.

func (*MockChainMessageMockRecorder) SetForceCacheRefresh added in v2.4.0

func (mr *MockChainMessageMockRecorder) SetForceCacheRefresh(force interface{}) *gomock.Call

SetForceCacheRefresh indicates an expected call of SetForceCacheRefresh.

func (*MockChainMessageMockRecorder) SubscriptionIdExtractor added in v2.5.3

func (mr *MockChainMessageMockRecorder) SubscriptionIdExtractor(reply interface{}) *gomock.Call

SubscriptionIdExtractor indicates an expected call of SubscriptionIdExtractor.

func (*MockChainMessageMockRecorder) TimeoutOverride added in v2.4.0

func (mr *MockChainMessageMockRecorder) TimeoutOverride(arg0 ...interface{}) *gomock.Call

TimeoutOverride indicates an expected call of TimeoutOverride.

func (*MockChainMessageMockRecorder) UpdateLatestBlockInMessage added in v2.4.0

func (mr *MockChainMessageMockRecorder) UpdateLatestBlockInMessage(latestBlock, modifyContent interface{}) *gomock.Call

UpdateLatestBlockInMessage indicates an expected call of UpdateLatestBlockInMessage.

type MockChainParser added in v2.4.0

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

MockChainParser is a mock of ChainParser interface.

func NewMockChainParser added in v2.4.0

func NewMockChainParser(ctrl *gomock.Controller) *MockChainParser

NewMockChainParser creates a new mock instance.

func (*MockChainParser) Activate added in v2.4.0

func (m *MockChainParser) Activate()

Activate mocks base method.

func (*MockChainParser) Active added in v2.4.0

func (m *MockChainParser) Active() bool

Active mocks base method.

func (*MockChainParser) ChainBlockStats added in v2.4.0

func (m *MockChainParser) ChainBlockStats() (int64, time.Duration, uint32, uint32)

ChainBlockStats mocks base method.

func (*MockChainParser) CraftMessage added in v2.4.0

func (m *MockChainParser) CraftMessage(parser *types0.ParseDirective, connectionType string, craftData *CraftData, metadata []types.Metadata) (ChainMessageForSend, error)

CraftMessage mocks base method.

func (*MockChainParser) DataReliabilityParams added in v2.4.0

func (m *MockChainParser) DataReliabilityParams() (bool, uint32)

DataReliabilityParams mocks base method.

func (*MockChainParser) EXPECT added in v2.4.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockChainParser) ExtensionsParser added in v2.4.0

func (m *MockChainParser) ExtensionsParser() *extensionslib.ExtensionParser

ExtensionsParser mocks base method.

func (*MockChainParser) GetParsingByTag added in v2.4.0

GetParsingByTag mocks base method.

func (*MockChainParser) GetUniqueName added in v2.4.0

func (m *MockChainParser) GetUniqueName() string

GetUniqueName mocks base method.

func (*MockChainParser) GetVerifications added in v2.4.0

func (m *MockChainParser) GetVerifications(supported []string) ([]VerificationContainer, error)

GetVerifications mocks base method.

func (*MockChainParser) HandleHeaders added in v2.4.0

func (m *MockChainParser) HandleHeaders(metadata []types.Metadata, apiCollection *types0.ApiCollection, headersDirection types0.Header_HeaderType) ([]types.Metadata, string, []types.Metadata)

HandleHeaders mocks base method.

func (*MockChainParser) ParseMsg added in v2.4.0

func (m *MockChainParser) ParseMsg(url string, data []byte, connectionType string, metadata []types.Metadata, extensionInfo extensionslib.ExtensionInfo) (ChainMessage, error)

ParseMsg mocks base method.

func (*MockChainParser) SeparateAddonsExtensions added in v2.4.0

func (m *MockChainParser) SeparateAddonsExtensions(supported []string) ([]string, []string, error)

SeparateAddonsExtensions mocks base method.

func (*MockChainParser) SetPolicy added in v2.4.0

func (m *MockChainParser) SetPolicy(policy PolicyInf, chainId, apiInterface string) error

SetPolicy mocks base method.

func (*MockChainParser) SetSpec added in v2.4.0

func (m *MockChainParser) SetSpec(spec types0.Spec)

SetSpec mocks base method.

func (*MockChainParser) UpdateBlockTime added in v2.4.0

func (m *MockChainParser) UpdateBlockTime(newBlockTime time.Duration)

UpdateBlockTime mocks base method.

type MockChainParserMockRecorder added in v2.4.0

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

MockChainParserMockRecorder is the mock recorder for MockChainParser.

func (*MockChainParserMockRecorder) Activate added in v2.4.0

func (mr *MockChainParserMockRecorder) Activate() *gomock.Call

Activate indicates an expected call of Activate.

func (*MockChainParserMockRecorder) Active added in v2.4.0

func (mr *MockChainParserMockRecorder) Active() *gomock.Call

Active indicates an expected call of Active.

func (*MockChainParserMockRecorder) ChainBlockStats added in v2.4.0

func (mr *MockChainParserMockRecorder) ChainBlockStats() *gomock.Call

ChainBlockStats indicates an expected call of ChainBlockStats.

func (*MockChainParserMockRecorder) CraftMessage added in v2.4.0

func (mr *MockChainParserMockRecorder) CraftMessage(parser, connectionType, craftData, metadata interface{}) *gomock.Call

CraftMessage indicates an expected call of CraftMessage.

func (*MockChainParserMockRecorder) DataReliabilityParams added in v2.4.0

func (mr *MockChainParserMockRecorder) DataReliabilityParams() *gomock.Call

DataReliabilityParams indicates an expected call of DataReliabilityParams.

func (*MockChainParserMockRecorder) ExtensionsParser added in v2.4.0

func (mr *MockChainParserMockRecorder) ExtensionsParser() *gomock.Call

ExtensionsParser indicates an expected call of ExtensionsParser.

func (*MockChainParserMockRecorder) GetParsingByTag added in v2.4.0

func (mr *MockChainParserMockRecorder) GetParsingByTag(tag interface{}) *gomock.Call

GetParsingByTag indicates an expected call of GetParsingByTag.

func (*MockChainParserMockRecorder) GetUniqueName added in v2.4.0

func (mr *MockChainParserMockRecorder) GetUniqueName() *gomock.Call

GetUniqueName indicates an expected call of GetUniqueName.

func (*MockChainParserMockRecorder) GetVerifications added in v2.4.0

func (mr *MockChainParserMockRecorder) GetVerifications(supported interface{}) *gomock.Call

GetVerifications indicates an expected call of GetVerifications.

func (*MockChainParserMockRecorder) HandleHeaders added in v2.4.0

func (mr *MockChainParserMockRecorder) HandleHeaders(metadata, apiCollection, headersDirection interface{}) *gomock.Call

HandleHeaders indicates an expected call of HandleHeaders.

func (*MockChainParserMockRecorder) ParseMsg added in v2.4.0

func (mr *MockChainParserMockRecorder) ParseMsg(url, data, connectionType, metadata, extensionInfo interface{}) *gomock.Call

ParseMsg indicates an expected call of ParseMsg.

func (*MockChainParserMockRecorder) SeparateAddonsExtensions added in v2.4.0

func (mr *MockChainParserMockRecorder) SeparateAddonsExtensions(supported interface{}) *gomock.Call

SeparateAddonsExtensions indicates an expected call of SeparateAddonsExtensions.

func (*MockChainParserMockRecorder) SetPolicy added in v2.4.0

func (mr *MockChainParserMockRecorder) SetPolicy(policy, chainId, apiInterface interface{}) *gomock.Call

SetPolicy indicates an expected call of SetPolicy.

func (*MockChainParserMockRecorder) SetSpec added in v2.4.0

func (mr *MockChainParserMockRecorder) SetSpec(spec interface{}) *gomock.Call

SetSpec indicates an expected call of SetSpec.

func (*MockChainParserMockRecorder) UpdateBlockTime added in v2.4.0

func (mr *MockChainParserMockRecorder) UpdateBlockTime(newBlockTime interface{}) *gomock.Call

UpdateBlockTime indicates an expected call of UpdateBlockTime.

type MockChainProxy added in v2.4.0

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

MockChainProxy is a mock of ChainProxy interface.

func NewMockChainProxy added in v2.4.0

func NewMockChainProxy(ctrl *gomock.Controller) *MockChainProxy

NewMockChainProxy creates a new mock instance.

func (*MockChainProxy) EXPECT added in v2.4.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockChainProxy) GetChainProxyInformation added in v2.4.0

func (m *MockChainProxy) GetChainProxyInformation() (common.NodeUrl, string)

GetChainProxyInformation mocks base method.

func (*MockChainProxy) SendNodeMsg added in v2.4.0

func (m *MockChainProxy) SendNodeMsg(ctx context.Context, ch chan interface{}, chainMessage ChainMessageForSend) (*RelayReplyWrapper, string, *rpcclient.ClientSubscription, error)

SendNodeMsg mocks base method.

type MockChainProxyMockRecorder added in v2.4.0

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

MockChainProxyMockRecorder is the mock recorder for MockChainProxy.

func (*MockChainProxyMockRecorder) GetChainProxyInformation added in v2.4.0

func (mr *MockChainProxyMockRecorder) GetChainProxyInformation() *gomock.Call

GetChainProxyInformation indicates an expected call of GetChainProxyInformation.

func (*MockChainProxyMockRecorder) SendNodeMsg added in v2.4.0

func (mr *MockChainProxyMockRecorder) SendNodeMsg(ctx, ch, chainMessage interface{}) *gomock.Call

SendNodeMsg indicates an expected call of SendNodeMsg.

type MockChainRouter added in v2.4.0

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

MockChainRouter is a mock of ChainRouter interface.

func NewMockChainRouter added in v2.4.0

func NewMockChainRouter(ctrl *gomock.Controller) *MockChainRouter

NewMockChainRouter creates a new mock instance.

func (*MockChainRouter) EXPECT added in v2.4.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockChainRouter) ExtensionsSupported added in v2.4.0

func (m *MockChainRouter) ExtensionsSupported(arg0 []string) bool

ExtensionsSupported mocks base method.

func (*MockChainRouter) SendNodeMsg added in v2.4.0

func (m *MockChainRouter) SendNodeMsg(ctx context.Context, ch chan interface{}, chainMessage ChainMessageForSend, extensions []string) (*RelayReplyWrapper, string, *rpcclient.ClientSubscription, common.NodeUrl, string, error)

SendNodeMsg mocks base method.

type MockChainRouterMockRecorder added in v2.4.0

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

MockChainRouterMockRecorder is the mock recorder for MockChainRouter.

func (*MockChainRouterMockRecorder) ExtensionsSupported added in v2.4.0

func (mr *MockChainRouterMockRecorder) ExtensionsSupported(arg0 interface{}) *gomock.Call

ExtensionsSupported indicates an expected call of ExtensionsSupported.

func (*MockChainRouterMockRecorder) SendNodeMsg added in v2.4.0

func (mr *MockChainRouterMockRecorder) SendNodeMsg(ctx, ch, chainMessage, extensions interface{}) *gomock.Call

SendNodeMsg indicates an expected call of SendNodeMsg.

type MockHealthReporter added in v2.4.0

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

MockHealthReporter is a mock of HealthReporter interface.

func NewMockHealthReporter added in v2.4.0

func NewMockHealthReporter(ctrl *gomock.Controller) *MockHealthReporter

NewMockHealthReporter creates a new mock instance.

func (*MockHealthReporter) EXPECT added in v2.4.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockHealthReporter) IsHealthy added in v2.4.0

func (m *MockHealthReporter) IsHealthy() bool

IsHealthy mocks base method.

type MockHealthReporterMockRecorder added in v2.4.0

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

MockHealthReporterMockRecorder is the mock recorder for MockHealthReporter.

func (*MockHealthReporterMockRecorder) IsHealthy added in v2.4.0

func (mr *MockHealthReporterMockRecorder) IsHealthy() *gomock.Call

IsHealthy indicates an expected call of IsHealthy.

type MockRelaySender added in v2.4.0

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

MockRelaySender is a mock of RelaySender interface.

func NewMockRelaySender added in v2.4.0

func NewMockRelaySender(ctrl *gomock.Controller) *MockRelaySender

NewMockRelaySender creates a new mock instance.

func (*MockRelaySender) CancelSubscriptionContext added in v2.4.0

func (m *MockRelaySender) CancelSubscriptionContext(subscriptionKey string)

CancelSubscriptionContext mocks base method.

func (*MockRelaySender) CreateDappKey added in v2.4.0

func (m *MockRelaySender) CreateDappKey(dappID, consumerIp string) string

CreateDappKey mocks base method.

func (*MockRelaySender) EXPECT added in v2.4.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockRelaySender) ParseRelay added in v2.4.0

func (m *MockRelaySender) ParseRelay(ctx context.Context, url, req, connectionType, dappID, consumerIp string, analytics *metrics.RelayMetrics, metadata []types.Metadata) (ProtocolMessage, error)

ParseRelay mocks base method.

func (*MockRelaySender) SendParsedRelay added in v2.4.0

func (m *MockRelaySender) SendParsedRelay(ctx context.Context, dappID, consumerIp string, analytics *metrics.RelayMetrics, protocolMessage ProtocolMessage) (*common.RelayResult, error)

SendParsedRelay mocks base method.

func (*MockRelaySender) SendRelay added in v2.4.0

func (m *MockRelaySender) SendRelay(ctx context.Context, url, req, connectionType, dappID, consumerIp string, analytics *metrics.RelayMetrics, metadataValues []types.Metadata) (*common.RelayResult, error)

SendRelay mocks base method.

func (*MockRelaySender) SetConsistencySeenBlock added in v2.4.0

func (m *MockRelaySender) SetConsistencySeenBlock(blockSeen int64, key string)

SetConsistencySeenBlock mocks base method.

type MockRelaySenderMockRecorder added in v2.4.0

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

MockRelaySenderMockRecorder is the mock recorder for MockRelaySender.

func (*MockRelaySenderMockRecorder) CancelSubscriptionContext added in v2.4.0

func (mr *MockRelaySenderMockRecorder) CancelSubscriptionContext(subscriptionKey interface{}) *gomock.Call

CancelSubscriptionContext indicates an expected call of CancelSubscriptionContext.

func (*MockRelaySenderMockRecorder) CreateDappKey added in v2.4.0

func (mr *MockRelaySenderMockRecorder) CreateDappKey(dappID, consumerIp interface{}) *gomock.Call

CreateDappKey indicates an expected call of CreateDappKey.

func (*MockRelaySenderMockRecorder) ParseRelay added in v2.4.0

func (mr *MockRelaySenderMockRecorder) ParseRelay(ctx, url, req, connectionType, dappID, consumerIp, analytics, metadata interface{}) *gomock.Call

ParseRelay indicates an expected call of ParseRelay.

func (*MockRelaySenderMockRecorder) SendParsedRelay added in v2.4.0

func (mr *MockRelaySenderMockRecorder) SendParsedRelay(ctx, dappID, consumerIp, analytics, protocolMessage interface{}) *gomock.Call

SendParsedRelay indicates an expected call of SendParsedRelay.

func (*MockRelaySenderMockRecorder) SendRelay added in v2.4.0

func (mr *MockRelaySenderMockRecorder) SendRelay(ctx, url, req, connectionType, dappID, consumerIp, analytics, metadataValues interface{}) *gomock.Call

SendRelay indicates an expected call of SendRelay.

func (*MockRelaySenderMockRecorder) SetConsistencySeenBlock added in v2.4.0

func (mr *MockRelaySenderMockRecorder) SetConsistencySeenBlock(blockSeen, key interface{}) *gomock.Call

SetConsistencySeenBlock indicates an expected call of SetConsistencySeenBlock.

type PolicyInf

type PolicyInf interface {
	GetSupportedAddons(specID string) (addons []string, err error)
	GetSupportedExtensions(specID string) (extensions []epochstorage.EndpointService, err error)
}

type ProtocolMessage added in v2.5.3

type ProtocolMessage interface {
	ChainMessage
	GetDirectiveHeaders() map[string]string
	RelayPrivateData() *pairingtypes.RelayPrivateData
	HashCacheRequest(chainId string) ([]byte, func([]byte) []byte, error)
	GetBlockedProviders() []string
}

func NewProtocolMessage added in v2.5.3

func NewProtocolMessage(chainMessage ChainMessage, directiveHeaders map[string]string, relayRequestData *pairingtypes.RelayPrivateData) ProtocolMessage

type ProviderNodeSubscriptionManager added in v2.4.0

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

func NewProviderNodeSubscriptionManager added in v2.4.0

func NewProviderNodeSubscriptionManager(chainRouter ChainRouter, chainParser ChainParser, relayFinalizationBlocksHandler relayFinalizationBlocksHandler, privKey *btcec.PrivateKey) *ProviderNodeSubscriptionManager

func (*ProviderNodeSubscriptionManager) AddConsumer added in v2.4.0

func (pnsm *ProviderNodeSubscriptionManager) AddConsumer(ctx context.Context, request *pairingtypes.RelayRequest, chainMessage ChainMessage, consumerAddr sdk.AccAddress, consumerChannel chan<- *pairingtypes.RelayReply, consumerProcessGuid string) (subscriptionId string, err error)

func (*ProviderNodeSubscriptionManager) RemoveConsumer added in v2.4.0

func (pnsm *ProviderNodeSubscriptionManager) RemoveConsumer(ctx context.Context, chainMessage ChainMessageForSend, consumerAddr sdk.AccAddress, closeConsumerChannel bool, consumerProcessGuid string) error

type RefererData

type RefererData struct {
	Address        string
	Marker         string
	ReferrerClient *metrics.ConsumerReferrerClient
}

func (*RefererData) SendReferer

func (rd *RefererData) SendReferer(refererMatchString string, chainId string, msg string, userIp string, headers map[string][]string, c *websocket.Conn) error

type RelayReplyWrapper

type RelayReplyWrapper struct {
	StatusCode int
	RelayReply *pairingtypes.RelayReply
}

type RelaySender

type RelaySender interface {
	SendRelay(
		ctx context.Context,
		url string,
		req string,
		connectionType string,
		dappID string,
		consumerIp string,
		analytics *metrics.RelayMetrics,
		metadataValues []pairingtypes.Metadata,
	) (*common.RelayResult, error)
	ParseRelay(
		ctx context.Context,
		url string,
		req string,
		connectionType string,
		dappID string,
		consumerIp string,
		analytics *metrics.RelayMetrics,
		metadata []pairingtypes.Metadata,
	) (ProtocolMessage, error)
	SendParsedRelay(
		ctx context.Context,
		dappID string,
		consumerIp string,
		analytics *metrics.RelayMetrics,
		protocolMessage ProtocolMessage,
	) (relayResult *common.RelayResult, errRet error)
	CreateDappKey(dappID, consumerIp string) string
	CancelSubscriptionContext(subscriptionKey string)
	SetConsistencySeenBlock(blockSeen int64, key string)
}

type RestChainListener

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

func NewRestChainListener

func NewRestChainListener(ctx context.Context, listenEndpoint *lavasession.RPCEndpoint,
	relaySender RelaySender, healthReporter HealthReporter,
	rpcConsumerLogs *metrics.RPCConsumerLogs,
	refererData *RefererData,
) (chainListener *RestChainListener)

NewRestChainListener creates a new instance of RestChainListener

func (*RestChainListener) GetListeningAddress added in v2.4.0

func (apil *RestChainListener) GetListeningAddress() string

func (*RestChainListener) Serve

func (apil *RestChainListener) Serve(ctx context.Context, cmdFlags common.ConsumerCmdFlags)

Serve http server for RestChainListener

type RestChainParser

type RestChainParser struct {
	BaseChainParser
}

func NewRestChainParser

func NewRestChainParser() (chainParser *RestChainParser, err error)

NewRestChainParser creates a new instance of RestChainParser

func (*RestChainParser) ChainBlockStats

func (apip *RestChainParser) ChainBlockStats() (allowedBlockLagForQosSync int64, averageBlockTime time.Duration, blockDistanceForFinalizedData, blocksInFinalizationProof uint32)

ChainBlockStats returns block stats from spec (spec.AllowedBlockLagForQosSync, spec.AverageBlockTime, spec.BlockDistanceForFinalizedData)

func (*RestChainParser) CraftMessage

func (apip *RestChainParser) CraftMessage(parsing *spectypes.ParseDirective, connectionType string, craftData *CraftData, metadata []pairingtypes.Metadata) (ChainMessageForSend, error)

func (*RestChainParser) DataReliabilityParams

func (apip *RestChainParser) DataReliabilityParams() (enabled bool, dataReliabilityThreshold uint32)

DataReliabilityParams returns data reliability params from spec (spec.enabled and spec.dataReliabilityThreshold)

func (*RestChainParser) GetUniqueName

func (bcp *RestChainParser) GetUniqueName() string

func (*RestChainParser) ParseMsg

func (apip *RestChainParser) ParseMsg(urlPath string, data []byte, connectionType string, metadata []pairingtypes.Metadata, extensionInfo extensionslib.ExtensionInfo) (ChainMessage, error)

ParseMsg parses message data into chain message object

func (*RestChainParser) SetSpec

func (apip *RestChainParser) SetSpec(spec spectypes.Spec)

SetSpec sets the spec for the TendermintChainParser

type RestChainProxy

type RestChainProxy struct {
	BaseChainProxy
	// contains filtered or unexported fields
}

func (*RestChainProxy) SendNodeMsg

func (rcp *RestChainProxy) SendNodeMsg(ctx context.Context, ch chan interface{}, chainMessage ChainMessageForSend) (relayReply *RelayReplyWrapper, subscriptionID string, relayReplyServer *rpcclient.ClientSubscription, err error)

type RestErrorHandler

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

func (*RestErrorHandler) HandleJSONFormatError

func (geh *RestErrorHandler) HandleJSONFormatError(replyData []byte) error

func (*RestErrorHandler) HandleNodeError

func (rne *RestErrorHandler) HandleNodeError(ctx context.Context, nodeError error) error

Validating if the error is related to the provider connection or not returning nil if its not one of the expected connectivity error types

func (*RestErrorHandler) HandleStatusError

func (geh *RestErrorHandler) HandleStatusError(statusCode int, strict bool) error

func (*RestErrorHandler) ValidateRequestAndResponseIds

func (geh *RestErrorHandler) ValidateRequestAndResponseIds(nodeMessageID json.RawMessage, replyMsgID json.RawMessage) error

type TaggedContainer

type TaggedContainer struct {
	Parsing       *spectypes.ParseDirective
	ApiCollection *spectypes.ApiCollection
}

type TendermintChainParser

type TendermintChainParser struct {
	BaseChainParser
}

func NewTendermintRpcChainParser

func NewTendermintRpcChainParser() (chainParser *TendermintChainParser, err error)

NewTendermintRpcChainParser creates a new instance of TendermintChainParser

func (*TendermintChainParser) ChainBlockStats

func (apip *TendermintChainParser) ChainBlockStats() (allowedBlockLagForQosSync int64, averageBlockTime time.Duration, blockDistanceForFinalizedData, blocksInFinalizationProof uint32)

ChainBlockStats returns block stats from spec (spec.AllowedBlockLagForQosSync, spec.AverageBlockTime, spec.BlockDistanceForFinalizedData, spec.BlocksInFinalizationProof)

func (*TendermintChainParser) CraftMessage

func (apip *TendermintChainParser) CraftMessage(parsing *spectypes.ParseDirective, connectionType string, craftData *CraftData, metadata []pairingtypes.Metadata) (ChainMessageForSend, error)

func (*TendermintChainParser) DataReliabilityParams

func (apip *TendermintChainParser) DataReliabilityParams() (enabled bool, dataReliabilityThreshold uint32)

DataReliabilityParams returns data reliability params from spec (spec.enabled and spec.dataReliabilityThreshold)

func (*TendermintChainParser) GetUniqueName

func (bcp *TendermintChainParser) GetUniqueName() string

func (*TendermintChainParser) ParseMsg

func (apip *TendermintChainParser) ParseMsg(urlPath string, data []byte, connectionType string, metadata []pairingtypes.Metadata, extensionInfo extensionslib.ExtensionInfo) (ChainMessage, error)

ParseMsg parses message data into chain message object

func (*TendermintChainParser) SetSpec

func (apip *TendermintChainParser) SetSpec(spec spectypes.Spec)

SetSpec sets the spec for the TendermintChainParser

type TendermintRPCErrorHandler

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

func (*TendermintRPCErrorHandler) HandleJSONFormatError

func (geh *TendermintRPCErrorHandler) HandleJSONFormatError(replyData []byte) error

func (*TendermintRPCErrorHandler) HandleNodeError

func (tendermintErrorHandler *TendermintRPCErrorHandler) HandleNodeError(ctx context.Context, nodeError error) error

func (*TendermintRPCErrorHandler) HandleStatusError

func (geh *TendermintRPCErrorHandler) HandleStatusError(statusCode int, strict bool) error

func (*TendermintRPCErrorHandler) ValidateRequestAndResponseIds

func (geh *TendermintRPCErrorHandler) ValidateRequestAndResponseIds(nodeMessageID json.RawMessage, replyMsgID json.RawMessage) error

type TendermintRpcChainListener

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

func NewTendermintRpcChainListener

func NewTendermintRpcChainListener(ctx context.Context, listenEndpoint *lavasession.RPCEndpoint,
	relaySender RelaySender, healthReporter HealthReporter,
	rpcConsumerLogs *metrics.RPCConsumerLogs,
	refererData *RefererData,
	consumerWsSubscriptionManager *ConsumerWSSubscriptionManager,
) (chainListener *TendermintRpcChainListener)

NewTendermintRpcChainListener creates a new instance of TendermintRpcChainListener

func (*TendermintRpcChainListener) GetListeningAddress added in v2.4.0

func (apil *TendermintRpcChainListener) GetListeningAddress() string

func (*TendermintRpcChainListener) Serve

Serve http server for TendermintRpcChainListener

type TestStruct

type TestStruct struct {
	Ctx       context.Context
	Keepers   *keepertest.Keepers
	Servers   *keepertest.Servers
	Providers []sigs.Account
	Spec      spectypes.Spec
	Plan      plantypes.Plan
	Consumer  sigs.Account
	Validator sigs.Account
}

func SetupForTests

func SetupForTests(t *testing.T, numOfProviders int, specID string, getToTopMostPath string) TestStruct

func (*TestStruct) BondDenom

func (ts *TestStruct) BondDenom() string

type VerificationContainer

type VerificationContainer struct {
	ConnectionType string
	Name           string
	ParseDirective spectypes.ParseDirective
	Value          string
	LatestDistance uint64
	Severity       spectypes.ParseValue_VerificationSeverity
	VerificationKey
}

func (*VerificationContainer) IsActive

func (vc *VerificationContainer) IsActive() bool

type VerificationKey

type VerificationKey struct {
	Extension string
	Addon     string
}

Directories

Path Synopsis
rpcclient
package rpcclient implements bi-directional JSON-RPC 2.0 on multiple transports.
package rpcclient implements bi-directional JSON-RPC 2.0 on multiple transports.
testproto
Package testproto is a reverse proxy.
Package testproto is a reverse proxy.

Jump to

Keyboard shortcuts

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