rpc

package
v1.2.2-mainnet Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2024 License: MIT Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLogFilter = errors.Errorf(
		"Filter must provide one of the following: %v, %v, %v",
		"(1) an epoch range through `fromEpoch` and `toEpoch`",
		"(2) a block number range through `fromBlock` and `toBlock`",
		"(3) a set of block hashes through `blockHashes`",
	)

	ErrInvalidLogFilterBlockRange = errors.New(
		"invalid block range (from block larger than to block)",
	)

	ErrInvalidLogFilterEpochRange = errors.New(
		"invalid epoch range (from epoch larger than to epoch)",
	)

	ErrInvalidEthLogFilter = errors.Errorf(
		"Filter must provide one of the following: %v, %v",
		"(1) a block number range through `fromBlock` and `toBlock`",
		"(2) a set of block hashes through `blockHash`",
	)
)

Functions

func ErrExceedLogFilterAddrLimit

func ErrExceedLogFilterAddrLimit(size int) error

func ErrExceedLogFilterBlockHashLimit

func ErrExceedLogFilterBlockHashLimit(size int) error

func ErrExceedLogFilterTopicDimension

func ErrExceedLogFilterTopicDimension(size int) error

func ErrExceedLogFilterTopicLimit

func ErrExceedLogFilterTopicLimit(size int) error

func GetCfxClientFromContext

func GetCfxClientFromContext(ctx context.Context) sdk.ClientOperator

func GetClientGroupFromContext

func GetClientGroupFromContext(ctx context.Context) node.Group

func GetEthClientFromContext

func GetEthClientFromContext(ctx context.Context) *node.Web3goClient

func MustInit

func MustInit()

func MustNewDebugServer

func MustNewDebugServer() *rpc.Server

MustNewDebugServer new debug RPC server for internal debugging use.

func MustNewEvmSpaceServer

func MustNewEvmSpaceServer(
	registry *rate.Registry,
	clientProvider *infuraNode.EthClientProvider,
	gasHandler *handler.EthGasStationHandler,
	exposedModules []string,
	option ...EthAPIOption,
) *rpc.Server

MustNewEvmSpaceServer new evm space RPC server by specifying router, and exposed modules. `exposedModules` is a list of API modules to expose via the RPC interface. If the module list is empty, all RPC API endpoints designated public will be exposed.

func MustNewNativeSpaceBridgeServer

func MustNewNativeSpaceBridgeServer(registry *rate.Registry, config *CfxBridgeServerConfig) *rpc.Server

func MustNewNativeSpaceServer

func MustNewNativeSpaceServer(
	registry *rate.Registry,
	clientProvider *infuraNode.CfxClientProvider,
	gashandler *handler.CfxGasStationHandler,
	exposedModules []string,
	option ...CfxAPIOption,
) *rpc.Server

MustNewNativeSpaceServer new core space RPC server by specifying router, handler and exposed modules. Argument exposedModules is a list of API modules to expose via the RPC interface. If the module list is empty, all RPC API endpoints designated public will be exposed.

func NormalizeEthLogFilter

func NormalizeEthLogFilter(
	w3c *web3go.Client, flag LogFilterType,
	filter *web3Types.FilterQuery, hardforkBlockNum web3Types.BlockNumber,
) error

func NormalizeLogFilter

func NormalizeLogFilter(cfx sdk.ClientOperator, flag LogFilterType, filter *types.LogFilter) error

func ValidateEthLogFilter

func ValidateEthLogFilter(flag LogFilterType, filter *web3Types.FilterQuery) error

func ValidateLogFilter

func ValidateLogFilter(flag LogFilterType, filter *types.LogFilter) error

Types

type API

type API struct {
	Namespace string      // namespace under which the rpc methods of Service are exposed
	Version   string      // api version
	Service   interface{} // receiver instance which holds the methods
	Public    bool        // indication if the methods must be considered safe for public use
}

API describes the set of methods offered over the RPC interface

type CfxAPIOption

type CfxAPIOption struct {
	StoreHandler        *handler.CfxStoreHandler
	LogApiHandler       *handler.CfxLogsApiHandler
	TxnHandler          *handler.CfxTxnHandler
	VirtualFilterClient *vfclient.CfxClient
}

type CfxBridgeServerConfig

type CfxBridgeServerConfig struct {
	EthNode        string
	CfxNode        string
	ExposedModules []string
	Endpoint       string `default:":32537"`
}

type EthAPIOption

type EthAPIOption struct {
	StoreHandler        *handler.EthStoreHandler
	LogApiHandler       *handler.EthLogsApiHandler
	TxnHandler          *handler.EthTxnHandler
	VirtualFilterClient *vfclient.EthClient
}

type LogFilterType

type LogFilterType int
const (
	// Log filter types
	LogFilterTypeBlockHash  LogFilterType = 1 << iota // 0001
	LogFilterTypeEpochRange                           // 0010
	LogFilterTypeBlockRange                           // 0100
)

func ParseEthLogFilterType

func ParseEthLogFilterType(filter *web3Types.FilterQuery) (LogFilterType, bool)

func ParseLogFilterType

func ParseLogFilterType(filter *types.LogFilter) (LogFilterType, bool)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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