Giter VIP home page Giter VIP logo

zenfuse.js's Introduction

zenfuse.js logo

Binance Bybit Huobi OKX

Comprehensive crypto trading library

Supported version Version Last Commit Zenfuse Dev Tool

Note Feel free to create any issue or ask about anything in Github Discussions.

This is a crypto trading library connector for Node.js. For trading, analyze, visualize and manage any data from API easily on supported exchanges and more.

Key features:

  • ๐Ÿ—ƒ๏ธ Data fetching: Market price, ticker listing, historical chart and any custom requests
  • ๐Ÿ’ฑ Orders manipulating: Post, cancel and modify exchange orders
  • ๐Ÿ—  Real-time events: Websocket streams
    • Candlesticks streams: Kline streams for charts, even when the exchange doesn't support this (๐Ÿ”ฅ)
    • Current price: Simplified price of market
    • Trades: Actual market trades
    • Account events: Balance changing and new orders posting

Simple Binance example

import { Binance } from 'zenfuse';

// Creating connection instance
const binance = new Binance.spot(options);

// Fetch current BTC price
binance.fetchPrice('BTC/USDT');

// Post order
binance.auth(creds).postOrder(params);

Simple code showcase

import { Huobi, Binance } from 'zenfuse';

const huobi = new Huobi.spot();

// Fetch current BTC/USD price from Huobi exchange
huobi.fetchPrice('BTC/USD').then((price) => {
    console.log('Current BTC/USD price:', price);
});

// Fetch all current listing coins from Huobi
huobi.fetchTickers().then((tickers) => {
    console.log('All Huobi tickers', tickers.join(', '));
});

const binance = new Binance.spot();

// Authenticate instance, so you can use private methods
binance.auth({
    publicKey: '***',
    privateKey: '***',
});

// Create connection instance for account events
const accountDataStream = binance.getAccountDataStream();

// Open websocket connection
await accountDataStream.open();

// Subscribe for order updates on account
accountDataStream.on('orderUpdate', (order) => {
    console.log('Order Update:', order);
});

// Sell 0.0004 ETH for 100 USDT, and we receive order update event above
binance.postOrder({
    symbol: 'ETH/USDT',
    type: 'limit',
    side: 'sell',
    price: 100,
    quantity: 0.0004,
});

// Create connection instance for market data
const marketDataStream = binance.getMarketDataStream();

// Open websocket connection
await marketDataStream.open();

// Subscribe for current BTC price
marketDataStream.subscribeTo({
    channel: 'price',
    symbol: 'BTC/USDT',
});

// After we will handle newPrice events
marketDataStream.on('newPrice', (event) => {
    console.log(`Current ${event.symbol} price`, '->', event.price);
});

See documentation in zenfuse.js.org

zenfuse.js's People

Contributors

deadvitekchpool avatar dependabot[bot] avatar github-actions[bot] avatar izzqz avatar rogwild avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

zenfuse.js's Issues

Mock websockets in integration tests

We need a good solution for mocking ws in integration tests. Currently, all ws tests are e2e only. Would appreciate any help for it,

The perfect solution for me should:

  • Doesn't open any ports or separate process
  • Have easy access to work with mock data. Like nock works for now.
  • I can write my server implementation for any exchange

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.