dia

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2021 License: GPL-2.0 Imports: 15 Imported by: 56

Documentation

Index

Constants

View Source
const (
	BalancerExchange  = "Balancer"
	GnosisExchange    = "Gnosis"
	KrakenExchange    = "Kraken"
	BitfinexExchange  = "Bitfinex"
	BinanceExchange   = "Binance"
	FTX               = "FTX"
	Opyn              = "OPYN"
	Premia            = "Premia"
	BitBayExchange    = "BitBay"
	BittrexExchange   = "Bittrex"
	CoinBaseExchange  = "CoinBase"
	HitBTCExchange    = "HitBTC"
	SimexExchange     = "Simex"
	OKExExchange      = "OKEx"
	HuobiExchange     = "Huobi"
	LBankExchange     = "LBank"
	GateIOExchange    = "GateIO"
	ZBExchange        = "ZB"
	QuoineExchange    = "Quoine"
	UnknownExchange   = "Unknown"
	BlockSizeSeconds  = 120
	FilterKing        = "MA120"
	BancorExchange    = "Bancor"
	UniswapExchange   = "Uniswap"
	UniswapExchangeV3 = "UniswapV3"
	LoopringExchange  = "Loopring"
	CurveFIExchange   = "Curvefi"
	MakerExchange     = "Maker"
	KuCoinExchange    = "KuCoin"
	SushiSwapExchange = "SushiSwap"
	PanCakeSwap       = "PanCakeSwap"
	DforceExchange    = "Dforce"
	ZeroxExchange     = "0x"
	KyberExchange     = "Kyber"
	BitMaxExchange    = "Bitmax"
	CREX24Exchange    = "CREX24"
	STEXExchange      = "STEX"
	Deribit           = "Deribit"
)
View Source
const (
	Bitcoin  = "Bitcoin"
	Ethereum = "Ethereum"
)
View Source
const (
	Diadata                                 = "diadata.org"
	PROOF_OF_STAKE    VerificationMechanism = "pos"
	PROOF_OF_WORK     VerificationMechanism = "pow"
	BITCOIN                                 = "Bitcoin"
	ETHEREUM                                = "Ethereum"
	BINANCESMARTCHAIN                       = "BinanceSmartChain"
)
View Source
const BaseUrl string = "https://api.diadata.org/"

Variables

This section is empty.

Functions

func Exchanges

func Exchanges() []string

func GetSymbolsList

func GetSymbolsList(url string) ([]string, error)

TODO remove URL

Types

type BlockChain

type BlockChain struct {
	Name                  string
	GenesisDate           time.Time
	NativeToken           string
	VerificationMechanism VerificationMechanism
}

type Client

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

func NewClient

func NewClient(config *ConfigApi) *Client

func NewClientWithUrl

func NewClientWithUrl(config *ConfigApi, url string) *Client

func (*Client) DoRequest

func (c *Client) DoRequest(req *http.Request, refresh bool) ([]byte, error)

func (*Client) SendSupply

func (c *Client) SendSupply(s *Supply) error

func (*Client) SendSupplyWithForceOption

func (c *Client) SendSupplyWithForceOption(s *Supply, force bool) error

type ConfigApi

type ConfigApi struct {
	ApiKey    string
	SecretKey string
}

func GetConfig

func GetConfig(exchange string) (*ConfigApi, error)

func GetConfigApi

func GetConfigApi() *ConfigApi

type ConfigConnector

type ConfigConnector struct {
	Coins []Pair
}

type CviDataPoint

type CviDataPoint struct {
	Timestamp time.Time
	Value     float64
}

type DefiProtocol

type DefiProtocol struct {
	Name                 string
	Address              string
	UnderlyingBlockchain string
	Token                string
}

func (*DefiProtocol) MarshalBinary

func (e *DefiProtocol) MarshalBinary() ([]byte, error)

MarshalBinary for DefiProtocol

func (*DefiProtocol) UnmarshalBinary

func (e *DefiProtocol) UnmarshalBinary(data []byte) error

UnmarshalBinary for DefiProtocol

type DefiProtocolState

type DefiProtocolState struct {
	TotalUSD  float64
	TotalETH  float64
	Timestamp time.Time
	Protocol  DefiProtocol
}

func (*DefiProtocolState) MarshalBinary

func (e *DefiProtocolState) MarshalBinary() ([]byte, error)

MarshalBinary for DefiProtocolState

func (*DefiProtocolState) UnmarshalBinary

func (e *DefiProtocolState) UnmarshalBinary(data []byte) error

UnmarshalBinary for DefiProtocolState

type DefiRate

type DefiRate struct {
	Timestamp     time.Time
	LendingRate   float64
	BorrowingRate float64
	Asset         string
	Protocol      string
}

