Skip to content

Exchange Integration Testing Checklist

Brandon Iles edited this page Jul 22, 2019 · 1 revision

If your system passes the following test cases, then you can have confidence the integration is safe and complete.

Balance Updates

  • User balances updated correctly on Expansion
  • User balances updated correctly on Contraction
  • User balances unchanged on Equilibrium (rebase w/ no adjustment)
  • User balances unchanged if no rebase occurs in window
  • User balances updated correctly if one or more rebases adjustments were missed by exchange.
  • Pending Balance (balance minus open orders) have the correct offset from scaled balance.
  • Rebase updates show in account transaction history

Trading

  • Trades are cancellable during trading pause
  • New orders can be placed during trading pause
  • If placing new orders are not supported during pause, UI message should be displayed to user
  • Unfillable orders are either partially filled or removed

Deposits / Withdrawals

  • No Withdrawals during pause window are possible
  • Pending withdrawals are either cancelled when window starts, or scaled with balances.
  • Deposits during pause window, but before rebase, credited correctly
  • Deposits during pause window, but after rebase, credited correctly with scale factor.

Timing Edge Cases

  • A rebase happens in a block whose timestamp is within the window onchain, but before the wall time window start
  • A rebase happens in a block whose timestamp is within the window onchain, but after the wall time window end.
  • A rebase occurs in an uncle block before X confirmations, then a second rebase occurs in the same window and is confirmed.