Documentation
¶
Index ¶
Constants ¶
View Source
const LoggerTag = "RELAY"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Medians is the list of median contracts configured for the relay.
Medians []ConfigMedian
// Scribes is the list of scribe contracts configured for the relay.
Scribes []ConfigScribe
// OptimisticScribes is the list of optimistic scribe contracts configured
// for the relay.
OptimisticScribes []ConfigOptimisticScribe
// Ticker notifies the relay to check if an update is required.
Ticker *timeutil.Ticker
// Logger is a current logger interface used by the Feed.
// If nil, null logger will be used.
Logger log.Logger
}
Config is the configuration for the Relay.
type ConfigMedian ¶
type ConfigMedian struct {
// Client is the RPC client used to interact with the blockchain.
Client rpc.RPC
// DataPointStore is the store used to retrieve data points.
DataPointStore datapointStore.DataPointProvider
// DataModel is the name of the data model from which data points
// are retrieved.
DataModel string
// ContractAddress is the address of the Median contract.
ContractAddress types.Address
// FeedAddresses is the list of feed addresses that are allowed to
// update the Median contract.
FeedAddresses []types.Address
// Spread is the minimum spread between the oracle price and new
// price required to send update.
Spread float64
// Expiration is the minimum time difference between the last oracle
// update on the Median contract and current time required to send
// update.
Expiration time.Duration
}
type ConfigOptimisticScribe ¶
type ConfigOptimisticScribe struct {
// Client is the RPC client used to interact with the blockchain.
Client rpc.RPC
// MuSigStore is the store used to retrieve MuSig signatures.
MuSigStore musigStore.SignatureProvider
// DataModel is the name of the data model that is used to update
// the OptimisticScribe contract.
DataModel string
// ContractAddress is the address of the OptimisticScribe contract.
ContractAddress types.Address
// Spread is the minimum calcSpread between the oracle price and new
// price required to send regular update.
Spread float64
// Expiration is the minimum time difference between the last oracle
// update on the Scribe contract and current time required to send
// regular update.
Expiration time.Duration
// OptimisticSpread is the minimum time difference between the last oracle
// update on the Scribe contract and current time required to send
// optimistic update.
OptimisticSpread float64
// OptimisticExpiration is the minimum time difference between the last
// oracle update on the Scribe contract and current time required to send
// optimistic update.
OptimisticExpiration time.Duration
}
type ConfigScribe ¶
type ConfigScribe struct {
// Client is the RPC client used to interact with the blockchain.
Client rpc.RPC
// MuSigStore is the store used to retrieve MuSig signatures.
MuSigStore musigStore.SignatureProvider
// DataModel is the name of the data model that is used to update
// the Scribe contract.
DataModel string
// ContractAddress is the address of the Scribe contract.
ContractAddress types.Address
// Spread is the minimum calcSpread between the oracle price and new
// price required to send update.
Spread float64
// Expiration is the minimum time difference between the last oracle
// update on the Scribe contract and current time required to send
// update.
Expiration time.Duration
}
type MedianContract ¶
type MedianContract interface {
Client() rpc.RPC
Address() types.Address
Val(ctx context.Context) (*bn.DecFixedPointNumber, error)
Age() contract.TypedSelfCaller[time.Time]
Wat() contract.TypedSelfCaller[string]
Bar() contract.TypedSelfCaller[int]
Poke(vals []chronicle.MedianVal) contract.SelfTransactableCaller
}
type OpScribeContract ¶
type OpScribeContract interface {
ScribeContract
ReadNext(ctx context.Context) (chronicle.PokeData, bool, error)
OpPoke(pokeData chronicle.PokeData, schnorrData chronicle.SchnorrData, ecdsaData types.Signature) contract.SelfTransactableCaller
}
type Relay ¶
type Relay struct {
// contains filtered or unexported fields
}
Relay is a service that relays data to the blockchain.
type ScribeContract ¶
type ScribeContract interface {
Client() rpc.RPC
Address() types.Address
Read(ctx context.Context) (chronicle.PokeData, error)
Wat() contract.TypedSelfCaller[string]
Bar() contract.TypedSelfCaller[int]
Feeds() contract.TypedSelfCaller[chronicle.FeedsResult]
Poke(pokeData chronicle.PokeData, schnorrData chronicle.SchnorrData) contract.SelfTransactableCaller
}
Click to show internal directories.
Click to hide internal directories.