func (*DefiRate) MarshalBinary

func (e *DefiRate) MarshalBinary() ([]byte, error)

MarshalBinary for DefiRate

func (*DefiRate) UnmarshalBinary

func (e *DefiRate) UnmarshalBinary(data []byte) error

UnmarshalBinary for DefiRate

type Exchange

type Exchange struct {
	Name          string
	Centralized   bool
	Contract      common.Address
	BlockChain    BlockChain
	WatchdogDelay int
}

type FilterPoint

type FilterPoint struct {
	Symbol string
	Value  float64
	Name   string
	Time   time.Time
}

type FiltersBlock

type FiltersBlock struct {
	BlockHash        string
	FiltersBlockData FiltersBlockData
}

func (*FiltersBlock) MarshalBinary

func (e *FiltersBlock) MarshalBinary() ([]byte, error)

MarshalBinary -

func (*FiltersBlock) UnmarshalBinary

func (e *FiltersBlock) UnmarshalBinary(data []byte) error

UnmarshalBinary -

type FiltersBlockData

type FiltersBlockData struct {
	TradesBlockHash string
	BeginTime       time.Time
	EndTime         time.Time
	FilterPoints    []FilterPoint
	FiltersNumber   int
}

type IndexBlock

type IndexBlock struct {
	BlockHash      string
	IndexBlockData IndexBlockData
}

func (IndexBlock) Hash

func (ib IndexBlock) Hash() string

func (*IndexBlock) MarshalBinary

func (e *IndexBlock) MarshalBinary() ([]byte, error)

MarshalBinary -

func (*IndexBlock) UnmarshalBinary

func (e *IndexBlock) UnmarshalBinary(data []byte) error

UnmarshalBinary -

type IndexBlockData

type IndexBlockData struct {
	FiltersBlockHash    string
	SuppliesBlockHash   string
	VolatilityBlockHash string
	IndexElements       []IndexElement
	IndexElementsNumber int
	Time                time.Time
	IndexValue          float64
	ValueTokenette      float64
	ValueToken          float64
	USDPerPointsOfIndex float64
}

type IndexElement

type IndexElement struct {
	Name            string
	Symbol          string
	Percentage      float64
	FilteredPoint   FilterPoint
	Supply          Supply
	VolatilityRatio VolatilityRatio
}

type ItinToken

type ItinToken struct {
	Itin               string
	Symbol             string
	Label              string
	Url_website        string
	Coinmarketcap_url  string
	Coinmarketcap_slug string
}

func (*ItinToken) MarshalBinary

func (e *ItinToken) MarshalBinary() ([]byte, error)

MarshalBinary -

func (*ItinToken) UnmarshalBinary

func (e *ItinToken) UnmarshalBinary(data []byte) error

UnmarshalBinary -

type NFT

type NFT struct {
	NFTClass       NFTClass
	TokenID        string
	CreationTime   time.Time
	CreatorAddress common.Address
	URI            string
	Attributes     NFTAttributes
}

NFT is the container for a specific NFT defined by the pair (address,tokenID).

func (*NFT) MarshalBinary

func (n *NFT) MarshalBinary() ([]byte, error)

MarshalBinary for DefiProtocolState

func (*NFT) UnmarshalBinary

func (n *NFT) UnmarshalBinary(data []byte) error

UnmarshalBinary for DefiProtocolState

type NFTAttributes

type NFTAttributes map[string]interface{}

NFTAttributes can be stored as jasonb in postgres: https://www.alexedwards.net/blog/using-postgresql-jsonb

func (*NFTAttributes) Scan

func (a *NFTAttributes) Scan(value interface{}) error

func (NFTAttributes) Value

func (a NFTAttributes) Value() (driver.Value, error)

type NFTClass

type NFTClass struct {
	Address      common.Address
	Symbol       string
	Name         string
	Blockchain   string
	ContractType string
	Category     string
}

NFTClass is the container for an nft class defined by a contract (address) on a blockchain.

func (*NFTClass) MarshalBinary

func (nc *NFTClass) MarshalBinary() ([]byte, error)

MarshalBinary for DefiProtocolState

func (*NFTClass) UnmarshalBinary

func (nc *NFTClass) UnmarshalBinary(data []byte) error

UnmarshalBinary for DefiProtocolState

type NFTTrade

type NFTTrade struct {
	NFT         NFT
	BlockNumber *big.Int
	PriceUSD    float64
	FromAddress common.Address
	ToAddress   common.Address
	Exchange    string
}

func (*NFTTrade) MarshalBinary

func (ns *NFTTrade) MarshalBinary() ([]byte, error)

MarshalBinary for DefiProtocolState

