* feat(binance): add static tests (22399) [c5aca788c9](https://github.com/ccxt/ccxt/commits/c5aca788c9fdac6e00a7f6a74b67f841704db898)
* feat(binance): replace safeValue with safeBool/safeList/safeDict (22396) [89a4135256](https://github.com/ccxt/ccxt/commits/89a4135256b4d904289051ee42bcb2b10e7354da)
* feat(binance): replace safeValue with safeBool/safeList/safeDict (22396) [1b84c42951](https://github.com/ccxt/ccxt/commits/1b84c429515634b42144c032dcb9174a3e93ea78)
* feat(bybit): ws flags (22406) [43f28f0f0d](https://github.com/ccxt/ccxt/commits/43f28f0f0d344cc8245955375d4a5b24e1d93727)
* feat(bybit): add marginTrading to market structure, fix 22400 (22404) [93dd41bd05](https://github.com/ccxt/ccxt/commits/93dd41bd059b23f11387c8a88d255a25a56fcc1a)
* feat(bybit): add marginTrading to market structure, fix 22400 (22404) [cb40453e95](https://github.com/ccxt/ccxt/commits/cb40453e952071c2aaac35a3f1fbd69aca4413bd)
* fix(okx): default to public watchOrderBook (22401) [618aaa485e](https://github.com/ccxt/ccxt/commits/618aaa485e902391017ec5405ab120eb883e8414)
* fix(okx): default to public watchOrderBook (22401) [2270634a75](https://github.com/ccxt/ccxt/commits/2270634a75b47b947c36d51f4894c76acf036f65)
* fix(okx): fix 22228 (22402) [0e2adae417](https://github.com/ccxt/ccxt/commits/0e2adae41714c9427f90342fd8f3fc88c030eb89)
* fix(invalidNonce): handleInvalid nonce to reset subscription, fix 21997 (22403) [7573052b79](https://github.com/ccxt/ccxt/commits/7573052b792f876baa6b8967ad5bf3a5d85d2270)
* chore: Precise.ts types (22370) [fe8d46fb9d](https://github.com/ccxt/ccxt/commits/fe8d46fb9d1826ce166cb862041f5312429873f0)
* fix(okx): error import (22408) [0f48b39a3a](https://github.com/ccxt/ccxt/commits/0f48b39a3a9918467fdea36991f1bd6dad1f5dae)
* fix(okx): error import (22408) [f56b5cf744](https://github.com/ccxt/ccxt/commits/f56b5cf7447da735d6826fbf76b2f8bbb64a5f3c)
* 4.3.17 [60e87aa456](https://github.com/ccxt/ccxt/commits/60e87aa456d72b53ee29c8e0c1374468415ba55e)