kraken

package module
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2023 License: BSD-3-Clause Imports: 17 Imported by: 1

README

go-kraken

GoDoc Test Status CodeQL codecov Go Report Card

Go library for accessing the Kraken API. 🐙

Docs url https://docs.kraken.com/rest/.

Usage

go-kraken is compatible with modern Go releases.

Build a new client, then you can use the services to reach different parts of the Kraken API. For example:

package main

import (
 "context"
 "fmt"

 "github.com/jferrl/go-kraken"
)

func main() {
 ctx := context.Background()

 c := kraken.New(nil)

 // Get server time
 st, err := c.MarketData.Time(ctx)
 if err != nil {
  fmt.Println(err)
  return
 }

 fmt.Println(st)
}

Using the context package, you can easily pass cancelation signals and deadlines to various services of the client for handling a request.

Token Creation

https://pro.kraken.com/app/settings/api

Authentication

https://docs.kraken.com/rest/#section/Authentication

Authenticated requests must include both API-Key and API-Sign HTTP headers, and nonce in the request payload. otp is also required in the payload if two-factor authentication (2FA) is enabled.

Nonce

Nonce must be an always increasing, unsigned 64-bit integer, for each request that is made with a particular API key. While a simple counter would provide a valid nonce, a more usual method of generating a valid nonce is to use e.g. a UNIX timestamp in milliseconds.

2FA

If two-factor authentication (2FA) is enabled for the API key and action in question, the one time password must be specified in the payload's otp value.

In order to set OTP in the request, you can use the ContextWithOtp function. Internally, OTP value is stored in the context and then used in the request.

For example:

package main

import (
 "context"

 "github.com/jferrl/go-kraken"
)

func main() {
 ctx := context.Background()

 ctxWithOpt := kraken.ContextWithOtp(ctx, "123456")
}
 API-Key

The "API-Key" header should contain your API key.

Security Scheme Type: API Key Header parameter name: API-Key

 API-Sign

Authenticated requests should be signed with the "API-Sign" header, using a signature generated with your private key, nonce, encoded payload, and URI path according to:

HMAC-SHA512 of (URI path + SHA256(nonce + POST data)) and base64 decoded secret API key

License

This library is distributed under the BSD-style license found in the LICENSE file.

Documentation

Overview

Package kraken provides a client for using the Kraken API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ContextWithOtp added in v1.0.2

func ContextWithOtp(ctx context.Context, otp Otp) context.Context

ContextWithOtp adds a one-time password to the context.

Types

type APIKey

type APIKey string

APIKey represents a Kraken API key.

type Account

type Account service

Account handles communication with the account data related methods of the Kraken API.

func (*Account) Balance

func (a *Account) Balance(ctx context.Context) (AccountBalance, error)

Balance retrieves all cash balances, net of pending withdrawals. Docs: https://docs.kraken.com/rest/#tag/Account-Data/operation/getAccountBalance.

func (*Account) ExtendedBalance added in v1.1.0

func (a *Account) ExtendedBalance(ctx context.Context) (AccountExtendedBalance, error)

ExtendedBalance retrievs all extended account balances, including credits and held amounts. Balance available for trading is calculated as: available balance = balance + credit - credit_used - hold_trade. Docs: https://docs.kraken.com/rest/#tag/Account-Data/operation/getExtendedBalance.

type AccountBalance

type AccountBalance map[Asset]Balance

AccountBalance represents the user's account balance.

type AccountExtendedBalance added in v1.1.0

type AccountExtendedBalance map[Asset]ExtendedBalance

AccountExtendedBalance represents the user's account extended balance.

type AddOrderOpts

type AddOrderOpts struct {
	UserRef        string         `url:"userref,omitempty"`
	OrderType      OrderType      `url:"ordertype,omitempty"`
	Type           OrderDirection `url:"type,omitempty"`
	Volume         string         `url:"volume,omitempty"`
	DisplayVol     string         `url:"displayvol,omitempty"`
	Pair           string         `url:"pair,omitempty"`
	Price          string         `url:"price,omitempty"`
	Price2         string         `url:"price2,omitempty"`
	Trigger        OrderTrigger   `url:"trigger,omitempty"`
	Leverage       string         `url:"leverage,omitempty"`
	ReduceOnly     bool           `url:"reduce_only,omitempty"`
	StopType       StopType       `url:"stptype,omitempty"`
	OrderFlags     string         `url:"oflags,omitempty"`
	TimeInForce    TimeInForce    `url:"timeinforce,omitempty"`
	Starttm        string         `url:"starttm,omitempty"`
	Expiretm       string         `url:"expiretm,omitempty"`
	CloseOrderType OrderType      `url:"close[ordertype],omitempty"`
	ClosePrice     string         `url:"close[price],omitempty"`
	ClosePrice2    string         `url:"close[price2],omitempty"`
	Deadline       string         `url:"deadline,omitempty"`
	Validate       bool           `url:"validate,omitempty"`
}

AddOrderOpts represents the parameters to create an Order.

type Allocation added in v1.2.0

type Allocation struct {
	CreatedAt time.Time `json:"created_at"`
	Expires   time.Time `json:"expires"`
	Native    string    `json:"native"`
	Converted string    `json:"converted"`
}

Allocation .

type AllocationStatus added in v1.2.0

type AllocationStatus struct {
	Native          string       `json:"native"`
	Converted       string       `json:"converted"`
	AllocationCount int          `json:"allocation_count"`
	Allocations     []Allocation `json:"allocations"`
}

AllocationStatus .

type Allocations added in v1.2.0

type Allocations struct {
	ConvertedAsset string            `json:"converted_asset"`
	TotalAllocated string            `json:"total_allocated"`
	TotalRewarded  string            `json:"total_rewarded"`
	NextCursor     string            `json:"next_cursor"`
	Items          []AllocationsItem `json:"items"`
}

Allocations represents a list of allocations.

type AllocationsItem added in v1.2.0

type AllocationsItem struct {
	StrategyID      string          `json:"strategy_id"`
	NativeAsset     Asset           `json:"native_asset"`
	Payout          Payout          `json:"payout"`
	AmountAllocated AmountAllocated `json:"amount_allocated"`
	TotalRewarded   Total           `json:"total_rewarded"`
}

AllocationsItem .

type AllocationsOpts added in v1.2.0

type AllocationsOpts struct {
	Ascending           bool  `json:"ascending,omitempty"`
	ConvertedAsset      Asset `json:"converted_asset,omitempty"`
	HideZeroAllocations bool  `json:"hide_zero_allocations,omitempty"`
}

AllocationsOpts represents the parameters to get allocations.

type AmountAllocated added in v1.2.0

type AmountAllocated struct {
	Bonding   AllocationStatus `json:"bonding"`
	ExitQueue AllocationStatus `json:"exit_queue"`
	Pending   AllocationStatus `json:"pending"`
	Total     Total            `json:"total"`
	Unbonding AllocationStatus `json:"unbonding"`
}

AmountAllocated .

type AprEstimate added in v1.2.0

type AprEstimate struct {
	Low  string `json:"low"`
	High string `json:"high"`
}

AprEstimate .

type Asset

type Asset string

Asset defines an asset within Kraken.

