gauge-proxy

Created Diff never expires
3 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
119 lines
4 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
120 lines
# @version 0.2.8
# @version 0.2.15
"""
"""
@title Curve LiquidityGaugeV2 Ownerhip Proxy
@title Curve LiquidityGaugeV2 Ownership Proxy
@author Curve Finance
@author This version was modified starting from Curve Finance's DAO contracts
@license MIT
@license MIT
"""
"""


interface LiquidityGauge:
interface LiquidityGauge:
def set_rewards(_reward_contract: address, _sigs: bytes32, _reward_tokens: address[8]): nonpayable
def set_rewards(_reward_contract: address, _sigs: bytes32, _reward_tokens: address[8]): nonpayable
def set_killed(_is_killed: bool): nonpayable
def set_killed(_is_killed: bool): nonpayable
def commit_transfer_ownership(addr: address): nonpayable
def commit_transfer_ownership(addr: address): nonpayable
def accept_transfer_ownership(): nonpayable
def accept_transfer_ownership(): nonpayable




event CommitAdmins:
event CommitAdmins:
ownership_admin: address
ownership_admin: address
emergency_admin: address
emergency_admin: address


event ApplyAdmins:
event ApplyAdmins:
ownership_admin: address
ownership_admin: address
emergency_admin: address
emergency_admin: address




ownership_admin: public(address)
ownership_admin: public(address)
emergency_admin: public(address)
emergency_admin: public(address)


future_ownership_admin: public(address)
future_ownership_admin: public(address)
future_emergency_admin: public(address)
future_emergency_admin: public(address)




@external
@external
def __init__(_ownership_admin: address, _emergency_admin: address):
def __init__(_ownership_admin: address, _emergency_admin: address):
self.ownership_admin = _ownership_admin
self.ownership_admin = _ownership_admin
self.emergency_admin = _emergency_admin
self.emergency_admin = _emergency_admin




@external
@external
def commit_set_admins(_o_admin: address, _e_admin: address):
def commit_set_admins(_o_admin: address, _e_admin: address):
"""
"""
@notice Set ownership admin to `_o_admin` and emergency admin to `_e_admin`
@notice Set ownership admin to `_o_admin` and emergency admin to `_e_admin`
@param _o_admin Ownership admin
@param _o_admin Ownership admin
@param _e_admin Emergency admin
@param _e_admin Emergency admin
"""
"""
assert msg.sender == self.ownership_admin, "Access denied"
assert msg.sender == self.ownership_admin, "Access denied"


self.future_ownership_admin = _o_admin
self.future_ownership_admin = _o_admin
self.future_emergency_admin = _e_admin
self.future_emergency_admin = _e_admin


log CommitAdmins(_o_admin, _e_admin)
log CommitAdmins(_o_admin, _e_admin)




@external
@external
def accept_set_admins():
def accept_set_admins():
"""
"""
@notice Apply the effects of `commit_set_admins`
@notice Apply the effects of `commit_set_admins`
@dev Only callable by the new owner admin
@dev Only callable by the new owner admin
"""
"""
assert msg.sender == self.future_ownership_admin, "Access denied"
assert msg.sender == self.future_ownership_admin, "Access denied"


e_admin: address = self.future_emergency_admin
e_admin: address = self.future_emergency_admin
self.ownership_admin = msg.sender
self.ownership_admin = msg.sender
self.emergency_admin = e_admin
self.emergency_admin = e_admin


log ApplyAdmins(msg.sender, e_admin)
log ApplyAdmins(msg.sender, e_admin)




@external
@external
@nonreentrant('lock')
@nonreentrant('lock')
def commit_transfer_ownership(_gauge: address, new_owner: address):
def commit_transfer_ownership(_gauge: address, new_owner: address):
"""
"""
@notice Transfer ownership for liquidity gauge `_gauge` to `new_owner`
@notice Transfer ownership for liquidity gauge `_gauge` to `new_owner`
@param _gauge Gauge which ownership is to be transferred
@param _gauge Gauge which ownership is to be transferred
@param new_owner New gauge owner address
@param new_owner New gauge owner address
"""
"""
assert msg.sender == self.ownership_admin, "Access denied"
assert msg.sender == self.ownership_admin, "Access denied"
LiquidityGauge(_gauge).commit_transfer_ownership(new_owner)
LiquidityGauge(_gauge).commit_transfer_ownership(new_owner)




@external
@external
@nonreentrant('lock')
@nonreentrant('lock')
def accept_transfer_ownership(_gauge: address):
def accept_transfer_ownership(_gauge: address):
"""
"""
@notice Apply transferring ownership of `_gauge`
@notice Apply transferring ownership of `_gauge`
@param _gauge Gauge address
@param _gauge Gauge address
"""
"""
LiquidityGauge(_gauge).accept_transfer_ownership()
LiquidityGauge(_gauge).accept_transfer_ownership()




@external
@external
@nonreentrant('lock')
@nonreentrant('lock')
def set_killed(_gauge: address, _is_killed: bool):
def set_killed(_gauge: address, _is_killed: bool):
"""
"""
@notice Set the killed status for `_gauge`
@notice Set the killed status for `_gauge`
@dev When killed, the gauge always yields a rate of 0 and so cannot mint CRV
@dev When killed, the gauge always yields a rate of 0 and so cannot mint CRV
@param _gauge Gauge address
@param _gauge Gauge address
@param _is_killed Killed status to set
@param _is_killed Killed status to set
"""
"""
assert msg.sender in [self.ownership_admin, self.emergency_admin], "Access denied"
assert msg.sender in [self.ownership_admin, self.emergency_admin], "Access denied"


LiquidityGauge(_gauge).set_killed(_is_killed)
LiquidityGauge(_gauge).set_killed(_is_killed)




@external
@external
@nonreentrant('lock')
@nonreentrant('lock')
def set_rewards(_gauge: address, _reward_contract: address, _sigs: bytes32, _reward_tokens: address[8]):
def set_rewards(_gauge: address, _reward_contract: address, _sigs: bytes32, _reward_tokens: address[8]):
"""
"""
@notice Set the active reward contract for `_gauge`
@notice Set the active reward contract for `_gauge`
@param _gauge Gauge address
@param _gauge Gauge address
@param _reward_contract Reward contract address. Set to ZERO_ADDRESS to
@param _reward_contract Reward contract address. Set to ZERO_ADDRESS to
disable staking.
disable staking.
@param _sigs Four byte selectors for staking, withdrawing and claiming,
@param _sigs Four byte selectors for staking, withdrawing and claiming,
right padded with zero bytes. If the reward contract can
right padded with zero bytes. If the reward contract can
be claimed from but does not require staking, the staking
be claimed from but does not require staking, the staking
and withdraw selectors should be set to 0x00
and withdraw selectors should be set to 0x00
@param _reward_tokens List of claimable tokens for this reward contract
@param _reward_tokens List of claimable tokens for this reward contract
"""
"""
assert msg.sender == self.ownership_admin, "Access denied"
assert msg.sender == self.ownership_admin, "Access denied"


LiquidityGauge(_gauge).set_rewards(_reward_contract, _sigs, _reward_tokens)
LiquidityGauge(_gauge).set_rewards(_reward_contract, _sigs, _reward_tokens)