bitstamp

package
v0.0.0-...-81ab215 Latest Latest
Warning

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

Go to latest
Published: May 30, 2021 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Deposit = iota
	Withdrawal
	MarketTrade
	SubAccountTransfer = 14
)

Transaction types

View Source
const (
	BuyOrder = iota
	SellOrder
)

Order side type

Variables

This section is empty.

Functions

This section is empty.

Types

type Balance

type Balance struct {
	Available     float64
	Balance       float64
	Reserved      float64
	WithdrawalFee float64
	BTCFee        float64 // for cryptocurrency pairs
	USDFee        float64
	EURFee        float64
}

Balance stores the balance info

type Balances

type Balances map[string]Balance

Balances holds full balance information with the supplied APIKEYS

type Bitstamp

type Bitstamp struct {
	exchange.Base
}

Bitstamp is the overarching type across the bitstamp package

func (*Bitstamp) CalculateTradingFee

func (b *Bitstamp) CalculateTradingFee(base, quote currency.Code, purchasePrice, amount float64, balances Balances) float64

CalculateTradingFee returns fee on a currency pair

func (*Bitstamp) CancelAllExistingOrders

func (b *Bitstamp) CancelAllExistingOrders() (bool, error)

CancelAllExistingOrders cancels all open orders on the exchange

func (*Bitstamp) CancelAllOrders

func (b *Bitstamp) CancelAllOrders(_ *order.Cancel) (order.CancelAllResponse, error)

CancelAllOrders cancels all orders associated with a currency pair

func (*Bitstamp) CancelBatchOrders

func (b *Bitstamp) CancelBatchOrders(o []order.Cancel) (order.CancelBatchResponse, error)

CancelBatchOrders cancels an orders by their corresponding ID numbers

func (*Bitstamp) CancelExistingOrder

func (b *Bitstamp) CancelExistingOrder(orderID int64) (CancelOrder, error)

CancelExistingOrder cancels order by ID

func (*Bitstamp) CancelOrder

func (b *Bitstamp) CancelOrder(o *order.Cancel) error

CancelOrder cancels an order by its corresponding ID number

func (*Bitstamp) CryptoWithdrawal

func (b *Bitstamp) CryptoWithdrawal(amount float64, address, symbol, destTag string, instant bool) (CryptoWithdrawalResponse, error)

CryptoWithdrawal withdraws a cryptocurrency into a supplied wallet, returns ID amount - The amount you want withdrawn address - The wallet address of the cryptocurrency symbol - the type of crypto ie "ltc", "btc", "eth" destTag - only for XRP default to "" instant - only for bitcoins

func (*Bitstamp) FetchAccountInfo

func (b *Bitstamp) FetchAccountInfo(assetType asset.Item) (account.Holdings, error)

FetchAccountInfo retrieves balances for all enabled currencies

func (*Bitstamp) FetchOrderbook

func (b *Bitstamp) FetchOrderbook(p currency.Pair, assetType asset.Item) (*orderbook.Base, error)

FetchOrderbook returns the orderbook for a currency pair

func (*Bitstamp) FetchTicker

func (b *Bitstamp) FetchTicker(p currency.Pair, assetType asset.Item) (*ticker.Price, error)

FetchTicker returns the ticker for a currency pair

func (*Bitstamp) FetchTradablePairs

func (b *Bitstamp) FetchTradablePairs(asset asset.Item) ([]string, error)

FetchTradablePairs returns a list of the exchanges tradable pairs

func (*Bitstamp) GetActiveOrders

func (b *Bitstamp) GetActiveOrders(req *order.GetOrdersRequest) ([]order.Detail, error)

GetActiveOrders retrieves any orders that are active/open

func (*Bitstamp) GetBalance

func (b *Bitstamp) GetBalance() (Balances, error)

GetBalance returns full balance of currency held on the exchange

func (*Bitstamp) GetCryptoDepositAddress

func (b *Bitstamp) GetCryptoDepositAddress(crypto currency.Code) (string, error)