const (
	GST      Asset = "GST"
	PHA      Asset = "PHA"
	SBR      Asset = "SBR"
	TRU      Asset = "TRU"
	AIR      Asset = "AIR"
	ALICE    Asset = "ALICE"
	BNC      Asset = "BNC"
	CTSI     Asset = "CTSI"
	USDC     Asset = "USDC"
	FLOWS    Asset = "FLOW.S"
	GHST     Asset = "GHST"
	XTZ      Asset = "XTZ"
	BAL      Asset = "BAL"
	DOT      Asset = "DOT"
	FORTH    Asset = "FORTH"
	YGG      Asset = "YGG"
	STORJ    Asset = "STORJ"
	USDCM    Asset = "USDC.M"
	XLTC     Asset = "XLTC"
	AUDHOLD  Asset = "AUD.HOLD"
	INTR     Asset = "INTR"
	OGN      Asset = "OGN"
	SEI      Asset = "SEI"
	EUL      Asset = "EUL"
	GARI     Asset = "GARI"
	MOVR     Asset = "MOVR"
	TRIBE    Asset = "TRIBE"
	FIL      Asset = "FIL"
	SOL03S   Asset = "SOL03.S"
	TVK      Asset = "TVK"
	UNI      Asset = "UNI"
	ADX      Asset = "ADX"
	DOT28S   Asset = "DOT28.S"
	SCRT     Asset = "SCRT"
	AED      Asset = "AED"
	SC       Asset = "SC"
	XCN      Asset = "XCN"
	ASTR     Asset = "ASTR"
	EGLD     Asset = "EGLD"
	KILT     Asset = "KILT"
	SXP      Asset = "SXP"
	AAVE     Asset = "AAVE"
	UNFI     Asset = "UNFI"
	SUI      Asset = "SUI"
	ADA      Asset = "ADA"
	EOS      Asset = "EOS"
	GBPHOLD  Asset = "GBP.HOLD"
	ICP      Asset = "ICP"
	SCRTS    Asset = "SCRT.S"
	XTZS     Asset = "XTZ.S"
	ZCAD     Asset = "ZCAD"
	CHF      Asset = "CHF"
	DOTP     Asset = "DOT.P"
	GMX      Asset = "GMX"
	OXT      Asset = "OXT"
	GMT      Asset = "GMT"
	INJ      Asset = "INJ"
	XREP     Asset = "XREP"
	ANKR     Asset = "ANKR"
	AXS      Asset = "AXS"
	BLZ      Asset = "BLZ"
	DASH     Asset = "DASH"
	GRTS     Asset = "GRT.S"
	PARA     Asset = "PARA"
	WOO      Asset = "WOO"
	ENS      Asset = "ENS"
	GLMR     Asset = "GLMR"
	NYM      Asset = "NYM"
	XXBT     Asset = "XXBT"
	APE      Asset = "APE"
	FXS      Asset = "FXS"
	USDHOLD  Asset = "USD.HOLD"
	TRX      Asset = "TRX"
	ONEINCH  Asset = "1INCH"
	BOND     Asset = "BOND"
	COMP     Asset = "COMP"
	POND     Asset = "POND"
	NEAR     Asset = "NEAR"
	PSTAKE   Asset = "PSTAKE"
	STEP     Asset = "STEP"
	XBTM     Asset = "XBT.M"
	API3     Asset = "API3"
	KSMS     Asset = "KSM.S"
	LSK      Asset = "LSK"
	MASK     Asset = "MASK"
	SUSHI    Asset = "SUSHI"
	ZGBP     Asset = "ZGBP"
	BTT      Asset = "BTT"
	DENT     Asset = "DENT"
	FET      Asset = "FET"
	MC       Asset = "MC"
	LUNA2    Asset = "LUNA2"
	RPL      Asset = "RPL"
	SRM      Asset = "SRM"
	ENJ      Asset = "ENJ"
	GALA     Asset = "GALA"
	KAR      Asset = "KAR"
	KAVA21S  Asset = "KAVA21.S"
	DOTS     Asset = "DOT.S"
	SUPER    Asset = "SUPER"
	ZRX      Asset = "ZRX"
	USDT     Asset = "USDT"
	CHR      Asset = "CHR"
	EURT     Asset = "EURT"
	NODL     Asset = "NODL"
	TBTC     Asset = "TBTC"
	XXMR     Asset = "XXMR"
	BCH      Asset = "BCH"
	KFEE     Asset = "KFEE"
	SYN      Asset = "SYN"
	TEER     Asset = "TEER"
	BAND     Asset = "BAND"
	ICX      Asset = "ICX"
	MINAS    Asset = "MINA.S"
	HDX      Asset = "HDX"
	RNDR     Asset = "RNDR"
	USDM     Asset = "USD.M"
	SDN      Asset = "SDN"
	ETH2S    Asset = "ETH2.S"
	FLOW     Asset = "FLOW"
	LDO      Asset = "LDO"
	LUNAS    Asset = "LUNA.S"
	IDEX     Asset = "IDEX"
	IMX      Asset = "IMX"
	SHIB     Asset = "SHIB"
	CHFHOLD  Asset = "CHF.HOLD"
	PEPE     Asset = "PEPE"
	XXRP     Asset = "XXRP"
	XZEC     Asset = "XZEC"
	BADGER   Asset = "BADGER"
	CRV      Asset = "CRV"
	ORCA     Asset = "ORCA"
	ROOK     Asset = "ROOK"
	BIT      Asset = "BIT"
	MANA     Asset = "MANA"
	YFI      Asset = "YFI"
	TUSD     Asset = "TUSD"
	FLOW14S  Asset = "FLOW14.S"
	GTC      Asset = "GTC"
	MATIC04S Asset = "MATIC04.S"
	RBC      Asset = "RBC"
	ALCX     Asset = "ALCX"
	STX      Asset = "STX"
	FIDA     Asset = "FIDA"
	T        Asset = "T"
	TOKE     Asset = "TOKE"
	KNC      Asset = "KNC"
	MIR      Asset = "MIR"
	ALGO     Asset = "ALGO"
	BAT      Asset = "BAT"
	CELR     Asset = "CELR"
	CQT      Asset = "CQT"
	FIS      Asset = "FIS"
	SOL      Asset = "SOL"
	TLM      Asset = "TLM"
	GAL      Asset = "GAL"
	KSM07S   Asset = "KSM07.S"
	LCX      Asset = "LCX"
	PAXG     Asset = "PAXG"
	AEDHOLD  Asset = "AED.HOLD"
	MNGO     Asset = "MNGO"
	ZAUD     Asset = "ZAUD"
	ZUSD     Asset = "ZUSD"
	RUNE     Asset = "RUNE"
	XETC     Asset = "XETC"
	ARPA     Asset = "ARPA"
	LPT      Asset = "LPT"
	PERP     Asset = "PERP"
	QNT      Asset = "QNT"
	ZEUR     Asset = "ZEUR"
	ACH      Asset = "ACH"
	ETH2     Asset = "ETH2"
	NANO     Asset = "NANO"
	UMA      Asset = "UMA"
	STG      Asset = "STG"
	LINK     Asset = "LINK"
	LMWR     Asset = "LMWR"
	REN      Asset = "REN"
	REPV2    Asset = "REPV2"
	KEEP     Asset = "KEEP"
	KIN      Asset = "KIN"
	MOON     Asset = "MOON"
	MV       Asset = "MV"
	AGLD     Asset = "AGLD"
	AKT      Asset = "AKT"
	ALGOS    Asset = "ALGO.S"
	ATOM     Asset = "ATOM"
	REQ      Asset = "REQ"
	USDTM    Asset = "USDT.M"
	CFG      Asset = "CFG"
	JASMY    Asset = "JASMY"
	KSM      Asset = "KSM"
	MINA     Asset = "MINA"
	KINT     Asset = "KINT"
	SAMO     Asset = "SAMO"
	SNX      Asset = "SNX"
	XXLM     Asset = "XXLM"
	ALPHA    Asset = "ALPHA"
	EWT      Asset = "EWT"
	FLOWH    Asset = "FLOWH"
	GRT28S   Asset = "GRT28.S"
	XRT      Asset = "XRT"
	ANT      Asset = "ANT"
	BNT      Asset = "BNT"
	KSMP     Asset = "KSM.P"
	SAND     Asset = "SAND"
	WAVES    Asset = "WAVES"
	ARB      Asset = "ARB"
	BLUR     Asset = "BLUR"
	BOBA     Asset = "BOBA"
	PLA      Asset = "PLA"
	ETHW     Asset = "ETHW"
	SGB      Asset = "SGB"
	WBTC     Asset = "WBTC"
	XMLN     Asset = "XMLN"
	ATOMS    Asset = "ATOM.S"
	CADHOLD  Asset = "CAD.HOLD"
	FLOWHS   Asset = "FLOWH.S"
	FLRS     Asset = "FLR.S"
	C98      Asset = "C98"
	GRT      Asset = "GRT"
	HFT      Asset = "HFT"
	OCEAN    Asset = "OCEAN"
	UST      Asset = "UST"
	OMG      Asset = "OMG"
	POLIS    Asset = "POLIS"
	POLS     Asset = "POLS"
	KEY      Asset = "KEY"
	KP3R     Asset = "KP3R"
	MATIC    Asset = "MATIC"
	XXDG     Asset = "XXDG"
	AVT      Asset = "AVT"
	CVC      Asset = "CVC"
	CVX      Asset = "CVX"
	FARM     Asset = "FARM"
	RLC      Asset = "RLC"
	ADAS     Asset = "ADA.S"
	EURM     Asset = "EUR.M"
	FLR      Asset = "FLR"
	KAVAS    Asset = "KAVA.S"
	SCRT21S  Asset = "SCRT21.S"
	TRXS     Asset = "TRX.S"
	WETH     Asset = "WETH"
	ATOM21S  Asset = "ATOM21.S"
	MXC      Asset = "MXC"
	OXY      Asset = "OXY"
	POWR     Asset = "POWR"
	JUNO     Asset = "JUNO"
	MKR      Asset = "MKR"
	BICO     Asset = "BICO"
	BRICK    Asset = "BRICK"
	COTI     Asset = "COTI"
	CSM      Asset = "CSM"
	APT      Asset = "APT"
	ATLAS    Asset = "ATLAS"
	WAXL     Asset = "WAXL"
	BSX      Asset = "BSX"
	FTM      Asset = "FTM"
	MULTI    Asset = "MULTI"
	SOLS     Asset = "SOL.S"
	QTUM     Asset = "QTUM"
	RARE     Asset = "RARE"
	ACA      Asset = "ACA"
	AVAX     Asset = "AVAX"
	EURHOLD  Asset = "EUR.HOLD"
	GNO      Asset = "GNO"
	CHZ      Asset = "CHZ"
	DYDX     Asset = "DYDX"
	PYUSD    Asset = "PYUSD"
	ZJPY     Asset = "ZJPY"
	MSOL     Asset = "MSOL"
	RAD      Asset = "RAD"
	RARI     Asset = "RARI"
	RAY      Asset = "RAY"
	AUDIO    Asset = "AUDIO"
	KAVA     Asset = "KAVA"
	LUNA     Asset = "LUNA"
	MATICS   Asset = "MATIC.S"
	XETH     Asset = "XETH"
	DAI      Asset = "DAI"
	LRC      Asset = "LRC"
	NMR      Asset = "NMR"
	SPELL    Asset = "SPELL"
)

type AssetClass

type AssetClass string

AssetClass defines an asset class within Kraken.

const (
	// Currency is a currency asset class.
	Currency AssetClass = "currency"
)

type AssetInfo

type AssetInfo struct {
	Altname         string     `json:"altname"`
	AssetClass      AssetClass `json:"aclass"`
	Decimals        int        `json:"decimals"`
	DisplayDecimals int        `json:"display_decimals"`
	Status          string     `json:"status"`
}

AssetInfo defines the information about an asset.

type AssetPair

type AssetPair string

AssetPair defines an asset pair within Kraken.

