ETH Price: $3,890.50 (-1.04%)

Contract

0x775F09d6f3c8D2182DFA8bce8628acf51105653c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
209667522024-10-14 22:21:1152 days ago1728944471  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Protocol Address Provider

Compiler Version
vyper:0.3.7

Optimization Enabled:
N/A

Other Settings:
default evmVersion, GNU AGPLv3 license

Contract Source Code (Vyper language format)

# @version 0.3.7

"""
@title Protocol Address Provider
@license GNU AGPLv3
@author yearn.finance
@notice
    Protocol Address provider for the periphery contracts for the Yearn V3 system.
"""

interface IAddressProvider:
    def getAddress(address_id: bytes32) -> address: view

#### EVENTS ####

event UpdatedAddress:
    addressId: indexed(bytes32)
    oldAddress: indexed(address)
    newAddress: indexed(address)

event UpdatePendingGovernance:
    newPendingGovernance: indexed(address)

event UpdateGovernance:
    previousGovernance: indexed(address)
    newGovernance: indexed(address)

#### CONSTANTS ####

# General Periphery Contracts.
ROUTER: constant(bytes32) = keccak256("Router")
KEEPER: constant(bytes32) = keccak256("Keeper")
APR_ORACLE: constant(bytes32) = keccak256("APR Oracle")
REPLACEMENT: constant(bytes32) = keccak256("Replacement")
RELEASE_REGISTRY: constant(bytes32) = keccak256("Release Registry")
BASE_FEE_PROVIDER: constant(bytes32) = keccak256("Base Fee Provider")
COMMON_REPORT_TRIGGER: constant(bytes32) = keccak256("Common Report Trigger")

# Periphery Factory contracts.
AUCTION_FACTORY: constant(bytes32) = keccak256("Auction Factory")
SPLITTER_FACTORY: constant(bytes32) = keccak256("Splitter Factory")
REGISTRY_FACTORY: constant(bytes32) = keccak256("Registry Factory")
ACCOUNTANT_FACTORY: constant(bytes32) = keccak256("Accountant Factory")
ROLE_MANAGER_FACTORY: constant(bytes32) = keccak256("Role Manager Factory")
DEBT_ALLOCATOR_FACTORY: constant(bytes32) = keccak256("Debt Allocator Factory")

name: public(constant(String[34])) = "Yearn V3 Protocol Address Provider"

#### STORAGE ####

# Mapping of the identifier to the current address.
addresses: HashMap[bytes32, address]

# Address that can set or change the fee configs.
governance: public(address)
# Pending governance waiting to be accepted.
pendingGovernance: public(address)

@external
def __init__(
    governance: address
):
    """
    @notice Deploys the address provider and sets up governance.
    @param governance The address to initially set for governance.
    """
    assert governance != empty(address)
    self.governance = governance

########## GETTERS ##########

@view
@external
def getAddress(address_id: bytes32) -> address:
    """
    @notice Returns an address by its identifier..
    @param address_id The id to get the address for.
    @return The address registered for the id.
    """
    return self._get_address(address_id)

@view
@internal
def _get_address(address_id: bytes32) -> address:
    return self.addresses[address_id]

@view
@external
def getReplacement() -> address:
    """
    @notice Get the replacement of the address provider if it exists.
        This will return address 0 if this is the latest version.
    @return The replacement address provider if any.
    """
    return self._get_address(REPLACEMENT)

@view
@external
def getRouter() -> address:
    """
    @notice Get the current Yearn 4626 Router.
    @return Current Yearn 4626 Router
    """
    return self._get_address(ROUTER)

@view
@external
def getKeeper() -> address:
    """
    @notice Get the current generic Keeper.
    @return Current generic Keeper.
    """
    return self._get_address(KEEPER)

@view
@external
def getAprOracle() -> address:
    """
    @notice Get the current APR Oracle.
    @return Current APR Oracle address.
    """
    return self._get_address(APR_ORACLE)

