Back to Ccxt

Bitstamp Private Api

wiki/examples/js/bitstamp-private-api.md

4.5.604.0 KB
Original Source
javascript
// @NO_AUTO_TRANSPILE
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);
        // @ts-expect-error
        let fundingFees = await exchange.fetchFundingFees();
        log('fundingFees'.green, fundingFees);
        // @ts-expect-error
        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;
        }
    }
})();