const (
	PONDEUR    AssetPair = "PONDEUR"
	QTUMUSD    AssetPair = "QTUMUSD"
	RARIUSD    AssetPair = "RARIUSD"
	BCHXBT     AssetPair = "BCHXBT"
	ENJGBP     AssetPair = "ENJGBP"
	KEEPXBT    AssetPair = "KEEPXBT"
	OMGEUR     AssetPair = "OMGEUR"
	OXYEUR     AssetPair = "OXYEUR"
	XRPAUD     AssetPair = "XRPAUD"
	RENUSD     AssetPair = "RENUSD"
	USDCUSD    AssetPair = "USDCUSD"
	XETCXXBT   AssetPair = "XETCXXBT"
	APEEUR     AssetPair = "APEEUR"
	EURCAD     AssetPair = "EURCAD"
	FILETH     AssetPair = "FILETH"
	JASMYUSD   AssetPair = "JASMYUSD"
	LINKEUR    AssetPair = "LINKEUR"
	REQEUR     AssetPair = "REQEUR"
	RLCEUR     AssetPair = "RLCEUR"
	STGEUR     AssetPair = "STGEUR"
	ADXUSD     AssetPair = "ADXUSD"
	API3EUR    AssetPair = "API3EUR"
	AVAXEUR    AssetPair = "AVAXEUR"
	BATXBT     AssetPair = "BATXBT"
	RAREEUR    AssetPair = "RAREEUR"
	BICOUSD    AssetPair = "BICOUSD"
	CRVEUR     AssetPair = "CRVEUR"
	SANDEUR    AssetPair = "SANDEUR"
	LINKGBP    AssetPair = "LINKGBP"
	XTZXBT     AssetPair = "XTZXBT"
	ETHWETH    AssetPair = "ETHWETH"
	GALEUR     AssetPair = "GALEUR"
	SGBEUR     AssetPair = "SGBEUR"
	ATOMEUR    AssetPair = "ATOMEUR"
	BICOEUR    AssetPair = "BICOEUR"
	COMPEUR    AssetPair = "COMPEUR"
	DASHUSD    AssetPair = "DASHUSD"
	EOSETH     AssetPair = "EOSETH"
	AVAXUSDT   AssetPair = "AVAXUSDT"
	LUNAEUR    AssetPair = "LUNAEUR"
	NMREUR     AssetPair = "NMREUR"
	XDGUSDT    AssetPair = "XDGUSDT"
	SDNUSD     AssetPair = "SDNUSD"
	EGLDEUR    AssetPair = "EGLDEUR"
	EURTUSDT   AssetPair = "EURTUSDT"
	JUNOUSD    AssetPair = "JUNOUSD"
	LTCGBP     AssetPair = "LTCGBP"
	POLISUSD   AssetPair = "POLISUSD"
	STORJUSD   AssetPair = "STORJUSD"
	TEEREUR    AssetPair = "TEEREUR"
	WAVESEUR   AssetPair = "WAVESEUR"
	CHZUSD     AssetPair = "CHZUSD"
	LINKUSD    AssetPair = "LINKUSD"
	LRCEUR     AssetPair = "LRCEUR"
	OCEANUSD   AssetPair = "OCEANUSD"
	OMGXBT     AssetPair = "OMGXBT"
	XRTUSD     AssetPair = "XRTUSD"
	AXSEUR     AssetPair = "AXSEUR"
	MOONUSD    AssetPair = "MOONUSD"
	MOVRUSD    AssetPair = "MOVRUSD"
	STEPUSD    AssetPair = "STEPUSD"
	REPV2XBT   AssetPair = "REPV2XBT"
	RUNEEUR    AssetPair = "RUNEEUR"
	SOLUSDT    AssetPair = "SOLUSDT"
	ATOMUSD    AssetPair = "ATOMUSD"
	BATUSD     AssetPair = "BATUSD"
	BCHUSDT    AssetPair = "BCHUSDT"
	ETH2SETH   AssetPair = "ETH2.SETH"
	PEPEEUR    AssetPair = "PEPEEUR"
	SOLXBT     AssetPair = "SOLXBT"
	STXUSD     AssetPair = "STXUSD"
	TBTCXBT    AssetPair = "TBTCXBT"
	AKTUSD     AssetPair = "AKTUSD"
	ATOMXBT    AssetPair = "ATOMXBT"
	CELRUSD    AssetPair = "CELRUSD"
	PAXGUSD    AssetPair = "PAXGUSD"
	RAYUSD     AssetPair = "RAYUSD"
	FORTHUSD   AssetPair = "FORTHUSD"
	POLSEUR    AssetPair = "POLSEUR"
	GLMREUR    AssetPair = "GLMREUR"
	NANOXBT    AssetPair = "NANOXBT"
	XTZETH     AssetPair = "XTZETH"
	ALGOGBP    AssetPair = "ALGOGBP"
	ATOMGBP    AssetPair = "ATOMGBP"
	BALXBT     AssetPair = "BALXBT"
	BLUREUR    AssetPair = "BLUREUR"
	BLZUSD     AssetPair = "BLZUSD"
	TRXUSD     AssetPair = "TRXUSD"
	DOTUSD     AssetPair = "DOTUSD"
	DYDXUSD    AssetPair = "DYDXUSD"
	KNCEUR     AssetPair = "KNCEUR"
	PHAUSD     AssetPair = "PHAUSD"
	QTUMEUR    AssetPair = "QTUMEUR"
	BLZEUR     AssetPair = "BLZEUR"
	CHRUSD     AssetPair = "CHRUSD"
	FXSUSD     AssetPair = "FXSUSD"
	SCETH      AssetPair = "SCETH"
	AUDIOUSD   AssetPair = "AUDIOUSD"
	EURTEUR    AssetPair = "EURTEUR"
	GLMRUSD    AssetPair = "GLMRUSD"
	HFTEUR     AssetPair = "HFTEUR"
	DAIUSD     AssetPair = "DAIUSD"
	EURJPY     AssetPair = "EURJPY"
	LPTEUR     AssetPair = "LPTEUR"
	CVXEUR     AssetPair = "CVXEUR"
	ENJJPY     AssetPair = "ENJJPY"
	FXSEUR     AssetPair = "FXSEUR"
	XXMRZEUR   AssetPair = "XXMRZEUR"
	CRVUSD     AssetPair = "CRVUSD"
	EGLDUSD    AssetPair = "EGLDUSD"
	FLOWUSD    AssetPair = "FLOWUSD"
	KSMUSD     AssetPair = "KSMUSD"
	ORCAUSD    AssetPair = "ORCAUSD"
	WAVESXBT   AssetPair = "WAVESXBT"
	DAIUSDT    AssetPair = "DAIUSDT"
	ENJXBT     AssetPair = "ENJXBT"
	ICPEUR     AssetPair = "ICPEUR"
	JUNOEUR    AssetPair = "JUNOEUR"
	NANOETH    AssetPair = "NANOETH"
	DOTETH     AssetPair = "DOTETH"
	LDOEUR     AssetPair = "LDOEUR"
	LUNA2EUR   AssetPair = "LUNA2EUR"
	STGUSD     AssetPair = "STGUSD"
	ACHEUR     AssetPair = "ACHEUR"
	ATLASEUR   AssetPair = "ATLASEUR"
	ALGOEUR    AssetPair = "ALGOEUR"
	SUSHIEUR   AssetPair = "SUSHIEUR"
	USDCCAD    AssetPair = "USDCCAD"
	WBTCEUR    AssetPair = "WBTCEUR"
	GALAEUR    AssetPair = "GALAEUR"
	SNXXBT     AssetPair = "SNXXBT"
	ATLASUSD   AssetPair = "ATLASUSD"
	GARIEUR    AssetPair = "GARIEUR"
	SRMUSD     AssetPair = "SRMUSD"
	TOKEEUR    AssetPair = "TOKEEUR"
	XTZUSDT    AssetPair = "XTZUSDT"
	POLISEUR   AssetPair = "POLISEUR"
	SPELLUSD   AssetPair = "SPELLUSD"
	SRMEUR     AssetPair = "SRMEUR"
	API3USD    AssetPair = "API3USD"
	FARMUSD    AssetPair = "FARMUSD"
	FIDAEUR    AssetPair = "FIDAEUR"
	KILTUSD    AssetPair = "KILTUSD"
	KNCXBT     AssetPair = "KNCXBT"
	WAVESETH   AssetPair = "WAVESETH"
	ADAEUR     AssetPair = "ADAEUR"
	CHZEUR     AssetPair = "CHZEUR"
	DASHXBT    AssetPair = "DASHXBT"
	KAVAEUR    AssetPair = "KAVAEUR"
	OMGETH     AssetPair = "OMGETH"
	FLOWXBT    AssetPair = "FLOWXBT"
	ICXXBT     AssetPair = "ICXXBT"
	EWTUSD     AssetPair = "EWTUSD"
	FTMUSD     AssetPair = "FTMUSD"
	GRTEUR     AssetPair = "GRTEUR"
	OXTUSD     AssetPair = "OXTUSD"
	RENXBT     AssetPair = "RENXBT"
	APTEUR     AssetPair = "APTEUR"
	DYDXEUR    AssetPair = "DYDXEUR"
	NYMEUR     AssetPair = "NYMEUR"
	PHAEUR     AssetPair = "PHAEUR"
	XXBTZGBP   AssetPair = "XXBTZGBP"
	NYMUSD     AssetPair = "NYMUSD"
	PLAUSD     AssetPair = "PLAUSD"
	BCHGBP     AssetPair = "BCHGBP"
	FILUSD     AssetPair = "FILUSD"
	GALUSD     AssetPair = "GALUSD"
	KP3RUSD    AssetPair = "KP3RUSD"
	NEAREUR    AssetPair = "NEAREUR"
	SHIBUSDT   AssetPair = "SHIBUSDT"
	BITEUR     AssetPair = "BITEUR"
	EWTEUR     AssetPair = "EWTEUR"
	KINEUR     AssetPair = "KINEUR"
	MKRXBT     AssetPair = "MKRXBT"
	SANDGBP    AssetPair = "SANDGBP"
	BITUSD     AssetPair = "BITUSD"
	LUNAUSD    AssetPair = "LUNAUSD"
	SCRTEUR    AssetPair = "SCRTEUR"
	SOLGBP     AssetPair = "SOLGBP"
	ADAXBT     AssetPair = "ADAXBT"
	EURAUD     AssetPair = "EURAUD"
	XTZGBP     AssetPair = "XTZGBP"
	ETHDAI     AssetPair = "ETHDAI"
	LTCUSDT    AssetPair = "LTCUSDT"
	RBCEUR     AssetPair = "RBCEUR"
	SUSHIGBP   AssetPair = "SUSHIGBP"
	XTZEUR     AssetPair = "XTZEUR"
	TRXETH     AssetPair = "TRXETH"
	WAXLEUR    AssetPair = "WAXLEUR"
	XBTDAI     AssetPair = "XBTDAI"
	CTSIEUR    AssetPair = "CTSIEUR"
	EOSXBT     AssetPair = "EOSXBT"
	GNOXBT     AssetPair = "GNOXBT"
	OGNEUR     AssetPair = "OGNEUR"
	RPLUSD     AssetPair = "RPLUSD"
	IDEXUSD    AssetPair = "IDEXUSD"
	MINAUSD    AssetPair = "MINAUSD"
	USDTAUD    AssetPair = "USDTAUD"
	FISUSD     AssetPair = "FISUSD"
	FLOWGBP    AssetPair = "FLOWGBP"
	HDXEUR     AssetPair = "HDXEUR"
	HDXUSD     AssetPair = "HDXUSD"
	ICXUSD     AssetPair = "ICXUSD"
	AAVEEUR    AssetPair = "AAVEEUR"
	IDEXEUR    AssetPair = "IDEXEUR"
	PARAUSD    AssetPair = "PARAUSD"
	RARIXBT    AssetPair = "RARIXBT"
	DOTJPY     AssetPair = "DOTJPY"
	MATICEUR   AssetPair = "MATICEUR"
	STEPEUR    AssetPair = "STEPEUR"
	XXLMZGBP   AssetPair = "XXLMZGBP"
	BOBAUSD    AssetPair = "BOBAUSD"
	DOTXBT     AssetPair = "DOTXBT"
	EURTUSD    AssetPair = "EURTUSD"
	LTCAUD     AssetPair = "LTCAUD"
	XCNUSD     AssetPair = "XCNUSD"
	EULEUR     AssetPair = "EULEUR"
	POLSUSD    AssetPair = "POLSUSD"
	TRXXBT     AssetPair = "TRXXBT"
	ZRXEUR     AssetPair = "ZRXEUR"
	DENTEUR    AssetPair = "DENTEUR"
	FLRUSD     AssetPair = "FLRUSD"
	GSTUSD     AssetPair = "GSTUSD"
	KEEPUSD    AssetPair = "KEEPUSD"
	ARPAEUR    AssetPair = "ARPAEUR"
	AUDJPY     AssetPair = "AUDJPY"
	BATJPY     AssetPair = "BATJPY"
	LUNA2USD   AssetPair = "LUNA2USD"
	ZEURZUSD   AssetPair = "ZEURZUSD"
	ALGOUSDT   AssetPair = "ALGOUSDT"
	CQTEUR     AssetPair = "CQTEUR"
	GMTUSD     AssetPair = "GMTUSD"
	OGNUSD     AssetPair = "OGNUSD"
	UNIXBT     AssetPair = "UNIXBT"
	MIREUR     AssetPair = "MIREUR"
	SYNEUR     AssetPair = "SYNEUR"
	XXLMZEUR   AssetPair = "XXLMZEUR"
	ETHUSDT    AssetPair = "ETHUSDT"
	OCEANGBP   AssetPair = "OCEANGBP"
	RNDRUSD    AssetPair = "RNDRUSD"
	APEUSD     AssetPair = "APEUSD"
	MANAUSD    AssetPair = "MANAUSD"
	OCEANXBT   AssetPair = "OCEANXBT"
	TLMEUR     AssetPair = "TLMEUR"
	UMAUSD     AssetPair = "UMAUSD"
	TOKEUSD    AssetPair = "TOKEUSD"
	XCNEUR     AssetPair = "XCNEUR"
	REPV2USD   AssetPair = "REPV2USD"
	BRICKUSD   AssetPair = "BRICKUSD"
	FARMEUR    AssetPair = "FARMEUR"
	KINTUSD    AssetPair = "KINTUSD"
	MCEUR      AssetPair = "MCEUR"
	QTUMXBT    AssetPair = "QTUMXBT"
	ASTREUR    AssetPair = "ASTREUR"
	XBTCHF     AssetPair = "XBTCHF"
	GHSTEUR    AssetPair = "GHSTEUR"
	PAXGEUR    AssetPair = "PAXGEUR"
	SRMXBT     AssetPair = "SRMXBT"
	WAVESUSD   AssetPair = "WAVESUSD"
	BALUSD     AssetPair = "BALUSD"
	LMWREUR    AssetPair = "LMWREUR"
	SUSHIXBT   AssetPair = "SUSHIXBT"
	TVKEUR     AssetPair = "TVKEUR"
	XZECXXBT   AssetPair = "XZECXXBT"
	AIREUR     AssetPair = "AIREUR"
	LSKUSD     AssetPair = "LSKUSD"
	SBREUR     AssetPair = "SBREUR"
	XREPXXBT   AssetPair = "XREPXXBT"
	SUPEREUR   AssetPair = "SUPEREUR"
	YFIXBT     AssetPair = "YFIXBT"
	AGLDUSD    AssetPair = "AGLDUSD"
	COMPXBT    AssetPair = "COMPXBT"
	EOSEUR     AssetPair = "EOSEUR"
	LTCETH     AssetPair = "LTCETH"
	RAREUSD    AssetPair = "RAREUSD"
	AGLDEUR    AssetPair = "AGLDEUR"
	JASMYEUR   AssetPair = "JASMYEUR"
	MASKUSD    AssetPair = "MASKUSD"
	RENEUR     AssetPair = "RENEUR"
	KEYEUR     AssetPair = "KEYEUR"
	POWRUSD    AssetPair = "POWRUSD"
	XLTCXXBT   AssetPair = "XLTCXXBT"
	XRTEUR     AssetPair = "XRTEUR"
	KSMEUR     AssetPair = "KSMEUR"
	TBTCUSD    AssetPair = "TBTCUSD"
	XLTCZUSD   AssetPair = "XLTCZUSD"
	ADAUSDT    AssetPair = "ADAUSDT"
	ARBEUR     AssetPair = "ARBEUR"
	CRVETH     AssetPair = "CRVETH"
	ICXETH     AssetPair = "ICXETH"
	IMXEUR     AssetPair = "IMXEUR"
	AKTEUR     AssetPair = "AKTEUR"
	LPTXBT     AssetPair = "LPTXBT"
	SDNEUR     AssetPair = "SDNEUR"
	BCHETH     AssetPair = "BCHETH"
	KNCUSD     AssetPair = "KNCUSD"
	MATICGBP   AssetPair = "MATICGBP"
	TRUUSD     AssetPair = "TRUUSD"
	UNIEUR     AssetPair = "UNIEUR"
	KILTEUR    AssetPair = "KILTEUR"
	NMRUSD     AssetPair = "NMRUSD"
	RADUSD     AssetPair = "RADUSD"
	ONEINCHEUR AssetPair = "1INCHEUR"
	AAVEXBT    AssetPair = "AAVEXBT"
	BCHEUR     AssetPair = "BCHEUR"
	C98EUR     AssetPair = "C98EUR"
	ETHCHF     AssetPair = "ETHCHF"
	XXDGXXBT   AssetPair = "XXDGXXBT"
	ZRXXBT     AssetPair = "ZRXXBT"
	GARIUSD    AssetPair = "GARIUSD"
	NODLEUR    AssetPair = "NODLEUR"
	UNIUSD     AssetPair = "UNIUSD"
	USTUSDC    AssetPair = "USTUSDC"
	XETHZGBP   AssetPair = "XETHZGBP"
	SUIEUR     AssetPair = "SUIEUR"
	BONDUSD    AssetPair = "BONDUSD"
	BSXEUR     AssetPair = "BSXEUR"
	CHREUR     AssetPair = "CHREUR"
	DAIEUR     AssetPair = "DAIEUR"
	DOTGBP     AssetPair = "DOTGBP"
	ADAUSD     AssetPair = "ADAUSD"
	FILEUR     AssetPair = "FILEUR"
	INTREUR    AssetPair = "INTREUR"
	PLAEUR     AssetPair = "PLAEUR"
	SOLEUR     AssetPair = "SOLEUR"
	ENSEUR     AssetPair = "ENSEUR"
	REPV2EUR   AssetPair = "REPV2EUR"
	ENJEUR     AssetPair = "ENJEUR"
	EULUSD     AssetPair = "EULUSD"
	ADAETH     AssetPair = "ADAETH"
	ETHAUD     AssetPair = "ETHAUD"
	FLOWEUR    AssetPair = "FLOWEUR"
	YGGUSD     AssetPair = "YGGUSD"
	UMAEUR     AssetPair = "UMAEUR"
	XETCZEUR   AssetPair = "XETCZEUR"
	AAVEETH    AssetPair = "AAVEETH"
	CVCEUR     AssetPair = "CVCEUR"
	FETEUR     AssetPair = "FETEUR"
	OCEANEUR   AssetPair = "OCEANEUR"
	COTIUSD    AssetPair = "COTIUSD"
	MIRUSD     AssetPair = "MIRUSD"
	WOOEUR     AssetPair = "WOOEUR"
	MINAEUR    AssetPair = "MINAEUR"
	AIRUSD     AssetPair = "AIRUSD"
	BNCUSD     AssetPair = "BNCUSD"
	CVXUSD     AssetPair = "CVXUSD"
	FLREUR     AssetPair = "FLREUR"
	GALAUSD    AssetPair = "GALAUSD"
	BNTEUR     AssetPair = "BNTEUR"
	KAVAETH    AssetPair = "KAVAETH"
	RPLEUR     AssetPair = "RPLEUR"
	XZECZEUR   AssetPair = "XZECZEUR"
	YFIEUR     AssetPair = "YFIEUR"
	ETHAED     AssetPair = "ETHAED"
	SUPERUSD   AssetPair = "SUPERUSD"
	USTUSD     AssetPair = "USTUSD"
	ZRXUSD     AssetPair = "ZRXUSD"
	BCHJPY     AssetPair = "BCHJPY"
	FIDAUSD    AssetPair = "FIDAUSD"
	KINTEUR    AssetPair = "KINTEUR"
	LINKETH    AssetPair = "LINKETH"
	SANDUSD    AssetPair = "SANDUSD"
	ADAGBP     AssetPair = "ADAGBP"
	ATOMETH    AssetPair = "ATOMETH"
	EURGBP     AssetPair = "EURGBP"
	FILGBP     AssetPair = "FILGBP"
	USDTCAD    AssetPair = "USDTCAD"
	SNXEUR     AssetPair = "SNXEUR"
	SUIUSD     AssetPair = "SUIUSD"
	CQTUSD     AssetPair = "CQTUSD"
	LPTUSD     AssetPair = "LPTUSD"
	MATICUSD   AssetPair = "MATICUSD"
	MCUSD      AssetPair = "MCUSD"
	REPV2ETH   AssetPair = "REPV2ETH"
	ANKRXBT    AssetPair = "ANKRXBT"
	KSMDOT     AssetPair = "KSMDOT"
	LINKAUD    AssetPair = "LINKAUD"
	QNTUSD     AssetPair = "QNTUSD"
	SCUSD      AssetPair = "SCUSD"
	EWTGBP     AssetPair = "EWTGBP"
	SCRTUSD    AssetPair = "SCRTUSD"
	SHIBUSD    AssetPair = "SHIBUSD"
	ALGOETH    AssetPair = "ALGOETH"
	BANDUSD    AssetPair = "BANDUSD"
	BATEUR     AssetPair = "BATEUR"
	COMPUSD    AssetPair = "COMPUSD"
	COTIEUR    AssetPair = "COTIEUR"
	STORJXBT   AssetPair = "STORJXBT"
	USDTEUR    AssetPair = "USDTEUR"
	XMLNXXBT   AssetPair = "XMLNXXBT"
	MNGOEUR    AssetPair = "MNGOEUR"
	USDTZUSD   AssetPair = "USDTZUSD"
	ALICEUSD   AssetPair = "ALICEUSD"
	ARPAUSD    AssetPair = "ARPAUSD"
	BTTEUR     AssetPair = "BTTEUR"
	GNOUSD     AssetPair = "GNOUSD"
	INJEUR     AssetPair = "INJEUR"
	ICPUSD     AssetPair = "ICPUSD"
	IMXUSD     AssetPair = "IMXUSD"
	MULTIEUR   AssetPair = "MULTIEUR"
	USDCUSDT   AssetPair = "USDCUSDT"
	XBTAUD     AssetPair = "XBTAUD"
	LCXUSD     AssetPair = "LCXUSD"
	LINKJPY    AssetPair = "LINKJPY"
	MNGOUSD    AssetPair = "MNGOUSD"
	SPELLEUR   AssetPair = "SPELLEUR"
	XBTUSDT    AssetPair = "XBTUSDT"
	YFIUSD     AssetPair = "YFIUSD"
	BCHUSD     AssetPair = "BCHUSD"
	CFGEUR     AssetPair = "CFGEUR"
	PYUSDEUR   AssetPair = "PYUSDEUR"
	QNTEUR     AssetPair = "QNTEUR"
	USDTGBP    AssetPair = "USDTGBP"
	SCEUR      AssetPair = "SCEUR"
	TEUR       AssetPair = "TEUR"
	ALGOXBT    AssetPair = "ALGOXBT"
	ANTETH     AssetPair = "ANTETH"
	BNTXBT     AssetPair = "BNTXBT"
	C98USD     AssetPair = "C98USD"
	PERPEUR    AssetPair = "PERPEUR"
	TLMUSD     AssetPair = "TLMUSD"
	UNFIEUR    AssetPair = "UNFIEUR"
	USDTCHF    AssetPair = "USDTCHF"
	ADAAUD     AssetPair = "ADAAUD"
	APTUSD     AssetPair = "APTUSD"
	BRICKEUR   AssetPair = "BRICKEUR"
	KAVAUSD    AssetPair = "KAVAUSD"
	PARAEUR    AssetPair = "PARAEUR"
	LSKETH     AssetPair = "LSKETH"
	SNXETH     AssetPair = "SNXETH"
	USDCAUD    AssetPair = "USDCAUD"
	STORJEUR   AssetPair = "STORJEUR"
	STXEUR     AssetPair = "STXEUR"
	EOSUSD     AssetPair = "EOSUSD"
	LINKXBT    AssetPair = "LINKXBT"
	NYMXBT     AssetPair = "NYMXBT"
	REQUSD     AssetPair = "REQUSD"
	RLCUSD     AssetPair = "RLCUSD"
	KP3REUR    AssetPair = "KP3REUR"
	TUSDUSD    AssetPair = "TUSDUSD"
	USTEUR     AssetPair = "USTEUR"
	WBTCUSD    AssetPair = "WBTCUSD"
	BONDEUR    AssetPair = "BONDEUR"
	KSMETH     AssetPair = "KSMETH"
	LINKUSDT   AssetPair = "LINKUSDT"
	MANAEUR    AssetPair = "MANAEUR"
	OXTXBT     AssetPair = "OXTXBT"
	XDGUSD     AssetPair = "XDGUSD"
	XLTCZEUR   AssetPair = "XLTCZEUR"
	ZUSDZJPY   AssetPair = "ZUSDZJPY"
	ANKRUSD    AssetPair = "ANKRUSD"
	EURCHF     AssetPair = "EURCHF"
	GSTEUR     AssetPair = "GSTEUR"
	MXCUSD     AssetPair = "MXCUSD"
	TVKUSD     AssetPair = "TVKUSD"
	TBTCEUR    AssetPair = "TBTCEUR"
	XXBTZUSD   AssetPair = "XXBTZUSD"
	ALICEEUR   AssetPair = "ALICEEUR"
	BSXUSD     AssetPair = "BSXUSD"
	CSMEUR     AssetPair = "CSMEUR"
	ROOKEUR    AssetPair = "ROOKEUR"
	SGBUSD     AssetPair = "SGBUSD"
	WOOUSD     AssetPair = "WOOUSD"
	ETHWEUR    AssetPair = "ETHWEUR"
	HFTUSD     AssetPair = "HFTUSD"
	LMWRUSD    AssetPair = "LMWRUSD"
	SAMOEUR    AssetPair = "SAMOEUR"
	SUSHIUSD   AssetPair = "SUSHIUSD"
	BNTUSD     AssetPair = "BNTUSD"
	ICXEUR     AssetPair = "ICXEUR"
	USDTJPY    AssetPair = "USDTJPY"
	XMRUSDT    AssetPair = "XMRUSDT"
	XXRPZEUR   AssetPair = "XXRPZEUR"
	ALCXUSD    AssetPair = "ALCXUSD"
	FLOWETH    AssetPair = "FLOWETH"
	GNOEUR     AssetPair = "GNOEUR"
	SYNUSD     AssetPair = "SYNUSD"
	TRXEUR     AssetPair = "TRXEUR"
	ANTXBT     AssetPair = "ANTXBT"
	ENSUSD     AssetPair = "ENSUSD"
	QTUMETH    AssetPair = "QTUMETH"
	XBTAED     AssetPair = "XBTAED"
	ANTUSD     AssetPair = "ANTUSD"
	RNDREUR    AssetPair = "RNDREUR"
	SCXBT      AssetPair = "SCXBT"
	SEIUSD     AssetPair = "SEIUSD"
	XZECZUSD   AssetPair = "XZECZUSD"
	RUNEUSD    AssetPair = "RUNEUSD"
	UNIETH     AssetPair = "UNIETH"
	XMLNXETH   AssetPair = "XMLNXETH"
	ASTRUSD    AssetPair = "ASTRUSD"
	CRVXBT     AssetPair = "CRVXBT"
	KEEPEUR    AssetPair = "KEEPEUR"
	KSMGBP     AssetPair = "KSMGBP"
	PONDUSD    AssetPair = "PONDUSD"
	XMLNZEUR   AssetPair = "XMLNZEUR"
	ZGBPZUSD   AssetPair = "ZGBPZUSD"
	AAVEGBP    AssetPair = "AAVEGBP"
	BTTUSD     AssetPair = "BTTUSD"
	MINAXBT    AssetPair = "MINAXBT"
	PSTAKEUSD  AssetPair = "PSTAKEUSD"
	RADEUR     AssetPair = "RADEUR"
	AUDUSD     AssetPair = "AUDUSD"
	CFGUSD     AssetPair = "CFGUSD"
	PYUSDUSD   AssetPair = "PYUSDUSD"
	RAYEUR     AssetPair = "RAYEUR"
	XXBTZCAD   AssetPair = "XXBTZCAD"
	AAVEUSD    AssetPair = "AAVEUSD"
	KEYUSD     AssetPair = "KEYUSD"
	MATICUSDT  AssetPair = "MATICUSDT"
	TEERUSD    AssetPair = "TEERUSD"
	XLTCZJPY   AssetPair = "XLTCZJPY"
	UNFIUSD    AssetPair = "UNFIUSD"
	ACHUSD     AssetPair = "ACHUSD"
	EWTXBT     AssetPair = "EWTXBT"
	KNCETH     AssetPair = "KNCETH"
	MKRUSD     AssetPair = "MKRUSD"
	MSOLEUR    AssetPair = "MSOLEUR"
	ACAUSD     AssetPair = "ACAUSD"
	AUDIOEUR   AssetPair = "AUDIOEUR"
	ROOKUSD    AssetPair = "ROOKUSD"
	SAMOUSD    AssetPair = "SAMOUSD"
	XXRPXXBT   AssetPair = "XXRPXXBT"
	TRUEUR     AssetPair = "TRUEUR"
	XETHZCAD   AssetPair = "XETHZCAD"
	XRPUSDT    AssetPair = "XRPUSDT"
	MOONEUR    AssetPair = "MOONEUR"
	OMGJPY     AssetPair = "OMGJPY"
	ONEINCHUSD AssetPair = "1INCHUSD"
	BANDEUR    AssetPair = "BANDEUR"
	BLURUSD    AssetPair = "BLURUSD"
	CTSIUSD    AssetPair = "CTSIUSD"
	GMTEUR     AssetPair = "GMTEUR"
	ETHWUSD    AssetPair = "ETHWUSD"
	FORTHEUR   AssetPair = "FORTHEUR"
	MANAUSDT   AssetPair = "MANAUSDT"
	YGGEUR     AssetPair = "YGGEUR"
	ACAEUR     AssetPair = "ACAEUR"
	GRTGBP     AssetPair = "GRTGBP"
	SHIBEUR    AssetPair = "SHIBEUR"
	USDCHF     AssetPair = "USDCHF"
	XXMRXXBT   AssetPair = "XXMRXXBT"
	PEPEUSD    AssetPair = "PEPEUSD"
	USDCEUR    AssetPair = "USDCEUR"
	USDCGBP    AssetPair = "USDCGBP"
	ALPHAEUR   AssetPair = "ALPHAEUR"
	BCHAUD     AssetPair = "BCHAUD"
	MATICXBT   AssetPair = "MATICXBT"
	NANOUSD    AssetPair = "NANOUSD"
	NODLUSD    AssetPair = "NODLUSD"
	XXMRZUSD   AssetPair = "XXMRZUSD"
	XXLMZUSD   AssetPair = "XXLMZUSD"
	ARBUSD     AssetPair = "ARBUSD"
	ENJUSD     AssetPair = "ENJUSD"
	FTMEUR     AssetPair = "FTMEUR"
	KINUSD     AssetPair = "KINUSD"
	RARIEUR    AssetPair = "RARIEUR"
	XXRPZUSD   AssetPair = "XXRPZUSD"
	CVCUSD     AssetPair = "CVCUSD"
	GMXUSD     AssetPair = "GMXUSD"
	LPTGBP     AssetPair = "LPTGBP"
	SBRUSD     AssetPair = "SBRUSD"
	XXRPZJPY   AssetPair = "XXRPZJPY"
	MSOLUSD    AssetPair = "MSOLUSD"
	MVEUR      AssetPair = "MVEUR"
	PAXGETH    AssetPair = "PAXGETH"
	AVAXUSD    AssetPair = "AVAXUSD"
	GMXEUR     AssetPair = "GMXEUR"
	GRTUSD     AssetPair = "GRTUSD"
	INTRUSD    AssetPair = "INTRUSD"
	LDOUSD     AssetPair = "LDOUSD"
	PAXGXBT    AssetPair = "PAXGXBT"
	POWREUR    AssetPair = "POWREUR"
	XDGEUR     AssetPair = "XDGEUR"
	XRPETH     AssetPair = "XRPETH"
	ZUSDZCAD   AssetPair = "ZUSDZCAD"
	ORCAEUR    AssetPair = "ORCAEUR"
	TUSDEUR    AssetPair = "TUSDEUR"
	ANTEUR     AssetPair = "ANTEUR"
	BALEUR     AssetPair = "BALEUR"
	GRTXBT     AssetPair = "GRTXBT"
	MXCEUR     AssetPair = "MXCEUR"
	NEARUSD    AssetPair = "NEARUSD"
	XXBTZJPY   AssetPair = "XXBTZJPY"
	GHSTUSD    AssetPair = "GHSTUSD"
	NANOEUR    AssetPair = "NANOEUR"
	SANDXBT    AssetPair = "SANDXBT"
	USDAED     AssetPair = "USDAED"
	XREPZUSD   AssetPair = "XREPZUSD"
	BADGERUSD  AssetPair = "BADGERUSD"
	KAREUR     AssetPair = "KAREUR"
	KSMXBT     AssetPair = "KSMXBT"
	OXTEUR     AssetPair = "OXTEUR"
	USDCCHF    AssetPair = "USDCCHF"
	USTUSDT    AssetPair = "USTUSDT"
	XMLNZUSD   AssetPair = "XMLNZUSD"
	XXRPZCAD   AssetPair = "XXRPZCAD"
	ALCXEUR    AssetPair = "ALCXEUR"
	CELREUR    AssetPair = "CELREUR"
	MANAXBT    AssetPair = "MANAXBT"
	MVUSD      AssetPair = "MVUSD"
	SNXUSD     AssetPair = "SNXUSD"
	OMGUSD     AssetPair = "OMGUSD"
	OXYUSD     AssetPair = "OXYUSD"
	WAXLUSD    AssetPair = "WAXLUSD"
	ALPHAUSD   AssetPair = "ALPHAUSD"
	XETHZEUR   AssetPair = "XETHZEUR"
	XRPGBP     AssetPair = "XRPGBP"
	XTZUSD     AssetPair = "XTZUSD"
	MULTIUSD   AssetPair = "MULTIUSD"
	XETHZJPY   AssetPair = "XETHZJPY"
	APEUSDT    AssetPair = "APEUSDT"
	DASHEUR    AssetPair = "DASHEUR"
	GHSTXBT    AssetPair = "GHSTXBT"
	INJUSD     AssetPair = "INJUSD"
	MINAGBP    AssetPair = "MINAGBP"
	ATOMUSDT   AssetPair = "ATOMUSDT"
	BOBAEUR    AssetPair = "BOBAEUR"
	LSKEUR     AssetPair = "LSKEUR"
	WBTCXBT    AssetPair = "WBTCXBT"
	XETHXXBT   AssetPair = "XETHXXBT"
	FILXBT     AssetPair = "FILXBT"
	MKREUR     AssetPair = "MKREUR"
	RBCUSD     AssetPair = "RBCUSD"
	XBTUSDC    AssetPair = "XBTUSDC"
	PSTAKEEUR  AssetPair = "PSTAKEEUR"
	XETCXETH   AssetPair = "XETCXETH"
	XREPZEUR   AssetPair = "XREPZEUR"
	ADXEUR     AssetPair = "ADXEUR"
	ANKREUR    AssetPair = "ANKREUR"
	DENTUSD    AssetPair = "DENTUSD"
	FISEUR     AssetPair = "FISEUR"
	MANAETH    AssetPair = "MANAETH"
	XETCZUSD   AssetPair = "XETCZUSD"
	ALGOUSD    AssetPair = "ALGOUSD"
	BADGEREUR  AssetPair = "BADGEREUR"
	BATETH     AssetPair = "BATETH"
	GTCEUR     AssetPair = "GTCEUR"
	MOVREUR    AssetPair = "MOVREUR"
	DOTUSDT    AssetPair = "DOTUSDT"
	EOSUSDT    AssetPair = "EOSUSDT"
	ETHUSDC    AssetPair = "ETHUSDC"
	FETUSD     AssetPair = "FETUSD"
	SOLUSD     AssetPair = "SOLUSD"
	XXBTZEUR   AssetPair = "XXBTZEUR"
	KARUSD     AssetPair = "KARUSD"
	KAVAXBT    AssetPair = "KAVAXBT"
	LCXEUR     AssetPair = "LCXEUR"
	LRCUSD     AssetPair = "LRCUSD"
	LSKXBT     AssetPair = "LSKXBT"
	XXLMXXBT   AssetPair = "XXLMXXBT"
	CSMUSD     AssetPair = "CSMUSD"
	GTCUSD     AssetPair = "GTCUSD"
	MASKEUR    AssetPair = "MASKEUR"
	XETHZUSD   AssetPair = "XETHZUSD"
	XTZAUD     AssetPair = "XTZAUD"
	AXSUSD     AssetPair = "AXSUSD"
	BNCEUR     AssetPair = "BNCEUR"
	SEIEUR     AssetPair = "SEIEUR"
	DOTEUR     AssetPair = "DOTEUR"
	PERPUSD    AssetPair = "PERPUSD"
)

