Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@moeinrahimi/hft-limit-order-book

fasenderos19MIT4.1.0TypeScript support: included

Node.js Lmit Order Book for high-frequency trading (HFT).

exchange, hft, hft-trading, limit-order-book, matching-algorithm, matching-engine, nodejs, orderbook, order-book, typescript, trading

readme

NPM Version Package License NPM Downloads CircleCI Codecov Built with TypeScript

Initially ported from Go orderbook, this order book has been enhanced with new features

hft-limit-order-book

:star: Star me on GitHub — it motivates me a lot!

Ultra-fast matching engine written in TypeScript

Features

  • Standard price-time priority
  • Supports both market and limit orders
  • Supports time in force GTC, FOK and IOC
  • Supports order cancelling
  • Supports order price and/or size updating
  • High performance (above 300k trades per second)

Machine: ASUS ExpertBook, 11th Gen Intel(R) Core(TM) i7-1165G7, 2.80Ghz, 16GB RAM, Node.js v18.4.0.

hft-limit-order-book-benchmark

Installation

Install with npm:

npm install hft-limit-order-book --save

Install with yarn:

yarn add hft-limit-order-book

Usage

To start using order book you need to import OrderBook and create new instance:

import { OrderBook } from 'hft-limit-order-book';

const lob = new OrderBook();

Then you'll be able to use next primary functions:

lob.createOrder(type: 'limit' | 'market', side: 'buy' | 'sell', size: number, price: number, orderID: string)

lob.limit(side: 'buy' | 'sell', orderID: string, size: number, price: number);

lob.market(side: 'buy' | 'sell', size: number);

lob.modify(orderID: string, { side: 'buy' | 'sell', size: number, price: number });

lob.cancel(orderID: string);

About primary functions

To add an order to the order book you can call the general createOrder() function or calling the underlying limit() or market() functions

Create Order

// Create a limit order
createOrder('limit', side: 'buy' | 'sell', size: number, price: number, orderID: string, timeInForce?: 'GTC' | 'FOK' | 'IOC');

// Create a market order
createOrder('market', side: 'buy' | 'sell', size: number);

Create Limit Order

/**
 * Create a limit order
 *
 * @param side - `sell` or `buy`
 * @param orderID - Unique order ID
 * @param size - How much of currency you want to trade in units of base currency
 * @param price - The price at which the order is to be fullfilled, in units of the quote currency
 * @param timeInForce - Time-in-force type supported are: GTC, FOK, IOC
 * @returns An object with the result of the processed order or an error
 */
limit(side: 'buy' | 'sell', orderID: string, size: number, price: number, timeInForce?: 'GTC' | 'FOK' | 'IOC');

For example:

limit("sell", "uniqueID", 55, 100);

asks: 110 -> 5      110 -> 5
      100 -> 1      100 -> 56
--------------  ->  --------------
bids: 90  -> 5      90  -> 5
      80  -> 1      80  -> 1

done    - null
partial - null
limit("buy", "uniqueID", 7, 120);

asks: 110 -> 5
      100 -> 1
--------------  ->  --------------
bids: 90  -> 5      120 -> 1
      80  -> 1      90  -> 5
                    80  -> 1

done    - 2 (or more orders)
partial - uniqueID order
limit("buy", "uniqueID", 3, 120);

asks: 110 -> 5
      100 -> 1      110 -> 3
--------------  ->  --------------
bids: 90  -> 5      90  -> 5
      80  -> 1      80  -> 1

done    - 1 order with 100 price, (may be also few orders with 110 price) + uniqueID order
partial - 1 order with price 110

Create Market Order

/**
 * Create a market order
 *
 * @param side - `sell` or `buy`
 * @param size - How much of currency you want to trade in units of base currency
 * @returns An object with the result of the processed order or an error
 */
market(side: 'buy' | 'sell', size: number);

For example:

market('sell', 6);

asks: 110 -> 5      110 -> 5
      100 -> 1      100 -> 1