GetCryptoDepositAddress returns a depositing address by crypto crypto - example "btc", "ltc", "eth", "xrp" or "bch"

func (*Bitstamp) GetDefaultConfig

func (b *Bitstamp) GetDefaultConfig() (*config.ExchangeConfig, error)

GetDefaultConfig returns a default exchange config

func (*Bitstamp) GetDepositAddress

func (b *Bitstamp) GetDepositAddress(cryptocurrency currency.Code, _ string) (string, error)

GetDepositAddress returns a deposit address for a specified currency

func (*Bitstamp) GetEURUSDConversionRate

func (b *Bitstamp) GetEURUSDConversionRate() (EURUSDConversionRate, error)

GetEURUSDConversionRate returns the conversion rate between Euro and USD

func (*Bitstamp) GetFee

func (b *Bitstamp) GetFee(feeBuilder *exchange.FeeBuilder) (float64, error)

GetFee returns an estimate of fee based on type of transaction

func (*Bitstamp) GetFeeByType

func (b *Bitstamp) GetFeeByType(feeBuilder *exchange.FeeBuilder) (float64, error)

GetFeeByType returns an estimate of fee based on type of transaction

func (*Bitstamp) GetFundingHistory

func (b *Bitstamp) GetFundingHistory() ([]exchange.FundHistory, error)

GetFundingHistory returns funding history, deposits and withdrawals

func (*Bitstamp) GetHistoricCandles

func (b *Bitstamp) GetHistoricCandles(pair currency.Pair, a asset.Item, start, end time.Time, interval kline.Interval) (kline.Item, error)

GetHistoricCandles returns candles between a time period for a set time interval

func (*Bitstamp) GetHistoricCandlesExtended

func (b *Bitstamp) GetHistoricCandlesExtended(pair currency.Pair, a asset.Item, start, end time.Time, interval kline.Interval) (kline.Item, error)

GetHistoricCandlesExtended returns candles between a time period for a set time interval

func (*Bitstamp) GetHistoricTrades

func (b *Bitstamp) GetHistoricTrades(_ currency.Pair, _ asset.Item, _, _ time.Time) ([]trade.Data, error)

GetHistoricTrades returns historic trade data within the timeframe provided

func (*Bitstamp) GetOpenOrders

func (b *Bitstamp) GetOpenOrders(currencyPair string) ([]Order, error)

GetOpenOrders returns all open orders on the exchange

func (*Bitstamp) GetOrderHistory

func (b *Bitstamp) GetOrderHistory(req *order.GetOrdersRequest) ([]order.Detail, error)

GetOrderHistory retrieves account order information Can Limit response to specific order status

func (*Bitstamp) GetOrderInfo

func (b *Bitstamp) GetOrderInfo(orderID string, pair currency.Pair, assetType asset.Item) (order.Detail, error)

GetOrderInfo returns order information based on order ID

func (*Bitstamp) GetOrderStatus

func (b *Bitstamp) GetOrderStatus(orderID int64) (OrderStatus, error)

GetOrderStatus returns an the status of an order by its ID

func (*Bitstamp) GetOrderbook

func (b *Bitstamp) GetOrderbook(currency string) (Orderbook, error)

GetOrderbook Returns a JSON dictionary with "bids" and "asks". Each is a list of open orders and each order is represented as a list holding the price and the amount.

func (*Bitstamp) GetRecentTrades

func (b *Bitstamp) GetRecentTrades(p currency.Pair, assetType asset.Item) ([]trade.Data, error)

GetRecentTrades returns the most recent trades for a currency and asset

func (*Bitstamp) GetTicker

func (b *Bitstamp) GetTicker(currency string, hourly bool) (*Ticker, error)

GetTicker returns ticker information

func (*Bitstamp) GetTradingPairs

func (b *Bitstamp) GetTradingPairs() ([]TradingPair, error)

GetTradingPairs returns a list of trading pairs which Bitstamp currently supports

func (*Bitstamp) GetTransactions

func (b *Bitstamp) GetTransactions(currencyPair, timePeriod string) ([]Transactions, error)