type AssetPairInfo

type AssetPairInfo struct {
	Altname            string     `json:"altname"`
	WSName             string     `json:"wsname"`
	AClassBase         AssetClass `json:"aclass_base"`
	Base               string     `json:"base"`
	AClassQuote        AssetClass `json:"aclass_quote"`
	Quote              string     `json:"quote"`
	PairDecimals       int        `json:"pair_decimals"`
	CostDecimals       int        `json:"cost_decimals"`
	LotDecimals        int        `json:"lot_decimals"`
	LotMultiplier      int        `json:"lot_multiplier"`
	LeverageBuy        []int      `json:"leverage_buy"`
	LeverageSell       []int      `json:"leverage_sell"`
	Fees               []FeeTuple `json:"fees"`
	FeesMaker          []FeeTuple `json:"fees_maker"`
	FeeVolumeCurrency  string     `json:"fee_volume_currency"`
	MarginCall         int        `json:"margin_call"`
	MarginStop         int        `json:"margin_stop"`
	OrderMin           string     `json:"ordermin"`
	CostMin            string     `json:"costmin"`
	TickSize           string     `json:"tick_size"`
	Status             Status     `json:"status"`
	LongPositionLimit  int        `json:"long_position_limit"`
	ShortPositionLimit int        `json:"short_position_limit"`
}

