npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ftx-api-rest

v0.0.7

Published

simple rest API wrapper for FTX

Downloads

236

Readme

ftx-api-rest

npm install ftx-api-rest

API wrapper for the FTX REST API. Please refer to their documentation for all calls explained. Check out sample.js for lib usage.

This is a low level wrapper with zero dependencies focussed on speed:

  • Disables Nagle's algorithm
  • No complex code
  • No third party libraries
  • Allows you to pre compile your message (see below under low latency usage)\
  • Supports keep-alive

This is a fork based of my bitmex library: https://github.com/askmike/bitmex-simple-rest

Used by my low(ish) latency arb system that's running in production. I don't think you can go much faster in nodejs without rewriting Node.js' core http library (if you think you can, feel free to open an issue or propose a PR).

Usage

See sample.js.

Low latency usage

Sending an API request to FTX requires hashing the payload with your API key. In nodejs, this process can easily take 0.15 millisecond (on the non compute optimized AWS boxes I tested this on - because yes, you should run in AWS ap-northeast-1 if you want to trade fast on FTX). You can test the speed of creating API requests yourself on your system by running benchmark.js, preferably with real keys and and a request similar to what your system might send.

This library allows you to prepare an API request draft before hand (doing all the heavy work). The microsecond you realize you actually want to send it you simply send the draft you created previously:

// create the draft before hand
const draft = ftx.createDraft({
  method: 'GET',
  path: '/account'
});

// later when you actually want to send
const data = await ftx.requestDraft(draft);

Note that this only works in scenarios where you can estimate what will happen or which scenarios might happen: You can create drafts for all of them and only end up sending one later.

TODO

  • Figure out if we can reliably skip the end event of the packetstream (see requestDraft comment).
  • String compare for common errors (overload), skipping JSON.parse.

Final

If this library is helping you trade better on FTX feel free to use my ref link.