github dydxprotocol/v4-chain protocol/v3.0.0
Protocol v3.0.0

latest releases: protocol/v7.0.2, indexer/v7.0.1, protocol/v7.0.1...
9 months ago

Protocol v3.0.0 Release Notes

What's New?

Interchain Accounts (ICA) Host Module

The Host sub-module of the Interchain Accounts Module is enabled. This enables the dYdX chain to act as a Host Chain where interchain accounts can be registered by other controller chains. See detailed documentation on the Interchain Accounts module.

  • (app) Add ICA Host Submodule (#899)

Liquidations Daemon Improvements

Liquidations daemons performance improvements by minimizing the number of RPC queries made against the main application. This reduces lock contention with other ABCI callbacks and enables optimizations in net collateral and margin requirement calculations.

  • (daemons/liquidations) Optimize OffsetSubaccountPerpetualPosition subaccount iteration (#906)
  • (daemons/liquidations) Replicate IsLiquidatable logic on daemon (#873)
  • (daemons/liquidations) Proto updates for daemon liquidation request (#885)
  • (daemons/liquidations) Update daemon liquidation info to include negative tnc subaccounts and open positions (#879)
  • (daemons/liquidations) Organizational update for liquidation daemon (#855)
  • (daemons/liquidations) Add grpc to get all perpetuals and liquidity tiers (#859)
  • (daemons/liquidations) Add grpc to get previous block info (#856)
  • (daemons/liquidations) Add grpc to get all market prices (#857)

Winding Down Markets

Markets can now be closed down. Markets whose clob pairs are transitioned to the FINAL_SETTLEMENT status will have open positions closed at the oracle price and open stateful orders cancelled. All trading for the market is suspended.

  • (x/clob) Allow FINAL_SETTLEMENT clob pair status, block trading, cancel open stateful orders, and close open positions via oracle-price deleveraging (as opposed to bankruptcy-price deleveraging) (#829)

Deprecate non-linear margin requirements

Non-linear margin requirements removed as a feature. Margin requirements will no longer be scaled up if position size exceeds certain threshold.

  • (x/clob) Deprecate non-linear margin requirements (#836)

Bug Fixes

  • (x/bridge) Do not error when completing a bridge with non-positive amount (#691)
  • (x/clob) Small PrepareCheckState fixes (#695)

Other

  • (x/clob) Validate enums in MsgPlaceOrder protos (#931)
  • (app) Add empty string check to string flag parsing (#883)
  • (x/rewards) Emit TradingRewardEventV1 events in rewards module (#850)
  • (daemons) Migrate daemon monitoring to use health checks (#783)
  • (app) Add flag to format tag values for datadog error tracking (#858)
  • (app) Fix CLOB flag parsing for MEV telemetry hosts (#876)
  • (daemons) Restore pricefeed config tomls (#863)
  • (app) Add debug tendermint command (#723)
  • (daemons/bridge) Panic on startup if eth rpc endpoint is not provided (#725) (#710)
  • (x/clob) Duplicate validation checking for ProcessProposerMatchesEvents (#708)
  • (daemons/pricefeed) Add tracking for market availability in order to alert in datadog (#706)
  • (x/perpetuals) Add queries for x/perpetuals state (#686)
  • (x/clob) CLI commands for x/clob params (#699)
  • (app) Add generic json printer to help format customtypes in protos (#702)
  • (app) Remove extraneous authtypes.NewModuleAddress, consolidate constants (#641)
  • (daemons/pricefeed) Always log market id when pair information is missing. (#694)
  • (app) Remove Reset method and swap to appOptions/baseAppOptions being explicitly set instead of an appCreatorFn (#697)
  • (x/delaymsg) Explicitly log out delayed message when execution fails (#687)

[In Development] Withdrawal Rate Limiting

In-progress safety feature to rate limit asset withdrawal from the dYdX chain, analogous to the IBC rate limit module on Osmosis. The feature is planned to go live in the next major version. Changes so far do not affect behavior of the software.

  • (x/ratelimit) Scaffolding code for x/ratelimit (#870)
  • (x/ratelimit) Initial protos for x/ratelimit (#864)
  • (x/ratelimit) Implement keeper methods for LimitParams and DenomCapacity (#877)

Don't miss a new v4-chain release

NewReleases is sending notifications on new releases.