AssetPairInfo defines the information about an asset pair.

type AssetPairs

type AssetPairs map[AssetPair]AssetPairInfo

AssetPairs defines a map of tradeable asset pairs.

func (AssetPairs) Info

func (a AssetPairs) Info(assetPair AssetPair) AssetPairInfo

Info returns the information about an asset pair.

type AssetTickerInfo added in v1.1.0

type AssetTickerInfo struct {
	Ask                        []string `json:"a"` // Ask price array(<price>, <whole lot volume>, <lot volume>)
	Bid                        []string `json:"b"` // Bid price array(<price>, <whole lot volume>, <lot volume>)
	Last                       []string `json:"c"` // Last trade closed array(<price>, <lot volume>)
	Volume                     []string `json:"v"` // Volume array(<today>, <last 24 hours>)
	VolumeWeightedAveragePrice []string `json:"p"` // Volume weighted average price array(<today>, <last 24 hours>)
	NumberOfTrades             []int    `json:"t"` // Number of trades array(<today>, <last 24 hours>)
	Low                        []string `json:"l"` // Low array(<today>, <last 24 hours>)
	High                       []string `json:"h"` // High array(<today>, <last 24 hours>)
	OpeningPrice               string   `json:"o"`
}

AssetTickerInfo defines the information about an asset ticker.

