Administrative Privileges
Explanation about Admin and Emergency Admin roles
There are two special roles defined in VirtuSwap DEX:
Admin
Emergency Admin
Admin is the wallet controlled initially by the development team, and at later stage by the DAO. It can change the following aspects of VirtuSwap operation:
DEX operations:
Setting the list of supported Reserve Assets
Setting maximum reserve threshold
Setting pool fees
Force liquidation of reserves
Tokenomics:
Setting protocol rewards allocatoin per pool
Setting epoch configuration
Starting next epoch
Creating new vesting wallets
Updating tokenomics parameters
Transferring tokens from Minter on Ethereum to ChainMinter instances on other chains
Administration
Changin the Admin
Changing the Emergency Admin
The Emergency Admin wallet is used for situations when immediate intervention is required. The wallet is controlled by Emergency DAO that can operate without the need for DAO voting. The Emergency Admin can do the following limited operations:
Forced liquidation of a reserve asset at market prices (may be needed if the value of a reserve asset is rapidly falling, and it cannot be normally exchanged through the exchange of reserves)
Changing the list of supported reserve assets (may be needed if a reserve asset crashes rapidly, so accepting it as reserve will lead to LP losses)
The table below summarizes the list of methods that can only be called by Admin (A) or Emergency Admin (E)
vPairFactory .setExchangeReservesAddress
v
sets the address of vExchangeReserves contract
vPairFactory .setVPoolManagerAddress
v
sets the address of vPoolManager contract
vPairFactory .setPendingAdmin
v
The first step in updating the address of the admin wallet for the vPairFactory instance. After this method is called, acceptAdmin must be called to complete the process of changing the Admin
vPairFactory .setDefaultAllowList
v
v
Sets the default tokens AllowList to be used with for any new pool created with createPair method.
vPairFactory .setPendingEmergencyAdmin
v
The first step in updating the address of the Emergency Admin wallet. After this method is called, acceptEmergencyAdmin must be called to complete the process of changing the Emergency Admin
vPair .setAllowList
v
v
Sets the tokens AllowList to be used for current pool
vPair .setFee
v
Sets the trading fees for the pool. A separate fee can be set for the native token swap (swapNative) and for swap using virtual pools (swapReserveToNative).
vPair .setMaxReserveThreshold
v
Sets the maximum allowed value of reserve threshold. Reserve threshold is the ratio between the total value of reserve tokens in the pools and the value of native tokens.
vPair .Liquidate with %X discount
v
Liquidate reserves at discounted price
vPair .setReserveRatioWarningThreshold
v
Sets the reserve ratio threshold after which the liquidation of reserves is possible for admin
vPair .Liquidate at any price
v
Liquidate reserves at any price
vPair .setBlocksDelay
v
v
Sets the number of blocks for which virtual trading will be blocked for this pool as a reference pool (needed to prevent price manipulation)
vPair.emergencyToggle
v
Disables all operations in a pool except withdrawing liquidity. Should be called again to enable all operations.
Reserve exchange .changeIncentivesLimitPct
v
Sets the percentage of profit to be sent to user after exchanging reserves
Minter .setStaker
v
Sets the address of VStaker (can be called only once during initialization)
Minter .newVesting
v
Creates a new vesting for scheduled distribution of tokens for the given beneficiary
Minter .setAllocationPoints
v
Defines the proportion in which the protocol emission is distributed between VirtuSwap pools contracts.
Minter .arbitraryTransfer
v
This function allows the owner of the contract to transfer a specified amount of unlocked VRSW tokens to a recipient address.
Minter .setEpochParams
v
Changes minting epoch duration and preparation time. A minting epoch is the time period between changes in distribution of rewards between VirtuSwap pools. Default is 4 week. The Epoch Preparation Time is the time window before the start of the epoch in which it is allowed to transfer the rewards for the upcoming epoch. Default is 1 week.
Minter .nextEpochTransfer
v
Transfers the amount of VRSW tokens minted for the next epoch to the caller (VirtuSwap DAO). The DAO will transfer the tokens to vChainMinter contracts on each supported network. The distribution between networks is decided by the DAO.
Minter .distributePartnerToken
v
Transfers partner tokens for distribution in a given pool for a given amount of time
Minter .prepareForNextEpoch
v
Accepts transfer of necessary amount of VRSW tokens for the next epoch according to the Emission Schedule. Currently the transfers are done manually using intermediary wallet (contracts owner).
TokenomicsParams .updateParams
v
Updates tokenomics params (such as r, b, alpha, beta, gamma)
Last updated