vMANTA ReadyPool MANTA Mint And vToken Operation Disable Proposal

Summary

To complete the vMANTA redemption wind-down, Bifrost needs to top up the vToken ReadyPool with sufficient MANTA liquidity.

This proposal only covers vMANTA that remains redeemable on Bifrost. vMANTA that has already been bridged to Moonbeam or Ethereum is excluded, as these balances are not expected to return to Bifrost for redemption.

This proposal also disables the following operations:

  • vMANTA minting: set the MANTA minimumMint to a very large value
  • vETH minting: set minimumMint for Token2(15) / Token2(16) / Token2(17) / Token2(18) / Token2(19) to a very large value
  • vETH redemption: set the vETH minimumRedeem to a very large value

vMANTA redemption remains enabled so that existing vMANTA on Bifrost can continue to be redeemed.

The proposal uses utility.batchAll:

  1. Set the vMANTA mint minimum to 10^36 base units.
  2. Set the mint minimum for Token2(15) / Token2(16) / Token2(17) / Token2(18) / Token2(19) to 10^36 base units.
  3. Set the vETH redeem minimum to 10^36 base units.
  4. Call tokens.setBalance on the blackhole account 0x000...000 to mint the required MANTA amount.
  5. Call tokens.forceTransfer to transfer the same amount from the blackhole account to the vToken ReadyPool.

This avoids directly calling setBalance on the ReadyPool, reducing the risk of overwriting any real-time ReadyPool balance changes.

On-Chain Data

Network: Bifrost Polkadot
Query block: 13236619
Decimals: MANTA, vMANTA, ETH, and vETH all use 18 decimals

Item Amount
vMANTA total issuance 14,456,624.858687184719579028 vMANTA
vMANTA tokenPool 21,339,962.241475636922244504 MANTA
Exchange rate 1 vMANTA = 1.476137234663882150 MANTA
vMANTA excluded on Moonbeam 4,056,231.491610743713897808 vMANTA
vMANTA excluded in the Ethereum / Hyperbridge reserve account 9,732,279.897797404621353412 vMANTA
vMANTA still redeemable on Bifrost 668,113.469279036384327808 vMANTA
Required MANTA for local redemption 986,227.168983249349258282 MANTA
Current ReadyPool MANTA 89,843.578990348654633245 MANTA
MANTA to mint and transfer into ReadyPool 896,383.589992900694625037 MANTA

Calculation:

localRedeemableVMANTA = totalIssuance - moonbeamVMANTA - ethereumVMANTA
requiredMANTA = ceil(localRedeemableVMANTA * tokenPool / totalIssuance)
mintDelta = requiredMANTA - currentReadyPoolMANTA

Disabled Operations

The disable threshold is:

1000000000000000000000000000000000000 base units
= 1,000,000,000,000,000,000 tokens with 18 decimals
Operation Call CurrencyId Current minimum New minimum
Disable vMANTA minting vtokenMinting.setMinimumMint Token2(8) / MANTA 1 MANTA 1,000,000,000,000,000,000 MANTA
Disable vETH minting vtokenMinting.setMinimumMint Token2(15) 0 1,000,000,000,000,000,000
Disable vETH minting vtokenMinting.setMinimumMint Token2(16) 0.001 1,000,000,000,000,000,000
Disable vETH minting vtokenMinting.setMinimumMint Token2(17) 0.001 1,000,000,000,000,000,000
Disable vETH minting vtokenMinting.setMinimumMint Token2(18) 0.001 1,000,000,000,000,000,000
Disable vETH minting vtokenMinting.setMinimumMint Token2(19) 0.001 1,000,000,000,000,000,000
Disable vETH redemption vtokenMinting.setMinimumRedeem VToken2(15) / vETH 0.0001 vETH 1,000,000,000,000,000,000 vETH

Accounts

