Documentation ¶
Index ¶
- Variables
- func TransactionResultToMessage(result *TransactionResult) *access.TransactionResultResponse
- 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) 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) 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) Ping(ctx context.Context, _ *access.PingRequest) (*access.PingResponse, error)
- func (h *Handler) SendTransaction(ctx context.Context, req *access.SendTransactionRequest) (*access.SendTransactionResponse, error)
- type IncompleteTransactionError
- type InvalidAddressError
- type InvalidGasLimitError
- type InvalidScriptError
- type InvalidSignatureError
- type InvalidTxByteSizeError
- type NetworkParameters
- type ProtocolStateBlocks
- 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
Types ¶
type API ¶
type API interface { Ping(ctx context.Context) error GetNetworkParameters(ctx context.Context) NetworkParameters GetLatestBlockHeader(ctx context.Context, isSealed bool) (*flow.Header, error) GetBlockHeaderByHeight(ctx context.Context, height uint64) (*flow.Header, error) GetBlockHeaderByID(ctx context.Context, id flow.Identifier) (*flow.Header, error) GetLatestBlock(ctx context.Context, isSealed bool) (*flow.Block, error) GetBlockByHeight(ctx context.Context, height uint64) (*flow.Block, error) GetBlockByID(ctx context.Context, id flow.Identifier) (*flow.Block, 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) GetTransactionResult(ctx context.Context, id flow.Identifier) (*TransactionResult, error) GetTransactionResultByIndex(ctx context.Context, blockID flow.Identifier, index uint32) (*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) ([]flow.BlockEvents, error) GetEventsForBlockIDs(ctx context.Context, eventType string, blockIDs []flow.Identifier) ([]flow.BlockEvents, error) GetLatestProtocolStateSnapshot(ctx context.Context) ([]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 (*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) 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) 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) 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 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 NetworkParameters ¶
NetworkParameters contains the network-wide parameters for the Flow blockchain.
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 TransactionResult ¶
type TransactionResult struct { Status flow.TransactionStatus StatusCode uint Events []flow.Event ErrorMessage string BlockID flow.Identifier }
TODO: Combine this with flow.TransactionResult?
func MessageToTransactionResult ¶ added in v0.12.5
func MessageToTransactionResult(message *access.TransactionResultResponse) *TransactionResult
type TransactionValidationOptions ¶
type TransactionValidationOptions struct { Expiry uint ExpiryBuffer uint AllowEmptyReferenceBlockID bool AllowUnknownReferenceBlockID bool MaxGasLimit uint64 CheckScriptsParse bool // MaxAddressIndex is a simple spam prevention measure. It rejects any // transactions referencing an address with index newer than the specified // maximum. A zero value indicates no address checking. MaxAddressIndex uint64 MaxTransactionByteSize uint64 MaxCollectionByteSize uint64 }
type TransactionValidator ¶
type TransactionValidator struct {
// contains filtered or unexported fields
}
func NewTransactionValidator ¶
func NewTransactionValidator( blocks Blocks, chain flow.Chain, options TransactionValidationOptions, ) *TransactionValidator
func (*TransactionValidator) Validate ¶
func (v *TransactionValidator) Validate(tx *flow.TransactionBody) (err error)