keeper

package
v2.5.4 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2023 License: GPL-3.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RollingSeedSizeInBytes = 32
)
View Source
const SnapshotFormat = 1

SnapshotFormat format 1 is just gzipped byte code for each oracle scripts and data sources.

Variables

This section is empty.

Functions

func ContainsEID

func ContainsEID(rawRequests []types.RawRequest, target types.ExternalID) bool

ContainsEID returns whether the given slice of raw requests contains the target id.

func ContainsVal

func ContainsVal(vals []sdk.ValAddress, target sdk.ValAddress) bool

ContainsVal returns whether the given slice of validators contains the target validator.

func ConvertToOwasmGas added in v2.4.0

func ConvertToOwasmGas(cosmos uint64) uint64

func NewMsgServerImpl

func NewMsgServerImpl(keeper Keeper) types.MsgServer

NewMsgServerImpl returns an implementation of the bank MsgServer interface for the provided Keeper.

Types

type FeeCollector

type FeeCollector interface {
	Collect(sdk.Context, sdk.Coins, sdk.AccAddress) error
	Collected() sdk.Coins
}

FeeCollector define fee collector

type Keeper

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

func NewKeeper

func NewKeeper(
	cdc codec.BinaryCodec,
	key sdk.StoreKey,
	ps paramtypes.Subspace,
	fileDir string,
	feeCollectorName string,
	authKeeper types.AccountKeeper,
	bankKeeper types.BankKeeper,
	stakingKeeper types.StakingKeeper,
	distrKeeper types.DistrKeeper,
	authzKeeper types.AuthzKeeper,
	channelKeeper types.ChannelKeeper,
	portKeeper types.PortKeeper,
	scopeKeeper capabilitykeeper.ScopedKeeper,
	owasmVM *owasm.Vm,
) Keeper

NewKeeper creates a new oracle Keeper instance.

func (Keeper) Activate

func (k Keeper) Activate(ctx sdk.Context, val sdk.ValAddress) error

Activate changes the given validator's status to active. Returns error if the validator is already active or was deactivated recently, as specified by InactivePenaltyDuration parameter.

func (Keeper) AddDataSource

func (k Keeper) AddDataSource(ctx sdk.Context, dataSource types.DataSource) types.DataSourceID

AddDataSource adds the given data source to the storage.

func (Keeper) AddExecutableFile

func (k Keeper) AddExecutableFile(file []byte) string

AddExecutableFile saves the given executable file to a file to filecahe storage and returns its sha256sum reference name. Returns do-not-modify symbol if the input is do-not-modify.

func (Keeper) AddOracleScript

func (k Keeper) AddOracleScript(ctx sdk.Context, oracleScript types.OracleScript) types.OracleScriptID

AddOracleScript adds the given oracle script to the storage.

func (Keeper) AddOracleScriptFile

func (k Keeper) AddOracleScriptFile(file []byte) (string, error)

AddOracleScriptFile compiles Wasm code (see go-owasm), adds the compiled file to filecache, and returns its sha256 reference name. Returns do-not-modify symbol if input is do-not-modify.

func (Keeper) AddPendingRequest

func (k Keeper) AddPendingRequest(ctx sdk.Context, id types.RequestID)

AddPendingRequest adds the request to the pending list. DO NOT add same request more than once.

func (Keeper) AddReport

func (k Keeper) AddReport(ctx sdk.Context, rid types.RequestID, rep types.Report) error

AddReports performs sanity checks and adds a new batch from one validator to one request to the store. Note that we expect each validator to report to all raw data requests at once.

func (Keeper) AddRequest

func (k Keeper) AddRequest(ctx sdk.Context, req types.Request) types.RequestID

AddRequest attempts to create and save a new request.

func (Keeper) AllocateTokens

func (k Keeper) AllocateTokens(ctx sdk.Context, previousVotes []abci.VoteInfo)

