mirror of
https://github.com/discountry/ritmex-bot.git
synced 2026-09-09 16:28:06 +00:00
120 lines
4.3 KiB
Markdown
120 lines
4.3 KiB
Markdown
- [Bitstamp Private Api](./examples/js/)
|
|
|
|
|
|
```javascript
|
|
|
|
|
|
import ccxt from '../../js/ccxt.js';
|
|
import asTable from 'as-table';
|
|
import ololog from 'ololog'
|
|
import ansicolor from 'ansicolor';
|
|
|
|
const log = ololog.configure({ locate: false })
|
|
|
|
ansicolor.nice
|
|
|
|
;(async () => {
|
|
let apiUrl = 'https://www.bitstamp.net/api';
|
|
|
|
// instantiate the exchange
|
|
let exchange = new ccxt.bitstamp({
|
|
'apiKey': 'APIKEY',
|
|
'secret': 'APISECRET',
|
|
'uid': 'ACCOUNTID',
|
|
'urls': {
|
|
'api': {
|
|
'public': apiUrl,
|
|
'private': apiUrl,
|
|
'v1': apiUrl
|
|
}
|
|
}
|
|
})
|
|
|
|
try {
|
|
// fetch account balance from the exchange
|
|
let balance = await exchange.fetchBalance()
|
|
log('balance'.green, balance.total)
|
|
|
|
// fetch fees
|
|
let singleFee = await exchange.fetchTradingFee('BTC/USD')
|
|
log('fee'.green, 'BTC/USD', singleFee)
|
|
let tradingFees = await exchange.fetchTradingFees()
|
|
log('tradingFees'.green, tradingFees)
|
|
let fundingFees = await exchange.fetchFundingFees()
|
|
log('fundingFees'.green, fundingFees)
|
|
let fees = await exchange.fetchFees()
|
|
log('fees'.green, fees)
|
|
|
|
// my trades
|
|
let myTrades = await exchange.fetchMyTrades('BTC/USD', undefined, 5)
|
|
log('myTrades'.green, asTable(myTrades))
|
|
|
|
// user transactions
|
|
let transactions = await exchange.fetchTransactions()
|
|
log('Transactions'.green, asTable(transactions))
|
|
|
|
// ledger
|
|
let ledger = await exchange.fetchLedger()
|
|
log('Ledger'.green, asTable(ledger))
|
|
|
|
// deposits
|
|
let deposits = await exchange.fetchDeposits()
|
|
log('Deposits'.green, asTable(deposits))
|
|
|
|
// create new limit order
|
|
let newOrder = await exchange.createOrder('BTC/USD', 'limit', 'buy', 0.01, 8000)
|
|
console.log('New limit order'.green, newOrder);
|
|
|
|
// open orders
|
|
let openOrders = await exchange.fetchOpenOrders()
|
|
log('Open orders'.green, asTable(openOrders))
|
|
|
|
// order data
|
|
let orderData = await exchange.fetchOrder(newOrder.id)
|
|
console.log('Order data'.green, orderData);
|
|
|
|
// cancel order
|
|
let canceledOrder = await exchange.cancelOrder(newOrder.id)
|
|
console.log('Canceled order'.green, canceledOrder);
|
|
|
|
// create market order
|
|
let marketOrder = await exchange.createOrder('BTC/USD', 'market', 'buy', 0.01)
|
|
console.log('New market order'.green, marketOrder);
|
|
|
|
// open orders
|
|
let secondOpenOrders = await exchange.fetchOpenOrders()
|
|
log('Open orders'.green, asTable(secondOpenOrders))
|
|
|
|
// deposit address
|
|
let paxDeposit = await exchange.fetchDepositAddress("XLM")
|
|
log('Pax deposit address'.green, paxDeposit)
|
|
|
|
// withdrawal
|
|
let ethWithdraw = await exchange.withdraw("ETH", 0.01, "0x6c28cb9dd2f4e3bb6f56c822bc306f3b8a3e7c08")
|
|
log('ETH withdrawal'.green, ethWithdraw)
|
|
|
|
// withdrawals
|
|
let withdrawals = await exchange.fetchWithdrawals()
|
|
log('Withdrawals'.green, asTable(withdrawals))
|
|
|
|
} catch (e) {
|
|
|
|
if (e instanceof ccxt.DDoSProtection || e.message.includes('ECONNRESET')) {
|
|
log.bright.yellow('[DDoS Protection] ' + e.message)
|
|
} else if (e instanceof ccxt.RequestTimeout) {
|
|
log.bright.yellow('[Request Timeout] ' + e.message)
|
|
} else if (e instanceof ccxt.AuthenticationError) {
|
|
log.bright.yellow('[Authentication Error] ' + e.message)
|
|
} else if (e instanceof ccxt.ExchangeNotAvailable) {
|
|
log.bright.yellow('[Exchange Not Available Error] ' + e.message)
|
|
} else if (e instanceof ccxt.ExchangeError) {
|
|
log.bright.yellow('[Exchange Error] ' + e.message)
|
|
} else if (e instanceof ccxt.NetworkError) {
|
|
log.bright.yellow('[Network Error] ' + e.message)
|
|
} else {
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
})()
|
|
``` |