Documentation
¶
Index ¶
Constants ¶
View Source
const LoggerTag = "RELAY"
View Source
const MuSigLoggerTag = "MUSIG_STORE"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Medians []ConfigMedian
Scribes []ConfigScribe
OptimisticScribes []ConfigOptimisticScribe
Logger log.Logger
}
type ConfigMedian ¶
type ConfigMedian struct {
DataModel string
ContractAddress types.Address
FeedAddresses []types.Address
Client rpc.RPC
DataPointStore *store.Store
// 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 Median contract and current time required to send
// update.
Expiration time.Duration
// Ticker notifies the relay to check if an update is required.
Ticker *timeutil.Ticker
}
type ConfigOptimisticScribe ¶
type ConfigOptimisticScribe struct {
DataModel string
ContractAddress types.Address
FeedAddresses []types.Address
Client rpc.RPC
MuSigStore *MuSigStore
// 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 OpScribe contract and current time required to send
// update.
Expiration time.Duration
// Ticker notifies the relay to check if an update is required.
Ticker *timeutil.Ticker
}
type ConfigScribe ¶
type ConfigScribe struct {
DataModel string
ContractAddress types.Address
FeedAddresses []types.Address
Client rpc.RPC
MuSigStore *MuSigStore
// 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
// Ticker notifies the relay to check if an update is required.
Ticker *timeutil.Ticker
}
type MedianContract ¶
type MedianContract interface {
Val(ctx context.Context) (*bn.DecFixedPointNumber, error)
Age(ctx context.Context) (time.Time, error)
Wat(ctx context.Context) (string, error)
Bar(ctx context.Context) (int, error)
Poke(ctx context.Context, val []*bn.DecFixedPointNumber, age []time.Time, v []uint8, r []*big.Int, s []*big.Int) error
}
type MuSigStore ¶
type MuSigStore struct {
// contains filtered or unexported fields
}
func NewMuSigStore ¶
func NewMuSigStore(cfg MuSigStoreConfig) *MuSigStore
func (*MuSigStore) OptimisticSignaturesByDataModel ¶
func (m *MuSigStore) OptimisticSignaturesByDataModel(model string) []*messages.MuSigOptimisticSignature
func (*MuSigStore) SignaturesByDataModel ¶
func (m *MuSigStore) SignaturesByDataModel(model string) []*messages.MuSigSignature
func (*MuSigStore) Start ¶
func (m *MuSigStore) Start(ctx context.Context) error
Start implements the supervisor.Service interface.
func (*MuSigStore) Wait ¶
func (m *MuSigStore) Wait() <-chan error
Wait implements the supervisor.Service interface.
type MuSigStoreConfig ¶
type MuSigStoreConfig struct {
// Transport is an implementation of transport used to fetch data from
// feeds.
Transport transport.Service
// ScribeDataModels is the list of models for which we should collect
// signatures.
ScribeDataModels []string
// OpScribeDataModels is the list of models for which we should collect
// optimistic signatures.
OpScribeDataModels []string
// Logger is a current logger interface used by the store.
Logger log.Logger
}
MuSigStoreConfig is the configuration for MuSigStore.
type OpScribeContract ¶
type OpScribeContract interface {
ScribeContract
OpPoke(ctx context.Context, pokeData contract.PokeData, schnorrData contract.SchnorrData, ecdsaData types.Signature) error
}
type Relay ¶
type Relay struct {
// contains filtered or unexported fields
}
type ScribeContract ¶
type ScribeContract interface {
Wat(ctx context.Context) (string, error)
Bar(ctx context.Context) (int, error)
Feeds(ctx context.Context) ([]types.Address, []uint8, error)
Read(ctx context.Context) (*bn.DecFixedPointNumber, time.Time, error)
Poke(ctx context.Context, pokeData contract.PokeData, schnorrData contract.SchnorrData) error
}
Click to show internal directories.
Click to hide internal directories.