Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60206105 | 14285096 | 985 days ago | IN | 0 ETH | 0.01013295 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xB250A90D...ddF220BD6 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Vyper_contract
Compiler Version
vyper:0.3.1
Contract Source Code (Vyper language format)
# @version 0.3.1 """ @title Voting Escrow Delegation Proxy @author Curve Finance @license MIT """ from vyper.interfaces import ERC20 interface VeDelegation: def adjusted_balance_of(_account: address) -> uint256: view event CommitAdmins: ownership_admin: address emergency_admin: address event ApplyAdmins: ownership_admin: address emergency_admin: address event DelegationSet: delegation: address delegation: public(address) voting_escrow: public(address) emergency_admin: public(address) ownership_admin: public(address) future_emergency_admin: public(address) future_ownership_admin: public(address) @external def __init__(_delegation: address, _voting_escrow: address, _o_admin: address, _e_admin: address): self.delegation = _delegation self.voting_escrow = _voting_escrow self.ownership_admin = _o_admin self.emergency_admin = _e_admin log DelegationSet(_delegation) @view @external def adjusted_balance_of(_account: address) -> uint256: """ @notice Get the adjusted veCRV balance from the active boost delegation contract @param _account The account to query the adjusted veCRV balance of @return veCRV balance """ _delegation: address = self.delegation if _delegation == ZERO_ADDRESS: return ERC20(self.voting_escrow).balanceOf(_account) return VeDelegation(_delegation).adjusted_balance_of(_account) @external def kill_delegation(): """ @notice Set delegation contract to 0x00, disabling boost delegation @dev Callable by the emergency admin in case of an issue with the delegation logic """ assert msg.sender in [self.ownership_admin, self.emergency_admin] self.delegation = ZERO_ADDRESS log DelegationSet(ZERO_ADDRESS) @external def set_delegation(_delegation: address): """ @notice Set the delegation contract @dev Only callable by the ownership admin @param _delegation `VotingEscrowDelegation` deployment address """ assert msg.sender == self.ownership_admin # call `adjusted_balance_of` to make sure it works VeDelegation(_delegation).adjusted_balance_of(msg.sender) self.delegation = _delegation log DelegationSet(_delegation) @external def commit_set_admins(_o_admin: address, _e_admin: address): """ @notice Set ownership admin to `_o_admin` and emergency admin to `_e_admin` @param _o_admin Ownership admin @param _e_admin Emergency admin """ assert msg.sender == self.ownership_admin, "Access denied" self.future_ownership_admin = _o_admin self.future_emergency_admin = _e_admin log CommitAdmins(_o_admin, _e_admin) @external def apply_set_admins(): """ @notice Apply the effects of `commit_set_admins` """ assert msg.sender == self.ownership_admin, "Access denied" _o_admin: address = self.future_ownership_admin _e_admin: address = self.future_emergency_admin self.ownership_admin = _o_admin self.emergency_admin = _e_admin log ApplyAdmins(_o_admin, _e_admin)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"CommitAdmins","inputs":[{"name":"ownership_admin","type":"address","indexed":false},{"name":"emergency_admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyAdmins","inputs":[{"name":"ownership_admin","type":"address","indexed":false},{"name":"emergency_admin","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"name":"DelegationSet","inputs":[{"name":"delegation","type":"address","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_delegation","type":"address"},{"name":"_voting_escrow","type":"address"},{"name":"_o_admin","type":"address"},{"name":"_e_admin","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"adjusted_balance_of","inputs":[{"name":"_account","type":"address"}],"outputs":[{"name":"","type":"uint256"}],"gas":9686},{"stateMutability":"nonpayable","type":"function","name":"kill_delegation","inputs":[],"outputs":[],"gas":26863},{"stateMutability":"nonpayable","type":"function","name":"set_delegation","inputs":[{"name":"_delegation","type":"address"}],"outputs":[],"gas":41901},{"stateMutability":"nonpayable","type":"function","name":"commit_set_admins","inputs":[{"name":"_o_admin","type":"address"},{"name":"_e_admin","type":"address"}],"outputs":[],"gas":78289},{"stateMutability":"nonpayable","type":"function","name":"apply_set_admins","inputs":[],"outputs":[],"gas":82241},{"stateMutability":"view","type":"function","name":"delegation","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2610},{"stateMutability":"view","type":"function","name":"voting_escrow","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2640},{"stateMutability":"view","type":"function","name":"emergency_admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2670},{"stateMutability":"view","type":"function","name":"ownership_admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2700},{"stateMutability":"view","type":"function","name":"future_emergency_admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2730},{"stateMutability":"view","type":"function","name":"future_ownership_admin","inputs":[],"outputs":[{"name":"","type":"address"}],"gas":2760}]
Deployed Bytecode
0x600436101561000d57610445565b60046000601c376000513461044b5763bbf7408a81186100d5576004358060a01c61044b5760e052600054610100526101005161008d576370a082316101205260e051610140526020610120602461013c6001545afa610072573d600060003e3d6000fd5b601f3d111561044b57610120516101605260206101606100d3565b63bbf7408a6101205260e051610140526020610120602461013c610100515afa6100bc573d600060003e3d6000fd5b601f3d111561044b57610120516101605260206101605bf35b634b74efb78118610167576003546101005260025461012052600060e05260e060c060006002818352015b60c0516020026101000151331861011a576001835261012a565b8151600101808352811415610100575b50505060e0511561044b5760006000557f963001cf3a0c5cdcfc26b2710abe2fe859b3565482158b7cb34f59b6eaff5212600060e052602060e0a1005b63f4b446a381186101f8576004358060a01c61044b5760e052600354331861044b5763bbf7408a6101005233610120526020610100602461011c60e0515afa6101b5573d600060003e3d6000fd5b601f3d111561044b576101005060e0516000557f963001cf3a0c5cdcfc26b2710abe2fe859b3565482158b7cb34f59b6eaff521260e051610100526020610100a1005b63e3a8d3ab81186102e3576004358060a01c61044b5760e0526024358060a01c61044b5761010052600354331461029e57600d610120527f4163636573732064656e696564000000000000000000000000000000000000006101405261012050610120518061014001818260206001820306601f82010390500336823750506308c379a060e0526020610100526101205160206001820306601f820103905060440160fcfd5b60e051600555610100516004557f8f5425b30e6270c1011973f0ccf6d7795cc10623631523e4c45d2837d337d57460e0516101205261010051610140526040610120a1005b636189392181186103b957600354331461036757600d60e0527f4163636573732064656e696564000000000000000000000000000000000000006101005260e05060e0518061010001818260206001820306601f82010390500336823750506308c379a060a052602060c05260e05160206001820306601f820103905060440160bcfd5b60055460e0526004546101005260e051600355610100516002557fe8d7597c306457cd1fa4eb0e165a1a4c3aea9808e274ea97c6b5d9f73a3c477f60e0516101205261010051610140526040610120a1005b63df5cf72381186103d05760005460e052602060e0f35b63dfe0503181186103e75760015460e052602060e0f35b63680c778381186103fe5760025460e052602060e0f35b6347c8715f81186104155760035460e052602060e0f35b635866507a811861042c5760045460e052602060e0f35b633c2fcbf481186104435760055460e052602060e0f35b505b60006000fd5b600080fd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.