AllocateTokens allocates a portion of fee collected in the previous blocks to validators that that are actively performing oracle tasks. Note that this reward is also subjected to comm tax.

func (Keeper) AuthenticateCapability

func (k Keeper) AuthenticateCapability(ctx sdk.Context, cap *capabilitytypes.Capability, name string) bool

AuthenticateCapability wraps the scopedKeeper's AuthenticateCapability function

func (Keeper) BaseOwasmGas

func (k Keeper) BaseOwasmGas(ctx sdk.Context) (res uint64)

BaseOwasmGas - amount of gas consumed by owasm required as a baseline

func (Keeper) BindPort

func (k Keeper) BindPort(ctx sdk.Context, portID string) error

BindPort defines a wrapper function for the ort Keeper's function in order to expose it to module's InitGenesis function

func (Keeper) CheckValidReport added in v2.2.0

func (k Keeper) CheckValidReport(ctx sdk.Context, rid types.RequestID, rep types.Report) error

func (Keeper) ClaimCapability

func (k Keeper) ClaimCapability(ctx sdk.Context, cap *capabilitytypes.Capability, name string) error

ClaimCapability allows the oracle module that can claim a capability that IBC module passes to it

func (Keeper) CollectFee

func (k Keeper) CollectFee(
	ctx sdk.Context,
	payer sdk.AccAddress,
	feeLimit sdk.Coins,
	askCount uint64,
	rawRequests []types.RawRequest,
) (sdk.Coins, error)

CollectFee subtract fee from fee payer and send them to treasury

func (Keeper) DeleteReports

func (k Keeper) DeleteReports(ctx sdk.Context, rid types.RequestID)

DeleteReports removes all reports for the given request ID.

func (Keeper) DeleteRequest

func (k Keeper) DeleteRequest(ctx sdk.Context, id types.RequestID)

DeleteRequest removes the given data request from the store.

func (Keeper) ExpirationBlockCount

func (k Keeper) ExpirationBlockCount(ctx sdk.Context) (res uint64)

ExpirationBlockCount - number of blocks allowed to fulfill oracle requests If current block height is ahead of the block height of an oracle request for more than this param value, then the request is considered expired

func (Keeper) GetAllDataSources

func (k Keeper) GetAllDataSources(ctx sdk.Context) (dataSources []types.DataSource)

GetAllDataSources returns the list of all data sources in the store, or nil if there is none.

func (Keeper) GetAllOracleScripts

func (k Keeper) GetAllOracleScripts(ctx sdk.Context) (oracleScripts []types.OracleScript)

GetAllOracleScripts returns the list of all oracle scripts in the store, or nil if there is none.

func (Keeper) GetDataSource

func (k Keeper) GetDataSource(ctx sdk.Context, id types.DataSourceID) (types.DataSource, error)

GetDataSource returns the data source struct for the given ID or error if not exists.

func (Keeper) GetDataSourceCount

func (k Keeper) GetDataSourceCount(ctx sdk.Context) uint64

GetDataSourceCount returns the current number of all data sources ever exist.

func (Keeper) GetFile

func (k Keeper) GetFile(name string) []byte

GetFile loads the file from the file storage. Panics if the file does not exist.

func (Keeper) GetNextDataSourceID

func (k Keeper) GetNextDataSourceID(ctx sdk.Context) types.DataSourceID

GetNextDataSourceID increments and returns the current number of data sources.

func (Keeper) GetNextOracleScriptID

func (k Keeper) GetNextOracleScriptID(ctx sdk.Context) types.OracleScriptID

GetNextOracleScriptID increments and returns the current number of oracle scripts.

func (Keeper) GetNextRequestID

func (k Keeper) GetNextRequestID(ctx sdk.Context) types.RequestID

GetNextRequestID increments and returns the current number of requests.

func (Keeper) GetOracleScript

func (k Keeper) GetOracleScript(ctx sdk.Context, id types.OracleScriptID) (types.OracleScript, error)