type Assets

type Assets map[Asset]AssetInfo

Assets defines a map of assets.

func (Assets) Info

func (a Assets) Info(asset Asset) AssetInfo

Info returns the information about an asset.

type AssetsOpts

type AssetsOpts struct {
	Assets []Asset    `url:"assets,omitempty"`
	Class  AssetClass `url:"aclass,omitempty"`
}

AssetsOpts represents the parameters to get information about the assets available for trading on Kraken.

func (AssetsOpts) IsZero

func (o AssetsOpts) IsZero() bool

IsZero returns true if the AssetsOpts is empty.

func (AssetsOpts) String

func (o AssetsOpts) String() string

String returns the query string representation of the AssetsOpts.

type AutoCompound added in v1.2.0

type AutoCompound struct {
	Default bool   `json:"default"`
	Type    string `json:"type"`
}

AutoCompound .

type Balance

type Balance string

Balance represents the user's balance.

func (Balance) Float64

func (b Balance) Float64() float64

Float64 returns the balance as a float64.

type CancelAllOrdersAfterOpts added in v1.1.0

type CancelAllOrdersAfterOpts struct {
	Timeout time.Duration `url:"timeout,omitempty"` // Duration (in seconds) to set/extend the timer by
}

CancelAllOrdersAfterOpts represents the parameters to cancel all orders after a timeout.

type CancelOrderOpts

type CancelOrderOpts struct {
	TransactionID string `url:"txid,omitempty"`
}

CancelOrderOpts represents the parameters to cancel an Order.

type Client