--------------  ->  --------------
bids: 90  -> 5      80 -> 1
      80  -> 2

done         - 2 (or more orders)
partial      - 1 order with price 80
quantityLeft - 0
market('buy', 10);

asks: 110 -> 5
      100 -> 1
--------------  ->  --------------
bids: 90  -> 5      90  -> 5
      80  -> 1      80  -> 1

done         - 2 (or more orders)
partial      - null
quantityLeft - 4

Modify an existing order

/**
 * Modify an existing order with given ID. When an order is modified by price or quantity,
 * it will be deemed as a new entry. Under the price-time-priority algorithm, orders are
 * prioritized according to their order price and order time. Hence, the latest orders
 * will be placed at the back of the matching order queue.
 *
 * @param orderID - The ID of the order to be modified
 * @param orderUpdate - An object with the modified size and/or price of an order. The shape of the object is `{size, price}`.
 * @returns An object with the result of the processed order or an error
 */
modify(orderID: string, { size: number, price: number });

For example:

limit("sell", "uniqueID", 55, 100);

asks: 110 -> 5      110 -> 5
      100 -> 1      100 -> 56
--------------  ->  --------------
bids: 90  -> 5      90  -> 5
      80  -> 1      80  -> 1

// Modify the size from 55 to 65
modify("uniqueID", { size: 65 })

asks: 110 -> 5      110 -> 5
      100 -> 56     100 -> 66
--------------  ->  --------------
bids: 90  -> 5      90  -> 5
      80  -> 1      80  -> 1


// Modify the price from 100 to 110
modify("uniqueID", { price: 110 })

asks: 110 -> 5      110 -> 70
      100 -> 66     100 -> 1
--------------  ->  --------------
bids: 90  -> 5      90  -> 5
      80  -> 1      80  -> 1

Cancel Order

/**
 * Remove an existing order with given ID from the order book
 *
 * @param orderID - The ID of the order to be removed
 * @returns The removed order if exists or `undefined`
 */
cancel(orderID: string);

For example:

cancel("myUniqueID-Sell-1-with-100")

asks: 110 -> 5
      100 -> 1      110 -> 5
--------------  ->  --------------
bids: 90  -> 5      90  -> 5
      80  -> 1      80  -> 1

Development

Build

Build production (distribution) files in your dist folder:

npm run build

Testing

To run all the unit-test

npm run test

Coverage

Run testing coverage

npm run test:cov

Benchmarking

Before running benchmark, make sure to have built the source code with npm run build first

npm run bench

Contributing

I would greatly appreciate any contributions to make this project better. Please make sure to follow the below guidelines before getting your hands dirty.

  1. Fork the repository
  2. Create your branch (git checkout -b my-branch)
  3. Commit any changes to your branch
  4. Push your changes to your remote branch
  5. Open a pull request

Donation

If this project help you reduce time to develop, you can give me a cup of coffee 🍵 :)

  • USDT (TRC20): TXArNxsq2Ee8Jvsk45PudVio52Joiq1yEe
  • BTC: 1GYDVSAQNgG7MFhV5bk15XJy3qoE4NFenp
  • BTC (BEP20): 0xf673ee099be8129ec05e2f549d96ebea24ac5d97
  • ETH (ERC20): 0xf673ee099be8129ec05e2f549d96ebea24ac5d97
  • BNB (BEP20): 0xf673ee099be8129ec05e2f549d96ebea24ac5d97

License

Copyright Andrea Fassina, Licensed under MIT.

changelog

Changelog

10.0.0 (2025-07-18)

  • feat: remove experimental conditional orders flag (96d864f)

