kraken

package
v0.0.0-...-5439e55 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2022 License: MIT Imports: 22 Imported by: 2

Documentation

Index

Constants

View Source
const (
	DEFAULT_ID           = 28
	DEFAULT_TAKER_FEE    = 0.0026
	DEFAULT_MAKER_FEE    = 0.0016
	DEFAULT_LOT_SIZE     = 0.00000001
	DEFAULT_PRICE_FILTER = 0.00000001
	DEFAULT_TXFEE        = 0.005
	DEFAULT_WITHDRAW     = true
	DEFAULT_DEPOSIT      = true
	DEFAULT_CONFIRMATION = 2
	DEFAULT_LISTED       = true
)
View Source
const (
	API_URL string = "https://api.kraken.com"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CancelOrder

type CancelOrder struct {
	Count   int  `json:"count"`
	Pending bool `json:"pending"`
}

type CoinsData

type CoinsData struct {
	Aclass          string `json:"aclass"`
	Altname         string `json:"altname"`
	Decimals        int    `json:"decimals"`
	DisplayDecimals int    `json:"display_decimals"`
}

type JsonResponse

type JsonResponse struct {
	Error  []interface{}   `json:"error"`
	Result json.RawMessage `json:"result"`
}

type Kraken

type Kraken struct {
	ID      int
	Name    string `bson:"name"`
	Website string `bson:"website"`

	API_KEY    string
	API_SECRET string
	Two_Factor string

	Source    exchange.DataSource // / exchange API / microservicve api 1 / PSQL
	SourceURI string
}

func CreateKraken

func CreateKraken(config *exchange.Config) *Kraken

*************************************************

func (*Kraken) ApiKeyPost

func (e *Kraken) ApiKeyPost(strRequestPath string, values url.Values, typ interface{}) string

************** Signature Http Request ************** Method: API Request and Signature is required Step 1: Change Instance Name (e *<exchange Instance Name>) Step 2: Create mapParams Depend on API Signature request Step 3: Add HttpGetRequest below strUrl if API has different requests

func (*Kraken) CanDeposit

func (e *Kraken) CanDeposit(coin *coin.Coin) bool

func (*Kraken) CanWithdraw

func (e *Kraken) CanWithdraw(coin *coin.Coin) bool

func (*Kraken) CancelAllOrder

func (e *Kraken) CancelAllOrder() error

func (*Kraken) CancelOrder

func (e *Kraken) CancelOrder(order *exchange.Order) error

func (*Kraken) DeleteCoin

func (e *Kraken) DeleteCoin(coin *coin.Coin)

func (*Kraken) DeletePair

func (e *Kraken) DeletePair(pair *pair.Pair)

func (*Kraken) DoAccountOperation

func (e *Kraken) DoAccountOperation(operation *exchange.AccountOperation) error

************** Private API **************

func (*Kraken) GetBalance

func (e *Kraken) GetBalance(coin *coin.Coin) float64

func (*Kraken) GetCoinBySymbol

func (e *Kraken) GetCoinBySymbol(symbol string) *coin.Coin

func (*Kraken) GetCoinConstraint

func (e *Kraken) GetCoinConstraint(coin *coin.Coin) *exchange.CoinConstraint

************** Coins on the Exchanges **************

func (*Kraken) GetCoins

func (e *Kraken) GetCoins() []*coin.Coin

func (*Kraken) GetCoinsData

func (e *Kraken) GetCoinsData() error

************** Public API ************** Get Coins Information (If API provide) Step 1: Change Instance Name (e *<exchange Instance Name>) Step 2: Add Model of API Response Step 3: Modify API Path(strRequestUrl)

func (*Kraken) GetConfirmation

func (e *Kraken) GetConfirmation(coin *coin.Coin) int

func (*Kraken) GetConstraintFetchMethod

func (e *Kraken) GetConstraintFetchMethod(pair *pair.Pair) *exchange.ConstrainFetchMethod

*************** Exchange Constraint ***************

func (*Kraken) GetFee

func (e *Kraken) GetFee(pair *pair.Pair) float64

*************** Pair Constraint ***************

func (*Kraken) GetID

func (e *Kraken) GetID() int

*************** Exchange Information ***************

func (*Kraken) GetLotSize

func (e *Kraken) GetLotSize(pair *pair.Pair) float64

func (*Kraken) GetName

func (e *Kraken) GetName() exchange.ExchangeName

func (*Kraken) GetPairBySymbol

func (e *Kraken) GetPairBySymbol(symbol string) *pair.Pair

func (*Kraken) GetPairConstraint

func (e *Kraken) GetPairConstraint(pair *pair.Pair) *exchange.PairConstraint

************** Pairs on the Exchanges **************

func (*Kraken) GetPairs

func (e *Kraken) GetPairs() []*pair.Pair

func (*Kraken) GetPairsData

func (e *Kraken) GetPairsData() error
GetPairsData - Get Pairs Information (If API provide)

Step 1: Change Instance Name (e *<exchange Instance Name>) Step 2: Add Model of API Response Step 3: Modify API Path(strRequestUrl)

func (*Kraken) GetPriceFilter

func (e *Kraken) GetPriceFilter(pair *pair.Pair) float64

func (*Kraken) GetSymbolByCoin

func (e *Kraken) GetSymbolByCoin(coin *coin.Coin) string

func (*Kraken) GetSymbolByPair

func (e *Kraken) GetSymbolByPair(pair *pair.Pair) string

func (*Kraken) GetTradingWebURL

func (e *Kraken) GetTradingWebURL(pair *pair.Pair) string

func (*Kraken) GetTxFee

func (e *Kraken) GetTxFee(coin *coin.Coin) float64

*************** Coin Constraint ***************

func (*Kraken) HasPair

func (e *Kraken) HasPair(pair *pair.Pair) bool

func (*Kraken) InitData

func (e *Kraken) InitData() error

func (*Kraken) LimitBuy

func (e *Kraken) LimitBuy(pair *pair.Pair, quantity, rate float64) (*exchange.Order, error)

func (*Kraken) LimitSell

func (e *Kraken) LimitSell(pair *pair.Pair, quantity, rate float64) (*exchange.Order, error)

func (*Kraken) ListOrders

func (e *Kraken) ListOrders() ([]*exchange.Order, error)

func (*Kraken) LoadPublicData

func (e *Kraken) LoadPublicData(operation *exchange.PublicOperation) error

************** PUBLIC API **************

func (*Kraken) OrderBook

func (e *Kraken) OrderBook(pair *pair.Pair) (*exchange.Maker, error)

Get Pair Market Depth Step 1: Change Instance Name (e *<exchange Instance Name>) Step 2: Add Model of API Response Step 3: Get Exchange Pair Code ex. symbol := e.GetPairCode(p) Step 4: Modify API Path(strRequestUrl) Step 5: Add Params - Depend on API request Step 6: Convert the response to Standard Maker struct

func (*Kraken) OrderStatus

func (e *Kraken) OrderStatus(order *exchange.Order) error

func (*Kraken) SetCoinConstraint

func (e *Kraken) SetCoinConstraint(coinConstraint *exchange.CoinConstraint)

func (*Kraken) SetPairConstraint

func (e *Kraken) SetPairConstraint(pairConstraint *exchange.PairConstraint)

func (*Kraken) UpdateAllBalances

func (e *Kraken) UpdateAllBalances()

func (*Kraken) UpdateConstraint

func (e *Kraken) UpdateConstraint()

func (*Kraken) Withdraw

func (e *Kraken) Withdraw(coin *coin.Coin, quantity float64, addr, tag string) bool

type Order

type Order struct {
	TransactionID  string           `json:"-"`
	ReferenceID    string           `json:"refid"`
	UserRef        int              `json:"userref"`
	Status         string           `json:"status"`
	OpenTime       float64          `json:"opentm"`
	StartTime      float64          `json:"starttm"`
	ExpireTime     float64          `json:"expiretm"`
	Description    OrderDescription `json:"descr"`
	Volume         string           `json:"vol"`
	VolumeExecuted float64          `json:"vol_exec,string"`
	Cost           float64          `json:"cost,string"`
	Fee            float64          `json:"fee,string"`
	Price          float64          `json:"price,string"`
	StopPrice      float64          `json:"stopprice.string"`
	LimitPrice     float64          `json:"limitprice,string"`
	Misc           string           `json:"misc"`
	OrderFlags     string           `json:"oflags"`
	CloseTime      float64          `json:"closetm"`
	Reason         string           `json:"reason"`
}

type OrderBook

type OrderBook struct {
	Asks [][]interface{} `json:"asks"`
	Bids [][]interface{} `json:"bids"`
}

type OrderDescription

type OrderDescription struct {
	AssetPair      string `json:"pair"`
	Close          string `json:"close"`
	Leverage       string `json:"leverage"`
	Order          string `json:"order"`
	OrderType      string `json:"ordertype"`
	PrimaryPrice   string `json:"price"`
	SecondaryPrice string `json:"price2"`
	Type           string `json:"type"`
}

type OrderStatus

type OrderStatus map[string]Order

type PairsData

type PairsData struct {
	Altname           string      `json:"altname"`
	Wsname            string      `json:"wsname"`
	AclassBase        string      `json:"aclass_base"`
	Base              string      `json:"base"`
	AclassQuote       string      `json:"aclass_quote"`
	Quote             string      `json:"quote"`
	Lot               string      `json:"lot"`
	PairDecimals      int         `json:"pair_decimals"`
	LotDecimals       int         `json:"lot_decimals"`
	LotMultiplier     int         `json:"lot_multiplier"`
	LeverageBuy       []int       `json:"leverage_buy"`
	LeverageSell      []int       `json:"leverage_sell"`
	Fees              [][]float64 `json:"fees"`
	FeesMaker         [][]float64 `json:"fees_maker"`
	FeeVolumeCurrency string      `json:"fee_volume_currency"`
	MarginCall        int         `json:"margin_call"`
	MarginStop        int         `json:"margin_stop"`
}

type PlaceOrder

type PlaceOrder struct {
	Description    OrderDescription `json:"descr"`
	TransactionIds []string         `json:"txid"`
}

type Trade

type Trade struct {
	Symbol    string    `json:"symbol"`
	Price     string    `json:"price"`
	Volume    string    `json:"volume"`
	Direction string    `json:"direction"`
	TradeTime time.Time `json:"tradeTime"`
}

type WithdrawResponse

type WithdrawResponse struct {
	RefID string `json:"refid"`
}

Jump to

Keyboard shortcuts

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