Base: Velocimeter Gauges

scripts\base\deployVelociGaugePlugin.js

This plugin factory is for Velocimeter gauges. The underlying token is a Velocimeter LP, which gets deposited into the plugin. The plugin deposits the LP into an Velocimeter gauge to earn oBVM and possibly other tokens. The gauge rewards are harvested and sent to its bribe contract. The reward tokens from the gauge for this plugin are updatable because Velocimeter tends to add additionally token rewards in their gauges, so this plugin must be flexible and updateable by its owner to benefit from these additional rewards.

This plugin factory is ownable and only the owner can update gauge rewards for plugins.

Plugin Factory: contracts/plugins/base/VelociGaugePluginFactory.sol

IMPORTANT NOTICE

These plugins are not audited. It is recommended to get them audited if you plan to use them in production.

Plugin Description

The factory can deploy plugins for any Velocimeter LP with a gauge. Use the Factory to create the plugins with the following parameters.

_lpToken

Address of the Velocimeter LP token with a gauge. Example. Address the BVM/WETH LP:

const LP_ADDRESS = '0x53713F956A4DA3F08B55A390B20657eDF9E0897B';    // LP Address

_gaugeRewards

Array of addresses of the Velocimeter Gauge reward tokens. Velocimeter tends to add additional gauge rewards so this must be a flexible parameter. Therefore, it is updateable by the owner of the plugin factory. Also keep in mind that Velocimeter distributes BVM from gauges as BVM. It only gets converted to oBVM on the claim. So make sure to use BVM here, not oBVM. If a new token is added, it must also be added as a reward token in the bribe contract by the team or governance, otherwise it cannot be distributed as a voting reward. Example. The symbol for the BVM/WETH LP could be:

const GAUGE_REWARDS = [
'0xd386a121991E51Eab5e3433Bf5B1cF4C8884b47a',   // BVM
'0x4200000000000000000000000000000000000006'    // WETH
]

IMPORTANT NOTICE

A reward token should never be the same as underlying, it won't distribute it.

_symbol

The desired symbol for this plugin. Example. The symbol for the AERO/WETH LP could be:

const LP_SYMBOL = 'vLP-BVM/WETH Gauge';   // Desired symbol for Gauge plugin

Plugin Logic

depositFor

  • User deposits LP in plugin

  • Plugin deposits LP in Velocimeter gauge

withdrawTo

  • Plugin withdraws LP from Velocimeter gauge

  • Plugin withdraws LP to user

claimAndDistribute

  • LP deposited in Velocimeter Gauge earns oBVM and other reward tokens

  • oBVM and other rewards claimed from Velocimeter gauge

  • oBVM and other rewards sent to bribe contract for voters


Refer to the Test Plugins deployment instructions for deploying this plugin factory

Test Plugins

Last updated