type Client struct {

	// Services used for talking to different parts of the Kraken API.
	Market         *MarketData
	Account        *Account
	Trading        *Trading
	Subaccounts    *Subaccounts
	Earn           *Earn
	WebsocketsAuth *WebsocketsAuth
	// contains filtered or unexported fields
}

A Client manages communication with the Mercedes API.

func New

func New(httpClient *http.Client) *Client

New returns new Kraken API client.If a nil httpClient is provided, a new http.Client will be used.

func (*Client) WithAuth

func (c *Client) WithAuth(s Secrets) *Client

WithAuth sets the Kraken API key and secret.

type CreateSubaccountOpts added in v1.1.0

type CreateSubaccountOpts struct {
	Username string `url:"username,omitempty"`
	Email    string `url:"email,omitempty"`
}

CreateSubaccountOpts represents the parameters to create a Subaccount.

func (CreateSubaccountOpts) Valid added in v1.1.0

func (o CreateSubaccountOpts) Valid() bool

Valid returns true if the CreateSubaccountOpts is valid.

type Earn added in v1.2.0

type Earn service

Earn handles communication with the Earn related methods of the Kraken API.

func (*Earn) Allocate added in v1.2.0

func (e *Earn) Allocate(ctx context.Context, opts EarnFundsOpts) (bool, error)

Allocate allocates funds to the Strategy. Docs: https://docs.kraken.com/rest/#tag/Earn/operation/allocateStrategy

func (*Earn) AllocationStatus added in v1.2.0

func (e *Earn) AllocationStatus(ctx context.Context, opts StatusOpts) (*StrategyOperationStatus, error)

AllocationStatus gets the status of the last allocation request. Docs: https://docs.kraken.com/rest/#tag/Earn/operation/getAllocateStrategyStatus

func (*Earn) Allocations added in v1.2.0

func (e *Earn) Allocations(ctx context.Context, opts AllocationsOpts) (*Allocations, error)

Allocations list all allocations for the user. Docs: https://docs.kraken.com/rest/#tag/Earn/operation/listAllocations

func (*Earn) Deallocate added in v1.2.0

func (e *Earn) Deallocate(ctx context.Context, opts EarnFundsOpts) (bool, error)

Deallocate de-allocates funds from the Strategy. Docs: https://docs.kraken.com/rest/#tag/Earn/operation/deallocateStrategy

func (*Earn) DeallocationStatus added in v1.2.0

func (e *Earn) DeallocationStatus(ctx context.Context, opts StatusOpts) (*StrategyOperationStatus, error)

DeallocationStatus gets the status of the last deallocation request. Docs: https://docs.kraken.com/rest/#tag/Earn/operation/getDeallocateStrategyStatus

func (*Earn) Strategies added in v1.2.0

func (e *Earn) Strategies(ctx context.Context, opts StrategiesOpts) (*Strategies, error)

Strategies lists earn strategies along with their parameters. Returns only strategies that are available to the user based on geographic region. Docs: https://docs.kraken.com/rest/#tag/Earn/operation/listStrategies

type EarnFundsOpts added in v1.2.0

type EarnFundsOpts struct {
	Amount     string `json:"amount"`
	StrategyID string `json:"strategy_id"`
}

EarnFundsOpts .

type Error

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

Error represents a Kraken API error.

func (*Error) Error

func (e *Error) Error() string

Error builds a Kraken API error.

type ExtendedBalance added in v1.1.0

type ExtendedBalance struct {
	Balance    Balance `json:"balance"`
	Credit     string  `json:"credit"`
	CreditUsed string  `json:"credit_used"`
	HoldTrade  string  `json:"hold_trade"`
}

ExtendedBalance represents the user's extended balance.

type FeeTuple

type FeeTuple []float64

FeeTuple defines a schedule tuple. [<volume>, <percent fee>]

type LockType added in v1.2.0

type LockType struct {
	Type            StrategyLockType `json:"type"`
	PayoutFrequency int              `json:"payout_frequency"`
}

LockType .

type MarketData

type MarketData service

MarketData handles communication with the market data related methods of the Kraken API.

func (*MarketData) Assets

func (m *MarketData) Assets(ctx context.Context, opts AssetsOpts) (Assets, error)

Assets gets information about the assets available for trading on Kraken. Docs: https://docs.kraken.com/rest/#tag/Market-Data/operation/getAssetInfo

func (*MarketData) OHCLData

func (m *MarketData) OHCLData(ctx context.Context, opts OHCLDataOpts) (*OHCL, error)

OHCLData retrieves the last entry in the OHLC array is for the current, not-yet-committed frame and will always be present, regardless of the value of since. Docs: https://docs.kraken.com/rest/#tag/Market-Data/operation/getOHLCData

func (*MarketData) OrderBook added in v1.1.0

func (m *MarketData) OrderBook(ctx context.Context, opts OrderBookOpts) (*OrderBook, error)

OrderBook retrieves the order book for a given asset pair.

func (*MarketData) SystemStatus

func (m *MarketData) SystemStatus(ctx context.Context) (*SystemStatus, error)

SystemStatus gets the current system status or trading mode. Docs: https://docs.kraken.com/rest/#tag/Market-Data/operation/getSystemStatus

func (*MarketData) TickerInformation added in v1.1.0

func (m *MarketData) TickerInformation(ctx context.Context, opts TickerInformationOpts) (Tickers, error)

TickerInformation gets ticker information about the asset pairs available for trading on Kraken. Note: Today's prices start at midnight UTC. Leaving the pair parameter blank will return tickers for all tradeable assets on Kraken. Docs: https://docs.kraken.com/rest/#tag/Market-Data/operation/getTickerInformation

func (*MarketData) Time

func (m *MarketData) Time(ctx context.Context) (*ServerTime, error)

Time gets the server time. Docs: https://docs.kraken.com/rest/#tag/Market-Data/operation/getServerTime

func (*MarketData) TradableAssetPairs

func (m *MarketData) TradableAssetPairs(ctx context.Context, opts TradableAssetPairsOpts) (AssetPairs, error)

TradableAssetPairs gets information about the asset pairs available for trading on Kraken. Docs: https://docs.kraken.com/rest/#tag/Market-Data/operation/getTradableAssetPairs

type OHCL

type OHCL struct {
	Last int64
	Pair OHCLTickers
}

OHCL represents the OHCL data. It represents the "Open-high-low-close chart".

type OHCLDataOpts

type OHCLDataOpts struct {
	Pair     AssetPair `url:"pair,omitempty"`
	Interval int       `url:"interval,omitempty"`
	Since    int       `url:"since,omitempty"`
}

OHCLDataOpts represents the parameters to get OHLC data for a given asset pair.

func (OHCLDataOpts) String

func (o OHCLDataOpts) String() string

type OHCLTickers added in v1.1.0

type OHCLTickers []TickerValues

OHCLTickers is a slice of Tick.

type OrderBook added in v1.1.0

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

OrderBook defines an order book.

type OrderBookEntries added in v1.2.0

type OrderBookEntries []any

OrderBookEntries defines an order book entries.

func (OrderBookEntries) OrderBookEntry added in v1.2.0

func (o OrderBookEntries) OrderBookEntry() OrderBookEntry

OrderBookEntry returns the values of the order book entries.

type OrderBookEntry added in v1.1.0

type OrderBookEntry struct {
	Price     string
	Volume    string
	Timestamp int64
}

OrderBookEntry defines an order book entry.

type OrderBookOpts added in v1.1.0

type OrderBookOpts struct {
	Pair AssetPair `url:"pair,omitempty"`
	// Count is the maximum number of asks/bids.
	Count int `url:"count,omitempty"`
}

OrderBookOpts represents the parameters to get the order book for a given asset pair.

func (OrderBookOpts) String added in v1.1.0

func (o OrderBookOpts) String() string

String returns the query string representation of the OrderBookOpts.

type OrderCancelation

type OrderCancelation struct {
	Count int `json:"count"`
}

OrderCancelation defines the response from the CancelOrder method.

type OrderCreation

type OrderCreation struct {
	Description OrderDescription `json:"descr"`
	Transaction []TransactionID  `json:"txid"`
}

OrderCreation defines the response from the AddOrder method.

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"`
}

OrderDescription defines an orders description.

type OrderDirection

type OrderDirection string

OrderDirection defines the order direction.

const (
	Buy  OrderDirection = "buy"
	Sell OrderDirection = "sell"
)

type OrderTrigger

type OrderTrigger string

OrderTrigger defines the order trigger.

const (
	Index OrderTrigger = "index"
	Last  OrderTrigger = "last"
)

type OrderType

type OrderType string

OrderType represents the order type.

const (
	Market          OrderType = "market"
	Limit           OrderType = "limit"
	StopLoss        OrderType = "stop-loss"
	TakeProfit      OrderType = "take-profit"
	StopLossLimit   OrderType = "stop-loss-limit"
	TakeProfitLimit OrderType = "take-profit-limit"
	SettlePosition  OrderType = "settle-position"
)

type Otp added in v1.0.2

type Otp string

Otp defines a single-use password. It is used as a second authentication factor.

func OtpFromContext added in v1.0.2

func OtpFromContext(ctx context.Context) Otp

OtpFromContext returns the one-time password from the context.

type PairInfo

type PairInfo string

PairInfo defines the information about an asset pair.

const (
	Info     PairInfo = "info"
	Leverage PairInfo = "leverage"
	Fees     PairInfo = "fees"
	Margin   PairInfo = "margin"
)

type Payout added in v1.2.0

type Payout struct {
	Start             time.Time `json:"period_start"`
	End               time.Time `json:"period_end"`
	AccumulatedReward Total     `json:"accumulated_reward"`
	EstimatedReward   Total     `json:"estimated_reward"`
}

Payout .

type Response added in v1.1.0

type Response struct {
	Errors []string `json:"error"`
	Result any      `json:"result"`
}

Response represents a Kraken response.

func (*Response) Error added in v1.1.0

func (r *Response) Error() error

Error builds a Kraken API error.

type Secret

type Secret []byte

Secret represents a Kraken API secret.

type Secrets

type Secrets struct {
	Key    string
	Secret string
}

Secrets represents the Kraken API key and secret.

type ServerTime

type ServerTime struct {
	UnixTime int64  `json:"unixtime"`
	Rfc1123  string `json:"rfc1123"`
}

ServerTime represents the server time.

