file

package
v0.2.5 Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetFromCacheOrCall

func GetFromCacheOrCall[Value any](cache KVStore, volatile bool, key CacheKey, valueFunc func() (*Value, error)) (*Value, error)

getFromCacheOrCall fetches the value of `cacheKey` from the cache if it exists, interpreted as a `Value`. If it does not exist, it calls `valueFunc` to get the value, and caches it before returning it. If `volatile` is true, `valueFunc` is always called, and the result is not cached.

func GetSliceFromCacheOrCall

func GetSliceFromCacheOrCall[Response any](cache KVStore, volatile bool, key CacheKey, valueFunc func() ([]Response, error)) ([]Response, error)

Like getFromCacheOrCall, but for slice-typed return values.

Types

type CacheKey

type CacheKey []byte

A key in the KVStore.

func (CacheKey) Pretty

func (cacheKey CacheKey) Pretty() string

Pretty() returns a pretty-printed, human-readable version of the cache key. It tries to interpret it as CBOR and returns the pretty-printed struct, otherwise it returns the key's raw bytes as hex. Intended only for debugging. Not guaranteed to be a stable representation.

type FileConsensusApiLite

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

FileConsensusApiLite provides access to the consensus API of an Oasis node. Since FileConsensusApiLite is backed by a file containing the cached responses to `ConsensusApiLite` calls, this data is inherently compatible with the current Nexus and can thus handle heights from both Cobalt/Damask.

func NewFileConsensusApiLite

func NewFileConsensusApiLite(cacheDir string, consensusApi nodeapi.ConsensusApiLite) (*FileConsensusApiLite, error)

func (*FileConsensusApiLite) Close

func (c *FileConsensusApiLite) Close() error

func (*FileConsensusApiLite) GetBlock

func (c *FileConsensusApiLite) GetBlock(ctx context.Context, height int64) (*consensus.Block, error)

func (*FileConsensusApiLite) GetCommittees

func (c *FileConsensusApiLite) GetCommittees(ctx context.Context, height int64, runtimeID coreCommon.Namespace) ([]nodeapi.Committee, error)

func (*FileConsensusApiLite) GetEpoch

func (c *FileConsensusApiLite) GetEpoch(ctx context.Context, height int64) (beacon.EpochTime, error)

func (*FileConsensusApiLite) GetGenesisDocument

func (c *FileConsensusApiLite) GetGenesisDocument(ctx context.Context, chainContext string) (*genesis.Document, error)

func (*FileConsensusApiLite) GetNodes added in v0.1.16

func (c *FileConsensusApiLite) GetNodes(ctx context.Context, height int64) ([]nodeapi.Node, error)

func (*FileConsensusApiLite) GetProposal

func (c *FileConsensusApiLite) GetProposal(ctx context.Context, height int64, proposalID uint64) (*nodeapi.Proposal, error)

func (*FileConsensusApiLite) GetTransactionsWithResults

func (c *FileConsensusApiLite) GetTransactionsWithResults(ctx context.Context, height int64) ([]nodeapi.TransactionWithResults, error)

func (*FileConsensusApiLite) GetValidators

func (c *FileConsensusApiLite) GetValidators(ctx context.Context, height int64) ([]nodeapi.Validator, error)

func (*FileConsensusApiLite) GovernanceEvents

func (c *FileConsensusApiLite) GovernanceEvents(ctx context.Context, height int64) ([]nodeapi.Event, error)

func (*FileConsensusApiLite) GrpcConn added in v0.1.22

func (*FileConsensusApiLite) RegistryEvents

func (c *FileConsensusApiLite) RegistryEvents(ctx context.Context, height int64) ([]nodeapi.Event, error)

func (*FileConsensusApiLite) RoothashEvents

func (c *FileConsensusApiLite) RoothashEvents(ctx context.Context, height int64) ([]nodeapi.Event, error)

func (*FileConsensusApiLite) StakingEvents

func (c *FileConsensusApiLite) StakingEvents(ctx context.Context, height int64) ([]nodeapi.Event, error)

func (*FileConsensusApiLite) StateToGenesis

func (c *FileConsensusApiLite) StateToGenesis(ctx context.Context, height int64) (*genesis.Document, error)

type FileRuntimeApiLite

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

func NewFileRuntimeApiLite

func NewFileRuntimeApiLite(runtime common.Runtime, cacheDir string, runtimeApi nodeapi.RuntimeApiLite) (*FileRuntimeApiLite, error)

func (*FileRuntimeApiLite) Close

func (r *FileRuntimeApiLite) Close() error

func (*FileRuntimeApiLite) EVMGetCode

func (r *FileRuntimeApiLite) EVMGetCode(ctx context.Context, round uint64, address []byte) ([]byte, error)

func (*FileRuntimeApiLite) EVMSimulateCall

func (r *FileRuntimeApiLite) EVMSimulateCall(ctx context.Context, round uint64, gasPrice []byte, gasLimit uint64, caller []byte, address []byte, value []byte, data []byte) (*nodeapi.FallibleResponse, error)

func (*FileRuntimeApiLite) GetBlockHeader

func (r *FileRuntimeApiLite) GetBlockHeader(ctx context.Context, round uint64) (*nodeapi.RuntimeBlockHeader, error)

func (*FileRuntimeApiLite) GetEventsRaw

func (r *FileRuntimeApiLite) GetEventsRaw(ctx context.Context, round uint64) ([]nodeapi.RuntimeEvent, error)

func (*FileRuntimeApiLite) GetNativeBalance

func (r *FileRuntimeApiLite) GetNativeBalance(ctx context.Context, round uint64, addr nodeapi.Address) (*common.BigInt, error)

func (*FileRuntimeApiLite) GetTransactionsWithResults

func (r *FileRuntimeApiLite) GetTransactionsWithResults(ctx context.Context, round uint64) ([]nodeapi.RuntimeTransactionWithResults, error)

type KVStore

type KVStore interface {
	Has(key []byte) (bool, error)
	Get(key []byte) ([]byte, error)
	Put(key []byte, value []byte) error
	Close() error
}

A key-value store. Additional method-like functions that give a typed interface to the store (i.e. with typed values/keys instead of []byte) are provided below, taking KVStore as the first argument so they can use generics.

func OpenKVStore

func OpenKVStore(logger *log.Logger, path string, metrics *metrics.AnalysisMetrics) (KVStore, error)

Initializes a new KVStore backed by a database at `path`, or opens an existing one. `metrics` can be `nil`, in which case no metrics are emitted during operation.

type RuntimeApiMethod

type RuntimeApiMethod func() (interface{}, error)

Jump to

Keyboard shortcuts

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