GetTransactions returns transaction information value paramater ["time"] = "minute", "hour", "day" will collate your response into time intervals.

func (*Bitstamp) GetUnconfirmedBitcoinDeposits

func (b *Bitstamp) GetUnconfirmedBitcoinDeposits() ([]UnconfirmedBTCTransactions, error)

GetUnconfirmedBitcoinDeposits returns unconfirmed transactions

func (*Bitstamp) GetUserTransactions

func (b *Bitstamp) GetUserTransactions(currencyPair string) ([]UserTransactions, error)

GetUserTransactions returns an array of transactions

func (*Bitstamp) GetWithdrawalRequests

func (b *Bitstamp) GetWithdrawalRequests(timedelta int64) ([]WithdrawalRequests, error)

GetWithdrawalRequests returns withdrawal requests for the account timedelta - positive integer with max value 50000000 which returns requests from number of seconds ago to now.

func (*Bitstamp) GetWithdrawalsHistory

func (b *Bitstamp) GetWithdrawalsHistory(c currency.Code) (resp []exchange.WithdrawalHistory, err error)

GetWithdrawalsHistory returns previous withdrawals data

func (*Bitstamp) ModifyOrder

func (b *Bitstamp) ModifyOrder(action *order.Modify) (string, error)

ModifyOrder will allow of changing orderbook placement and limit to market conversion

func (*Bitstamp) OHLC

func (b *Bitstamp) OHLC(currency string, start, end time.Time, step, limit string) (resp OHLCResponse, err error)

OHLC returns OHLCV data for step (interval)

func (*Bitstamp) OpenBankWithdrawal

func (b *Bitstamp) OpenBankWithdrawal(amount float64, currency,
	name, iban, bic, address, postalCode, city, country,
	comment, withdrawalType string) (FIATWithdrawalResponse, error)

OpenBankWithdrawal Opens a bank withdrawal request (SEPA or international)

func (*Bitstamp) OpenInternationalBankWithdrawal

func (b *Bitstamp) OpenInternationalBankWithdrawal(amount float64, currency,
	name, iban, bic, address, postalCode, city, country,
	bankName, bankAddress, bankPostCode, bankCity, bankCountry, internationalCurrency,
	comment, withdrawalType string) (FIATWithdrawalResponse, error)

OpenInternationalBankWithdrawal Opens a bank withdrawal request (international)

func (*Bitstamp) PlaceOrder

func (b *Bitstamp) PlaceOrder(currencyPair string, price, amount float64, buy, market bool) (Order, error)

PlaceOrder places an order on the exchange.

func (*Bitstamp) Run

func (b *Bitstamp) Run()

Run implements the Bitstamp wrapper

func (*Bitstamp) SendAuthenticatedHTTPRequest

func (b *Bitstamp) SendAuthenticatedHTTPRequest(ep exchange.URL, path string, v2 bool, values url.Values, result interface{}) error

SendAuthenticatedHTTPRequest sends an authenticated request

func (*Bitstamp) SendHTTPRequest

func (b *Bitstamp) SendHTTPRequest(ep exchange.URL, path string, result interface{}) error

SendHTTPRequest sends an unauthenticated HTTP request

func (*Bitstamp) SetDefaults

func (b *Bitstamp) SetDefaults()

SetDefaults sets default for Bitstamp

func (*Bitstamp) Setup

func (b *Bitstamp) Setup(exch *config.ExchangeConfig) error

Setup sets configuration values to bitstamp

func (*Bitstamp) Start

func (b *Bitstamp) Start(wg *sync.WaitGroup)

Start starts the Bitstamp go routine

func (*Bitstamp) SubmitOrder

func (b *Bitstamp) SubmitOrder(s *order.Submit) (order.SubmitResponse, error)

SubmitOrder submits a new order

func (*Bitstamp) Subscribe

func (b *Bitstamp) Subscribe(channelsToSubscribe []stream.ChannelSubscription) error

Subscribe sends a websocket message to receive data from the channel

func (*Bitstamp) TransferAccountBalance