Purpose Address / Raw
Blackhole account raw 0x0000000000000000000000000000000000000000000000000000000000000000
Blackhole account decoded in call 111111111111111111111111111111111HC1
vToken ReadyPool raw 0x6d6f646c62662f76746b696e0000000000000000000000000000000000000000
vToken ReadyPool decoded in call 13UVJyLjmw21t1jg4ARiVs3krDn5yQj9QCy6ohChCdTgniwe
Moonbeam sovereign account 9Pz57gn4gCoFvqGPxhCze1hCt137gHb5Nen19rSZPHep9Cv
Ethereum / Hyperbridge reserve account 13UVJyLkyg4DFTWf9rx91TTaGTS5MxYqXNGfg7EtXjmAajNE

Execution Call

Execute the following call with Root:

utility.batchAll([
  vtokenMinting.setMinimumMint(
    currency_id = Token2(8),
    minimum_amount = 1000000000000000000000000000000000000
  ),
  vtokenMinting.setMinimumMint(
    currency_id = Token2(15),
    minimum_amount = 1000000000000000000000000000000000000
  ),
  vtokenMinting.setMinimumMint(
    currency_id = Token2(16),
    minimum_amount = 1000000000000000000000000000000000000
  ),
  vtokenMinting.setMinimumMint(
    currency_id = Token2(17),
    minimum_amount = 1000000000000000000000000000000000000
  ),
  vtokenMinting.setMinimumMint(
    currency_id = Token2(18),
    minimum_amount = 1000000000000000000000000000000000000
  ),
  vtokenMinting.setMinimumMint(
    currency_id = Token2(19),
    minimum_amount = 1000000000000000000000000000000000000
  ),
  vtokenMinting.setMinimumRedeem(
    currency_id = VToken2(15),
    minimum_amount = 1000000000000000000000000000000000000
  ),
  tokens.setBalance(
    who = 0x0000000000000000000000000000000000000000000000000000000000000000,
    currency_id = Token2(8),
    new_free = 896383589992900694625037,
    new_reserved = 0
  ),
  tokens.forceTransfer(
    source = 0x0000000000000000000000000000000000000000000000000000000000000000,
    dest = 0x6d6f646c62662f76746b696e0000000000000000000000000000000000000000,
    currency_id = Token2(8),
    amount = 896383589992900694625037
  )
])

Calldata:

0x3202247305080800000000109f4bb31507c97bce97c0007305080f00000000109f4bb31507c97bce97c0007305081000000000109f4bb31507c97bce97c0007305081100000000109f4bb31507c97bce97c0007305081200000000109f4bb31507c97bce97c0007305081300000000109f4bb31507c97bce97c0007306090f00000000109f4bb31507c97bce97c000470400000000000000000000000000000000000000000000000000000000000000000008081b0dcb8370bd9e410dd1bd004703000000000000000000000000000000000000000000000000000000000000000000006d6f646c62662f76746b696e000000000000000000000000000000000000000008081b0dcb8370bd9e410dd1bd

Call hash:

0xd8b039d61dbcb164b0df4bce9644823d2df7d05db9328de7e13afaa7d1559317

Calldata file: projects/bifrost/docs/vmanta-readypool-calldata/calldata-batch-mint-to-ready-pool.txt
Metadata file: projects/bifrost/docs/vmanta-readypool-calldata/calldata-meta.json

Expected Result

After execution:

  • vMANTA minting is disabled. Regular users can no longer mint vMANTA from MANTA.
  • vETH minting is disabled. Regular users can no longer mint vETH from Token2(15) / Token2(16) / Token2(17) / Token2(18) / Token2(19).
  • vETH redemption is disabled. Regular users can no longer redeem ETH from vETH.
  • vMANTA redemption remains enabled.
  • ReadyPool MANTA balance increases by 896,383.589992900694625037 MANTA.
  • ReadyPool MANTA balance reaches 986,227.168983249349258282 MANTA.
  • The ReadyPool can cover redemption for the remaining 668,113.469279036384327808 vMANTA on Bifrost.
  • vMANTA already bridged to Moonbeam or Ethereum is excluded from this Bifrost-side redemption funding calculation.
Reply
Up
Share
Comments