@view
@external
def getReleaseRegistry() -> address:
    """
    @notice Get the current Release Registry.
    @return Current Release Registry address
    """
    return self._get_address(RELEASE_REGISTRY)

@view
@external
def getBaseFeeProvider() -> address:
    """
    @notice Get the current Base Fee Provider.
    @return Current Base Fee Provider address.
    """
    return self._get_address(BASE_FEE_PROVIDER)

@view
@external
def getCommonReportTrigger() -> address:
    """
    @notice Get the current Common Report Trigger.
    @return Current Common Report Trigger address.
    """
    return self._get_address(COMMON_REPORT_TRIGGER)

@view
@external
def getAuctionFactory() -> address:
    """
    @notice Get the current Auction Factory.
    @return Current Auction Factory address.
    """
    return self._get_address(AUCTION_FACTORY)

@view
@external
def getSplitterFactory() -> address:
    """
    @notice Get the current Splitter Factory.
    @return Current Splitter Factory address.
    """
    return self._get_address(SPLITTER_FACTORY)

@view
@external
def getRegistryFactory() -> address:
    """
    @notice Get the current Registry Factory.
    @return Current Registry Factory address.
    """
    return self._get_address(REGISTRY_FACTORY)

@view
@external
def getDebtAllocatorFactory() -> address:
    """
    @notice Get the current Debt Allocator Factory.
    @return Current Debt Allocator Factory address.
    """
    return self._get_address(DEBT_ALLOCATOR_FACTORY)

@view
@external
def getAccountantFactory() -> address:
    """
    @notice Get the current Accountant Factory.
    @return Current Accountant Factory address.
    """
    return self._get_address(ACCOUNTANT_FACTORY)

@view
@external
def getRoleManagerFactory() -> address:
    """
    @notice Get the current Role Manager Factory.
    @return Current Role Manager Factory address.
    """
    return self._get_address(ROLE_MANAGER_FACTORY)


########## SETTERS ##########

@external
def setAddress(address_id: bytes32, new_address: address):
    """
    @notice Sets an address to a given id.
    @dev Must be called by the governance.
    @param address_id The id to set.
    @param new_address The address to set to id.
    """
    self._set_address(address_id, new_address)
    
@internal
def _set_address(address_id: bytes32, new_address: address):
    """
    @notice Internal function to transfer the current address
        for an id and emit the corresponding log
    @param address_id The id to set.
    @param new_address The address to set to id.
    """
    assert msg.sender == self.governance, "!governance"
    old_address: address = self.addresses[address_id]
    self.addresses[address_id] = new_address

    log UpdatedAddress(address_id, old_address, new_address)

@external
def setReplacement(new_address: address):
    """
    @notice Set the replacement address provider.
    @dev Must be called by the governance.
    @param new_address of the replacement address provider.
    """
    self._set_address(REPLACEMENT, new_address)

@external
def setRouter(new_address: address):
    """
    @notice Sets a new address for the Yearn 4626 Router.
    @dev Must be called by the governance.
    @param new_address The new Router.
    """
    self._set_address(ROUTER, new_address)

@external
def setKeeper(new_address: address):
    """
    @notice Sets a new address for the generic Keeper.
    @dev Must be called by the governance.
    @param new_address The new Keeper.
    """
    self._set_address(KEEPER, new_address)

@external
def setAprOracle(new_address: address):
    """
    @notice Sets a new address for the APR Oracle.
    @dev Must be called by the governance.
    @param new_address The new APR Oracle.
    """
    self._set_address(APR_ORACLE, new_address)

@external
def setReleaseRegistry(new_address: address):
    """
    @notice Sets a new address for the Release Registry.
    @dev Must be called by the governance.
    @param new_address The new Release Registry.
    """
    self._set_address(RELEASE_REGISTRY, new_address)

@external
def setBaseFeeProvider(new_address: address):
    """
    @notice Sets a new address for the Base Fee Provider.
    @dev Must be called by the governance.
    @param new_address The new Base Fee Provider.
    """
    self._set_address(BASE_FEE_PROVIDER, new_address)