func (b *Bitstamp) TransferAccountBalance(amount float64, currency, subAccount string, toMain bool) error

TransferAccountBalance transfers funds from either a main or sub account amount - to transfers currency - which currency to transfer subaccount - name of account toMain - bool either to or from account

func (*Bitstamp) Unsubscribe

func (b *Bitstamp) Unsubscribe(channelsToUnsubscribe []stream.ChannelSubscription) error

Unsubscribe sends a websocket message to stop receiving data from the channel

func (*Bitstamp) UpdateAccountInfo

func (b *Bitstamp) UpdateAccountInfo(assetType asset.Item) (account.Holdings, error)

UpdateAccountInfo retrieves balances for all enabled currencies for the Bitstamp exchange

func (*Bitstamp) UpdateOrderbook

func (b *Bitstamp) UpdateOrderbook(p currency.Pair, assetType asset.Item) (*orderbook.Base, error)

UpdateOrderbook updates and returns the orderbook for a currency pair

func (*Bitstamp) UpdateTicker

func (b *Bitstamp) UpdateTicker(p currency.Pair, assetType asset.Item) (*ticker.Price, error)

UpdateTicker updates and returns the ticker for a currency pair

func (*Bitstamp) UpdateTradablePairs

func (b *Bitstamp) UpdateTradablePairs(forceUpdate bool) error

UpdateTradablePairs updates the exchanges available pairs and stores them in the exchanges config

func (*Bitstamp) ValidateCredentials

func (b *Bitstamp) ValidateCredentials(assetType asset.Item) error

ValidateCredentials validates current credentials used for wrapper functionality

func (*Bitstamp) WithdrawCryptocurrencyFunds

func (b *Bitstamp) WithdrawCryptocurrencyFunds(withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)

WithdrawCryptocurrencyFunds returns a withdrawal ID when a withdrawal is submitted

func (*Bitstamp) WithdrawFiatFunds

func (b *Bitstamp) WithdrawFiatFunds(withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)

WithdrawFiatFunds returns a withdrawal ID when a withdrawal is submitted

func (*Bitstamp) WithdrawFiatFundsToInternationalBank

func (b *Bitstamp) WithdrawFiatFundsToInternationalBank(withdrawRequest *withdraw.Request) (*withdraw.ExchangeResponse, error)

WithdrawFiatFundsToInternationalBank returns a withdrawal ID when a withdrawal is submitted

func (*Bitstamp) WsConnect

func (b *Bitstamp) WsConnect() error

WsConnect connects to a websocket feed

type CancelOrder

type CancelOrder struct {
	Price  float64 `json:"price"`
	Amount float64 `json:"amount"`
	Type   int     `json:"type"`
	ID     int64   `json:"id"`
}

CancelOrder holds the order cancellation info

type CaptureError

type CaptureError struct {
	Status interface{} `json:"status"`
	Reason interface{} `json:"reason"`
	Code   interface{} `json:"code"`
	Error  interface{} `json:"error"`
}

CaptureError is used to capture unmarshalled errors

type CryptoWithdrawalResponse

type CryptoWithdrawalResponse struct {
	ID    string              `json:"id"`
	Error map[string][]string `json:"error"`
}

CryptoWithdrawalResponse response from a crypto withdrawal request

type EURUSDConversionRate

type EURUSDConversionRate struct {
	Buy  float64 `json:"buy,string"`
	Sell float64 `json:"sell,string"`
}

EURUSDConversionRate holds buy sell conversion rate information

type FIATWithdrawalResponse

type FIATWithdrawalResponse struct {
	ID     string              `json:"id"`
	Status string              `json:"status"`
	Reason map[string][]string `json:"reason"`
}

FIATWithdrawalResponse response from a fiat withdrawal request

type OHLCResponse

type OHLCResponse struct {
	Data struct {
		Pair  string `json:"pair"`
		OHLCV []struct {
			Timestamp int64   `json:"timestamp,string"`
			Open      float64 `json:"open,string"`
			High      float64 `json:"high,string"`
			Low       float64 `json:"low,string"`
			Close     float64 `json:"close,string"`
			Volume    float64 `json:"volume,string"`
		} `json:"ohlc"`
	} `json:"data"`
}