9.1.1 (2025-07-17)

  • chore: remove browser build (a607627)
  • chore: remove browser build (f439f69)
  • chore(deps-dev): bump @biomejs/biome from 1.9.4 to 2.1.2 (47151d7)
  • chore(deps-dev): bump @commitlint/cli from 19.6.1 to 19.7.1 (e020b8d)
  • chore(deps-dev): bump @commitlint/cli from 19.7.1 to 19.8.0 (56c512f)
  • chore(deps-dev): bump @commitlint/cli from 19.8.0 to 19.8.1 (41eb497)
  • chore(deps-dev): bump @commitlint/config-conventional (30ec858)
  • chore(deps-dev): bump @commitlint/config-conventional (8c2600c)
  • chore(deps-dev): bump @commitlint/config-conventional (460936d)
  • chore(deps-dev): bump @release-it/conventional-changelog (8740136)
  • chore(deps-dev): bump elliptic from 6.6.0 to 6.6.1 (8c98aee)
  • chore(deps-dev): bump release-it and @release-it/conventional-changelog (c64ba5e)
  • chore(deps-dev): bump release-it from 17.11.0 to 19.0.2 (97b7208)
  • chore(deps-dev): bump release-it from 19.0.2 to 19.0.4 (9320e49)
  • chore(deps-dev): bump ts-loader from 9.5.1 to 9.5.2 (0739f6c)
  • chore(deps-dev): bump tsx from 4.19.2 to 4.19.3 (e361b8c)
  • chore(deps-dev): bump tsx from 4.19.3 to 4.19.4 (01532a5)
  • chore(deps-dev): bump tsx from 4.19.4 to 4.20.3 (84dd5df)
  • chore(deps-dev): bump typescript from 5.7.2 to 5.7.3 (c0464fe)
  • chore(deps-dev): bump typescript from 5.7.3 to 5.8.2 (79e9c93)
  • chore(deps-dev): bump typescript from 5.8.2 to 5.8.3 (3eb30be)
  • chore(deps-dev): bump webpack from 5.97.1 to 5.98.0 (d48f446)
  • chore(deps-dev): bump webpack from 5.98.0 to 5.99.0 (b21f7c2)
  • chore(deps-dev): bump webpack from 5.99.0 to 5.99.3 (ff9abaf)
  • chore(deps-dev): bump webpack from 5.99.3 to 5.99.5 (d36787c)
  • chore(deps-dev): bump webpack from 5.99.5 to 5.99.6 (d09eb21)
  • chore(deps-dev): bump webpack from 5.99.6 to 5.99.7 (dc91e8c)
  • chore(deps-dev): bump webpack from 5.99.7 to 5.99.8 (8cf3e18)
  • chore(deps-dev): bump webpack-cli from 5.1.4 to 6.0.1 (1dc0284)

9.1.0 (2025-01-07)

  • docs: snapshot with stopbook (c48ae23)
  • test: stopbook in snapshot (367d6fb)
  • feat: add stopbook on snapshot (176fa5e)

