Documentation ¶
Index ¶
- Constants
- func ContainsEID(rawRequests []types.RawRequest, target types.ExternalID) bool
- func ContainsVal(vals []sdk.ValAddress, target sdk.ValAddress) bool
- func NewQuerier(keeper Keeper) sdk.Querier
- func ParamKeyTable() params.KeyTable
- type Keeper
- func (k Keeper) Activate(ctx sdk.Context, val sdk.ValAddress) error
- func (k Keeper) AddDataSource(ctx sdk.Context, dataSource types.DataSource) types.DataSourceID
- func (k Keeper) AddExecutableFile(file []byte) string
- func (k Keeper) AddOracleScript(ctx sdk.Context, oracleScript types.OracleScript) types.OracleScriptID
- func (k Keeper) AddOracleScriptFile(file []byte) (string, error)
- func (k Keeper) AddPendingRequest(ctx sdk.Context, id types.RequestID)
- func (k Keeper) AddReport(ctx sdk.Context, rid types.RequestID, rep types.Report) error
- func (k Keeper) AddReporter(ctx sdk.Context, val sdk.ValAddress, addr sdk.AccAddress) error
- func (k Keeper) AddRequest(ctx sdk.Context, req types.Request) types.RequestID
- func (k Keeper) AllocateTokens(ctx sdk.Context, previousVotes []abci.VoteInfo)
- func (k Keeper) DeleteReports(ctx sdk.Context, rid types.RequestID)
- func (k Keeper) DeleteRequest(ctx sdk.Context, id types.RequestID)
- func (k Keeper) GetAllDataSources(ctx sdk.Context) (dataSources []types.DataSource)
- func (k Keeper) GetAllOracleScripts(ctx sdk.Context) (oracleScripts []types.OracleScript)
- func (k Keeper) GetDataSource(ctx sdk.Context, id types.DataSourceID) (types.DataSource, error)
- func (k Keeper) GetDataSourceCount(ctx sdk.Context) int64
- func (k Keeper) GetFile(name string) []byte
- func (k Keeper) GetNextDataSourceID(ctx sdk.Context) types.DataSourceID
- func (k Keeper) GetNextOracleScriptID(ctx sdk.Context) types.OracleScriptID
- func (k Keeper) GetNextRequestID(ctx sdk.Context) types.RequestID
- func (k Keeper) GetOracleScript(ctx sdk.Context, id types.OracleScriptID) (types.OracleScript, error)
- func (k Keeper) GetOracleScriptCount(ctx sdk.Context) int64
- func (k Keeper) GetParam(ctx sdk.Context, key []byte) (res uint64)
- func (k Keeper) GetParams(ctx sdk.Context) (params types.Params)
- func (k Keeper) GetPendingResolveList(ctx sdk.Context) (ids []types.RequestID)
- func (k Keeper) GetRandomValidators(ctx sdk.Context, size int, id int64) ([]sdk.ValAddress, error)
- func (k Keeper) GetReportCount(ctx sdk.Context, rid types.RequestID) (count uint64)
- func (k Keeper) GetReportIterator(ctx sdk.Context, rid types.RequestID) sdk.Iterator
- func (k Keeper) GetReporters(ctx sdk.Context, val sdk.ValAddress) (reporters []sdk.AccAddress)
- func (k Keeper) GetReports(ctx sdk.Context, rid types.RequestID) (reports []types.Report)
- func (k Keeper) GetRequest(ctx sdk.Context, id types.RequestID) (types.Request, error)
- func (k Keeper) GetRequestCount(ctx sdk.Context) int64
- func (k Keeper) GetRequestLastExpired(ctx sdk.Context) types.RequestID
- func (k Keeper) GetResult(ctx sdk.Context, id types.RequestID) (types.Result, error)
- func (k Keeper) GetRollingSeed(ctx sdk.Context) []byte
- func (k Keeper) GetValidatorStatus(ctx sdk.Context, val sdk.ValAddress) types.ValidatorStatus
- func (k Keeper) HasDataSource(ctx sdk.Context, id types.DataSourceID) bool
- func (k Keeper) HasOracleScript(ctx sdk.Context, id types.OracleScriptID) bool
- func (k Keeper) HasReport(ctx sdk.Context, rid types.RequestID, val sdk.ValAddress) bool
- func (k Keeper) HasRequest(ctx sdk.Context, id types.RequestID) bool
- func (k Keeper) HasResult(ctx sdk.Context, id types.RequestID) bool
- func (k Keeper) IsReporter(ctx sdk.Context, val sdk.ValAddress, addr sdk.AccAddress) bool
- func (k Keeper) Logger(ctx sdk.Context) log.Logger
- func (k Keeper) MissReport(ctx sdk.Context, val sdk.ValAddress, requestTime time.Time)
- func (k Keeper) MustEditDataSource(ctx sdk.Context, id types.DataSourceID, new types.DataSource)
- func (k Keeper) MustEditOracleScript(ctx sdk.Context, id types.OracleScriptID, new types.OracleScript)
- func (k Keeper) MustGetDataSource(ctx sdk.Context, id types.DataSourceID) types.DataSource
- func (k Keeper) MustGetOracleScript(ctx sdk.Context, id types.OracleScriptID) types.OracleScript
- func (k Keeper) MustGetRequest(ctx sdk.Context, id types.RequestID) types.Request
- func (k Keeper) MustGetResult(ctx sdk.Context, id types.RequestID) types.Result
- func (k Keeper) PrepareRequest(ctx sdk.Context, r types.RequestSpec) error
- func (k Keeper) ProcessExpiredRequests(ctx sdk.Context)
- func (k Keeper) RemoveReporter(ctx sdk.Context, val sdk.ValAddress, addr sdk.AccAddress) error
- func (k Keeper) ResolveExpired(ctx sdk.Context, id types.RequestID)
- func (k Keeper) ResolveFailure(ctx sdk.Context, id types.RequestID, reason string)
- func (k Keeper) ResolveRequest(ctx sdk.Context, reqID types.RequestID)
- func (k Keeper) ResolveSuccess(ctx sdk.Context, id types.RequestID, result []byte, gasUsed uint32)
- func (k Keeper) SaveResult(ctx sdk.Context, id types.RequestID, status types.ResolveStatus, result []byte)
- func (k Keeper) SetDataSource(ctx sdk.Context, id types.DataSourceID, dataSource types.DataSource)
- func (k Keeper) SetDataSourceCount(ctx sdk.Context, count int64)
- func (k Keeper) SetOracleScript(ctx sdk.Context, id types.OracleScriptID, oracleScript types.OracleScript)
- func (k Keeper) SetOracleScriptCount(ctx sdk.Context, count int64)
- func (k Keeper) SetParam(ctx sdk.Context, key []byte, value uint64)
- func (k Keeper) SetPendingResolveList(ctx sdk.Context, ids []types.RequestID)
- func (k Keeper) SetReport(ctx sdk.Context, rid types.RequestID, rep types.Report)
- func (k Keeper) SetRequest(ctx sdk.Context, id types.RequestID, request types.Request)
- func (k Keeper) SetRequestCount(ctx sdk.Context, count int64)
- func (k Keeper) SetRequestLastExpired(ctx sdk.Context, id types.RequestID)
- func (k Keeper) SetResult(ctx sdk.Context, reqID types.RequestID, result types.Result)
- func (k Keeper) SetRollingSeed(ctx sdk.Context, rollingSeed []byte)
- func (k Keeper) SetValidatorStatus(ctx sdk.Context, val sdk.ValAddress, status types.ValidatorStatus)
Constants ¶
const (
RollingSeedSizeInBytes = 32
)
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 NewQuerier ¶
NewQuerier is the module level router for state queries.
func ParamKeyTable ¶
ParamKeyTable returns the parameter key table for oracle module.
Types ¶
type Keeper ¶
type Keeper struct {
// contains filtered or unexported fields
}
func NewKeeper ¶
func NewKeeper( cdc *codec.Codec, key sdk.StoreKey, fileDir string, feeCollectorName string, paramSpace params.Subspace, supplyKeeper types.SupplyKeeper, stakingKeeper types.StakingKeeper, distrKeeper types.DistrKeeper, ) Keeper
NewKeeper creates a new oracle Keeper instance.
func (Keeper) Activate ¶
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 ¶
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 ¶
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 ¶
AddPendingRequest adds the request to the pending list. DO NOT add same request more than once.
func (Keeper) AddReport ¶
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) AddReporter ¶
func (k Keeper) AddReporter(ctx sdk.Context, val sdk.ValAddress, addr sdk.AccAddress) error
AddReporter adds the reporter address to the list of reporters of the given validator.
func (Keeper) AddRequest ¶
AddRequest attempts to create and save a new request.
func (Keeper) AllocateTokens ¶
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) DeleteReports ¶
DeleteReports removes all reports for the given request ID.
func (Keeper) DeleteRequest ¶
DeleteRequest removes the given data request from the store.
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 ¶
GetDataSourceCount returns the current number of all data sources ever exist.
func (Keeper) GetFile ¶
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 ¶
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 ¶
GetOracleScriptCount returns the current number of all oracle scripts ever exist.
func (Keeper) GetPendingResolveList ¶
GetPendingResolveList returns the list of pending requests to be executed during EndBlock.
func (Keeper) GetRandomValidators ¶
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 ¶
GetReportCount returns the number of reports for the given request ID.
func (Keeper) GetReportIterator ¶
GetReportIterator returns the iterator for all reports of the given request ID.
func (Keeper) GetReporters ¶
func (k Keeper) GetReporters(ctx sdk.Context, val sdk.ValAddress) (reporters []sdk.AccAddress)
GetReporters returns the reporter list of the given validator.
func (Keeper) GetReports ¶
GetReports returns all reports for the given request ID, or nil if there is none.
func (Keeper) GetRequest ¶
GetRequest returns the request struct for the given ID or error if not exists.
func (Keeper) GetRequestCount ¶
GetRequestCount returns the current number of all requests ever exist.
func (Keeper) GetRequestLastExpired ¶
GetRequestLastExpired returns the ID of the last expired request.
func (Keeper) GetResult ¶
GetResult returns the result for the given request ID or error if not exists.
func (Keeper) GetRollingSeed ¶
GetRollingSeed returns the current rolling seed value.
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) HasDataSource ¶
HasDataSource checks if the data source of this ID exists in the storage.
func (Keeper) HasOracleScript ¶
HasOracleScript checks if the oracle script of this ID exists in the storage.
func (Keeper) HasRequest ¶
HasRequest checks if the request of this ID exists in the storage.
func (Keeper) IsReporter ¶
func (k Keeper) IsReporter(ctx sdk.Context, val sdk.ValAddress, addr sdk.AccAddress) bool
IsReporter returns true iff the address is an authorized reporter for the given validator.
func (Keeper) MissReport ¶
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 ¶
MustGetRequest returns the request struct for the given ID. Panics error if not exists.
func (Keeper) MustGetResult ¶
MustGetResult returns the result for the given request ID. Panics on error.
func (Keeper) PrepareRequest ¶
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 ¶
ProcessExpiredRequests resolves all expired requests and deactivates missed validators.
func (Keeper) RemoveReporter ¶
func (k Keeper) RemoveReporter(ctx sdk.Context, val sdk.ValAddress, addr sdk.AccAddress) error
RemoveReporter removes the reporter address from the list of reporters of the given validator.
func (Keeper) ResolveExpired ¶
ResolveExpired resolves the given request as expired.
func (Keeper) ResolveFailure ¶
ResolveFailure resolves the given request as failure with the given reason.
func (Keeper) ResolveRequest ¶
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 ¶
ResolveSuccess resolves the given request as success with the given result.
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 ¶
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 ¶
SetOracleScriptCount sets the number of oracle script count to the given value.
func (Keeper) SetPendingResolveList ¶
SetPendingResolveList saves the list of pending request that will be resolved at end block.
func (Keeper) SetReport ¶
SetDataReport saves the report to the storage without performing validation.
func (Keeper) SetRequest ¶
SetRequest saves the given data request to the store without performing any validation.
func (Keeper) SetRequestCount ¶
SetRequestCount sets the number of request count to the given value. Useful for genesis state.
func (Keeper) SetRequestLastExpired ¶
SetRequestLastExpired sets the ID of the last expired request.
func (Keeper) SetRollingSeed ¶
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.