coinswitch
Browser and Node.js Coinswitch.co API client
Easily exchange assets with few lines of code.
Install
npm install --save coinswitch
Usage
const Coinswitch = require('coinswitch')
;(async () => {
const cs = new Coinswitch({
apiKey: '<YOUR API KEY>',
userIP: '1.1.1.1'
})
const coinsList = await cs.getCoins()
console.log(coinsList)
})()
Make an exchange order
const cs = new Coinswitch({
apiKey: '<YOUR API KEY>',
userIP: '1.1.1.1'
})
const {
offerReferenceId,
depositCoinAmount,
destinationCoinAmount
} = await cs.generateOffer('btc', 'ltc', 0.03)
const {
orderId,
exchangeAddress: { address }
} = await cs.makeOrder({
depositCoin: 'btc',
destinationCoin: 'ltc',
depositCoinAmount,
offerReferenceId,
userReferenceId: 'test-user',
destinationAddress: { address: 'LXdmzmqSALB1DbJyA43b6prQCXKn1J6SdV' },
refundAddress: { address: '16iL2ZM4CfeiH3CrtrNjGVgR6ja2p5AFec' }
})
console.log(`
=========
Order ID: ${orderId}
Deposit: BTC (${depositCoinAmount})
Receive: LTC (${destinationCoinAmount})
Exchange Address: ${address}
=========
`)
NB: Addresses must be specified as a JS Object like {address: "...", tag: "..."}
Methods
Get your api-key from the coinswitch API page.
new CoinSwitch(<Object>)
: The class constructor requires an Object like { apiKey: "...", userIP: "..."}
.
Method Name | Return | Description |
---|
.version() | String | Return API version being used |
.getCoins() | Array | Get list of supported coins as obj {symbol, name, isActive} |
.isCoinActive(<symbol>) | Boolean | Given a symbol (ex. btc ) return true /false wether the coin is active or not |
.getDestinationCoins(<symbol>) | Array | Return list of available destination coins for the one provided |
.getDepositCoins(<symbol>) | Array | Return list of depositable coins for the one provided |
.getExchangeLimit(<symbol>, <symbol>) | Object | Get exchange limits for a depositCoin and destinationCoin |
.generateOffer(<symbol>, <symbol>, <number>) | Object | Generate an exchange offer for a coin pair |
.makeOrder(<object>*) | Object | Creates a new tx for an offer. It will return transaction object with an order_id field to track the tx status. |
.getOrder(<string>) | Object | Get status of the given Order ID string. |
*
makeOrder input object sample:
{
depositCoin: 'btc',
destinationCoin: 'ltc',
depositCoinAmount: 0.03,
offerReferenceId: "...",
userReferenceId: 'test-user',
destinationAddress: { address: 'LXdmzmqSALB1DbJyA43b6prQCXKn1J6SdV' },
refundAddress: { address: '16iL2ZM4CfeiH3CrtrNjGVgR6ja2p5AFec' }
}
Example
For more examples look at the unit test/
folder.
Test
npm test
Debug
To enable debug set the env var DEBUG=coinswitch
License
MIT