Socket
Socket
Sign inDemoInstall

joyso

Package Overview
Dependencies
98
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    joyso

JOYSO API client library for trading.


Version published
Weekly downloads
11
increased by1000%
Maintainers
1
Install size
23.4 MB
Created
Weekly downloads
 

Changelog

Source

v0.4.1 / 2018-11-07

Added

  • support advanceable toggle.

Readme

Source

JOYSO

JOYSO API client library for trading.

Notice

v0.3.0 has breaking changes. Please see CHANGELOG v0.3.0

Installation

You can use this command to install:

npm install joyso

Usage

Setup and connect to JOYSO

const Joyso = require('joyso');

async function start() {
  const joyso = new Joyso({
    // your private key
    key: '0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef'
  });

  await joyso.connect();
}

subscribeOrderBook(pair, callback)

Subscribe order book, notify if change.

const subscription = joyso.subscribeOrderBook('JOY_ETH', orderBook => {
  console.log(JSON.stringify(orderBook));
});

Result:

{
  "buy":[
    {
      "price":0.000123456,
      "amount":"8.5"
    },
    {
      "price":0.000123455,
      "amount":"98.5"
    }
  ],
  "sell":[
    {
      "price":0.00012346,
      "amount":"100"
    },
    {
      "price":0.00012347,
      "amount":"500"
    }
  ]
}
  • amount is BigNumber object.

subscribeTrades(pair, callback)

Subscribe market trades, notify if change, return last 100 records.

const subscription = joyso.subscribeTrades('JOY_ETH', trades => {
  console.log(JSON.stringify(trades.slice(0, 2)));
});

Result

[
  {
    "id":317,
    "side":"sell",
    "price":0.000123456,
    "amount":"2",
    "pair":"JOY_ETH"
  },
  {
    "id":315,
    "side":"buy",
    "price":0.00012347,
    "amount":"1",
    "pair":"JOY_ETH"
  }
]
  • amount is BigNumber object.

subscribeBalances(callback)

Subscribe balances, notify if change.

const subscription = joyso.subscribeBalances(balances => {
  console.log(JSON.stringify(balances));
});

Result

{
  "JOY":{
    "inOrder":"0",
    "available":"4.5"
  },
  "ETH":{
    "inOrder":"0.001447757819",
    "available":"0.097815997145"
  }
}
  • inOrder and available are BigNumber objects.

subscribeOrders(callback)

Subscribe open orders, notify if change.

const subscription = joyso.subscribeOrders(orders => {
  console.log(JSON.stringify(orders));
});

Result

[
  {
    "id":353,
    "status":"active",
    "side":"buy",
    "price":0.000123481,
    "amount":"1",
    "fill":"0",
    "pair":"T00_ETH"
  },
  {
    "id":326,
    "status":"partial",
    "side":"buy",
    "price":0.000123456,
    "amount":"12",
    "fill":"3.5",
    "pair":"JOY_ETH"
  }
]
  • amount and fill are BigNumber objects.
  • status could be active or partial

subscribeMyTrades(callback)

Subscribe my trades, notify if change, return last 100 records.

const subscription = joyso.subscribeMyTrades(trades => {
  console.log(JSON.stringify(trades.slice(0, 2)));
});

Result

[
  {
    "id":317,
    "status":"done",
    "txHash":"0xcf0aeb815200951559a38650a84f8eefa46411224e5e4076d6313ab47c7f9bb5",
    "side":"sell",
    "price":0.000123456,
    "amount":"2",
    "pair":"JOY_ETH",
    "fee":"ETH",
    "gasFee":"0",
    "txFee":"2.46912e-7"
  },
  {
    "id":316,
    "status":"done",
    "txHash":"0x582cc7a84e8aa7e28e44b11e22f24169a34776915ebbc95a88fa0e77c44faf4c",
    "side":"sell",
    "price":0.00012347,
    "amount":"1",
    "pair":"JOY_ETH",
    "fee":"ETH",
    "gasFee":"0.000105",
    "txFee":"2.4694e-7"
  }
]
  • amount, gasFee and txFee are BigNumber objects.

