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 🙏

Dependencies (7)

Dev Dependencies (0)

    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