OHLCResponse holds returned candle data

type Order

type Order struct {
	ID       int64   `json:"id,string"`
	DateTime string  `json:"datetime"`
	Type     int     `json:"type,string"`
	Price    float64 `json:"price,string"`
	Amount   float64 `json:"amount,string"`
	Currency string  `json:"currency_pair"`
}

Order holds current open order data

type OrderStatus

type OrderStatus struct {
	Price        float64 `json:"price,string"`
	Amount       float64 `json:"amount,string"`
	Type         int     `json:"type"`
	ID           int64   `json:"id,string"`
	DateTime     string  `json:"datetime"`
	Status       string
	Transactions []struct {
		TradeID int64   `json:"tid"`
		USD     float64 `json:"usd,string"`
		Price   float64 `json:"price,string"`
		Fee     float64 `json:"fee,string"`
		BTC     float64 `json:"btc,string"`
	}
}

OrderStatus holds order status information

type Orderbook

type Orderbook struct {
	Timestamp int64 `json:"timestamp,string"`
	Bids      []OrderbookBase
	Asks      []OrderbookBase
}

Orderbook holds orderbook information

type OrderbookBase

type OrderbookBase struct {
	Price  float64
	Amount float64
}

OrderbookBase holds singular price information

type Ticker

type Ticker struct {
	Last      float64 `json:"last,string"`
	High      float64 `json:"high,string"`
	Low       float64 `json:"low,string"`
	Vwap      float64 `json:"vwap,string"`
	Volume    float64 `json:"volume,string"`
	Bid       float64 `json:"bid,string"`
	Ask       float64 `json:"ask,string"`
	Timestamp int64   `json:"timestamp,string"`
	Open      float64 `json:"open,string"`
}

Ticker holds ticker information

type TradingPair

type TradingPair struct {
	Name            string `json:"name"`
	URLSymbol       string `json:"url_symbol"`
	BaseDecimals    int    `json:"base_decimals"`
	CounterDecimals int    `json:"counter_decimals"`
	MinimumOrder    string `json:"minimum_order"`
	Trading         string `json:"trading"`
	Description     string `json:"description"`
}

TradingPair holds trading pair information

type Transactions

type Transactions struct {
	Date    int64   `json:"date,string"`
	TradeID int64   `json:"tid,string"`
	Price   float64 `json:"price,string"`
	Type    int     `json:"type,string"`
	Amount  float64 `json:"amount,string"`
}

Transactions holds transaction data

type UnconfirmedBTCTransactions

type UnconfirmedBTCTransactions struct {
	Amount        float64 `json:"amount,string"`
	Address       string  `json:"address"`
	Confirmations int     `json:"confirmations"`
}

UnconfirmedBTCTransactions holds address information about unconfirmed transactions

type UserTransactions

type UserTransactions struct {
	Date          string  `json:"datetime"`
	TransactionID int64   `json:"id"`
	Type          int     `json:"type,string"`
	USD           float64 `json:"usd"`
	EUR           float64 `json:"eur"`
	BTC           float64 `json:"btc"`
	XRP           float64 `json:"xrp"`
	BTCUSD        float64 `json:"btc_usd"`
	Fee           float64 `json:"fee,string"`
	OrderID       int64   `json:"order_id"`
}

UserTransactions holds user transaction information

type WithdrawalRequests

type WithdrawalRequests struct {
	OrderID       int64   `json:"id"`
	Date          string  `json:"datetime"`
	Type          int     `json:"type"`
	Amount        float64 `json:"amount,string"`
	Status        int     `json:"status"`
	Data          interface{}
	Address       string `json:"address"`        // Bitcoin withdrawals only
	TransactionID string `json:"transaction_id"` // Bitcoin withdrawals only
}

WithdrawalRequests holds request information on withdrawals

Jump to

Keyboard shortcuts

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