9.0.0 (2025-01-07)

  • docs: center align project description [skip ci] (5053024)
  • docs: center align project description [skip ci] (f6de4b0)
  • docs: fix table of contents title [skip ci] (b4bb3b5)
  • docs: restore go orderbook credit [skip ci] (8ffe88c)
  • docs: update readme (2e905e3)
  • docs: update security policy (1695979)
  • feat: order now will be returned as object (df68dd6)
  • chore(deps-dev): bump @biomejs/biome from 1.8.3 to 1.9.0 (97f07c3)
  • chore(deps-dev): bump @biomejs/biome from 1.9.0 to 1.9.1 (bf288ba)
  • chore(deps-dev): bump @biomejs/biome from 1.9.1 to 1.9.2 (88cae7f)
  • chore(deps-dev): bump @biomejs/biome from 1.9.2 to 1.9.3 (7ea7ca1)
  • chore(deps-dev): bump @biomejs/biome from 1.9.3 to 1.9.4 (25ba3ac)
  • chore(deps-dev): bump @commitlint/cli from 19.4.1 to 19.5.0 (406baa3)
  • chore(deps-dev): bump @commitlint/cli from 19.5.0 to 19.6.0 (fd82210)
  • chore(deps-dev): bump @commitlint/cli from 19.6.0 to 19.6.1 (3bf1cad)
  • chore(deps-dev): bump @commitlint/config-conventional (778a2bc)
  • chore(deps-dev): bump @commitlint/config-conventional (f4d1312)
  • chore(deps-dev): bump @release-it/conventional-changelog (50ddb5e)
  • chore(deps-dev): bump @release-it/conventional-changelog (ed0731d)
  • chore(deps-dev): bump @release-it/conventional-changelog (ca08f88)
  • chore(deps-dev): bump @release-it/conventional-changelog (40de741)
  • chore(deps-dev): bump @release-it/conventional-changelog (a92e255)
  • chore(deps-dev): bump c8 from 10.1.2 to 10.1.3 (756c0b4)
  • chore(deps-dev): bump crypto-browserify from 3.12.0 to 3.12.1 (19e785f)
  • chore(deps-dev): bump elliptic from 6.5.7 to 6.6.0 (d314493)
  • chore(deps-dev): bump husky from 9.1.5 to 9.1.6 (3af1305)
  • chore(deps-dev): bump husky from 9.1.6 to 9.1.7 (dcd9ac2)
  • chore(deps-dev): bump release-it from 17.10.0 to 17.11.0 (3ffe14e)
  • chore(deps-dev): bump release-it from 17.6.0 to 17.7.0 (8883517)
  • chore(deps-dev): bump release-it from 17.7.0 to 17.8.2 (4d4d0b4)
  • chore(deps-dev): bump release-it from 17.8.2 to 17.9.0 (442499d)
  • chore(deps-dev): bump release-it from 17.9.0 to 17.10.0 (afc0033)
  • chore(deps-dev): bump tsx from 4.19.0 to 4.19.1 (d82fae9)
  • chore(deps-dev): bump tsx from 4.19.1 to 4.19.2 (c4d5ffc)
  • chore(deps-dev): bump typescript from 5.5.4 to 5.6.2 (97a46d4)
  • chore(deps-dev): bump typescript from 5.6.2 to 5.6.3 (693a13d)
  • chore(deps-dev): bump typescript from 5.6.3 to 5.7.2 (f4fe437)
  • chore(deps-dev): bump webpack from 5.94.0 to 5.95.0 (71948e9)
  • chore(deps-dev): bump webpack from 5.95.0 to 5.96.1 (c30259c)
  • chore(deps-dev): bump webpack from 5.96.1 to 5.97.0 (6117da6)
  • chore(deps-dev): bump webpack from 5.97.0 to 5.97.1 (d4ac2bf)

8.1.0 (2024-08-31)

Features

  • add journal log for conditional orders (ca140c1)
  • remove deprecated signatures (2833a0f)

Chore

  • deps-dev: bump @commitlint/cli from 19.4.0 to 19.4.1 (404d083)
  • deps-dev: bump @commitlint/config-conventional (e862e60)
  • deps-dev: bump elliptic from 6.5.6 to 6.5.7 (2bb9cbf)
  • deps-dev: bump husky from 9.1.4 to 9.1.5 (7af8e01)
  • deps-dev: bump tsx from 4.17.0 to 4.18.0 (768ec99)
  • deps-dev: bump tsx from 4.18.0 to 4.19.0 (cb1d529)
  • deps-dev: bump webpack from 5.93.0 to 5.94.0 (f1bbf28)

Documentation

  • add section "Table of Contents" (e6ddd2a)
  • fix coverage badge [skip ci] (c224515)
  • fix coverage badge [skip ci] (41eb9c2)
  • update author [skip ci] (1ec4ff2)
  • update package keywords [skip ci] (f5b50e6)

Performance Improvement

  • refactor market and limit journaling (9fc263a)

8.0.1 (2024-08-08)

Documentation

8.0.0 (2024-08-08)