GetOracleScript returns the oracle script struct for the given ID or error if not exists.

func (Keeper) GetOracleScriptCount

func (k Keeper) GetOracleScriptCount(ctx sdk.Context) uint64

GetOracleScriptCount returns the current number of all oracle scripts ever exist.

func (Keeper) GetParams

func (k Keeper) GetParams(ctx sdk.Context) (params types.Params)

GetParams returns all current parameters as a types.Params instance.

func (Keeper) GetPendingResolveList

func (k Keeper) GetPendingResolveList(ctx sdk.Context) (ids []types.RequestID)

GetPendingResolveList returns the list of pending requests to be executed during EndBlock.

func (Keeper) GetPort

func (k Keeper) GetPort(ctx sdk.Context) string

GetPort returns the portID for the oracle module. Used in ExportGenesis

func (Keeper) GetRandomValidators

func (k Keeper) GetRandomValidators(ctx sdk.Context, size int, id uint64) ([]sdk.ValAddress, error)

GetRandomValidators returns a pseudorandom subset of active validators. Each validator has chance of getting selected directly proportional to the amount of voting power it has.

func (Keeper) GetReportCount

func (k Keeper) GetReportCount(ctx sdk.Context, rid types.RequestID) (count uint64)

GetReportCount returns the number of reports for the given request ID.

func (Keeper) GetReportIterator

func (k Keeper) GetReportIterator(ctx sdk.Context, rid types.RequestID) sdk.Iterator

GetReportIterator returns the iterator for all reports of the given request ID.

func (Keeper) GetReports

func (k Keeper) GetReports(ctx sdk.Context, rid types.RequestID) (reports []types.Report)

GetReports returns all reports for the given request ID, or nil if there is none.

func (Keeper) GetRequest

func (k Keeper) GetRequest(ctx sdk.Context, id types.RequestID) (types.Request, error)

GetRequest returns the request struct for the given ID or error if not exists.

func (Keeper) GetRequestCount

func (k Keeper) GetRequestCount(ctx sdk.Context) uint64

GetRequestCount returns the current number of all requests ever exist.

func (Keeper) GetRequestLastExpired

func (k Keeper) GetRequestLastExpired(ctx sdk.Context) types.RequestID

GetRequestLastExpired returns the ID of the last expired request.

func (Keeper) GetResult

func (k Keeper) GetResult(ctx sdk.Context, id types.RequestID) (types.Result, error)

GetResult returns the result for the given request ID or error if not exists.

func (Keeper) GetRollingSeed

func (k Keeper) GetRollingSeed(ctx sdk.Context) []byte

GetRollingSeed returns the current rolling seed value.

func (Keeper) GetSpanSize added in v2.4.0

func (k Keeper) GetSpanSize(ctx sdk.Context) uint64

GetSpanSize return maximum value between MaxReportDataSize and MaxCallDataSize

func (Keeper) GetValidatorStatus

func (k Keeper) GetValidatorStatus(ctx sdk.Context, val sdk.ValAddress) types.ValidatorStatus

GetValidatorStatus returns the validator status for the given validator. Note that validator status is default to [inactive, 0], so new validators start with inactive state.

func (Keeper) GrantReporter added in v2.2.0

func (k Keeper) GrantReporter(ctx sdk.Context, validator sdk.ValAddress, reporter sdk.AccAddress) error

GrantReporter grants the reporter to validator for testing

func (Keeper) HasDataSource

func (k Keeper) HasDataSource(ctx sdk.Context, id types.DataSourceID) bool

HasDataSource checks if the data source of this ID exists in the storage.

func (Keeper) HasOracleScript

func (k Keeper) HasOracleScript(ctx sdk.Context, id types.OracleScriptID) bool

HasOracleScript checks if the oracle script of this ID exists in the storage.

func (Keeper) HasReport

func (k Keeper) HasReport(ctx sdk.Context, rid types.RequestID, val sdk.ValAddress) bool

