botiq

0.1.29 • Public • Published

BOTIQ

High-level node.js library useful for creating cryptocurrency bots and apps for the Binance CEX and Ethereum-compatible blockchains. Features automatic fiat conversions where available.

Binance Limit Buy Example

const connection = botiq.binance.createConnection({
    apiKey: 'PASTE_API_KEY_HERE',  
    apiSecret: 'PASTE_API_SECRET_HERE'
});

const ethTracker = await connection.createTracker({
    tokenSymbol: 'ETH', 
    comparatorSymbol: 'USDT'
});

await botiq.modules.awaitPriceMovement.awaitPriceFall({
    tracker: ethTracker,
    triggerPriceString: '10%'
});

const binanceBuyResult = await connection.buyTokensWithExact({
    tokenSymbol: ethTracker.token.symbol, 
    comparatorSymbol: ethTracker.comparator.symbol, 
    exactComparatorQuantity: '50%', //percentage of balance
});
console.log(binanceBuyResult);

Ethereum Limit Buy Example

const wallet = botiq.ethers.createWalletFromPrivateKey({
    privateKey: 'PASTE_PRIVATE_KEY_HERE'
}) 

const ethereumEndpoint = await botiq.ethers.createJsonRpcEndpoint({
    accessURL: 'PASTE_ACCESS_URL_HERE',
    rateLimitPerSecond: 2,
});

const tokenTracker = await ethereumEndpoint.createTracker({
    exchange: botiq.ethers.chains.ethereum.exchanges.uniswapV2,
    tokenAddress: 'PASTE_TOKEN_ADDRESS_HERE',
});

await botiq.modules.awaitPriceMovement.awaitPriceFall({
    tracker: tokenTracker,
    triggerPriceString: '10%',
});

const buyResult = await botiq.ethers.UniswapV2.buyTokensWithExact({
    tracker: tokenTracker,
    privateKey: wallet.privateKey, 
    exactComparatorQuantity: '-0.01', //use 100% of balance minus 0.01 
    slippagePercent: '1%',
});
console.log(buyResult);

See ./examples/ for more.

Notes

  • Has NOT undergone extensive testing.
  • The ethers backend will only work for factories and routers that abide by uniswap v2.
  • An informal TODO is in index.js. If you want to add to it, please make use of github's issue tracker.

Basic code structure

ethers.js and binance.js handle the specifics of their tokens, while common.js is the place to look for the actual tracker API. It should be quite easy to add CEXs if you make judicious use of common.massageCexMarketSwapData.

Supporting the Project

I am neither financially comfortable nor hungry. Donations support my work and are always greatly appreciated!

🙏 0xeF6102cf13Bf075BD5A61BBa1ec7E509899f7152 🙏

Package Sidebar

Install

npm i botiq

Weekly Downloads

1

Version

0.1.29

License

GPLv3

Unpacked Size

291 kB

Total Files

21

Last publish

Collaborators

  • neauangle