Documentation ¶
Index ¶
- Variables
- func TransactionResultToMessage(result *TransactionResult) *access.TransactionResultResponse
- func TransactionResultsToMessage(results []*TransactionResult) *access.TransactionResultsResponse
- func WithBlockSignerDecoder(signerIndicesDecoder hotstuff.BlockSignerDecoder) func(*Handler)
- type API
- type Blocks
- type DuplicatedSignatureError
- type ExpiredTransactionError
- type Handler
- func (h *Handler) ExecuteScriptAtBlockHeight(ctx context.Context, req *access.ExecuteScriptAtBlockHeightRequest) (*access.ExecuteScriptResponse, error)
- func (h *Handler) ExecuteScriptAtBlockID(ctx context.Context, req *access.ExecuteScriptAtBlockIDRequest) (*access.ExecuteScriptResponse, error)
- func (h *Handler) ExecuteScriptAtLatestBlock(ctx context.Context, req *access.ExecuteScriptAtLatestBlockRequest) (*access.ExecuteScriptResponse, error)
- func (h *Handler) GetAccount(ctx context.Context, req *access.GetAccountRequest) (*access.GetAccountResponse, error)
- func (h *Handler) GetAccountAtBlockHeight(ctx context.Context, req *access.GetAccountAtBlockHeightRequest) (*access.AccountResponse, error)
- func (h *Handler) GetAccountAtLatestBlock(ctx context.Context, req *access.GetAccountAtLatestBlockRequest) (*access.AccountResponse, error)
- func (h *Handler) GetBlockByHeight(ctx context.Context, req *access.GetBlockByHeightRequest) (*access.BlockResponse, error)
- func (h *Handler) GetBlockByID(ctx context.Context, req *access.GetBlockByIDRequest) (*access.BlockResponse, error)
- func (h *Handler) GetBlockHeaderByHeight(ctx context.Context, req *access.GetBlockHeaderByHeightRequest) (*access.BlockHeaderResponse, error)
- func (h *Handler) GetBlockHeaderByID(ctx context.Context, req *access.GetBlockHeaderByIDRequest) (*access.BlockHeaderResponse, error)
- func (h *Handler) GetCollectionByID(ctx context.Context, req *access.GetCollectionByIDRequest) (*access.CollectionResponse, error)
- func (h *Handler) GetEventsForBlockIDs(ctx context.Context, req *access.GetEventsForBlockIDsRequest) (*access.EventsResponse, error)
- func (h *Handler) GetEventsForHeightRange(ctx context.Context, req *access.GetEventsForHeightRangeRequest) (*access.EventsResponse, error)
- func (h *Handler) GetExecutionResultByID(ctx context.Context, req *access.GetExecutionResultByIDRequest) (*access.ExecutionResultByIDResponse, error)
- func (h *Handler) GetExecutionResultForBlockID(ctx context.Context, req *access.GetExecutionResultForBlockIDRequest) (*access.ExecutionResultForBlockIDResponse, error)
- func (h *Handler) GetLatestBlock(ctx context.Context, req *access.GetLatestBlockRequest) (*access.BlockResponse, error)
- func (h *Handler) GetLatestBlockHeader(ctx context.Context, req *access.GetLatestBlockHeaderRequest) (*access.BlockHeaderResponse, error)
- func (h *Handler) GetLatestProtocolStateSnapshot(ctx context.Context, req *access.GetLatestProtocolStateSnapshotRequest) (*access.ProtocolStateSnapshotResponse, error)
- func (h *Handler) GetNetworkParameters(ctx context.Context, _ *access.GetNetworkParametersRequest) (*access.GetNetworkParametersResponse, error)
- func (h *Handler) GetNodeVersionInfo(ctx context.Context, _ *access.GetNodeVersionInfoRequest) (*access.GetNodeVersionInfoResponse, error)
- func (h *Handler) GetProtocolStateSnapshotByBlockID(ctx context.Context, req *access.GetProtocolStateSnapshotByBlockIDRequest) (*access.ProtocolStateSnapshotResponse, error)
- func (h *Handler) GetProtocolStateSnapshotByHeight(ctx context.Context, req *access.GetProtocolStateSnapshotByHeightRequest) (*access.ProtocolStateSnapshotResponse, error)
- func (h *Handler) GetSystemTransaction(ctx context.Context, req *access.GetSystemTransactionRequest) (*access.TransactionResponse, error)
- func (h *Handler) GetSystemTransactionResult(ctx context.Context, req *access.GetSystemTransactionResultRequest) (*access.TransactionResultResponse, error)
- func (h *Handler) GetTransaction(ctx context.Context, req *access.GetTransactionRequest) (*access.TransactionResponse, error)
- func (h *Handler) GetTransactionResult(ctx context.Context, req *access.GetTransactionRequest) (*access.TransactionResultResponse, error)
- func (h *Handler) GetTransactionResultByIndex(ctx context.Context, req *access.GetTransactionByIndexRequest) (*access.TransactionResultResponse, error)
- func (h *Handler) GetTransactionResultsByBlockID(ctx context.Context, req *access.GetTransactionsByBlockIDRequest) (*access.TransactionResultsResponse, error)
- func (h *Handler) GetTransactionsByBlockID(ctx context.Context, req *access.GetTransactionsByBlockIDRequest) (*access.TransactionsResponse, error)
- func (h *Handler) Ping(ctx context.Context, _ *access.PingRequest) (*access.PingResponse, error)
- func (h *Handler) SendTransaction(ctx context.Context, req *access.SendTransactionRequest) (*access.SendTransactionResponse, error)
- type HandlerOption
- type IncompleteTransactionError
- type InvalidAddressError
- type InvalidGasLimitError
- type InvalidScriptError
- type InvalidSignatureError
- type InvalidTxByteSizeError
- type InvalidTxRateLimitedError
- type NetworkParameters
- type NodeVersionInfo
- type NoopLimiter
- type ProtocolStateBlocks
- type RateLimiter
- type TransactionResult
- type TransactionValidationOptions
- type TransactionValidator
Constants ¶
This section is empty.
Variables ¶
var ErrUnknownReferenceBlock = errors.New("unknown reference block")
ErrUnknownReferenceBlock indicates that a transaction references an unknown block.
Functions ¶
func TransactionResultToMessage ¶
func TransactionResultToMessage(result *TransactionResult) *access.TransactionResultResponse
func TransactionResultsToMessage ¶ added in v0.24.11
func TransactionResultsToMessage(results []*TransactionResult) *access.TransactionResultsResponse
func WithBlockSignerDecoder ¶ added in v0.26.17
func WithBlockSignerDecoder(signerIndicesDecoder hotstuff.BlockSignerDecoder) func(*Handler)
WithBlockSignerDecoder configures the Handler to decode signer indices via the provided hotstuff.BlockSignerDecoder
Types ¶
type API ¶
type API interface { Ping(ctx context.Context) error GetNetworkParameters(ctx context.Context) NetworkParameters GetNodeVersionInfo(ctx context.Context) (*NodeVersionInfo, error) GetLatestBlockHeader(ctx context.Context, isSealed bool) (*flow.Header, flow.BlockStatus, error) GetBlockHeaderByHeight(ctx context.Context, height uint64) (*flow.Header, flow.BlockStatus, error) GetBlockHeaderByID(ctx context.Context, id flow.Identifier) (*flow.Header, flow.BlockStatus, error) GetLatestBlock(ctx context.Context, isSealed bool) (*flow.Block, flow.BlockStatus, error) GetBlockByHeight(ctx context.Context, height uint64) (*flow.Block, flow.BlockStatus, error) GetBlockByID(ctx context.Context, id flow.Identifier) (*flow.Block, flow.BlockStatus, error) GetCollectionByID(ctx context.Context, id flow.Identifier) (*flow.LightCollection, error) SendTransaction(ctx context.Context, tx *flow.TransactionBody) error GetTransaction(ctx context.Context, id flow.Identifier) (*flow.TransactionBody, error) GetTransactionsByBlockID(ctx context.Context, blockID flow.Identifier) ([]*flow.TransactionBody, error) GetTransactionResult(ctx context.Context, id flow.Identifier, blockID flow.Identifier, collectionID flow.Identifier, requiredEventEncodingVersion entities.EventEncodingVersion) (*TransactionResult, error) GetTransactionResultByIndex(ctx context.Context, blockID flow.Identifier, index uint32, requiredEventEncodingVersion entities.EventEncodingVersion) (*TransactionResult, error) GetTransactionResultsByBlockID(ctx context.Context, blockID flow.Identifier, requiredEventEncodingVersion entities.EventEncodingVersion) ([]*TransactionResult, error) GetSystemTransaction(ctx context.Context, blockID flow.Identifier) (*flow.TransactionBody, error) GetSystemTransactionResult(ctx context.Context, blockID flow.Identifier, requiredEventEncodingVersion entities.EventEncodingVersion) (*TransactionResult, error) GetAccount(ctx context.Context, address flow.Address) (*flow.Account, error) GetAccountAtLatestBlock(ctx context.Context, address flow.Address) (*flow.Account, error) GetAccountAtBlockHeight(ctx context.Context, address flow.Address, height uint64) (*flow.Account, error) ExecuteScriptAtLatestBlock(ctx context.Context, script []byte, arguments [][]byte) ([]byte, error) ExecuteScriptAtBlockHeight(ctx context.Context, blockHeight uint64, script []byte, arguments [][]byte) ([]byte, error) ExecuteScriptAtBlockID(ctx context.Context, blockID flow.Identifier, script []byte, arguments [][]byte) ([]byte, error) GetEventsForHeightRange(ctx context.Context, eventType string, startHeight, endHeight uint64, requiredEventEncodingVersion entities.EventEncodingVersion) ([]flow.BlockEvents, error) GetEventsForBlockIDs(ctx context.Context, eventType string, blockIDs []flow.Identifier, requiredEventEncodingVersion entities.EventEncodingVersion) ([]flow.BlockEvents, error) GetLatestProtocolStateSnapshot(ctx context.Context) ([]byte, error) GetProtocolStateSnapshotByBlockID(ctx context.Context, blockID flow.Identifier) ([]byte, error) GetProtocolStateSnapshotByHeight(ctx context.Context, blockHeight uint64) ([]byte, error) GetExecutionResultForBlockID(ctx context.Context, blockID flow.Identifier) (*flow.ExecutionResult, error) GetExecutionResultByID(ctx context.Context, id flow.Identifier) (*flow.ExecutionResult, error) }
API provides all public-facing functionality of the Flow Access API.
type DuplicatedSignatureError ¶ added in v0.18.4
DuplicatedSignatureError indicates that two signatures havs been provided for a key (combination of account and key index)
func (DuplicatedSignatureError) Error ¶ added in v0.18.4
func (e DuplicatedSignatureError) Error() string
type ExpiredTransactionError ¶
type ExpiredTransactionError struct {
RefHeight, FinalHeight uint64
}
ExpiredTransactionError indicates that a transaction has expired.
func (ExpiredTransactionError) Error ¶
func (e ExpiredTransactionError) Error() string
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
func NewHandler ¶
func NewHandler(api API, chain flow.Chain, finalizedHeader module.FinalizedHeaderCache, me module.Local, options ...HandlerOption) *Handler
func (*Handler) ExecuteScriptAtBlockHeight ¶
func (h *Handler) ExecuteScriptAtBlockHeight( ctx context.Context, req *access.ExecuteScriptAtBlockHeightRequest, ) (*access.ExecuteScriptResponse, error)
ExecuteScriptAtBlockHeight executes a script at a specific block height.
func (*Handler) ExecuteScriptAtBlockID ¶
func (h *Handler) ExecuteScriptAtBlockID( ctx context.Context, req *access.ExecuteScriptAtBlockIDRequest, ) (*access.ExecuteScriptResponse, error)
ExecuteScriptAtBlockID executes a script at a specific block ID.
func (*Handler) ExecuteScriptAtLatestBlock ¶
func (h *Handler) ExecuteScriptAtLatestBlock( ctx context.Context, req *access.ExecuteScriptAtLatestBlockRequest, ) (*access.ExecuteScriptResponse, error)
ExecuteScriptAtLatestBlock executes a script at a the latest block.
func (*Handler) GetAccount ¶
func (h *Handler) GetAccount( ctx context.Context, req *access.GetAccountRequest, ) (*access.GetAccountResponse, error)
GetAccount returns an account by address at the latest sealed block.
func (*Handler) GetAccountAtBlockHeight ¶
func (h *Handler) GetAccountAtBlockHeight( ctx context.Context, req *access.GetAccountAtBlockHeightRequest, ) (*access.AccountResponse, error)
func (*Handler) GetAccountAtLatestBlock ¶
func (h *Handler) GetAccountAtLatestBlock( ctx context.Context, req *access.GetAccountAtLatestBlockRequest, ) (*access.AccountResponse, error)
GetAccountAtLatestBlock returns an account by address at the latest sealed block.
func (*Handler) GetBlockByHeight ¶
func (h *Handler) GetBlockByHeight( ctx context.Context, req *access.GetBlockByHeightRequest, ) (*access.BlockResponse, error)
GetBlockByHeight gets a block by height.
func (*Handler) GetBlockByID ¶
func (h *Handler) GetBlockByID( ctx context.Context, req *access.GetBlockByIDRequest, ) (*access.BlockResponse, error)
GetBlockByID gets a block by ID.
func (*Handler) GetBlockHeaderByHeight ¶
func (h *Handler) GetBlockHeaderByHeight( ctx context.Context, req *access.GetBlockHeaderByHeightRequest, ) (*access.BlockHeaderResponse, error)
GetBlockHeaderByHeight gets a block header by height.
func (*Handler) GetBlockHeaderByID ¶
func (h *Handler) GetBlockHeaderByID( ctx context.Context, req *access.GetBlockHeaderByIDRequest, ) (*access.BlockHeaderResponse, error)
GetBlockHeaderByID gets a block header by ID.
func (*Handler) GetCollectionByID ¶
func (h *Handler) GetCollectionByID( ctx context.Context, req *access.GetCollectionByIDRequest, ) (*access.CollectionResponse, error)
GetCollectionByID gets a collection by ID.
func (*Handler) GetEventsForBlockIDs ¶
func (h *Handler) GetEventsForBlockIDs( ctx context.Context, req *access.GetEventsForBlockIDsRequest, ) (*access.EventsResponse, error)
GetEventsForBlockIDs returns events matching a set of block IDs.
func (*Handler) GetEventsForHeightRange ¶
func (h *Handler) GetEventsForHeightRange( ctx context.Context, req *access.GetEventsForHeightRangeRequest, ) (*access.EventsResponse, error)
GetEventsForHeightRange returns events matching a query.
func (*Handler) GetExecutionResultByID ¶ added in v0.32.0
func (h *Handler) GetExecutionResultByID(ctx context.Context, req *access.GetExecutionResultByIDRequest) (*access.ExecutionResultByIDResponse, error)
GetExecutionResultByID returns the execution result for the given ID.
func (*Handler) GetExecutionResultForBlockID ¶ added in v0.21.0
func (h *Handler) GetExecutionResultForBlockID(ctx context.Context, req *access.GetExecutionResultForBlockIDRequest) (*access.ExecutionResultForBlockIDResponse, error)
GetExecutionResultForBlockID returns the latest received execution result for the given block ID. AN might receive multiple receipts with conflicting results for unsealed blocks. If this case happens, since AN is not able to determine which result is the correct one until the block is sealed, it has to pick one result to respond to this query. For now, we return the result from the latest received receipt.
func (*Handler) GetLatestBlock ¶
func (h *Handler) GetLatestBlock( ctx context.Context, req *access.GetLatestBlockRequest, ) (*access.BlockResponse, error)
GetLatestBlock gets the latest sealed block.
func (*Handler) GetLatestBlockHeader ¶
func (h *Handler) GetLatestBlockHeader( ctx context.Context, req *access.GetLatestBlockHeaderRequest, ) (*access.BlockHeaderResponse, error)
GetLatestBlockHeader gets the latest sealed block header.
func (*Handler) GetLatestProtocolStateSnapshot ¶ added in v0.14.4
func (h *Handler) GetLatestProtocolStateSnapshot(ctx context.Context, req *access.GetLatestProtocolStateSnapshotRequest) (*access.ProtocolStateSnapshotResponse, error)
GetLatestProtocolStateSnapshot returns the latest serializable Snapshot
func (*Handler) GetNetworkParameters ¶
func (h *Handler) GetNetworkParameters( ctx context.Context, _ *access.GetNetworkParametersRequest, ) (*access.GetNetworkParametersResponse, error)
func (*Handler) GetNodeVersionInfo ¶ added in v0.31.0
func (h *Handler) GetNodeVersionInfo( ctx context.Context, _ *access.GetNodeVersionInfoRequest, ) (*access.GetNodeVersionInfoResponse, error)
GetNodeVersionInfo gets node version information such as semver, commit, sporkID, protocolVersion, etc
func (*Handler) GetProtocolStateSnapshotByBlockID ¶ added in v0.33.1
func (h *Handler) GetProtocolStateSnapshotByBlockID(ctx context.Context, req *access.GetProtocolStateSnapshotByBlockIDRequest) (*access.ProtocolStateSnapshotResponse, error)
GetProtocolStateSnapshotByBlockID returns serializable Snapshot by blockID
func (*Handler) GetProtocolStateSnapshotByHeight ¶ added in v0.33.1
func (h *Handler) GetProtocolStateSnapshotByHeight(ctx context.Context, req *access.GetProtocolStateSnapshotByHeightRequest) (*access.ProtocolStateSnapshotResponse, error)
GetProtocolStateSnapshotByHeight returns serializable Snapshot by block height
func (*Handler) GetSystemTransaction ¶ added in v0.33.1
func (h *Handler) GetSystemTransaction( ctx context.Context, req *access.GetSystemTransactionRequest, ) (*access.TransactionResponse, error)
func (*Handler) GetSystemTransactionResult ¶ added in v0.33.1
func (h *Handler) GetSystemTransactionResult( ctx context.Context, req *access.GetSystemTransactionResultRequest, ) (*access.TransactionResultResponse, error)
func (*Handler) GetTransaction ¶
func (h *Handler) GetTransaction( ctx context.Context, req *access.GetTransactionRequest, ) (*access.TransactionResponse, error)
GetTransaction gets a transaction by ID.
func (*Handler) GetTransactionResult ¶
func (h *Handler) GetTransactionResult( ctx context.Context, req *access.GetTransactionRequest, ) (*access.TransactionResultResponse, error)
GetTransactionResult gets a transaction by ID.
func (*Handler) GetTransactionResultByIndex ¶ added in v0.24.8
func (h *Handler) GetTransactionResultByIndex( ctx context.Context, req *access.GetTransactionByIndexRequest, ) (*access.TransactionResultResponse, error)
GetTransactionResultByIndex gets a transaction at a specific index for in a block that is executed, pending or finalized transactions return errors
func (*Handler) GetTransactionResultsByBlockID ¶ added in v0.24.11
func (h *Handler) GetTransactionResultsByBlockID( ctx context.Context, req *access.GetTransactionsByBlockIDRequest, ) (*access.TransactionResultsResponse, error)
func (*Handler) GetTransactionsByBlockID ¶ added in v0.24.11
func (h *Handler) GetTransactionsByBlockID( ctx context.Context, req *access.GetTransactionsByBlockIDRequest, ) (*access.TransactionsResponse, error)
func (*Handler) Ping ¶
func (h *Handler) Ping(ctx context.Context, _ *access.PingRequest) (*access.PingResponse, error)
Ping the Access API server for a response.
func (*Handler) SendTransaction ¶
func (h *Handler) SendTransaction( ctx context.Context, req *access.SendTransactionRequest, ) (*access.SendTransactionResponse, error)
SendTransaction submits a transaction to the network.
type HandlerOption ¶ added in v0.26.17
type HandlerOption func(*Handler)
HandlerOption is used to hand over optional constructor parameters
type IncompleteTransactionError ¶
type IncompleteTransactionError struct {
MissingFields []string
}
IncompleteTransactionError indicates that a transaction is missing one or more required fields.
func (IncompleteTransactionError) Error ¶
func (e IncompleteTransactionError) Error() string
type InvalidAddressError ¶ added in v0.11.0
InvalidAddressError indicates that a transaction references an invalid flow Address in either the Authorizers or Payer field.
func (InvalidAddressError) Error ¶ added in v0.11.0
func (e InvalidAddressError) Error() string
type InvalidGasLimitError ¶
InvalidGasLimitError indicates that a transaction specifies a gas limit that exceeds the maximum.
func (InvalidGasLimitError) Error ¶
func (e InvalidGasLimitError) Error() string
type InvalidScriptError ¶
type InvalidScriptError struct {
ParserErr error
}
InvalidScriptError indicates that a transaction contains an invalid Cadence script.
func (InvalidScriptError) Error ¶
func (e InvalidScriptError) Error() string
func (InvalidScriptError) Unwrap ¶
func (e InvalidScriptError) Unwrap() error
type InvalidSignatureError ¶ added in v0.12.0
type InvalidSignatureError struct {
Signature flow.TransactionSignature
}
InvalidSignatureError indicates that a transaction contains a signature with a wrong format.
func (InvalidSignatureError) Error ¶ added in v0.12.0
func (e InvalidSignatureError) Error() string
type InvalidTxByteSizeError ¶ added in v0.11.0
InvalidTxByteSizeError indicates that a transaction byte size exceeds the maximum.
func (InvalidTxByteSizeError) Error ¶ added in v0.11.0
func (e InvalidTxByteSizeError) Error() string
type InvalidTxRateLimitedError ¶ added in v0.33.30
func (InvalidTxRateLimitedError) Error ¶ added in v0.33.30
func (e InvalidTxRateLimitedError) Error() string
type NetworkParameters ¶
NetworkParameters contains the network-wide parameters for the Flow blockchain.
type NodeVersionInfo ¶ added in v0.31.0
type NodeVersionInfo struct { Semver string Commit string SporkId flow.Identifier ProtocolVersion uint64 SporkRootBlockHeight uint64 NodeRootBlockHeight uint64 }
NodeVersionInfo contains information about node, such as semver, commit, sporkID, protocolVersion, etc
type NoopLimiter ¶ added in v0.33.30
type NoopLimiter struct{}
func NewNoopLimiter ¶ added in v0.33.30
func NewNoopLimiter() *NoopLimiter
func (*NoopLimiter) IsRateLimited ¶ added in v0.33.30
func (l *NoopLimiter) IsRateLimited(address flow.Address) bool
type ProtocolStateBlocks ¶
type ProtocolStateBlocks struct {
// contains filtered or unexported fields
}
func NewProtocolStateBlocks ¶
func NewProtocolStateBlocks(state protocol.State) *ProtocolStateBlocks
func (*ProtocolStateBlocks) FinalizedHeader ¶
func (b *ProtocolStateBlocks) FinalizedHeader() (*flow.Header, error)
func (*ProtocolStateBlocks) HeaderByID ¶
func (b *ProtocolStateBlocks) HeaderByID(id flow.Identifier) (*flow.Header, error)
type RateLimiter ¶ added in v0.33.30
type RateLimiter interface { // IsRateLimited returns true if the address is rate limited IsRateLimited(address flow.Address) bool }
RateLimiter is an interface for checking if an address is rate limited. By convention, the address used is the payer field of a transaction. This rate limiter is applied when a transaction is first received by a node, meaning that if a transaction is rate-limited it will be dropped.
type TransactionResult ¶
type TransactionResult struct { Status flow.TransactionStatus StatusCode uint Events []flow.Event ErrorMessage string BlockID flow.Identifier TransactionID flow.Identifier CollectionID flow.Identifier BlockHeight uint64 }
TODO: Combine this with flow.TransactionResult?
func MessageToTransactionResult ¶ added in v0.12.5
func MessageToTransactionResult(message *access.TransactionResultResponse) *TransactionResult
type TransactionValidator ¶
type TransactionValidator struct {
// contains filtered or unexported fields
}
func NewTransactionValidator ¶
func NewTransactionValidator( blocks Blocks, chain flow.Chain, options TransactionValidationOptions, ) *TransactionValidator
func NewTransactionValidatorWithLimiter ¶ added in v0.33.30
func NewTransactionValidatorWithLimiter( blocks Blocks, chain flow.Chain, options TransactionValidationOptions, rateLimiter RateLimiter, ) *TransactionValidator
func (*TransactionValidator) Validate ¶
func (v *TransactionValidator) Validate(tx *flow.TransactionBody) (err error)