Skip to content

Releases: dfinity/oisy-trade

oisy_trade_canister-v0.1.0

18 Jun 08:14
81a46b7

Choose a tag to compare

  • SHA-256 hash: 49dccd3b3117fe34e2df48034cbc29bbcb9f72ad7b573540f6d78e678cb761e9

Deployments

Type Canister ID Deployed?
🚀 Production sy2xe-miaaa-aaaar-qb7sq-cai
🧪 Staging proc5-daaaa-aaaar-qb5va-cai

What's Changed

Added

  • Limit orders: submit and query order status, with validation on submission (#11, #19); cancel orders (#76, #77)
  • Order matching: order book with a timer-driven matching engine, plus a configurable execution policy and chunked execution of pending orders (#15, #18, #90, #89)
  • Deposit and withdrawal flows (#17, #45)
  • Balances: per-user free/reserved balances, reserved on order placement and updated on settlement, with get_balances and list_supported_tokens queries (#27, #28, #30, #99, #98)
  • Trading pairs: add_trading_pair and get_trading_pairs, with token metadata (#22, #21, #32)
  • Per-pair maker/taker fees: configuration and pair plumbing, per-token fee pools, deduction at fill time, and fee visibility — including the per-pair rates in get_trading_pairs and the dashboard (#107, #108, #109, #105, #153)
  • Order history and queries: order-lifecycle history, a per-user order index with submission timestamps, and a get_my_orders query; order-book ticker and depth queries (#41, #110, #111, #115, #74)
  • Audit and event log for state replay, with deposit, withdrawal, trading-pair, limit-order, and matching/settlement events (#38, #42, #44, #47, #66, #68)
  • Trading halts: global and per-pair halt, on a permission layer (#125, #126, #127)
  • State persistence: order history and balances persisted in stable memory and restored across upgrades (#62, #63, #64)
  • Observability: operation logging, canister metrics, and a dashboard with trading-pair details (#23, #52, #79, #80)

Changed

  • Settlement exactness: enforce the tick·lot settlement invariant, settle fills in quote units per whole base token, and widen price and tick size to u128 (#119, #121, #122)
  • Add a min/max notional filter per trading pair (#131)
  • Expand order records with partial-fill information (#133)
  • Rename the project from DEX to OISY TRADE (#138)

Fixed

  • Apply order-status transitions atomically with matching, fixing a cancel-order trap on fully-filled orders (#92)
  • Guard concurrent deposits and withdrawals per (caller, token) (#78)
  • Surface trading-pair fee rates in get_events (#134)