type Signer

type Signer struct {
	Secret Secret
}

Signer represents a Kraken API signature.

func NewSigner

func NewSigner(s string) Signer

NewSigner returns a new Kraken API signer. Authenticated requests should be signed with the "API-Sign" header, using a signature generated with your private key, nonce, encoded payload, and URI path according to: HMAC-SHA512 of (URI path + SHA256(nonce + POST data)) and base64 decoded secret API key.

func (Signer) Sign

func (s Signer) Sign(v reqBody, path string) string

Sign signs the Kraken API request. Docs: https://www.kraken.com/help/api#general-usage for more information

type Status

type Status string

Status represents an status within Kraken.

const (
	//Online means Kraken is operating normally. All order types may be submitted and trades can occur.
	Online Status = "online"
	// Maintenance means exchange is offline. No new orders or cancellations may be submitted.
	Maintenance Status = "maintenance"
	// CancelOnly means resting (open) orders can be cancelled but no new orders may be submitted. No trades will occur.
	CancelOnly Status = "cancel_only"
	// PostOnly means only post-only limit orders can be submitted. Existing orders may still be cancelled. No trades will occur.
	PostOnly Status = "post_only"
	// ReduceOnly .
	ReduceOnly Status = "reduce_only"
)

type StatusOpts added in v1.2.0

type StatusOpts struct {
	StrategyID string `json:"strategy_id,omitempty"`
}

StatusOpts represents the parameters to get the status of the last allocation or deallocation request.

type StopType

type StopType string

StopType defines the stop price type.

const (
	CancelNewest StopType = "cancel-newest"
	CancelOldest StopType = "cancel-oldest"
	CancelBoth   StopType = "cancel-both"
)

type Strategies added in v1.2.0

type Strategies struct {
	NextCursor string     `json:"next_cursor"`
	Items      []Strategy `json:"items"`
}

Strategies represents a list of strategies.

type StrategiesOpts added in v1.2.0

type StrategiesOpts struct {
	Ascending bool             `json:"ascending,omitempty"`
	Asset     Asset            `json:"asset,omitempty"`
	Cursor    string           `json:"cursor,omitempty"`
	Limit     int              `json:"limit,omitempty"`
	LockType  StrategyLockType `json:"lock_type,omitempty"`
}

StrategiesOpts represents the parameters to list earn strategies.

type Strategy added in v1.2.0

type Strategy struct {
	ID                        string       `json:"id"`
	AllocationFee             any          `json:"allocation_fee"`
	AllocationRestrictionInfo []string     `json:"allocation_restriction_info"`
	AprEstimate               AprEstimate  `json:"apr_estimate"`
	Asset                     Asset        `json:"asset"`
	AutoCompound              AutoCompound `json:"auto_compound"`
	CanAllocate               bool         `json:"can_allocate"`
	CanDeallocate             bool         `json:"can_deallocate"`
	DeallocationFee           any          `json:"deallocation_fee"`
	LockType                  LockType     `json:"lock_type"`
	UserCap                   string       `json:"user_cap"`
	UserMinAllocation         string       `json:"user_min_allocation"`
	YieldSource               YieldSource  `json:"yield_source"`
}

Strategy represents a strategy.

type StrategyLockType added in v1.2.0

type StrategyLockType string

StrategyLockType .

const (
	Flex    StrategyLockType = "flex"
	Bounded StrategyLockType = "bounded"
	Timed   StrategyLockType = "timed"
	Instant StrategyLockType = "instant"
)

type StrategyOperationStatus added in v1.2.0

type StrategyOperationStatus struct {
	Pending bool `json:"pending"`
}

StrategyOperationStatus .

type Subaccounts added in v1.1.0

type Subaccounts service

Subaccounts handles communication with the Subaccounts related methods of the Kraken API.

func (*Subaccounts) Create added in v1.1.0

func (s *Subaccounts) Create(ctx context.Context, opts CreateSubaccountOpts) (bool, error)

Create creates a new trading subaccount. Docs: https://docs.kraken.com/rest/#tag/Subaccounts/operation/createSubaccount.

func (*Subaccounts) Transfer added in v1.1.0

func (s *Subaccounts) Transfer(ctx context.Context, opts TransferOpts) (*TransferResult, error)

Transfer transfers funds to and from master and subaccounts. Note: AccountTransfer must be called by the master account. Docs: https://docs.kraken.com/rest/#tag/Subaccounts/operation/accountTransfer

type SystemStatus

type SystemStatus struct {
	Status    Status `json:"status"`
	Timestamp string `json:"timestamp"` // Current timestamp (RFC3339)
}

SystemStatus represents the current system status.

type Ticker added in v1.1.0

type Ticker struct {
	Open   string
	High   string
	Low    string
	Close  string
	Vwap   string
	Volume string
	Count  int64
	Time   int64
}

Ticker represents a ticker.

type TickerInformationOpts added in v1.1.0

type TickerInformationOpts struct {
	Pairs []AssetPair `url:"pair,omitempty"`
}

TickerInformationOpts represents the parameters to get ticker information about the asset pairs available for trading on Kraken.

func (TickerInformationOpts) IsZero added in v1.1.0

func (o TickerInformationOpts) IsZero() bool

IsZero returns true if the TradableAssetPairsOpts is empty.

func (TickerInformationOpts) String added in v1.1.0

func (o TickerInformationOpts) String() string

String returns the query string representation of the TradableAssetPairsOpts.

type TickerValues added in v1.1.0

type TickerValues []any

TickerValues represents the values of a ticker.

func (TickerValues) Ticker added in v1.2.0

func (t TickerValues) Ticker() Ticker

Ticker returns the values of the tick.

type Tickers added in v1.1.0

type Tickers map[AssetPair]AssetTickerInfo

Tickers defines a map of asset tickers.

func (Tickers) Info added in v1.1.0

func (t Tickers) Info(assetPair AssetPair) AssetTickerInfo

Info returns the information about an asset pair.

type TimeInForce

type TimeInForce string

TimeInForce defines the time in force.

const (
	GoodTillCancelled TimeInForce = "GTC"
	ImmediateOrCancel TimeInForce = "IOC"
	GoodTillDate      TimeInForce = "GTD"
)

type Total added in v1.2.0

type Total struct {
	Native    string `json:"native"`
	Converted string `json:"converted"`
}

Total .

type TradableAssetPairsOpts

type TradableAssetPairsOpts struct {
	Pairs []AssetPair `url:"pair,omitempty"`
	Info  PairInfo    `url:"info,omitempty"`
}

TradableAssetPairsOpts represents the parameters to get information about the asset pairs available for trading on Kraken.

func (TradableAssetPairsOpts) IsZero

func (o TradableAssetPairsOpts) IsZero() bool

IsZero returns true if the TradableAssetPairsOpts is empty.

func (TradableAssetPairsOpts) String

func (o TradableAssetPairsOpts) String() string

String returns the query string representation of the TradableAssetPairsOpts.

type Trading

type Trading service

Trading handles communication with the trading related methods of the Kraken API.

func (*Trading) AddOrder

func (t *Trading) AddOrder(ctx context.Context, opts AddOrderOpts) (*OrderCreation, error)

AddOrder places a new order. Docs: https://docs.kraken.com/rest/#tag/Trading/operation/addOrder

func (*Trading) CancelAllOrders added in v1.1.0

func (t *Trading) CancelAllOrders(ctx context.Context) (*OrderCancelation, error)

CancelAllOrders cancels all open orders. Docs: https://docs.kraken.com/rest/#tag/Trading/operation/cancelAll

func (*Trading) CancelAllOrdersAfter added in v1.1.0

func (t *Trading) CancelAllOrdersAfter(ctx context.Context, opts CancelAllOrdersAfterOpts) (*TriggeredOrderCancellation, error)

CancelAllOrdersAfter cancels all open orders after a timeout. Docs: https://docs.kraken.com/rest/#tag/Trading/operation/cancelAllOrdersAfter

func (*Trading) CancelOrder

func (t *Trading) CancelOrder(ctx context.Context, opts CancelOrderOpts) (*OrderCancelation, error)

CancelOrder cancels an order. Docs: https://docs.kraken.com/rest/#tag/Trading/operation/cancelOrder

type TransactionID

type TransactionID string

TransactionID defines a transaction ID.

type TransferOpts added in v1.1.0

type TransferOpts struct {
	Asset  string `url:"asset,omitempty"`
	Amount string `url:"amount,omitempty"`
	From   string `url:"from,omitempty"`
	To     string `url:"to,omitempty"`
}

TransferOpts represents the parameters to transfer funds.

func (TransferOpts) Valid added in v1.1.0

func (o TransferOpts) Valid() bool

Valid returns true if the TransferOpts is valid.

type TransferResult added in v1.1.0

type TransferResult struct {
	TransferID string         `json:"transfer_id"`
	Status     TransferStatus `json:"status"`
}

TransferResult defines the result of a transfer.

type TransferStatus added in v1.1.0

type TransferStatus string

TransferStatus defines the transfer status.

const (
	Pending  TransferStatus = "pending"
	Complete TransferStatus = "complete"
)

type TriggeredOrderCancellation added in v1.1.0

type TriggeredOrderCancellation struct {
	// Timestamp (RFC3339 format) at which the request was received.
	CurrentTime string `json:"currentTime"`
	// Timestamp (RFC3339 format) after which all orders will be cancelled, unless the timer is extended or disabled.
	TriggerTime string `json:"triggerTime"`
}

TriggeredOrderCancellation defines the response from the CancelAllOrdersAfter method.

type WebsocketsAuth

type WebsocketsAuth service

WebsocketsAuth handles communication with the WebsocketsAuth related methods of the Kraken API.

func (*WebsocketsAuth) WebsocketsToken

func (ws *WebsocketsAuth) WebsocketsToken(ctx context.Context) (*WebsocketsToken, error)

WebsocketsToken retrieves a token to use for Websockets authentication.

type WebsocketsToken

type WebsocketsToken struct {
	Token   string `json:"token"`
	Expires int64  `json:"expires"`
}

WebsocketsToken defines the response from the GetWebSocketsToken method.

type YieldSource added in v1.2.0

type YieldSource struct {
	Type string `json:"type"`
}

YieldSource .

Directories

Path Synopsis
example

Jump to

Keyboard shortcuts

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