@external
def setCommonReportTrigger(new_address: address):
    """
    @notice Sets a new address for the Common Report Trigger.
    @dev Must be called by the governance.
    @param new_address The new Common Report Trigger.
    """
    self._set_address(COMMON_REPORT_TRIGGER, new_address)

@external
def setAuctionFactory(new_address: address):
    """
    @notice Sets a new address for the Auction Factory.
    @dev Must be called by the governance.
    @param new_address The new Auction Factory.
    """
    self._set_address(AUCTION_FACTORY, new_address)

@external
def setSplitterFactory(new_address: address):
    """
    @notice Sets a new address for the Splitter Factory.
    @dev Must be called by the governance.
    @param new_address The new Splitter Factory.
    """
    self._set_address(SPLITTER_FACTORY, new_address)

@external
def setRegistryFactory(new_address: address):
    """
    @notice Sets a new address for the Registry Factory.
    @dev Must be called by the governance.
    @param new_address The new Registry Factory.
    """
    self._set_address(REGISTRY_FACTORY, new_address)

@external
def setDebtAllocatorFactory(new_address: address):
    """
    @notice Sets a new address for the Debt Allocator Factory.
    @dev Must be called by the governance.
    @param new_address The new Debt Allocator Factory.
    """
    self._set_address(DEBT_ALLOCATOR_FACTORY, new_address)

@external
def setAccountantFactory(new_address: address):
    """
    @notice Sets a new address for the Accountant Factory.
    @dev Must be called by the governance.
    @param new_address The new Accountant Factory.
    """
    self._set_address(ACCOUNTANT_FACTORY, new_address)

@external
def setRoleManagerFactory(new_address: address):
    """
    @notice Sets a new address for the Role Manager Factory.
    @dev Must be called by the governance.
    @param new_address The new Role Manager Factory.
    """
    self._set_address(ROLE_MANAGER_FACTORY, new_address)


########## GOVERNANCE ##########

@external
def transferGovernance(new_governance: address):
    """
    @notice Set the governance address
    @param new_governance The new governance address
    """
    assert msg.sender == self.governance, "!governance"
    self.pendingGovernance = new_governance

    log UpdatePendingGovernance(new_governance)

@external
def acceptGovernance():
    """
    @notice Accept the governance address
    """
    assert msg.sender == self.pendingGovernance, "!pending governance"
    old_governance: address = self.governance
    self.governance = msg.sender
    self.pendingGovernance = empty(address)

    log UpdateGovernance(old_governance, msg.sender)

Contract Security Audit

Contract ABI

[{"name":"UpdatedAddress","inputs":[{"name":"addressId","type":"bytes32","indexed":true},{"name":"oldAddress","type":"address","indexed":true},{"name":"newAddress","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"UpdatePendingGovernance","inputs":[{"name":"newPendingGovernance","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"UpdateGovernance","inputs":[{"name":"previousGovernance","type":"address","indexed":true},{"name":"newGovernance","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"governance","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"getAddress","inputs":[{"name":"address_id","type":"bytes32"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getReplacement","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getRouter","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getKeeper","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getAprOracle","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getReleaseRegistry","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getBaseFeeProvider","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getCommonReportTrigger","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getAuctionFactory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getSplitterFactory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getRegistryFactory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getDebtAllocatorFactory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getAccountantFactory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getRoleManagerFactory","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"nonpayable","type":"function","name":"setAddress","inputs":[{"name":"address_id","type":"bytes32"},{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setReplacement","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setRouter","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setKeeper","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setAprOracle","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setReleaseRegistry","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setBaseFeeProvider","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setCommonReportTrigger","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setAuctionFactory","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setSplitterFactory","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setRegistryFactory","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setDebtAllocatorFactory","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setAccountantFactory","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setRoleManagerFactory","inputs":[{"name":"new_address","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"transferGovernance","inputs":[{"name":"new_governance","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"acceptGovernance","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"governance","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"pendingGovernance","inputs":[],"outputs":[{"name":"","type":"address"}]}]

6020610bf06000396000518060a01c610beb5760405234610beb5760405115610beb57604051600155610bb061003a61000039610bb0610000f36003361161000c57610ac2565b60003560e01c34610b9e576321f8a72181186100405760243610610b9e57602060043560405261003c6060610ac8565b6060f35b635550591481186100875760043610610b9e5760207fce81d13dd2630a54efd7ae72310ad98f474551f2f44265e54756fe0a7b200fc56040526100836060610ac8565b6060f35b63b0f479a181186100ce5760043610610b9e5760207f3f0593d90c203cedd52beaf1f2e33ef6958a48ee6bc9180eb653d00d34ee618d6040526100ca6060610ac8565b6060f35b63391b6f4e81186101155760043610610b9e5760207f4f78afe9dfc9a0cb0441c27b9405070cd2a48b490636a7bdd09f355e33a5d7de6040526101116060610ac8565b6060f35b63a64d05cd811861015c5760043610610b9e5760207f92308d754fefe74f180a813f808c0966735868624696943110ce3b77ef4da6fc6040526101586060610ac8565b6060f35b6319be507781186101a35760043610610b9e5760207fce82990224163c7d18d33fc380cc4491cf9e5be3d1cb6d961d5b41b62920e24860405261019f6060610ac8565b6060f35b63ab83d6ce81186101ea5760043610610b9e5760207f2830bb8c074007e3642ba35a7f4a62fe9e79b8ed4d17d572f08ab91d1cc3afba6040526101e66060610ac8565b6060f35b63ac5bd72881186102315760043610610b9e5760207f905c20daa0ccca45a243edd43b8376998eee600a326f91db7b09aa142096f33f60405261022d6060610ac8565b6060f35b6345d33dfa81186102785760043610610b9e5760207fdf24db24a1d08cc7d31d7b228292b963835737693e825a0f4000fd880cb376216040526102746060610ac8565b6060f35b63b6773fa081186102bf5760043610610b9e5760207fcc5480089f75bfa813c425713b4e49e8975cb68f52703570bcfdc6134dd5e31a6040526102bb6060610ac8565b6060f35b63fbb9a7d881186103065760043610610b9e5760207f8975f7470d8885db19a03ab19387b0d032119bec5e894c777643a8eedb564af46040526103026060610ac8565b6060f35b63bf7a214e811861034d5760043610610b9e5760207f26555a2400e5f7a7dc5f4794e1040ade6c5cec3c38b80ceaff00502a62e4b6586040526103496060610ac8565b6060f35b6375405c5681186103945760043610610b9e5760207f15cf1584ec2aa3ee42f6f37421830cb25dd95e2e2b575c279686a2b05aeeaa3a6040526103906060610ac8565b6060f35b6342a5432681186103db5760043610610b9e5760207f819f8f39bfec38b12aa4bf0c9dc09011048f096d909b6d8cceee61d1ae72c1be6040526103d76060610ac8565b6060f35b63ca446dd981186104125760443610610b9e576024358060a01c610b9e5760c05260043560405260c051606052610410610ade565b005b632e55242381186104675760243610610b9e576004358060a01c610b9e5760c0527fce81d13dd2630a54efd7ae72310ad98f474551f2f44265e54756fe0a7b200fc560405260c051606052610465610ade565b005b63c0d7865581186104bc5760243610610b9e576004358060a01c610b9e5760c0527f3f0593d90c203cedd52beaf1f2e33ef6958a48ee6bc9180eb653d00d34ee618d60405260c0516060526104ba610ade565b005b63748747e681186105115760243610610b9e576004358060a01c610b9e5760c0527f4f78afe9dfc9a0cb0441c27b9405070cd2a48b490636a7bdd09f355e33a5d7de60405260c05160605261050f610ade565b005b6304e6f01181186105665760243610610b9e576004358060a01c610b9e5760c0527f92308d754fefe74f180a813f808c0966735868624696943110ce3b77ef4da6fc60405260c051606052610564610ade565b005b63986f342a81186105bb5760243610610b9e576004358060a01c610b9e5760c0527fce82990224163c7d18d33fc380cc4491cf9e5be3d1cb6d961d5b41b62920e24860405260c0516060526105b9610ade565b005b63244edd7981186106105760243610610b9e576004358060a01c610b9e5760c0527f2830bb8c074007e3642ba35a7f4a62fe9e79b8ed4d17d572f08ab91d1cc3afba60405260c05160605261060e610ade565b005b639a47b13181186106655760243610610b9e576004358060a01c610b9e5760c0527f905c20daa0ccca45a243edd43b8376998eee600a326f91db7b09aa142096f33f60405260c051606052610663610ade565b005b631daca74f81186106ba5760243610610b9e576004358060a01c610b9e5760c0527fdf24db24a1d08cc7d31d7b228292b963835737693e825a0f4000fd880cb3762160405260c0516060526106b8610ade565b005b637918413b811861070f5760243610610b9e576004358060a01c610b9e5760c0527fcc5480089f75bfa813c425713b4e49e8975cb68f52703570bcfdc6134dd5e31a60405260c05160605261070d610ade565b005b6362e0ed3e81186107645760243610610b9e576004358060a01c610b9e5760c0527f8975f7470d8885db19a03ab19387b0d032119bec5e894c777643a8eedb564af460405260c051606052610762610ade565b005b6374a61af881186107b95760243610610b9e576004358060a01c610b9e5760c0527f26555a2400e5f7a7dc5f4794e1040ade6c5cec3c38b80ceaff00502a62e4b65860405260c0516060526107b7610ade565b005b63a48238b1811861080e5760243610610b9e576004358060a01c610b9e5760c0527f15cf1584ec2aa3ee42f6f37421830cb25dd95e2e2b575c279686a2b05aeeaa3a60405260c05160605261080c610ade565b005b635c94188781186108635760243610610b9e576004358060a01c610b9e5760c0527f819f8f39bfec38b12aa4bf0c9dc09011048f096d909b6d8cceee61d1ae72c1be60405260c051606052610861610ade565b005b63d38bfff4811861091c5760243610610b9e576004358060a01c610b9e576040526001543318156108eb57600b6060527f21676f7665726e616e636500000000000000000000000000000000000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6040516002556040517fa443b483867b0f9db5b03913474dd21935ac5ba70fa6c94e3423ba9be157c44b60006060a2005b63238efcbc81186109d15760043610610b9e576002543318156109965760136040527f2170656e64696e6720676f7665726e616e63650000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b600154604052336001556000600255336040517f493b5e2f500fb8f4024f54f276b840399964fade32340c2352e0cb4eeb65aa6f60006060a3005b6306fdde038118610a825760043610610b9e5760208060a05260226040527f596561726e2056332050726f746f636f6c20416464726573732050726f7669646060527f657200000000000000000000000000000000000000000000000000000000000060805260408160a001815180825260208301602083018281848460045afa505050508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060a0f35b635aa6e6758118610aa15760043610610b9e5760015460405260206040f35b63f39c38a08118610ac05760043610610b9e5760025460405260206040f35b505b60006000fd5b6000604051602052600052604060002054815250565b600154331815610b4557600b6080527f21676f7665726e616e636500000000000000000000000000000000000000000060a0526080506080518060a001601f826000031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b600060405160205260005260406000205460805260605160006040516020526000526040600020556060516080516040517fa17fec79dde255b04bb7ffa97ad15ba866841eb0043fd3c848ef7c87c4fbaccf600060a0a4565b600080fda165767970657283000307000b005b600080fd0000000000000000000000006f3cbe2ab3483ec4ba7b672fbdca0e9b33f88db8

Deployed Bytecode

0x6003361161000c57610ac2565b60003560e01c34610b9e576321f8a72181186100405760243610610b9e57602060043560405261003c6060610ac8565b6060f35b635550591481186100875760043610610b9e5760207fce81d13dd2630a54efd7ae72310ad98f474551f2f44265e54756fe0a7b200fc56040526100836060610ac8565b6060f35b63b0f479a181186100ce5760043610610b9e5760207f3f0593d90c203cedd52beaf1f2e33ef6958a48ee6bc9180eb653d00d34ee618d6040526100ca6060610ac8565b6060f35b63391b6f4e81186101155760043610610b9e5760207f4f78afe9dfc9a0cb0441c27b9405070cd2a48b490636a7bdd09f355e33a5d7de6040526101116060610ac8565b6060f35b63a64d05cd811861015c5760043610610b9e5760207f92308d754fefe74f180a813f808c0966735868624696943110ce3b77ef4da6fc6040526101586060610ac8565b6060f35b6319be507781186101a35760043610610b9e5760207fce82990224163c7d18d33fc380cc4491cf9e5be3d1cb6d961d5b41b62920e24860405261019f6060610ac8565b6060f35b63ab83d6ce81186101ea5760043610610b9e5760207f2830bb8c074007e3642ba35a7f4a62fe9e79b8ed4d17d572f08ab91d1cc3afba6040526101e66060610ac8565b6060f35b63ac5bd72881186102315760043610610b9e5760207f905c20daa0ccca45a243edd43b8376998eee600a326f91db7b09aa142096f33f60405261022d6060610ac8565b6060f35b6345d33dfa81186102785760043610610b9e5760207fdf24db24a1d08cc7d31d7b228292b963835737693e825a0f4000fd880cb376216040526102746060610ac8565b6060f35b63b6773fa081186102bf5760043610610b9e5760207fcc5480089f75bfa813c425713b4e49e8975cb68f52703570bcfdc6134dd5e31a6040526102bb6060610ac8565b6060f35b63fbb9a7d881186103065760043610610b9e5760207f8975f7470d8885db19a03ab19387b0d032119bec5e894c777643a8eedb564af46040526103026060610ac8565b6060f35b63bf7a214e811861034d5760043610610b9e5760207f26555a2400e5f7a7dc5f4794e1040ade6c5cec3c38b80ceaff00502a62e4b6586040526103496060610ac8565b6060f35b6375405c5681186103945760043610610b9e5760207f15cf1584ec2aa3ee42f6f37421830cb25dd95e2e2b575c279686a2b05aeeaa3a6040526103906060610ac8565b6060f35b6342a5432681186103db5760043610610b9e5760207f819f8f39bfec38b12aa4bf0c9dc09011048f096d909b6d8cceee61d1ae72c1be6040526103d76060610ac8565b6060f35b63ca446dd981186104125760443610610b9e576024358060a01c610b9e5760c05260043560405260c051606052610410610ade565b005b632e55242381186104675760243610610b9e576004358060a01c610b9e5760c0527fce81d13dd2630a54efd7ae72310ad98f474551f2f44265e54756fe0a7b200fc560405260c051606052610465610ade565b005b63c0d7865581186104bc5760243610610b9e576004358060a01c610b9e5760c0527f3f0593d90c203cedd52beaf1f2e33ef6958a48ee6bc9180eb653d00d34ee618d60405260c0516060526104ba610ade565b005b63748747e681186105115760243610610b9e576004358060a01c610b9e5760c0527f4f78afe9dfc9a0cb0441c27b9405070cd2a48b490636a7bdd09f355e33a5d7de60405260c05160605261050f610ade565b005b6304e6f01181186105665760243610610b9e576004358060a01c610b9e5760c0527f92308d754fefe74f180a813f808c0966735868624696943110ce3b77ef4da6fc60405260c051606052610564610ade565b005b63986f342a81186105bb5760243610610b9e576004358060a01c610b9e5760c0527fce82990224163c7d18d33fc380cc4491cf9e5be3d1cb6d961d5b41b62920e24860405260c0516060526105b9610ade565b005b63244edd7981186106105760243610610b9e576004358060a01c610b9e5760c0527f2830bb8c074007e3642ba35a7f4a62fe9e79b8ed4d17d572f08ab91d1cc3afba60405260c05160605261060e610ade565b005b639a47b13181186106655760243610610b9e576004358060a01c610b9e5760c0527f905c20daa0ccca45a243edd43b8376998eee600a326f91db7b09aa142096f33f60405260c051606052610663610ade565b005b631daca74f81186106ba5760243610610b9e576004358060a01c610b9e5760c0527fdf24db24a1d08cc7d31d7b228292b963835737693e825a0f4000fd880cb3762160405260c0516060526106b8610ade565b005b637918413b811861070f5760243610610b9e576004358060a01c610b9e5760c0527fcc5480089f75bfa813c425713b4e49e8975cb68f52703570bcfdc6134dd5e31a60405260c05160605261070d610ade565b005b6362e0ed3e81186107645760243610610b9e576004358060a01c610b9e5760c0527f8975f7470d8885db19a03ab19387b0d032119bec5e894c777643a8eedb564af460405260c051606052610762610ade565b005b6374a61af881186107b95760243610610b9e576004358060a01c610b9e5760c0527f26555a2400e5f7a7dc5f4794e1040ade6c5cec3c38b80ceaff00502a62e4b65860405260c0516060526107b7610ade565b005b63a48238b1811861080e5760243610610b9e576004358060a01c610b9e5760c0527f15cf1584ec2aa3ee42f6f37421830cb25dd95e2e2b575c279686a2b05aeeaa3a60405260c05160605261080c610ade565b005b635c94188781186108635760243610610b9e576004358060a01c610b9e5760c0527f819f8f39bfec38b12aa4bf0c9dc09011048f096d909b6d8cceee61d1ae72c1be60405260c051606052610861610ade565b005b63d38bfff4811861091c5760243610610b9e576004358060a01c610b9e576040526001543318156108eb57600b6060527f21676f7665726e616e636500000000000000000000000000000000000000000060805260605060605180608001601f826000031636823750506308c379a06020526020604052601f19601f6060510116604401603cfd5b6040516002556040517fa443b483867b0f9db5b03913474dd21935ac5ba70fa6c94e3423ba9be157c44b60006060a2005b63238efcbc81186109d15760043610610b9e576002543318156109965760136040527f2170656e64696e6720676f7665726e616e63650000000000000000000000000060605260405060405180606001601f826000031636823750506308c379a06000526020602052601f19601f6040510116604401601cfd5b600154604052336001556000600255336040517f493b5e2f500fb8f4024f54f276b840399964fade32340c2352e0cb4eeb65aa6f60006060a3005b6306fdde038118610a825760043610610b9e5760208060a05260226040527f596561726e2056332050726f746f636f6c20416464726573732050726f7669646060527f657200000000000000000000000000000000000000000000000000000000000060805260408160a001815180825260208301602083018281848460045afa505050508051806020830101601f82600003163682375050601f19601f82516020010116905090508101905060a0f35b635aa6e6758118610aa15760043610610b9e5760015460405260206040f35b63f39c38a08118610ac05760043610610b9e5760025460405260206040f35b505b60006000fd5b6000604051602052600052604060002054815250565b600154331815610b4557600b6080527f21676f7665726e616e636500000000000000000000000000000000000000000060a0526080506080518060a001601f826000031636823750506308c379a06040526020606052601f19601f6080510116604401605cfd5b600060405160205260005260406000205460805260605160006040516020526000526040600020556060516080516040517fa17fec79dde255b04bb7ffa97ad15ba866841eb0043fd3c848ef7c87c4fbaccf600060a0a4565b600080fda165767970657283000307000b

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006f3cbe2ab3483ec4ba7b672fbdca0e9b33f88db8

-----Decoded View---------------
Arg [0] : governance (address): 0x6f3cBE2ab3483EC4BA7B672fbdCa0E9B33F88db8

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006f3cbe2ab3483ec4ba7b672fbdca0e9b33f88db8


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.