gemini

package
v0.0.0-...-db5ea55 Latest Latest
Warning

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

Go to latest
Published: Dec 6, 2021 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DEFAULT_ID           = 37
	DEFAULT_TAKER_FEE    = 0.0035
	DEFAULT_MAKER_FEE    = 0.001
	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.sandbox.gemini.com"
)

Variables

This section is empty.

Functions

func ComputeHmac384NoDecode

func ComputeHmac384NoDecode(strMessage string, strSecret string) string

Types

type AccountBalances

type AccountBalances []struct {
	Type                   string `json:"type"`
	Currency               string `json:"currency"`
	Amount                 string `json:"amount"`
	Available              string `json:"available"`
	AvailableForWithdrawal string `json:"availableForWithdrawal"`
}

type ErrorResponse

type ErrorResponse struct {
	// error return
	Result  string `json:"result"`
	Reason  string `json:"reason"`
	Message string `json:"message"`
}

type Gemini

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

	API_KEY    string
	API_SECRET string

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

func CreateGemini

func CreateGemini(config *exchange.Config) *Gemini

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

func (*Gemini) ApiKeyRequest

func (e *Gemini) ApiKeyRequest(strMethod string, strRequestPath string, mapParams map[string]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 (*Gemini) CanDeposit

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

func (*Gemini) CanWithdraw

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

func (*Gemini) CancelAllOrder

func (e *Gemini) CancelAllOrder() error

func (*Gemini) CancelOrder

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

func (*Gemini) DeleteCoin

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

func (*Gemini) DeletePair

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

func (*Gemini) DoAccountOperation

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

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

func (*Gemini) GetBalance

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

func (*Gemini) GetCoinBySymbol

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

func (*Gemini) GetCoinConstraint

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

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

func (*Gemini) GetCoins

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

func (*Gemini) GetCoinsData

func (e *Gemini) 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 (*Gemini) GetConfirmation

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

func (*Gemini) GetConstraintFetchMethod

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

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

func (*Gemini) GetFee

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

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

func (*Gemini) GetID

func (e *Gemini) GetID() int

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

func (*Gemini) GetLotSize

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

func (*Gemini) GetName

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

func (*Gemini) GetPairBySymbol

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

func (*Gemini) GetPairConstraint

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

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

func (*Gemini) GetPairs

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

func (*Gemini) GetPairsData

func (e *Gemini) 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 (*Gemini) GetPriceFilter

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

func (*Gemini) GetSymbolByCoin

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

func (*Gemini) GetSymbolByPair

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

func (*Gemini) GetTradingWebURL

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

func (*Gemini) GetTxFee

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

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

func (*Gemini) HasPair

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

func (*Gemini) InitData

func (e *Gemini) InitData() error

func (*Gemini) LimitBuy

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

func (*Gemini) LimitSell

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

func (*Gemini) ListOrders

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

func (*Gemini) LoadPublicData

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

func (*Gemini) OrderBook

func (e *Gemini) 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 (*Gemini) OrderStatus

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

func (*Gemini) SetCoinConstraint

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

func (*Gemini) SetPairConstraint

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

func (*Gemini) UpdateAllBalances

func (e *Gemini) UpdateAllBalances()

func (*Gemini) UpdateConstraint

func (e *Gemini) UpdateConstraint()

func (*Gemini) Withdraw

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

txHash is Only shown for ETH and GUSD withdrawals. withdrawalID and message are Only shown for BTC, ZEC, LTC and BCH withdrawals.

type OrderBook

type OrderBook struct {
	Bids []struct {
		Price     string `json:"price"`
		Amount    string `json:"amount"`
		Timestamp string `json:"timestamp"`
	} `json:"bids"`
	Asks []struct {
		Price     string `json:"price"`
		Amount    string `json:"amount"`
		Timestamp string `json:"timestamp"`
	} `json:"asks"`
}

type PairsFile

type PairsFile []struct {
	Symbol        string  `json:"symbol"`
	Base          string  `json:"base"`
	Quote         string  `json:"quote"`
	MinOrderSize  float64 `json:"min_order_size"`
	MinOrderIncre float64 `json:"min_order_incre"`
	MinPriceIncre float64 `json:"min_price_incre"`
}

type PlaceOrder

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

type Withdrawal

type Withdrawal struct {
	Address      string `json:"address"`
	Amount       string `json:"amount"`
	TxHash       string `json:"txHash"`
	WithdrawalID string `json:"withdrawalId"`
	Message      string `json:"message"`
}

Jump to

Keyboard shortcuts

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