subscribeFunds(callback)

Subscribe funds, notify if change, return last 100 records.

const subscription = joyso.subscribeFunds(funds => {
  console.log(JSON.stringify(funds));
});

Result

[
  {
    "id":192,
    "status":"done",
    "txHash":"0x4dbc49ae4735b1c230244d41377cf6aeccd70c5181df048e3be8306af8a487e6",
    "type":"withdraw",
    "amount":"0.0099",
    "token":"ETH",
    "fee":"ETH",
    "withdrawFee":"0.0001",
    "timestamp":1537434044,
    "blockId":null
  },
  {
    "id":191,
    "status":"done",
    "txHash":"0x8435bf9f69dd908373d50353ebab343b625527cd8ea44532eb01c8b0a5642879",
    "type":"withdraw",
    "amount":"0.001",
    "token":"ETH",
    "fee":"JOY",
    "withdrawFee":"0.809841",
    "timestamp":1537433888,
    "blockId":null
  }
]
  • amount and withdrawFee are BigNumber objects.
  • status could be pending, processing, done or failed
  • type could be deposit, withdraw or transfer

buy({ pair, price, amount, feeByJoy })

Place buying order

try {
  let order = await joyso.buy({
    pair: 'JOY_ETH',
    price: '0.000123481',
    amount: 1,
    feeByJoy: true
  });
  console.log(JSON.stringify(order));
} catch (e) {
  if (e.statusCode === 400) {
    console.log(e.error.error);
  } else {
    console.log(e.message);
  }
}

Options

NameRequiredDescription
pairOPair to trade, format is ${base}_${quote}, eg: JOY_ETH
priceOOrder price, minimum is 0.000000001
amountOQuote amount
feeByJoySpecify how to pay fee. true will pay by JOY. false will pay by quote token(ETH if pair XXX_ETH). Default is false

Result

{
  "id":361,
  "status":"complete",
  "side":"buy",
  "price":0.000123481,
  "amount":"1",
  "fill":"1",
  "pair":"JOY_ETH"
}
  • amount and fill are BigNumber objects.
  • status could be active, partial or complete

sell({ pair, price, amount, feeByJoy })

Place selling order

let order = await joyso.sell({
  pair: 'JOY_ETH',
  price: '0.000123481',
  amount: 100
});

Options and result are same with buy.

trade({ pair, price, amount, feeByJoy, side })

Place order

let order = await joyso.trade({
  side: 'buy',
  pair: 'JOY_ETH',
  price: '0.000123481',
  amount: 100
});

Options and result are same with buy. One extra options

NameRequiredDescription
sideObuy or sell

withdraw({ token, amount, fee })

Withdraw

await joyso.withdraw({
  token: 'ETH',
  amount: 0.01,
  fee: 'eth'
});

Options

NameRequiredDescription
tokenOToken to withdraw
amountOAmount to withdraw
feeOSpecify how to pay fee. eth, joy or token. token can only be used when token is quote token.

getMyTrades({ from, to, quote, base, side, before, limit })

Get my trades

await joyso.getMyTrades({
  quote: 'ETH',
  base: 'JOY',
  side: 'sell',
  from: 1539129600,
  to: 1539216000,
  before: 123,
  limit: 10
});

Options

NameRequiredDescription
quoteQuote token
baseBase token
sideSpecify side. buy, sell or blank. Blank means both.
fromFrom time (included). Unix timestamp
toTo time (excluded). Unix timestamp
beforeOnly return Trade ID before this. (excluded)
limitSpecify size of records to return. Default 100, max 1000

Results are same with subscribeMyTrades.

disconnect()

Disconnect from JOYSO.

subscription.unsubscribe()

Unsubscribe

subscription.unsubscribe();

License

The project is released under the MIT license.

Contact

The project's website is located at https://github.com/Joyso-io/joyso-api

Keywords

FAQs

Last updated on 13 Nov 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc