Wombat Exchange
Wombat Exchange
Search…
βŒƒK
Links

MasterWombat

contracts/wombat-governance/MasterWombatV2.sol
Title: MasterWombatV2
Notice: MasterWombat is a boss. He is not afraid of any snakes. In fact, he drinks their venoms. So, veWom holders boost their (boosted) emissions. This contract rewards users in function of their amount of lp staked (base pool) factor (boosted pool) Factor and sumOfFactors are updated by contract VeWom.sol after any veWom minting/burning (veERC20Upgradeable hook). Note that it's ownable and the owner wields tremendous power. The ownership will be transferred to a governance smart contract once Wombat is sufficiently distributed and the community can show to govern itself.
Details: Updates: - pack struct - move pendingWom into UserInfo - use MultiRewarderPerSec

event Add

***MasterWombatV2.Add(pid, allocPoint, lpToken, rewarder) ***
Arguments
name
type
description
pid
uint256
indexed
allocPoint
uint256
not indexed
lpToken
address
indexed
rewarder
address
indexed

event Deposit

***MasterWombatV2.Deposit(user, pid, amount) ***
Arguments
name
type
description
user
address
indexed
pid
uint256
indexed
amount
uint256
not indexed

event DepositFor

***MasterWombatV2.DepositFor(user, pid, amount) ***
Arguments
name
type
description
user
address
indexed
pid
uint256
indexed
amount
uint256
not indexed

event EmergencyWithdraw

***MasterWombatV2.EmergencyWithdraw(user, pid, amount) ***
Arguments
name
type
description
user
address
indexed
pid
uint256
indexed
amount
uint256
not indexed

event EmergencyWomWithdraw

***MasterWombatV2.EmergencyWomWithdraw(owner, balance) ***
Arguments
name
type
description
owner
address
not indexed
balance
uint256
not indexed

event Harvest

***MasterWombatV2.Harvest(user, pid, amount) ***
Arguments
name
type
description
user
address
indexed
pid
uint256
indexed
amount
uint256
not indexed

event OwnershipTransferred

***MasterWombatV2.OwnershipTransferred(previousOwner, newOwner) ***
Arguments
name
type
description
previousOwner
address
indexed
newOwner
address
indexed

event Paused

***MasterWombatV2.Paused(account) ***
Arguments
name
type
description
account
address
not indexed

event Set

***MasterWombatV2.Set(pid, allocPoint, rewarder, overwrite) ***
Arguments
name
type
description
pid
uint256
indexed
allocPoint
uint256
not indexed
rewarder
address
indexed
overwrite
bool
not indexed

event Unpaused

***MasterWombatV2.Unpaused(account) ***
Arguments
name
type
description
account
address
not indexed

event UpdateEmissionPartition

***MasterWombatV2.UpdateEmissionPartition(user, basePartition, boostedPartition) ***
Arguments
name
type
description
user
address
indexed
basePartition
uint256
not indexed
boostedPartition
uint256
not indexed

event UpdateEmissionRate

***MasterWombatV2.UpdateEmissionRate(user, womPerSec) ***
Arguments
name
type
description
user
address
indexed
womPerSec
uint256
not indexed

event UpdatePool

***MasterWombatV2.UpdatePool(pid, lastRewardTimestamp, lpSupply, accWomPerShare) ***
Arguments
name
type
description
pid
uint256
indexed
lastRewardTimestamp
uint256
not indexed
lpSupply
uint256
not indexed
accWomPerShare
uint256
not indexed

event UpdateVeWOM

***MasterWombatV2.UpdateVeWOM(user, oldVeWOM, newVeWOM) ***
Arguments
name
type
description
user
address
indexed
oldVeWOM
address
not indexed
newVeWOM
address
not indexed

event Withdraw

***MasterWombatV2.Withdraw(user, pid, amount) ***
Arguments
name
type
description
user
address
indexed
pid
uint256
indexed
amount
uint256
not indexed

function add

***MasterWombatV2.add(_allocPoint, _lpToken, _rewarder) ***
Notice: Add a new lp to the pool. Can only be called by the owner.
Details: Reverts if the same LP token is added more than once.
Arguments
name
type
description
_allocPoint
uint96
allocation points for this LP
_lpToken
address
the corresponding lp token
_rewarder
address
the rewarder

function basePartition

MasterWombatV2.basePartition() view
Outputs
name
type
description
​
uint16
​

function boostedPartition

MasterWombatV2.boostedPartition() view
Outputs
name
type
description
​
uint256
​

function deposit

***MasterWombatV2.deposit(_pid, _amount) ***
Notice: Deposit LP tokens to MasterChef for WOM allocation.
Details: it is possible to call this function with _amount == 0 to claim current rewards
Arguments
name
type
description
_pid
uint256
the pool id
_amount
uint256
amount to deposit
Outputs
name
type
description
​
uint256
​
​
uint256[]
​

function depositFor

***MasterWombatV2.depositFor(_pid, _amount, _user) ***
Notice: Deposit LP tokens to MasterChef for WOM allocation on behalf of user
Details: user must initiate transaction from masterchef
Arguments
name
type
description
_pid
uint256
the pool id
_amount
uint256
amount to deposit
_user
address
the user being represented

function emergencyWithdraw

***MasterWombatV2.emergencyWithdraw(_pid) ***
Notice: Withdraw without caring about rewards. EMERGENCY ONLY.
Arguments
name
type
description
_pid
uint256
the pool id

function emergencyWomWithdraw

***MasterWombatV2.emergencyWomWithdraw() ***
Notice: In case we need to manually migrate WOM funds from MasterChef Sends all remaining wom from the contract to the owner

function getAssetPid

MasterWombatV2.getAssetPid(asset) view
Arguments
name
type
description
asset
address
​
Outputs
name
type
description
​
uint256
​

function initialize

***MasterWombatV2.initialize(_wom, _veWom, _womPerSec, _basePartition, _startTimestamp) ***
Arguments
name
type
description
_wom
address
​
_veWom
address
​
_womPerSec
uint104
​
_basePartition
uint16
​
_startTimestamp
uint40
​

function massUpdatePools

***MasterWombatV2.massUpdatePools() ***
Notice: Update reward variables for all pools.
Details: Be careful of gas spending!

function migrate

***MasterWombatV2.migrate(_pids) ***
Notice: Helper function to migrate fund from multiple pools to the new MasterWombat.user must initiate transaction from masterchef
Details: Assume the orginal MasterWombat has stopped emisions hence we can skip updatePool() to save gas cost
Arguments
name
type
description
_pids
uint256[]
​

function multiClaim

***MasterWombatV2.multiClaim(_pids) ***
Notice: claims rewards for multiple pids
Arguments
name
type
description
_pids
uint256[]
array pids, pools to claim
Outputs
name
type
description
​
uint256
​
​
uint256[]
​
​
uint256[][]
​

function owner

MasterWombatV2.owner() view
Details: Returns the address of the current owner.
Outputs
name
type
description
​
address
​

function pause

***MasterWombatV2.pause() ***
Details: pause pool, restricting certain operations

function paused

MasterWombatV2.paused() view
Details: Returns true if the contract is paused, and false otherwise.
Outputs
name
type
description
​
bool
​

function pendingTokens

MasterWombatV2.pendingTokens(_pid, _user) view
Notice: View function to see pending WOMs on frontend.
Arguments
name
type
description
_pid
uint256
the pool id
_user
address
the user address
Outputs
name
type
description
pendingRewards
uint256
​
bonusTokenAddresses
address[]
​
bonusTokenSymbols
string[]
​
pendingBonusRewards
uint256[]
​

function poolInfo

