initia

Prop 54: Contract Update: Support Non-proportional Liquidity Provision

1. TL;DR

This proposal introduces updates to the following components:

  • Initia DEX
    • Modify calculate_provide_liqudity_return_amount to support non-proportinal liquidity provision.
  • VIP
    • Automatically calculate and provide proportional counterparty coins during lock staking (enabled by the new non-proportional support in 0x1::dex).
    • Add update_operator_info function to modify commission_max_rate and commission_max_change_rate via governance.
    • Add get_module_store to expose the module store for weight_vote.
    • Add vote_with_amount to enable voting with precise amounts.
    • Implement initial snapshot on rollup registration to prevent errors when registration occurs near stage end.

2. Background

1. Enable Custom Amount Liquidity Provision

The InitiaDEX (at 0x1::dex) currently only supports proportional or single-asset liquidity provision. With this update, the contract will support custom (non-proportional) liquidity provision, allowing users to add liquidity to a pool using custom amounts rather than following the standard ratio that matches the current pool asset ratio.

2. VIP Lock Staking Compatibility Fix

The VIP lock staking mechanism requires liquidity to be provided proportionally. However, the new custom liquidity provision feature in 0x1::dex would allow users to bypass this requirement by staking non-proportional amounts (e.g., providing only INIT when providing liquidity and staking in the INIT-USDC pool).

To preserve the intention of the original VIP lock staking mechanism, this proposal includes a modification to the VIP contract that enforces proportional liquidity provision during VIP lock staking, regardless of the custom amount liquidity provision feature.

3. Misc

Additionally, features such as update_operator_info and get_module_store requested by rollup teams are included in this update.


3. Proposal Details

The following contracts will be updated:

  • 0x1::dex
  • 0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::operator
  • 0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::tvl_manager
  • 0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::vip
  • 0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::weight_vote
  • 0x3a886b32a802582f2e446e74d4a24d1d7ed01adf46d2a8f65c5723887e708789::lock_staking

Relevant PRs:

  • [dex] Support non-proportional provide: https://github.com/initia-labs/movevm/pull/220
  • [VIP] VIP 1.2.0: https://github.com/initia-labs/vip-contract/pull/54
  • [Lock Stake] Remove exact provide amount: https://github.com/initia-labs/vip-contract/pull/55

Governance Votes

Yes

  • You agree with upgrading the InitiaDEX and VIP contracts as outlined in this proposal

No

  • You disagree with the proposal and do not support the contract changes

No with Veto

  • You believe this proposal is spam, not relevant, incomplete, or harmful.

Abstain

  • You do not have a strong opinion either way, but want to count toward quorum.