gemini

package
v0.0.0-...-55c8b02 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2017 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// Session manager
	Session map[int]*Gemini
)

Functions

func AddSession

func AddSession(g *Gemini, sessionID int, apiKey, apiSecret, role string, needsHeartbeat, isSandbox bool) error

AddSession adds a new session to the gemini base

Types

type Auction

type Auction struct {
	LastAuctionEID               int64   `json:"last_auction_eid"`
	ClosedUntilMs                int64   `json:"closed_until_ms"`
	LastAuctionPrice             float64 `json:"last_auction_price,string"`
	LastAuctionQuantity          float64 `json:"last_auction_quantity,string"`
	LastHighestBidPrice          float64 `json:"last_highest_bid_price,string"`
	LastLowestAskPrice           float64 `json:"last_lowest_ask_price,string"`
	NextAuctionMS                int64   `json:"next_auction_ms"`
	NextUpdateMS                 int64   `json:"next_update_ms"`
	MostRecentIndicativePrice    float64 `json:"most_recent_indicative_price,string"`
	MostRecentIndicativeQuantity float64 `json:"most_recent_indicative_quantity,string"`
	MostRecentHighestBidPrice    float64 `json:"most_recent_highest_bid_price,string"`
	MostRecentLowestAskPrice     float64 `json:"most_recent_lowest_ask_price,string"`
}

Auction is generalized response type

type AuctionHistory

type AuctionHistory struct {
	AuctionID       int64   `json:"auction_id"`
	AuctionPrice    float64 `json:"auction_price,string"`
	AuctionQuantity float64 `json:"auction_quantity,string"`
	EID             int64   `json:"eid"`
	HighestBidPrice float64 `json:"highest_bid_price,string"`
	LowestAskPrice  float64 `json:"lowest_ask_price,string"`
	AuctionResult   string  `json:"auction_result"`
	Timestamp       int64   `json:"timestamp"`
	TimestampMS     int64   `json:"timestampms"`
	EventType       string  `json:"event_type"`
}

AuctionHistory holds auction history information

type Balance

type Balance struct {
	Currency  string  `json:"currency"`
	Amount    float64 `json:"amount,string"`
	Available float64 `json:"available,string"`
}

Balance is a simple balance type

type DepositAddress

type DepositAddress struct {
	Currency string `json:"currency"`
	Address  string `json:"address"`
	Label    string `json:"label"`
}

DepositAddress holds assigned deposit address for a specific currency

type ErrorCapture

type ErrorCapture struct {
	Result  string `json:"result"`
	Reason  string `json:"reason"`
	Message string `json:"message"`
}

ErrorCapture is a generlized error response from the server

type Gemini

type Gemini struct {
	exchange.Base
	Role              string
	RequiresHeartBeat bool
}

Gemini is the overarching type across the Gemini package, create multiple instances with differing APIkeys for segregation of roles for authenticated requests & sessions by appending new sessions to the Session map using AddSession, if sandbox test is needed append a new session with with the same API keys and change the IsSandbox variable to true.

func (*Gemini) CancelOrder

func (g *Gemini) CancelOrder(OrderID int64) (Order, error)

CancelOrder will cancel an order. If the order is already canceled, the message will succeed but have no effect.

func (*Gemini) CancelOrders

func (g *Gemini) CancelOrders(CancelBySession bool) (OrderResult, error)

CancelOrders will cancel all outstanding orders created by all sessions owned by this account, including interactive orders placed through the UI. If sessions = true will only cancel the order that is called on this session asssociated with the APIKEY

func (*Gemini) GetAuction

func (g *Gemini) GetAuction(currencyPair string) (Auction, error)

GetAuction returns auction information

func (*Gemini) GetAuctionHistory

func (g *Gemini) GetAuctionHistory(currencyPair string, params url.Values) ([]AuctionHistory, error)

GetAuctionHistory returns the auction events, optionally including publications of indicative prices, since the specific timestamp.

currencyPair - example "btcusd" params -- [optional]

since - [timestamp] Only returns auction events after the specified

timestamp.

limit_auction_results - [integer] The maximum number of auction

events to return.

include_indicative - [bool] Whether to include publication of

indicative prices and quantities.

func (*Gemini) GetBalances

func (g *Gemini) GetBalances() ([]Balance, error)

GetBalances returns available balances in the supported currencies

func (*Gemini) GetDepositAddress

func (g *Gemini) GetDepositAddress(depositAddlabel, currency string) (DepositAddress, error)

GetDepositAddress returns a deposit address

func (*Gemini) GetExchangeAccountInfo