⚠ BREAKING CHANGES

  • new package name nodejs-order-book

Chore

  • deps-dev: bump @commitlint/cli from 19.3.0 to 19.4.0 (32803c0)
  • deps-dev: bump tsx from 4.16.5 to 4.17.0 (bd04e06)
  • rename package (0d6a5da)

Documentation

  • add pnpm installation (54f5a57)
  • udpate project description (59a984f)
  • udpate project description (ec02069)

Test

  • c8 coverage reportern (0abb8b4)
  • fix codecov lcov.info path (7dc1d13)

7.0.2 (2024-08-06)

Test

  • remove matrix on windows (f81ddd8)
  • replace tap with the built-in node test runner (a61baad)

7.0.1 (2024-08-02)

Features

  • add error codes (5a538d5)
  • add postOnly option on deprecated createOrder signature (e1b5825)

Documentation

  • improve post-only documentation (1383eef)

7.0.0 (2024-08-02)

⚠ BREAKING CHANGES

    • The isMaker property has been removed from the limit order object.
  • New properties takerQty and makerQty have been added to the limit order objecct.

Features

  • add postOnly limit order option (4dd8d69)
  • taker and maker support + fix origSize on limit order (74f5907)

Documentation

Refactoring

6.1.1 (2024-08-01)

Chore

  • deps-dev: bump @commitlint/config-conventional (ef84160)
  • deps-dev: bump tap from 19.2.5 to 21.0.0 (d759984)

Documentation

  • improved visibility of experimental features (6a7efb8)

6.1.0 (2024-08-01)

Features

  • new experimentalConditionalOrders order book option (55d3e11)

Chore

  • deps-dev: bump husky from 9.1.1 to 9.1.2 (282843a)
  • deps-dev: bump husky from 9.1.2 to 9.1.3 (5f82ba5)
  • deps-dev: bump husky from 9.1.3 to 9.1.4 (5d5fbc5)
  • deps-dev: bump typescript from 5.5.3 to 5.5.4 (809a7ab)

Documentation

6.1.0-beta.1 (2024-07-28)

Features

  • add support for OCO orders (5b19318)

Bug Fixes

  • use new signatures in benchmark script (313aefe)

Chore

Documentation

  • add stop limit and stop market documentations (41ef939)

Refactoring

  • improve code readability on cancelOrder (9f062c4)

6.1.0-beta.0 (2024-07-22)

Features

  • add getter for market price (9f4b315)
  • add support for stop limit and stop market order (92f9441)
  • refactor limit and market options (794c71a)

Chore

  • deps-dev: bump @commitlint/cli from 18.6.1 to 19.3.0 (8695b5b)
  • deps-dev: bump husky from 9.0.11 to 9.1.0 (c8da2e2)
  • deps-dev: bump husky from 9.1.0 to 9.1.1 (47bb2f8)
  • deps-dev: bump release-it from 17.3.0 to 17.4.0 (ec5349b)
  • deps-dev: bump release-it from 17.4.0 to 17.4.1 (beac954)
  • deps-dev: bump release-it from 17.4.1 to 17.4.2 (ddad1df)
  • deps-dev: bump release-it from 17.4.2 to 17.5.0 (4d8f10e)
  • deps-dev: bump release-it from 17.5.0 to 17.6.0 (a6f7ba3)
  • deps-dev: bump tap from 18.7.3 to 19.2.5 (f09af63)
  • deps-dev: bump typescript from 5.4.5 to 5.5.2 (999dfca)
  • deps-dev: bump typescript from 5.5.2 to 5.5.3 (8402f83)
  • deps-dev: bump webpack from 5.92.1 to 5.93.0 (8468d06)
  • release: hft-limit-nodejs-order-book@5.1.0-beta.0 (770721b)

Documentation

  • fix snapshot example (073ca07)
  • improve snapshot and journal documentation (3ba2d05)
  • new features snapshot and journaling (442dc43)
  • update new signatures method + add stop limit and stop market (96408a0)

