api

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2020 License: Apache-2.0 Imports: 44 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInternalServer indicates the internal server error
	ErrInternalServer = errors.New("internal server error")
	// ErrReceipt indicates the error of receipt
	ErrReceipt = errors.New("invalid receipt")
	// ErrAction indicates the error of action
	ErrAction = errors.New("invalid action")
)

Functions

This section is empty.

Types

type BroadcastOutbound

type BroadcastOutbound func(ctx context.Context, chainID uint32, msg proto.Message) error

BroadcastOutbound sends a broadcast message to the whole network

type Config

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

Config represents the config to setup api

type Listener added in v0.7.1

type Listener interface {
	Start() error
	Stop() error
	ReceiveBlock(*block.Block) error
	AddResponder(Responder) error
}

Listener pass new block to all responders

func NewChainListener added in v0.7.1

func NewChainListener() Listener

NewChainListener returns a new blockchain chainListener

type LogFilter added in v0.7.1

type LogFilter struct {
	*iotexapi.LogsFilter
	// contains filtered or unexported fields
}

LogFilter contains options for contract log filtering.

func (*LogFilter) Exit added in v0.7.1

func (l *LogFilter) Exit()

Exit send to error channel

func (*LogFilter) MatchLogs added in v0.9.0

func (l *LogFilter) MatchLogs(receipts []*action.Receipt) []*iotextypes.Log

MatchLogs returns matching logs in a given block

func (*LogFilter) Respond added in v0.7.1

func (l *LogFilter) Respond(blk *block.Block) error

Respond to new block

type Option

type Option func(cfg *Config) error

Option is the option to override the api config

func WithBroadcastOutbound

func WithBroadcastOutbound(broadcastHandler BroadcastOutbound) Option

WithBroadcastOutbound is the option to broadcast msg outbound

func WithNativeElection added in v0.9.0

func WithNativeElection(committee committee.Committee) Option

WithNativeElection is the option to return native election data through API.

type Responder added in v0.7.1

type Responder interface {
	Respond(*block.Block) error
	Exit()
}

Responder responds to new block

func NewBlockListener added in v0.7.1

func NewBlockListener(stream iotexapi.APIService_StreamBlocksServer, errChan chan error) Responder

NewBlockListener returns a new block listener

func NewLogFilter added in v0.7.1

func NewLogFilter(in *iotexapi.LogsFilter, stream iotexapi.APIService_StreamLogsServer, errChan chan error) Responder

NewLogFilter returns a new log filter

type Server

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

Server provides api for user to query blockchain data

func NewServer

func NewServer(
	cfg config.Config,
	chain blockchain.Blockchain,
	sf factory.Factory,
	dao blockdao.BlockDAO,
	indexer blockindex.Indexer,
	systemLogIndexer *systemlog.Indexer,
	actPool actpool.ActPool,
	registry *protocol.Registry,
	opts ...Option,
) (*Server, error)

NewServer creates a new server

func (*Server) EstimateActionGasConsumption added in v0.7.2

EstimateActionGasConsumption estimate gas consume for execution and transfer

func (*Server) EstimateGasForAction

EstimateGasForAction estimates gas for action

func (*Server) GetAccount

GetAccount returns the metadata of an account

func (*Server) GetActionByActionHash added in v0.11.0

func (api *Server) GetActionByActionHash(h hash.Hash256) (action.SealedEnvelope, error)

GetActionByActionHash returns action by action hash

func (*Server) GetActions

GetActions returns actions

func (*Server) GetBlockMetas

GetBlockMetas returns block metadata

func (*Server) GetChainMeta

GetChainMeta returns blockchain metadata

func (*Server) GetElectionBuckets added in v0.9.0

GetElectionBuckets returns the native election buckets.

func (*Server) GetEpochMeta

GetEpochMeta gets epoch metadata

func (*Server) GetEvmTransferByActionHash added in v0.11.0

func (api *Server) GetEvmTransferByActionHash(actionHash hash.Hash256) (*systemlogpb.ActionEvmTransfer, error)

GetEvmTransferByActionHash returns evm transfers by action hash

func (*Server) GetEvmTransferByBlockHeight added in v0.11.0

func (api *Server) GetEvmTransferByBlockHeight(blockHeight uint64) (*systemlogpb.BlockEvmTransfer, error)

GetEvmTransferByBlockHeight returns evm transfers by block height

func (*Server) GetLogs added in v0.7.1

GetLogs get logs filtered by contract address and topics

func (*Server) GetRawBlocks added in v0.6.0

GetRawBlocks gets raw block data

func (*Server) GetReceiptByAction

GetReceiptByAction gets receipt with corresponding action hash

func (*Server) GetReceiptByActionHash added in v0.11.0

func (api *Server) GetReceiptByActionHash(h hash.Hash256) (*action.Receipt, error)

GetReceiptByActionHash returns receipt by action hash

func (*Server) GetServerMeta

GetServerMeta gets the server metadata

func (*Server) GetVotes added in v0.8.1

GetVotes gets votes for req

func (*Server) ReadContract