HasReport checks if the report of this ID triple exists in the storage.

func (Keeper) HasRequest

func (k Keeper) HasRequest(ctx sdk.Context, id types.RequestID) bool

HasRequest checks if the request of this ID exists in the storage.

func (Keeper) HasResult

func (k Keeper) HasResult(ctx sdk.Context, id types.RequestID) bool

HasResult checks if the result of this request ID exists in the storage.

func (Keeper) IBCRequestEnabled

func (k Keeper) IBCRequestEnabled(ctx sdk.Context) (res bool)

IBCRequestEnabled - a flag indicating whether sending oracle request via IBC is allowed or not

func (Keeper) InactivePenaltyDuration

func (k Keeper) InactivePenaltyDuration(ctx sdk.Context) (res uint64)

InactivePenaltyDuration - time duration that need to wait when the validator marked as inactive oracle provider, before re-activate as oracle provider

func (Keeper) IsBound

func (k Keeper) IsBound(ctx sdk.Context, portID string) bool

IsBound checks if the oracle module is already bound to the desired port

func (Keeper) IsReporter

func (k Keeper) IsReporter(ctx sdk.Context, validator sdk.ValAddress, reporter sdk.AccAddress) bool

IsReporter checks if the validator granted to the reporter

func (Keeper) Logger

func (k Keeper) Logger(ctx sdk.Context) log.Logger

Logger returns a module-specific logger.

func (Keeper) MaxAskCount

func (k Keeper) MaxAskCount(ctx sdk.Context) (res uint64)

MaxAskCount - Maximum number of validators allowed to fulfill the request

func (Keeper) MaxCalldataSize added in v2.1.1

func (k Keeper) MaxCalldataSize(ctx sdk.Context) (res uint64)

MaxCalldataSize - Maximum size limit of calldata (bytes) in a request

func (Keeper) MaxRawRequestCount

func (k Keeper) MaxRawRequestCount(ctx sdk.Context) (res uint64)

MaxRawRequestCount - Maximum number of raw request allowed

func (Keeper) MaxReportDataSize added in v2.1.1

func (k Keeper) MaxReportDataSize(ctx sdk.Context) (res uint64)

MaxReportDataSize - Maximum size limit of report data (bytes) in a report

func (Keeper) MissReport

func (k Keeper) MissReport(ctx sdk.Context, val sdk.ValAddress, requestTime time.Time)

MissReport changes the given validator's status to inactive. No-op if already inactive or if the validator was active after the time the request happened.

func (Keeper) MustEditDataSource

func (k Keeper) MustEditDataSource(ctx sdk.Context, id types.DataSourceID, new types.DataSource)

MustEditDataSource edits the given data source by id and flushes it to the storage.

func (Keeper) MustEditOracleScript

func (k Keeper) MustEditOracleScript(ctx sdk.Context, id types.OracleScriptID, new types.OracleScript)

MustEditOracleScript edits the given oracle script by id and flushes it to the storage. Panic if not exists.

func (Keeper) MustGetDataSource

func (k Keeper) MustGetDataSource(ctx sdk.Context, id types.DataSourceID) types.DataSource

MustGetDataSource returns the data source struct for the given ID. Panic if not exists.

func (Keeper) MustGetOracleScript

func (k Keeper) MustGetOracleScript(ctx sdk.Context, id types.OracleScriptID) types.OracleScript

MustGetOracleScript returns the oracle script struct for the given ID. Panic if not exists.

func (Keeper) MustGetRequest

func (k Keeper) MustGetRequest(ctx sdk.Context, id types.RequestID) types.Request

MustGetRequest returns the request struct for the given ID. Panics error if not exists.

func (Keeper) MustGetResult

func (k Keeper) MustGetResult(ctx sdk.Context, id types.RequestID) types.Result

MustGetResult returns the result for the given request ID. Panics on error.

