foxbit-api
Version:
Package NPM for Foxbit API.
533 lines (408 loc) • 17.7 kB
Markdown
[](https://www.npmjs.com/package/foxbit-api)
[](https://david-dm.org/MiguelMedeiros/foxbit-api#info=dependencies)
[](https://github.com/MiguelMedeiros/foxbit-api)
[](https://snyk.io/test/github/MiguelMedeiros/foxbit-api)
Pacote NPM de acesso via WebSocket para a API da exchange brasileira Foxbit.
Autor: **Miguel Medeiros** [[Site]](https://www.miguelmedeiros.com.br) [[Youtube]](https://www.youtube.com/user/miguelmedeiros) [[Twitter]](https://twitter.com/_miguelmedeiros)<br />
Exchange: [[Foxbit]](https://foxbit.com.br/)<br />
Documentação da API: [[Site da Foxbit]](https://foxbit.com.br/api/docs) [[PDF da Alphapoint]](https://github.com/MiguelMedeiros/foxbit-api/blob/master/api-doc-alphapoint.pdf)
Gostou do trabalho? Então me pague um café!<br/>
Carteira BTC: **1NM76h5SvdhTdmS8dksGwWpHNbnVngWczR**<br/><br/>
---
Esse pacote foi desenvolvido para uso próprio.<br/>
Portanto, não é um pacote oficial da Foxbit.<br/>
**USE POR SUA CONTA E RISCO!**
- [Instalação](
- [Configuração](
- [Funções](
- [Funções Públicas](
- [Connect](
- [LogOut](
- [GetInstrument](
- [GetInstruments](
- [GetOpenOrders](
- [GetProduct](
- [GetProducts](
- [GetL2Snapshot](
- [GetTickerHistory](
- [SubscribeTicker](
- [SubscribeTrades](
- [UnsubscribeTicker](
- [UnsubscribeTrades](
- [Funções Privadas](
- [GetUserConfig](
- [GetUserInfo](
- [GetUserPermissions](
- [GetOrdersHistory](
- [SendOrder](
- [CancelAllOrders](
- [CancelOrder](
- [GetAccountInfo](
- [GetAccountPositions](
- [GetAccountTrades](
- [GetAccountTransactions](
- [Contribua com Código](
- [License](
Você precisa importar o pacote para seu projeto:
```bash
npm i foxbit-api --save
```
```javascript
// importar foxbit api package
const foxbit = require("foxbit-api");
```
Segue a lista de funções para se conectar com o WebSocket da API da Foxbit.
Não é necessária de credenciais para acessar os métodos públicos.
Conecta na API via WebSocket.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html#webauthenticateuser)
```javascript
// Variáveis das suas credenciais
// Necessárias somente para métodos privados.
let user = "";
let password = "";
// Dispara chamada para conectar com o WebSocket.
foxbit.Connect(user, password);
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
console.log(res);
});
```
Finaliza conexão com o WebSocket.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#logout)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada LogOut.
foxbit.LogOut();
});
// Evento disparado quando o LogOut foi efetuado.
foxbit.eventEmitter.on("LogOut", res => {
console.log(res);
});
```
Retorna as informações par de moedas por ID.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getinstrument)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada GetInstrument.
foxbit.GetInstrument();
});
// Evento disparado quando o GetInstrument foi efetuado.
foxbit.eventEmitter.on("GetInstrument", res => {
console.log(res);
});
```
Retorna um array de pares de moedas cadastrados.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getinstruments)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada GetInstruments.
foxbit.GetInstruments();
});
// Evento disparado quando o GetInstruments foi efetuado.
foxbit.eventEmitter.on("GetInstruments", res => {
console.log(res);
});
```
Retorna as ordens abertas no livro de ordens.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getopenorders)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada GetProducts.
foxbit.GetProducts();
});
// Evento disparado quando o GetProducts foi efetuado.
foxbit.eventEmitter.on("GetProducts", res => {
console.log(res);
});
```
Retorna a moeda cadastrado por ID.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getproduct)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada GetProduct.
foxbit.GetProduct(1);
});
// Evento disparado quando o GetProduct foi efetuado.
foxbit.eventEmitter.on("GetProduct", res => {
console.log(res);
});
```
Retorna as moedas cadastradas.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getproducts)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada GetProducts.
foxbit.GetProducts();
});
// Evento disparado quando o GetProducts foi efetuado.
foxbit.eventEmitter.on("GetProducts", res => {
console.log(res);
});
```
Retorna um spanshot do Orderbook.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getl2snapshot)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada GetL2Snapshot.
foxbit.GetL2Snapshot(100);
});
// Evento disparado quando o GetL2Snapshot foi efetuado.
foxbit.eventEmitter.on("GetL2Snapshot", res => {
console.log(res);
});
```
Retorna um histórico de Tickers.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html#gettickerhistory)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
//Variável de parametrização
let lastMinutes = 60;
// Dispara chamada GetTickerHistory.
foxbit.GetTickerHistory(lastMinutes);
});
// Evento disparado quando o GetTickerHistory foi efetuado.
foxbit.eventEmitter.on("GetTickerHistory", res => {
console.log(res);
});
```
Se inscreve para receber Tickers atualizados.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#subscribeticker)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada SubscribeTicker.
foxbit.SubscribeTicker(1);
});
// Evento disparado quando o SubscribeTicker foi efetuado.
foxbit.eventEmitter.on("SubscribeTicker", res => {
console.log(res);
});
// Evento disparado quando o Ticker é atualizado.
foxbit.eventEmitter.on("TickerDataUpdateEvent", res => {
console.log(res);
});
```
Se inscreve para receber Trades atualizadas.
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada SubscribeTrades.
foxbit.SubscribeTrades();
});
// Evento disparado quando o SubscribeTrades foi efetuado.
foxbit.eventEmitter.on("SubscribeTrades", res => {
console.log(res);
});
// Evento disparado quando alguma Trade foi efetuada.
foxbit.eventEmitter.on("TradeDataUpdateEvent", res => {
console.log(res);
});
```
Se desinscreve do Ticker.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#unsubscribeticker)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada UnsubscribeTicker.
foxbit.UnsubscribeTicker();
});
// Evento disparado quando o UnsubscribeTicker foi efetuado.
foxbit.eventEmitter.on("UnsubscribeTicker", res => {
console.log(res);
});
```
Se desinscreve das Trades.
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada UnsubscribeTrades.
foxbit.UnsubscribeTrades();
});
// Evento disparado quando o UnsubscribeTrades foi efetuado.
foxbit.eventEmitter.on("UnsubscribeTrades", res => {
console.log(res);
});
```
Ao se conectar é necessário usar credenciais (usuário e senha) para acessar os métodos privados.
#### GetUserInfo
Retorna os dados das informações de Usuário.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getuserinfo)
```javascript
// Evento disparado quando o WebSocket foi conectado.
foxbit.eventEmitter.on("Connected", res => {
// Dispara chamada GetUserInfo.
foxbit.GetUserInfo();
});
// Evento disparado quando o GetUserInfo foi efetuado.
foxbit.eventEmitter.on("GetUserInfo", res => {
console.log(res);
});
```
Retorna configurações definidas pelo usuário.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html#getuserconfig)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Dispara chamada GetUserConfig.
foxbit.GetUserConfig();
});
// Evento disparado quando o GetUserConfig foi efetuado.
foxbit.eventEmitter.on("GetUserConfig", res => {
console.log(res);
});
```
Retorna permissões do usuário solicitante.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getuserpermissions)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Dispara chamada GetUserPermissions.
foxbit.GetUserPermissions();
});
// Evento disparado quando o GetUserPermissions foi efetuado.
foxbit.eventEmitter.on("GetUserPermissions", res => {
console.log(res);
});
```
Retorna um array com o histórico de ordens.
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Dispara chamada GetOrdersHistory.
foxbit.GetOrdersHistory();
});
// Evento disparado quando o GetOrdersHistory foi efetuado.
foxbit.eventEmitter.on("GetOrdersHistory", res => {
console.log(res);
});
```
Envia Ordem de Compra/Venda.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#sendorder)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Variáveis de parametrização
let Side = "Sell"; // Buy, Sell
// Market, Limit, StopMarket, StopLimit, TralingStopMarket, TrailingStopLimit, BlockTrade
let OrderType = "Limit";
let Quantity = 0.0001; // BTC
let Price = 40000; // BRL
// Dispara chamada SendOrder.
foxbit.SendOrder(Side, OrderType, Quantity, Price);
});
// Evento disparado quando o SendOrder foi efetuado.
foxbit.eventEmitter.on("SendOrder", res => {
console.log(res);
});
```
Cancela todas as ordens abertas.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#cancelallorders)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Dispara chamada CancelAllOrders.
foxbit.CancelAllOrders();
});
// Evento disparado quando o CancelAllOrders foi efetuado.
foxbit.eventEmitter.on("CancelAllOrders", res => {
console.log(res);
});
```
Cancela ordem que ainda não foi executada.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#cancelorder)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Variáveis de Parametrização
let ClientOrderId = 11111;
let orderId = 9999;
// Dispara chamada CancelOrder.
foxbit.CancelOrder(ClientOrderId, orderId);
});
// Evento disparado quando o CancelOrder foi efetuado.
foxbit.eventEmitter.on("CancelOrder", res => {
console.log(res);
});
```
Retorna informação sobre a conta do usuário logado.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getaccountinfo)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Dispara chamada CancelOrder.
foxbit.GetAccountInfo();
});
// Evento disparado quando o GetAccountInfo foi efetuado.
foxbit.eventEmitter.on("GetAccountInfo", res => {
console.log(res);
});
```
Retorna um array com o balanço do usuário.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getaccountpositions)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Dispara chamada GetAccountPositions.
foxbit.GetAccountPositions();
});
// Evento disparado quando o GetAccountPositions foi efetuado.
foxbit.eventEmitter.on("GetAccountPositions", res => {
console.log(res);
});
```
Retorna um array com o histórico do ordens executadas do usuário.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getaccounttrades)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Dispara chamada GetAccountTrades.
foxbit.GetAccountTrades();
});
// Evento disparado quando o GetAccountTrades foi efetuado.
foxbit.eventEmitter.on("GetAccountTrades", res => {
console.log(res);
});
```
Retorna um array com o histórico de transações abertas do usuário.<br/>[Link Documentação](https://foxbit.com.br/api/docs/websocket_intro.html?highlight=getopenorders#getaccounttransactions)
```javascript
// Evento disparado quando o WebSocket foi conectado
// e recebeu as informações do usuário.
foxbit.eventEmitter.on("Ready", res => {
// Dispara chamada GetAccountTransactions.
foxbit.GetAccountTransactions();
});
// Evento disparado quando o GetAccountTransactions foi efetuado.
foxbit.eventEmitter.on("GetAccountTransactions", res => {
console.log(res);
});
```
Ainda faltam algumas chamadas para completar a API como um todo. Vou adorar se você quiser contribuir para deixar esse pacote mais completo! Sinta-se à vontade em fazer um 'pull request'! Afinal esse repositório é aberto! <3