func (g *Gemini) GetExchangeAccountInfo() (exchange.AccountInfo, error)

GetExchangeAccountInfo Retrieves balances for all enabled currencies for the Gemini exchange

func (*Gemini) GetOrderStatus

func (g *Gemini) GetOrderStatus(orderID int64) (Order, error)

GetOrderStatus returns the status for an order

func (*Gemini) GetOrderbook

func (g *Gemini) GetOrderbook(currencyPair string, params url.Values) (Orderbook, error)

GetOrderbook returns the current order book, as two arrays, one of bids, and one of asks

params - limit_bids or limit_asks [OPTIONAL] default 50, 0 returns all Values Type is an integer ie "params.Set("limit_asks", 30)"

func (*Gemini) GetOrderbookEx

func (g *Gemini) GetOrderbookEx(p pair.CurrencyPair, assetType string) (orderbook.Base, error)

GetOrderbookEx returns orderbook base on the currency pair

func (*Gemini) GetOrders

func (g *Gemini) GetOrders() ([]Order, error)

GetOrders returns active orders in the market

func (*Gemini) GetSymbols

func (g *Gemini) GetSymbols() ([]string, error)

GetSymbols returns all available symbols for trading

func (*Gemini) GetTicker

func (g *Gemini) GetTicker(currencyPair string) (Ticker, error)

GetTicker returns information about recent trading activity for the symbol

func (*Gemini) GetTickerPrice

func (g *Gemini) GetTickerPrice(p pair.CurrencyPair, assetType string) (ticker.Price, error)

GetTickerPrice returns the ticker for a currency pair

func (*Gemini) GetTradeHistory

func (g *Gemini) GetTradeHistory(currencyPair string, timestamp int64) ([]TradeHistory, error)

GetTradeHistory returns an array of trades that have been on the exchange

currencyPair - example "btcusd" timestamp - [optional] Only return trades on or after this timestamp.

func (*Gemini) GetTradeVolume

func (g *Gemini) GetTradeVolume() ([][]TradeVolume, error)

GetTradeVolume returns a multi-arrayed volume response

func (*Gemini) GetTrades

func (g *Gemini) GetTrades(currencyPair string, params url.Values) ([]Trade, error)

GetTrades eturn the trades that have executed since the specified timestamp. Timestamps are either seconds or milliseconds since the epoch (1970-01-01).

currencyPair - example "btcusd" params -- since, timestamp [optional] limit_trades integer Optional. The maximum number of trades to return. include_breaks boolean Optional. Whether to display broken trades. False by default. Can be '1' or 'true' to activate

func (*Gemini) NewOrder

func (g *Gemini) NewOrder(symbol string, amount, price float64, side, orderType string) (int64, error)

NewOrder Only limit orders are supported through the API at present. returns order ID if successful

func (*Gemini) PostHeartbeat

func (g *Gemini) PostHeartbeat() (string, error)

PostHeartbeat sends a maintenance heartbeat to the exchange for all heartbeat maintaned sessions

func (*Gemini) Run

func (g *Gemini) Run()

Run implements the Gemini wrapper

func (*Gemini) SendAuthenticatedHTTPRequest

func (g *Gemini) SendAuthenticatedHTTPRequest(method, path string, params map[string]interface{}, result interface{}) (err error)

SendAuthenticatedHTTPRequest sends an authenticated HTTP request to the exchange and returns an error

func (*Gemini) SetDefaults

func (g *Gemini) SetDefaults()

SetDefaults sets package defaults for gemini exchange

func (*Gemini) Setup

func (g *Gemini) Setup(exch config.ExchangeConfig)

Setup sets exchange configuration parameters

func (*Gemini) Start

func (g *Gemini) Start()

Start starts the Gemini go routine

func (*Gemini) UpdateOrderbook

func (g *Gemini) UpdateOrderbook(p pair.CurrencyPair, assetType string) (orderbook.Base, error)

UpdateOrderbook updates and returns the orderbook for a currency pair

func (*Gemini) UpdateTicker

func (g *Gemini) UpdateTicker(p pair.CurrencyPair, assetType string) (ticker.Price, error)

UpdateTicker updates and returns the ticker for a currency pair

func (*Gemini) WithdrawCrypto

func (g *Gemini) WithdrawCrypto(address, currency string, amount float64) (WithdrawalAddress, error)

WithdrawCrypto withdraws crypto currency to a whitelisted address

type Order