Test

  • add test for stop limit and stop market order (47e6f5e)

5.0.0 (2024-06-19)

Features

  • add enableJournaling option and replayJournal functionality (f451c50)
  • avoid restoring same order twice (483eef9)
  • snapshot and restore functionality + add origSize to Order (7d09059)

Chore

  • deps-dev: bump @commitlint/cli from 18.6.0 to 18.6.1 (f8193db)
  • deps-dev: bump @commitlint/config-conventional (f4745e6)
  • deps-dev: bump @commitlint/config-conventional (7972796)
  • deps-dev: bump braces from 3.0.2 to 3.0.3 (7231418)
  • deps-dev: bump husky from 9.0.10 to 9.0.11 (67041f9)
  • deps-dev: bump husky from 9.0.6 to 9.0.7 (31e04c6)
  • deps-dev: bump husky from 9.0.7 to 9.0.10 (3313c37)
  • deps-dev: bump ip from 2.0.0 to 2.0.1 (1920277)
  • deps-dev: bump release-it from 17.0.3 to 17.0.5 (886630e)
  • deps-dev: bump release-it from 17.0.5 to 17.1.1 (5dd483a)
  • deps-dev: bump release-it from 17.1.1 to 17.2.0 (fae5e69)
  • deps-dev: bump release-it from 17.2.0 to 17.2.1 (4a98f82)
  • deps-dev: bump release-it from 17.2.1 to 17.3.0 (75a65f8)
  • deps-dev: bump tap from 18.7.0 to 18.7.1 (03d1588)
  • deps-dev: bump tap from 18.7.1 to 18.7.2 (dc871c0)
  • deps-dev: bump tap from 18.7.2 to 18.7.3 (b0ec86d)
  • deps-dev: bump typescript from 5.3.3 to 5.4.2 (4cec012)
  • deps-dev: bump typescript from 5.4.2 to 5.4.3 (075fd42)
  • deps-dev: bump typescript from 5.4.3 to 5.4.4 (9b2918a)
  • deps-dev: bump typescript from 5.4.4 to 5.4.5 (a639640)
  • deps-dev: bump webpack from 5.90.0 to 5.90.1 (68efd0a)
  • deps-dev: bump webpack from 5.90.1 to 5.90.2 (1387ff2)
  • deps-dev: bump webpack from 5.90.2 to 5.90.3 (0ce68d3)
  • deps-dev: bump webpack from 5.90.3 to 5.91.0 (b3cbc36)
  • deps-dev: bump webpack from 5.91.0 to 5.92.0 (7659d4a)
  • deps-dev: bump webpack from 5.92.0 to 5.92.1 (f6018fa)
  • deps-dev: bump ws from 8.17.0 to 8.17.1 (a0cfe03)

Documentation

  • documented new journal and snapshot features (60f9434)
  • improve documentation with better examples (80bfbca)

4.0.0 (2024-01-27)

Bug Fixes

  • modify size under the price-time-priority (32cfe04), closes #336

Chore

  • deps-dev: bump husky from 8.0.3 to 9.0.6 (a39deda)
  • deps-dev: bump tap from 18.6.1 to 18.7.0 (b8eb10e)

Test

  • modify order now return IProcessOrder (838234b)

3.0.0 (2024-01-26)

⚠ BREAKING CHANGES

  • modify order price that cross the market price

Bug Fixes

  • modify order price that cross the market price (32413ae), closes #336
  • uinqueID -> uniqueID (3868529)