ReadContract reads the state in a contract address specified by the slot

func (*Server) ReadState

ReadState reads state on blockchain

func (*Server) SendAction

SendAction is the API to send an action to blockchain.

func (*Server) Start

func (api *Server) Start() error

Start starts the API server

func (*Server) Stop

func (api *Server) Stop() error

Stop stops the API server

func (*Server) StreamBlocks added in v0.6.0

StreamBlocks streams blocks

func (*Server) StreamLogs added in v0.7.1

StreamLogs streams logs that match the filter condition

func (*Server) SuggestGasPrice

SuggestGasPrice suggests gas price

type ServiceClient added in v0.6.0

type ServiceClient interface {
	// get the address detail of an address
	GetAccount(ctx context.Context, in *iotexapi.GetAccountRequest, opts ...grpc.CallOption) (*iotexapi.GetAccountResponse, error)
	// get action(s) by:
	// 1. start index and action count
	// 2. action hash
	// 3. address with start index and action count
	// 4. get unconfirmed actions by address with start index and action count
	// 5. block hash with start index and action count
	GetActions(ctx context.Context, in *iotexapi.GetActionsRequest, opts ...grpc.CallOption) (*iotexapi.GetActionsResponse, error)
	// get block metadata(s) by:
	// 1. start index and block count
	// 2. block hash
	GetBlockMetas(ctx context.Context, in *iotexapi.GetBlockMetasRequest, opts ...grpc.CallOption) (*iotexapi.GetBlockMetasResponse, error)
	// get chain metadata
	GetChainMeta(ctx context.Context, in *iotexapi.GetChainMetaRequest, opts ...grpc.CallOption) (*iotexapi.GetChainMetaResponse, error)
	// get server version
	GetServerMeta(ctx context.Context, in *iotexapi.GetServerMetaRequest, opts ...grpc.CallOption) (*iotexapi.GetServerMetaResponse, error)
	// sendAction
	SendAction(ctx context.Context, in *iotexapi.SendActionRequest, opts ...grpc.CallOption) (*iotexapi.SendActionResponse, error)
	// get receipt by action Hash
	GetReceiptByAction(ctx context.Context, in *iotexapi.GetReceiptByActionRequest, opts ...grpc.CallOption) (*iotexapi.GetReceiptByActionResponse, error)
	// TODO: read contract
	ReadContract(ctx context.Context, in *iotexapi.ReadContractRequest, opts ...grpc.CallOption) (*iotexapi.ReadContractResponse, error)
	// suggest gas price
	SuggestGasPrice(ctx context.Context, in *iotexapi.SuggestGasPriceRequest, opts ...grpc.CallOption) (*iotexapi.SuggestGasPriceResponse, error)
	// estimate gas for action
	EstimateGasForAction(ctx context.Context, in *iotexapi.EstimateGasForActionRequest, opts ...grpc.CallOption) (*iotexapi.EstimateGasForActionResponse, error)
	// estimate gas for action and transfer not sealed
	EstimateActionGasConsumption(ctx context.Context, in *iotexapi.EstimateActionGasConsumptionRequest, opts ...grpc.CallOption) (*iotexapi.EstimateActionGasConsumptionResponse, error)
	// read state from blockchain
	ReadState(ctx context.Context, in *iotexapi.ReadStateRequest, opts ...grpc.CallOption) (*iotexapi.ReadStateResponse, error)
	// get epoch metadata
	GetEpochMeta(ctx context.Context, in *iotexapi.GetEpochMetaRequest, opts ...grpc.CallOption) (*iotexapi.GetEpochMetaResponse, error)
	// get raw blocks data
	GetRawBlocks(ctx context.Context, in *iotexapi.GetRawBlocksRequest, opts ...grpc.CallOption) (*iotexapi.GetRawBlocksResponse, error)
	// get logs filtered by contract address and topics
	GetLogs(ctx context.Context, in *iotexapi.GetLogsRequest, opts ...grpc.CallOption) (*iotexapi.GetLogsResponse, error)
	// get a single address' votes
	GetVotes(ctx context.Context, in *iotexapi.GetVotesRequest, opts ...grpc.CallOption) (*iotexapi.GetVotesResponse, error)
	// get block info in stream
	StreamBlocks(ctx context.Context, in *iotexapi.StreamBlocksRequest, opts ...grpc.CallOption) (iotexapi.APIService_StreamBlocksClient, error)
	// get filtered logs in stream
	StreamLogs(ctx context.Context, in *iotexapi.StreamLogsRequest, opts ...grpc.CallOption) (iotexapi.APIService_StreamLogsClient, error)
	// get native election buckets
	GetElectionBuckets(ctx context.Context, in *iotexapi.GetElectionBucketsRequest, opts ...grpc.CallOption) (*iotexapi.GetElectionBucketsResponse, error)
}

ServiceClient is the api service client interface corresponding to the one in github.com/iotexproject/iotex-proto. This interface is used by mockgen for test purposes. Remember to update it whenever definitions in api.proto change.

Jump to

Keyboard shortcuts

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