type Order struct {
	OrderID           int64    `json:"order_id,string"`
	ID                int64    `json:"id,string"`
	ClientOrderID     string   `json:"client_order_id"`
	Symbol            string   `json:"symbol"`
	Exchange          string   `json:"exchange"`
	Price             float64  `json:"price,string"`
	AvgExecutionPrice float64  `json:"avg_execution_price,string"`
	Side              string   `json:"side"`
	Type              string   `json:"type"`
	Timestamp         int64    `json:"timestamp,string"`
	TimestampMS       int64    `json:"timestampms"`
	IsLive            bool     `json:"is_live"`
	IsCancelled       bool     `json:"is_cancelled"`
	IsHidden          bool     `json:"is_hidden"`
	Options           []string `json:"options"`
	WasForced         bool     `json:"was_forced"`
	ExecutedAmount    float64  `json:"executed_amount,string"`
	RemainingAmount   float64  `json:"remaining_amount,string"`
	OriginalAmount    float64  `json:"original_amount,string"`
}

Order contains order information

type OrderResult

type OrderResult struct {
	Result  string `json:"result"`
	Details struct {
		CancelledOrders []string `json:"cancelledOrders"`
		CancelRejects   []string `json:"cancelRejects"`
	} `json:"details"`
}

OrderResult holds cancelled order information

type Orderbook

type Orderbook struct {
	Bids []OrderbookEntry `json:"bids"`
	Asks []OrderbookEntry `json:"asks"`
}

Orderbook contains orderbook information for both bid and ask side

type OrderbookEntry

type OrderbookEntry struct {
	Price  float64 `json:"price,string"`
	Amount float64 `json:"amount,string"`
}

OrderbookEntry subtype of orderbook information

type Ticker

type Ticker struct {
	Ask    float64 `json:"ask,string"`
	Bid    float64 `json:"bid,string"`
	Last   float64 `json:"last,string"`
	Volume struct {
		Currency  float64
		USD       float64
		Timestamp int64
	}
}

Ticker holds returned ticker data from the exchange

type Trade

type Trade struct {
	Timestamp   int64   `json:"timestamp"`
	Timestampms int64   `json:"timestampms"`
	TID         int64   `json:"tid"`
	Price       float64 `json:"price,string"`
	Amount      float64 `json:"amount,string"`
	Exchange    string  `json:"exchange"`
	Side        string  `json:"type"`
}

Trade holds trade history for a specific currency pair

type TradeHistory

type TradeHistory struct {
	Price           float64 `json:"price,string"`
	Amount          float64 `json:"amount,string"`
	Timestamp       int64   `json:"timestamp"`
	TimestampMS     int64   `json:"timestampms"`
	Type            string  `json:"type"`
	FeeCurrency     string  `json:"fee_currency"`
	FeeAmount       float64 `json:"fee_amount,string"`
	TID             int64   `json:"tid"`
	OrderID         int64   `json:"order_id,string"`
	Exchange        string  `json:"exchange"`
	IsAuctionFilled bool    `json:"is_auction_fill"`
	ClientOrderID   string  `json:"client_order_id"`
}

TradeHistory holds trade history information

type TradeVolume

type TradeVolume struct {
	AccountID         int64   `json:"account_id"`
	Symbol            string  `json:"symbol"`
	BaseCurrency      string  `json:"base_currency"`
	NotionalCurrency  string  `json:"notional_currency"`
	Date              string  `json:"date_date"`
	TotalVolumeBase   float64 `json:"total_volume_base"`
	MakerBuySellRatio float64 `json:"maker_buy_sell_ratio"`
	BuyMakerBase      float64 `json:"buy_maker_base"`
	BuyMakerNotional  float64 `json:"buy_maker_notional"`
	BuyMakerCount     float64 `json:"buy_maker_count"`
	SellMakerBase     float64 `json:"sell_maker_base"`
	SellMakerNotional float64 `json:"sell_maker_notional"`
	SellMakerCount    float64 `json:"sell_maker_count"`
	BuyTakerBase      float64 `json:"buy_taker_base"`
	BuyTakerNotional  float64 `json:"buy_taker_notional"`
	BuyTakerCount     float64 `json:"buy_taker_count"`
	SellTakerBase     float64 `json:"sell_taker_base"`
	SellTakerNotional float64 `json:"sell_taker_notional"`
	SellTakerCount    float64 `json:"sell_taker_count"`
}

TradeVolume holds Volume information

type WithdrawalAddress

type WithdrawalAddress struct {
	Address string  `json:"address"`
	Amount  float64 `json:"amount"`
	TXHash  string  `json:"txHash"`
}

WithdrawalAddress holds withdrawal information

Jump to

Keyboard shortcuts

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