Documentation
¶
Index ¶
- Constants
- Variables
- type Median
- type Price
- func (p *Price) Fields(signer ethereum.Signer) log.Fields
- func (p *Price) Float64Price() float64
- func (p *Price) From(signer ethereum.Signer) (*ethereum.Address, error)
- func (p *Price) MarshalJSON() ([]byte, error)
- func (p *Price) SetFloat64Price(price float64)
- func (p *Price) Sign(signer ethereum.Signer) error
- func (p *Price) Signature() ethereum.Signature
- func (p *Price) UnmarshalJSON(bytes []byte) error
Constants ¶
View Source
const PriceMultiplier = 1e18
Variables ¶
View Source
var ErrPriceNotSet = errors.New("unable to sign a price because the price is not set")
View Source
var ErrUnmarshallingFailure = errors.New("unable to unmarshal given JSON")
Functions ¶
This section is empty.
Types ¶
type Median ¶
type Median interface {
// Address returns medianizer contract address.
Address() common.Address
// Age returns the value from contract's age method. The age is the block
// timestamp of last price val update.
Age(ctx context.Context) (time.Time, error)
// Bar returns the value from contract's bar method. The bar method returns
// the minimum number of prices necessary to accept a new median value.
Bar(ctx context.Context) (int64, error)
// Val returns current asset price form the contract's storage.
Val(ctx context.Context) (*big.Int, error)
// Wat returns asset name.
Wat(ctx context.Context) (string, error)
// Feeds returns a list of all Ethereum addresses that are authorized to update
// Oracle prices (orcls).
Feeds(ctx context.Context) ([]ethereum.Address, error)
// Poke sends transaction to the smart contract which invokes contract's
// poke method, which updates asset price (val). If simulateBeforeRun is
// set to true, then transaction will be simulated on the EVM before actual
// transaction will be send.
Poke(ctx context.Context, prices []*Price, simulateBeforeRun bool) (*ethereum.Hash, error)
// Lift sends transaction to the smart contract which invokes contract's
// lift method, which sends adds given addresses to the feeders list (orcls).
// If simulateBeforeRun is set to true, then transaction will be simulated
// on the EVM before actual transaction will be send.
Lift(ctx context.Context, addresses []common.Address, simulateBeforeRun bool) (*ethereum.Hash, error)
// Drop sends transaction to the smart contract which invokes contract's
// drop method, which removes given addresses from the feeders list (orcls).
// If simulateBeforeRun is set to true, then transaction will be simulated
// on the EVM before actual transaction will be send.
Drop(ctx context.Context, addresses []common.Address, simulateBeforeRun bool) (*ethereum.Hash, error)
// SetBar sends transaction to the smart contract which invokes contract's
// setBar method, which sets bar variable (quorum). If simulateBeforeRun is
// set to true, then transaction will be simulated on the EVM before actual
// transaction will be send.
SetBar(ctx context.Context, bar *big.Int, simulateBeforeRun bool) (*ethereum.Hash, error)
}
Median is an interface for the median oracle contract: https://github.com/makerdao/median/
Contract documentation: https://docs.makerdao.com/smart-contract-modules/oracle-module/median-detailed-documentation
type Price ¶
type Price struct {
Wat string // Wat is the asset name.
Val *big.Int // Val is the asset price multiplied by PriceMultiplier.
Age time.Time // Age is the time when the price was obtained.
// Signature:
V byte
R [32]byte
S [32]byte
// StarkWare signature:
StarkR []byte
StarkS []byte
StarkPK []byte
}
func (*Price) Float64Price ¶
func (*Price) MarshalJSON ¶
func (*Price) SetFloat64Price ¶
func (*Price) UnmarshalJSON ¶
Click to show internal directories.
Click to hide internal directories.