func (Keeper) OnRecvPacket

func (k Keeper) OnRecvPacket(
	ctx sdk.Context,
	packet channeltypes.Packet,
	data types.OracleRequestPacketData,
	relayer sdk.AccAddress,
) (types.RequestID, error)

OnRecvPacket processes a cross chain oracle request. Data source fees are collected from the relayer account.

func (Keeper) OracleRewardPercentage

func (k Keeper) OracleRewardPercentage(ctx sdk.Context) (res uint64)

OracleRewardPercentage - reward ratio used when allocating reward for active validators

func (Keeper) PerValidatorRequestGas

func (k Keeper) PerValidatorRequestGas(ctx sdk.Context) (res uint64)

PerValidatorRequestGas - amount of gas consumed when preparing request It is the amount per validator where total gas depends on ask count

func (Keeper) PrepareRequest

func (k Keeper) PrepareRequest(
	ctx sdk.Context,
	r types.RequestSpec,
	feePayer sdk.AccAddress,
	ibcChannel *types.IBCChannel,
) (types.RequestID, error)

PrepareRequest takes an request specification object, performs the prepare call, and saves the request object to store. Also emits events related to the request.

func (Keeper) ProcessExpiredRequests

func (k Keeper) ProcessExpiredRequests(ctx sdk.Context)

ProcessExpiredRequests resolves all expired requests and deactivates missed validators.

func (Keeper) ResolveExpired

func (k Keeper) ResolveExpired(ctx sdk.Context, id types.RequestID)

ResolveExpired resolves the given request as expired.

func (Keeper) ResolveFailure

func (k Keeper) ResolveFailure(ctx sdk.Context, id types.RequestID, reason string)

ResolveFailure resolves the given request as failure with the given reason.

func (Keeper) ResolveRequest

func (k Keeper) ResolveRequest(ctx sdk.Context, reqID types.RequestID)

ResolveRequest resolves the given request and saves the result to the store. The function assumes that the given request is in a resolvable state with sufficient reporters.

func (Keeper) ResolveSuccess

func (k Keeper) ResolveSuccess(ctx sdk.Context, id types.RequestID, result []byte, gasUsed uint64)

ResolveSuccess resolves the given request as success with the given result.

func (Keeper) RevokeReporter added in v2.2.0

func (k Keeper) RevokeReporter(ctx sdk.Context, validator sdk.ValAddress, reporter sdk.AccAddress) error

RevokeReporter revokes grant from the reporter for testing

func (Keeper) SamplingTryCount

func (k Keeper) SamplingTryCount(ctx sdk.Context) (res uint64)

SamplingTryCount - number of tries when sampling validator set

func (Keeper) SaveResult

func (k Keeper) SaveResult(
	ctx sdk.Context, id types.RequestID, status types.ResolveStatus, result []byte,
)

SaveResult saves the result packets for the request with the given resolve status and result.

func (Keeper) SetDataSource

func (k Keeper) SetDataSource(ctx sdk.Context, id types.DataSourceID, dataSource types.DataSource)

SetDataSource saves the given data source to the storage without performing validation.

func (Keeper) SetDataSourceCount

func (k Keeper) SetDataSourceCount(ctx sdk.Context, count uint64)

SetDataSourceCount sets the number of data source count to the given value.

func (Keeper) SetOracleScript

func (k Keeper) SetOracleScript(ctx sdk.Context, id types.OracleScriptID, oracleScript types.OracleScript)

SetOracleScript saves the given oracle script to the storage without performing validation.

func (Keeper) SetOracleScriptCount

func (k Keeper) SetOracleScriptCount(ctx sdk.Context, count uint64)

SetOracleScriptCount sets the number of oracle script count to the given value.

func (Keeper) SetParams

func (k Keeper) SetParams(ctx sdk.Context, params types.Params)

SetParams sets oracle parameters

func (Keeper) SetPendingResolveList