func (*NFTTrade) UnmarshalBinary

func (ns *NFTTrade) UnmarshalBinary(data []byte) error

UnmarshalBinary for DefiProtocolState

type OptionMeta

type OptionMeta struct {
	InstrumentName string
	BaseCurrency   string
	ExpirationTime time.Time
	StrikePrice    float64
	OptionType     OptionType
}

func (*OptionMeta) MarshalBinary

func (e *OptionMeta) MarshalBinary() ([]byte, error)

func (*OptionMeta) UnmarshalBinary

func (e *OptionMeta) UnmarshalBinary(data []byte) error

type OptionMetaForward

type OptionMetaForward struct {
	GeneralizedInstrumentName string
	StrikePrice               float64
	CallPrice                 float64
	PutPrice                  float64 // this, as well as the above is defined as the bid price at a given strike price
	ExpirationTime            time.Time
}

type OptionMetaIndex

type OptionMetaIndex struct {
	OptionMeta
	OptionOrderbookDatum
}

type OptionOrderbookDatum

type OptionOrderbookDatum struct {
	InstrumentName  string
	ObservationTime time.Time
	AskPrice        float64
	BidPrice        float64
	AskSize         float64
	BidSize         float64
	StrikePrice     float64
	ExpirationTime  time.Time
}

type OptionType

type OptionType int
const (
	CallOption OptionType = iota + 1
	PutOption
)

signals if the option is call or a put

type Pair

type Pair struct {
	Symbol      string
	ForeignName string
	Exchange    string
	Ignore      bool
}

type Pairs

type Pairs []Pair

func (*Pairs) MarshalBinary

func (e *Pairs) MarshalBinary() ([]byte, error)

MarshalBinary -

func (*Pairs) UnmarshalBinary

func (e *Pairs) UnmarshalBinary(data []byte) error

UnmarshalBinary -

type SuppliesBlock

type SuppliesBlock struct {
	BlockHash string
	BlockData SuppliesBlockData
}

func (*SuppliesBlock) MarshalBinary

func (e *SuppliesBlock) MarshalBinary() ([]byte, error)

MarshalBinary -

func (*SuppliesBlock) UnmarshalBinary

func (e *SuppliesBlock) UnmarshalBinary(data []byte) error

UnmarshalBinary -

type SuppliesBlockData

type SuppliesBlockData struct {
	Time     time.Time
	Supplies []Supply
}

type Supply

type Supply struct {
	Symbol            string
	Name              string
	Supply            float64
	CirculatingSupply float64
	Source            string
	Time              time.Time
}

func GetSupply

func GetSupply(symbol string) (*Supply, error)

func (*Supply) MarshalBinary

func (e *Supply) MarshalBinary() ([]byte, error)

MarshalBinary -

func (*Supply) UnmarshalBinary

func (e *Supply) UnmarshalBinary(data []byte) error

UnmarshalBinary -

type Symbols

type Symbols struct {
	Symbols []string
}

type Trade

type Trade struct {
	Symbol            string
	Pair              string
	Price             float64
	Volume            float64 // Quantity of bought/sold units of Quote token. Negative if result of Market order Sell
	Time              time.Time
	ForeignTradeID    string
	EstimatedUSDPrice float64 // will be filled by the TradeBlock Service
	Source            string
}

Trade remark: In a pair A-B, we call A the Quote token and B the Base token

func SwapTrade

func SwapTrade(t Trade) (Trade, error)

SwapTrade swaps base and quote token of a trade and inverts the price accordingly

func (*Trade) BaseToken

func (t *Trade) BaseToken() string

BaseToken returns the base token of a trading pair

func (*Trade) MarshalBinary

func (e *Trade) MarshalBinary() ([]byte, error)

MarshalBinary -

func (*Trade) UnmarshalBinary

func (e *Trade) UnmarshalBinary(data []byte) error

UnmarshalBinary -

type TradesBlock

type TradesBlock struct {
	BlockHash       string
	TradesBlockData TradesBlockData
}

func (*TradesBlock) MarshalBinary

func (e *TradesBlock) MarshalBinary() ([]byte, error)

MarshalBinary -

func (*TradesBlock) UnmarshalBinary

func (e *TradesBlock) UnmarshalBinary(data []byte) error

UnmarshalBinary -

type TradesBlockData

type TradesBlockData struct {
	BeginTime    time.Time
	EndTime      time.Time
	TradesNumber int
	Trades       []Trade
}

type VerificationMechanism

type VerificationMechanism string

type VolatilityRatio

type VolatilityRatio struct {
	Symbol    string
	Threehold float64
	DaysAbove int64
	DaysBelow int64
	Time      time.Time
	Selected  bool
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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