Chore

  • deps-dev: bump @commitlint/cli from 17.7.1 to 17.7.2 (d16ea04)
  • deps-dev: bump @commitlint/cli from 17.7.2 to 17.8.0 (e7b2058)
  • deps-dev: bump @commitlint/cli from 17.8.0 to 18.5.0 (1612715)
  • deps-dev: bump @commitlint/cli from 18.5.0 to 18.6.0 (cbda5fd)
  • deps-dev: bump @commitlint/config-conventional (1bc900e)
  • deps-dev: bump @commitlint/config-conventional (860278a)
  • deps-dev: bump @commitlint/config-conventional (ab2a574)
  • deps-dev: bump @release-it/conventional-changelog (15225bd)
  • deps-dev: bump @release-it/conventional-changelog (398e465)
  • deps-dev: bump @types/functional-red-black-tree (207416a)
  • deps-dev: bump @types/functional-red-black-tree (3ca4f99)
  • deps-dev: bump @types/tap from 15.0.8 to 15.0.9 (07be7ba)
  • deps-dev: bump release-it and @release-it/conventional-changelog (00976a8)
  • deps-dev: bump release-it from 16.1.5 to 16.2.0 (e31a216)
  • deps-dev: bump release-it from 16.2.0 to 16.2.1 (d6745d2)
  • deps-dev: bump release-it from 16.2.1 to 16.3.0 (952ceb9)
  • deps-dev: bump ts-loader from 9.4.4 to 9.5.0 (c43647f)
  • deps-dev: bump ts-loader from 9.5.0 to 9.5.1 (bba4126)
  • deps-dev: bump ts-node from 10.9.1 to 10.9.2 (654ed04)
  • deps-dev: bump typescript from 5.1.6 to 5.2.2 (2f9f4a8)
  • deps-dev: bump typescript from 5.2.2 to 5.3.3 (ed4e996)
  • deps-dev: bump webpack from 5.88.2 to 5.89.0 (df98376)
  • deps-dev: bump webpack from 5.89.0 to 5.90.0 (6783c66)
  • deps: bump bignumber.js from 9.1.1 to 9.1.2 (929acfb)

Documentation

Test

2.3.5 (2023-08-22)

Chore

  • disable npm publish by release-it (739e88a)

2.3.4 (2023-08-22)

Chore

  • deps: replace standard-version with release-it (6368cab)
  • optional size or price on order update (148f050)

Documentation

  • recreate changelog with release-it conventionalcommits (5068e84)

Test

2.3.3 (2023-08-19)

Performance Improvements

  • improve order types and comment (cd8e97a)

2.3.2 (2023-07-16)

Features

  • use bignumber.js for size precision (4449d68)

2.3.1 (2023-07-16)

Performance Improvements

2.3.0 (2023-05-09)

Performance Improvements

  • improve OrderSide performance by saving asks in ascending order and bids in descending order (57b0e34)

2.2.1 (2023-05-08)

Bug Fixes

  • check if sell FOK order can be filled (2814b3e)

2.2.0 (2023-05-06)

Features

2.1.0 (2023-03-29)

Features

  • add fill or kill time in force (a146cfe)
  • add immediate or cancel time in force (aa671c6)

2.0.2 (2023-03-21)

Bug Fixes

  • incorrect size amount on partial processed order (#156) (25cca3f)

Performance Improvements

  • avoid check best price (f109feb)
  • check order side is valid (66ad34a)

2.0.1 (2022-11-20)

Bug Fixes

  • remove deprecated function (1682ff5)

2.0.0 (2022-11-20)

1.1.0 (2022-08-16)

Features

  • add createOrder method and deprecated old function names (8a12fc7)

1.0.0 (2022-08-16)

Features

  • support price and/or size updating of an order (a0fba73)

0.0.6 (2022-07-29)

Features

Performance Improvements

0.0.5 (2022-07-29)

Features

Bug Fixes

  • circle ci coverage upload (1114be2)

0.0.4 (2022-07-28)

Bug Fixes

  • fix update order and limit order when order already exist (a9313cf)

0.0.3 (2022-07-28)

Performance Improvements

  • replace dbly-linked-list with denque (f0c9b92)

0.0.2 (2022-07-26)

Bug Fixes

  • add missing addscope script (4c5098c)

0.0.1 (2022-07-26)

Features