func (k Keeper) SetPendingResolveList(ctx sdk.Context, ids []types.RequestID)

SetPendingResolveList saves the list of pending request that will be resolved at end block.

func (Keeper) SetPort

func (k Keeper) SetPort(ctx sdk.Context, portID string)

SetPort sets the portID for the oracle module. Used in InitGenesis

func (Keeper) SetReport

func (k Keeper) SetReport(ctx sdk.Context, rid types.RequestID, rep types.Report)

SetDataReport saves the report to the storage without performing validation.

func (Keeper) SetRequest

func (k Keeper) SetRequest(ctx sdk.Context, id types.RequestID, request types.Request)

SetRequest saves the given data request to the store without performing any validation.

func (Keeper) SetRequestCount

func (k Keeper) SetRequestCount(ctx sdk.Context, count uint64)

SetRequestCount sets the number of request count to the given value. Useful for genesis state.

func (Keeper) SetRequestLastExpired

func (k Keeper) SetRequestLastExpired(ctx sdk.Context, id types.RequestID)

SetRequestLastExpired sets the ID of the last expired request.

func (Keeper) SetResult

func (k Keeper) SetResult(ctx sdk.Context, reqID types.RequestID, result types.Result)

SetResult sets result to the store.

func (Keeper) SetRollingSeed

func (k Keeper) SetRollingSeed(ctx sdk.Context, rollingSeed []byte)

SetRollingSeed sets the rolling seed value to be provided value.

func (Keeper) SetValidatorStatus

func (k Keeper) SetValidatorStatus(ctx sdk.Context, val sdk.ValAddress, status types.ValidatorStatus)

SetValidatorStatus sets the validator status for the given validator.

type OracleSnapshotter added in v2.4.0

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

func NewOracleSnapshotter added in v2.4.0

func NewOracleSnapshotter(cms sdk.MultiStore, keeper *Keeper) *OracleSnapshotter

func (*OracleSnapshotter) Restore added in v2.4.0

func (os *OracleSnapshotter) Restore(
	height uint64, format uint32, protoReader protoio.Reader,
) (snapshot.SnapshotItem, error)

func (*OracleSnapshotter) Snapshot added in v2.4.0

func (os *OracleSnapshotter) Snapshot(height uint64, protoWriter protoio.Writer) error

func (*OracleSnapshotter) SnapshotFormat added in v2.4.0

func (os *OracleSnapshotter) SnapshotFormat() uint32

func (*OracleSnapshotter) SnapshotName added in v2.4.0

func (os *OracleSnapshotter) SnapshotName() string

func (*OracleSnapshotter) SupportedFormats added in v2.4.0

func (os *OracleSnapshotter) SupportedFormats() []uint32

type Querier

type Querier struct {
	Keeper
}

Querier is used as Keeper will have duplicate methods if used directly, and gRPC names take precedence over keeper

func (Querier) ActiveValidators

ActiveValidators queries all active oracle validators.

func (Querier) Counts

Counts queries the number of data sources, oracle scripts, and requests.

func (Querier) Data

Data queries the data source or oracle script script for given file hash.

func (Querier) DataSource

DataSource queries data source info for given data source id.

func (Querier) IsReporter added in v2.2.0

IsReporter queries grant of account on this validator

func (Querier) OracleScript

OracleScript queries oracle script info for given oracle script id.

func (Querier) Params

Params queries the oracle parameters.

func (Querier) Reporters

Reporters queries 100 gratees of a given validator address and filter for reporter.

func (Querier) Request

Request queries request info for given request id.

func (Querier) RequestPrice

RequestPrice queries the latest price on standard price reference oracle script.

func (Querier) RequestSearch

RequestSearch queries the latest request that match the given input.

func (Querier) RequestVerification

RequestVerification verifies oracle request for validation before executing data sources

func (Querier) Validator

Validator queries oracle info of validator for given validator address.

Jump to

Keyboard shortcuts

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