Admin Controls
The CurveOwnershipAgent is the current admin
of the VotingEscrow. As such, a change to these parameters would require a successfully passed DAO vote.
Changing SmartWalletChecker¶
commit_smart_wallet_checker
¶
VotingEscrow.commit_smart_wallet_checker(addr: address):
Guarded Method
This function is only callable by the admin
of the contract.
Function to commit a new smart wallet checker contract address to addr
. Changes need to be applied via apply_smart_contract_wallet
.
Input | Type | Description |
---|---|---|
addr | address | New SmartWalletChecker Contract |
Source code
future_smart_wallet_checker: public(address)
@external
def commit_smart_wallet_checker(addr: address):
"""
@notice Set an external contract to check for approved smart contract wallets
@param addr Address of Smart contract checker
"""
assert msg.sender == self.admin
self.future_smart_wallet_checker = addr
apply_smart_wallet_checker
¶
VotingEscrow.apply_smart_wallet_checker():
Guarded Method
This function is only callable by the admin
of the contract.
Function to apply the new SmartWalletChecker address.
Source code
future_smart_wallet_checker: public(address)
smart_wallet_checker: public(address)
@external
def apply_smart_wallet_checker():
"""
@notice Apply setting external contract to check approved smart contract wallets
"""
assert msg.sender == self.admin
self.smart_wallet_checker = self.future_smart_wallet_checker
Admin Ownership¶
commit_transfer_ownership
¶
VotingEscrow.commit_transfer_ownership(addr: address):
Guarded Method
This function is only callable by the admin
of the contract.
Function to commit the ownership of the contract to addr
. Changes need to be applied via apply_transfer_ownership
Emits: CommitOwnership
Input | Type | Description |
---|---|---|
addr | address | address commit the transfer of ownership to |
Source code
event CommitOwnership:
admin: address
admin: public(address) # Can and will be a smart contract
future_admin: public(address)
@external
def commit_transfer_ownership(addr: address):
"""
@notice Transfer ownership of VotingEscrow contract to `addr`
@param addr Address to have ownership transferred to
"""
assert msg.sender == self.admin # dev: admin only
self.future_admin = addr
log CommitOwnership(addr)
apply_transfer_ownership
¶
VotingEscrow.apply_transfer_ownership():
Guarded Method
This function is only callable by the admin
of the contract.
Function to apply the new ownership.
Emits: ApplyOwnership
Source code
event ApplyOwnership:
admin: address
admin: public(address) # Can and will be a smart contract
future_admin: public(address)
@external
def apply_transfer_ownership():
"""
@notice Apply ownership transfer
"""
assert msg.sender == self.admin # dev: admin only
_admin: address = self.future_admin
assert _admin != ZERO_ADDRESS # dev: admin not set
self.admin = _admin
log ApplyOwnership(_admin)