MasterWombatV2.poolInfo() view
Arguments
name
type
description
​
uint256
​
Outputs
name
type
description
lpToken
address
​
allocPoint
uint96
​
rewarder
address
​
sumOfFactors
uint256
​
accWomPerShare
uint104
​
accWomPerFactorShare
uint104
​
lastRewardTimestamp
uint40
​

function poolLength

MasterWombatV2.poolLength() view
Notice: returns pool length
Outputs
name
type
description
​
uint256
​

function renounceOwnership

***MasterWombatV2.renounceOwnership() ***
Details: Leaves the contract without owner. It will not be possible to call onlyOwner functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.

function rewarderBonusTokenInfo

MasterWombatV2.rewarderBonusTokenInfo(_pid) view
Notice: Get bonus token info from the rewarder contract for a given pool, if it is a double reward farm
Arguments
name
type
description
_pid
uint256
the pool id
Outputs
name
type
description
bonusTokenAddresses
address[]
​
bonusTokenSymbols
string[]
​

function set

***MasterWombatV2.set(_pid, _allocPoint, _rewarder, overwrite) ***
Notice: Update the given pool's WOM allocation point. Can only be called by the owner.
Arguments
name
type
description
_pid
uint256
the pool id
_allocPoint
uint96
allocation points
_rewarder
address
the rewarder
overwrite
bool
overwrite rewarder?

function setNewMasterWombat

***MasterWombatV2.setNewMasterWombat(_newMasterWombat) ***
Arguments
name
type
description
_newMasterWombat
address
​

function setVeWom

***MasterWombatV2.setVeWom(_newVeWom) ***
Notice: updates veWom address
Arguments
name
type
description
_newVeWom
address
the new VeWom address

function startTimestamp

MasterWombatV2.startTimestamp() view
Outputs
name
type
description
​
uint40
​

function totalAllocPoint

MasterWombatV2.totalAllocPoint() view
Outputs
name
type
description
​
uint96
​

function transferOwnership

***MasterWombatV2.transferOwnership(newOwner) ***
Details: Transfers ownership of the contract to a new account (newOwner). Can only be called by the current owner.
Arguments
name
type
description
newOwner
address
​

function unpause

***MasterWombatV2.unpause() ***
Details: unpause pool, enabling certain operations

function updateEmissionPartition

***MasterWombatV2.updateEmissionPartition(_basePartition) ***
Notice: updates emission partition
Arguments
name
type
description
_basePartition
uint16
the future base partition

function updateEmissionRate

***MasterWombatV2.updateEmissionRate(_womPerSec) ***
Notice: updates emission rate
Details: Pancake has to add hidden dummy pools inorder to alter the emission,here we make it simple and transparent to all.
Arguments
name
type
description
_womPerSec
uint104
wom amount to be updated

function updateFactor

***MasterWombatV2.updateFactor(_user, _newVeWomBalance) ***
Notice: updates factor after any veWom token operation (minting/burning)
Details: can only be called by veWom
Arguments
name
type
description
_user
address
the user to update
_newVeWomBalance
uint256
the amount of veWOM

function updatePool

***MasterWombatV2.updatePool(_pid) ***
Notice: Update reward variables of the given pool to be up-to-date.
Arguments
name
type
description
_pid
uint256
the pool id

function userInfo

MasterWombatV2.userInfo(, ) view
Arguments
name
type
description
​
uint256
​
​
address
​
Outputs
name
type
description
amount
uint128
​
factor
uint128
​
rewardDebt
uint128
​
pendingWom
uint128
​

function veWom

MasterWombatV2.veWom() view
Outputs
name
type
description
​
address
​

function withdraw

***MasterWombatV2.withdraw(_pid, _amount) ***
Notice: Withdraw LP tokens from MasterWombat.Automatically harvest pending rewards and sends to user
Arguments
name
type
description
_pid
uint256
the pool id
_amount
uint256
the amount to withdraw
Outputs
name
type
description
​
uint256
​
​
uint256[]
​

function wom