Contract 0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C 8

 

Contract Overview

Synthetix: Address Resolver
Balance:
0 ETH

EtherValue:
$0.00

Token:
My Name Tag:
Not Available, login to update

ContractCreator:
GENESIS at txn GENESIS_95a6a3f44a70172e7d50a9e28c85dfd712756b8c
Txn Hash Method
Block
From
To
Value
0xa00aaea48cdc3832a8a70774461a1f4c34976794ecd8e191cd23f8f96d876f26Rebuild Caches1092597412023-09-07 20:24:1922 days 20 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000817365560.000100052
0x98013a93c23a05f6d2a87fe4cf43365ce46828c9e434c3b92b2b7624de9919e1Rebuild Caches1092593922023-09-07 20:12:4122 days 21 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.000094982720.00010005
0x2b8b300170fbe4cea59c89fdc569c0f46426bda6d8d71321928acc3f57685336Rebuild Caches1092590242023-09-07 20:00:2522 days 21 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000769803970.000100059
0xd51d983b8e50fb59466724ac6c83d4da6d463b79f1a0dbbf2911128e2de23ec1Rebuild Caches1092562482023-09-07 18:27:5322 days 22 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.000095649590.000100053
0x84149dcb4dda50dd6923f44dbe0668ec40811c609d246c8e7bc4317694b0a9a8Rebuild Caches1092558492023-09-07 18:14:3522 days 23 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0001389374930.000100052
0xe2c929fd072a00b2167bb788dc2f1f4ccc5ceef2beba73d63c60e65ee93c3cf4Rebuild Caches1092554572023-09-07 18:01:3122 days 23 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000509318430.00010006
0x4aea650357243fd7f405d0d6db6445ad0ffdd73d5ca21058f8f771865586b23dRebuild Caches1092550492023-09-07 17:47:5522 days 23 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000611252210.000100053
0xfadf107de1a61079c155fa60836b4592b5fc4b27f6f13ee9f80ab32afcd30658Rebuild Caches1092546912023-09-07 17:35:5922 days 23 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.000070179380.000100053
0xedc7677179e06e74cf7937fb4345d506f8c5d258278619668e651f8db5513313Rebuild Caches1092522732023-09-07 16:15:2323 days 1 hr ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.000067308310.000100054
0xa21e913367f92219455f11697673d2495025cfc62878f03753643b52e4d4b858Rebuild Caches1092519162023-09-07 16:03:2923 days 1 hr ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000920545980.000100055
0xef7247db759df8db5d0869723bd0315437d5069ae762e2ea2fe80848d6e0fe6eRebuild Caches1092515302023-09-07 15:50:3723 days 1 hr ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000561618860.000100055
0x9fb96cb15614c64cf3f0ceb7589745ba3b20847d28afb8a794f7fbbe5ad041faRebuild Caches1092511782023-09-07 15:38:5323 days 1 hr ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.000073907930.000100056
0xabab8bfb75cd0f804a22644f24002168ea9108bbc44bbcf0deb133aa05d02464Rebuild Caches1092507892023-09-07 15:25:5523 days 1 hr ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000910329590.00010006
0xe4dc18bbd051819d2a73b46c1cde04fdd0015c13c7b7c3bcd6c38e3db9af6e98Rebuild Caches1092149032023-09-06 19:29:4323 days 21 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000824174770.000100056
0xcbd9d0f52f3696f563b94b07a4adddd918fa40fa70bdee66850c8a03728da048Rebuild Caches1092145372023-09-06 19:17:3123 days 22 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000734740550.000100059
0xa8b05b4d8407cb5eb5d713b934fa19d7fddfd0de65d1148be40eabed40ff0587Rebuild Caches1092140612023-09-06 19:01:3923 days 22 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000666291990.000100068
0xda38cd0d3d12bc640c94bb67bdef7e8ad1eb61d8d61898881ec222ccfbfd1bbcRebuild Caches1092136952023-09-06 18:49:2723 days 22 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0000547370920.000100351
0xc91447c5d00cfc5230fceaf1f2d5994db3a13607bf7f59d7f34ca5ca597638c4Rebuild Caches1092133452023-09-06 18:37:4723 days 22 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.000065898830.000109212
0x63f5038cb4e72adcd576a917b4412801ae27de6a72f4446c8fdce01679d6e9faRebuild Caches1092122792023-09-06 18:02:1523 days 23 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0012046664741.000157247
0x421d931a86f39d2722709437e0bfa3adff01d87b2cf5cb748cb15982272b56cfRebuild Caches1092118662023-09-06 17:48:2923 days 23 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0011184916581.000000057
0xa4e7e7968c1a9055961d843fdf4acb5694c007cd5d202a808af7351d0375b508Rebuild Caches1092074112023-09-06 15:19:5924 days 2 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0011497748091.000000216
0x828d392e2f4d110a591be3f7caacf243909c521d3475a0ea1c82706220b1a8a4Rebuild Caches1092070022023-09-06 15:06:2124 days 2 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0011604547991.000000123
0xaacc98976a6499678f0bb3850e60d76a2dd26c9d7de79031cb86e8f1912562eaRebuild Caches1092065932023-09-06 14:52:4324 days 2 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0011610042081.000002554
0x17985abdeb7858146ae09c26eed8f5d454f2c8959b84a59b13417923bfd44124Rebuild Caches1092062402023-09-06 14:40:5724 days 2 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0011384270161.000008962
0xa2eb0e7f404d71971502ce75748c970f207c63944eb4c53ec777408aa90dbbf4Rebuild Caches1080019132023-08-09 17:36:4351 days 23 hrs ago0xede8a407913a874dd7e3d5b731afca135d30375e IN Synthetix: Address Resolver0 ETH0.0011432267481.000000367
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xc1261d37676178665c73e2b9a3e8c419a85c6c6a3e0ea425d9bca685e47a2e591075583822023-07-30 11:12:2162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xcfeb7ac1e46b13ebe0873406366c0b52f1097a6090552bcd87e844a7d90dc3361075583442023-07-30 11:11:0562 days 6 hrs ago 0xc392133eea695603b51a5d5de73655d571c2ce51Synthetix: Address Resolver0 ETH
0xd8f8aff1e90f601709d3cdc9163954cc84e30c1d835094baf767c78a7536e0c31075583062023-07-30 11:09:4962 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x2f3f4a1b587be82cc216832bfa3cb29c8785936f223b210de469dd817ae867f71075582932023-07-30 11:09:2362 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x00e890ea4069b668900f39b00d9381ccc96b0fd78c80cf49e71e3cebbb1287cf1075582822023-07-30 11:09:0162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x862c89fcc24e19f0ba226a3b94a1cd03e595adfb1f0b69d4c2c54a8886f248ce1075582722023-07-30 11:08:4162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x862c89fcc24e19f0ba226a3b94a1cd03e595adfb1f0b69d4c2c54a8886f248ce1075582722023-07-30 11:08:4162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x862c89fcc24e19f0ba226a3b94a1cd03e595adfb1f0b69d4c2c54a8886f248ce1075582722023-07-30 11:08:4162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x862c89fcc24e19f0ba226a3b94a1cd03e595adfb1f0b69d4c2c54a8886f248ce1075582722023-07-30 11:08:4162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x862c89fcc24e19f0ba226a3b94a1cd03e595adfb1f0b69d4c2c54a8886f248ce1075582722023-07-30 11:08:4162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x862c89fcc24e19f0ba226a3b94a1cd03e595adfb1f0b69d4c2c54a8886f248ce1075582722023-07-30 11:08:4162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x862c89fcc24e19f0ba226a3b94a1cd03e595adfb1f0b69d4c2c54a8886f248ce1075582722023-07-30 11:08:4162 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x6a4207f6af287b014ae607b332d20bd72c65fb1ac0dfcc7f159585e99592c8ec1075582682023-07-30 11:08:3362 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x46ed859d52b6bfc79e97ee30a35bd1c44958e8294dbae9415f9f8310e5468bb41075582602023-07-30 11:08:1762 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
0x7f4bf1bc798583603d7e1d1d01a9219a7a58a5ab0037b0c3674af995fd44089d1075582122023-07-30 11:06:4162 days 6 hrs ago Lyra Finance: ETH SNX Perps V2 Pool HedgerSynthetix: Address Resolver0 ETH
0x7f4bf1bc798583603d7e1d1d01a9219a7a58a5ab0037b0c3674af995fd44089d1075582122023-07-30 11:06:4162 days 6 hrs ago Lyra Finance: ETH SNX Perps V2 Pool HedgerSynthetix: Address Resolver0 ETH
0x20a037eb374f344c16347aa48d30ec4a657dcfb46d5916aa8b42a905e72739701075581852023-07-30 11:05:4762 days 6 hrs ago Synthetix: Read Proxy Address ResolverSynthetix: Address Resolver0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Genesis Bytecode Match Only)

Contract Name:
AddressResolver

Compiler Version
v0.5.16

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Optimistic.Etherscan.io on 2021-08-25
*/

/*
   ____            __   __        __   _
  / __/__ __ ___  / /_ / /  ___  / /_ (_)__ __
 _\ \ / // // _ \/ __// _ \/ -_)/ __// / \ \ /
/___/ \_, //_//_/\__//_//_/\__/ \__//_/ /_\_\
     /___/

* Synthetix: AddressResolver.sol
*
* Latest source (may be newer): https://github.com/Synthetixio/synthetix/blob/master/contracts/AddressResolver.sol
* Docs: https://docs.synthetix.io/contracts/AddressResolver
*
* Contract Dependencies: 
*	- IAddressResolver
*	- Owned
* Libraries: (none)
*
* MIT License
* ===========
*
* Copyright (c) 2021 Synthetix
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
*/



pragma solidity ^0.5.16;

// https://docs.synthetix.io/contracts/source/contracts/owned
contract Owned {
    address public owner;
    address public nominatedOwner;

    constructor(address _owner) public {
        require(_owner != address(0), "Owner address cannot be 0");
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    function nominateNewOwner(address _owner) external onlyOwner {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    function acceptOwnership() external {
        require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership");
        emit OwnerChanged(owner, nominatedOwner);
        owner = nominatedOwner;
        nominatedOwner = address(0);
    }

    modifier onlyOwner {
        _onlyOwner();
        _;
    }

    function _onlyOwner() private view {
        require(msg.sender == owner, "Only the contract owner may perform this action");
    }

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);
}


// https://docs.synthetix.io/contracts/source/interfaces/iaddressresolver
interface IAddressResolver {
    function getAddress(bytes32 name) external view returns (address);

    function getSynth(bytes32 key) external view returns (address);

    function requireAndGetAddress(bytes32 name, string calldata reason) external view returns (address);
}


// https://docs.synthetix.io/contracts/source/interfaces/isynth
interface ISynth {
    // Views
    function currencyKey() external view returns (bytes32);

    function transferableSynths(address account) external view returns (uint);

    // Mutative functions
    function transferAndSettle(address to, uint value) external returns (bool);

    function transferFromAndSettle(
        address from,
        address to,
        uint value
    ) external returns (bool);

    // Restricted: used internally to Synthetix
    function burn(address account, uint amount) external;

    function issue(address account, uint amount) external;
}


// https://docs.synthetix.io/contracts/source/interfaces/iissuer
interface IIssuer {
    // Views
    function anySynthOrSNXRateIsInvalid() external view returns (bool anyRateInvalid);

    function availableCurrencyKeys() external view returns (bytes32[] memory);

    function availableSynthCount() external view returns (uint);

    function availableSynths(uint index) external view returns (ISynth);

    function canBurnSynths(address account) external view returns (bool);

    function collateral(address account) external view returns (uint);

    function collateralisationRatio(address issuer) external view returns (uint);

    function collateralisationRatioAndAnyRatesInvalid(address _issuer)
        external
        view
        returns (uint cratio, bool anyRateIsInvalid);

    function debtBalanceOf(address issuer, bytes32 currencyKey) external view returns (uint debtBalance);

    function issuanceRatio() external view returns (uint);

    function lastIssueEvent(address account) external view returns (uint);

    function maxIssuableSynths(address issuer) external view returns (uint maxIssuable);

    function minimumStakeTime() external view returns (uint);

    function remainingIssuableSynths(address issuer)
        external
        view
        returns (
            uint maxIssuable,
            uint alreadyIssued,
            uint totalSystemDebt
        );

    function synths(bytes32 currencyKey) external view returns (ISynth);

    function getSynths(bytes32[] calldata currencyKeys) external view returns (ISynth[] memory);

    function synthsByAddress(address synthAddress) external view returns (bytes32);

    function totalIssuedSynths(bytes32 currencyKey, bool excludeOtherCollateral) external view returns (uint);

    function transferableSynthetixAndAnyRateIsInvalid(address account, uint balance)
        external
        view
        returns (uint transferable, bool anyRateIsInvalid);

    // Restricted: used internally to Synthetix
    function issueSynths(address from, uint amount) external;

    function issueSynthsOnBehalf(
        address issueFor,
        address from,
        uint amount
    ) external;

    function issueMaxSynths(address from) external;

    function issueMaxSynthsOnBehalf(address issueFor, address from) external;

    function burnSynths(address from, uint amount) external;

    function burnSynthsOnBehalf(
        address burnForAddress,
        address from,
        uint amount
    ) external;

    function burnSynthsToTarget(address from) external;

    function burnSynthsToTargetOnBehalf(address burnForAddress, address from) external;

    function burnForRedemption(
        ISynth deprecatedSynth,
        address account,
        uint balance
    ) external;

    function liquidateDelinquentAccount(
        address account,
        uint susdAmount,
        address liquidator
    ) external returns (uint totalRedeemed, uint amountToLiquidate);
}


// Internal references


// https://docs.synthetix.io/contracts/source/contracts/mixinresolver
contract MixinResolver {
    AddressResolver public resolver;

    mapping(bytes32 => address) private addressCache;

    constructor(address _resolver) internal {
        resolver = AddressResolver(_resolver);
    }

    /* ========== INTERNAL FUNCTIONS ========== */

    function combineArrays(bytes32[] memory first, bytes32[] memory second)
        internal
        pure
        returns (bytes32[] memory combination)
    {
        combination = new bytes32[](first.length + second.length);

        for (uint i = 0; i < first.length; i++) {
            combination[i] = first[i];
        }

        for (uint j = 0; j < second.length; j++) {
            combination[first.length + j] = second[j];
        }
    }

    /* ========== PUBLIC FUNCTIONS ========== */

    // Note: this function is public not external in order for it to be overridden and invoked via super in subclasses
    function resolverAddressesRequired() public view returns (bytes32[] memory addresses) {}

    function rebuildCache() public {
        bytes32[] memory requiredAddresses = resolverAddressesRequired();
        // The resolver must call this function whenver it updates its state
        for (uint i = 0; i < requiredAddresses.length; i++) {
            bytes32 name = requiredAddresses[i];
            // Note: can only be invoked once the resolver has all the targets needed added
            address destination =
                resolver.requireAndGetAddress(name, string(abi.encodePacked("Resolver missing target: ", name)));
            addressCache[name] = destination;
            emit CacheUpdated(name, destination);
        }
    }

    /* ========== VIEWS ========== */

    function isResolverCached() external view returns (bool) {
        bytes32[] memory requiredAddresses = resolverAddressesRequired();
        for (uint i = 0; i < requiredAddresses.length; i++) {
            bytes32 name = requiredAddresses[i];
            // false if our cache is invalid or if the resolver doesn't have the required address
            if (resolver.getAddress(name) != addressCache[name] || addressCache[name] == address(0)) {
                return false;
            }
        }

        return true;
    }

    /* ========== INTERNAL FUNCTIONS ========== */

    function requireAndGetAddress(bytes32 name) internal view returns (address) {
        address _foundAddress = addressCache[name];
        require(_foundAddress != address(0), string(abi.encodePacked("Missing address: ", name)));
        return _foundAddress;
    }

    /* ========== EVENTS ========== */

    event CacheUpdated(bytes32 name, address destination);
}


// Inheritance


// Internal references


// https://docs.synthetix.io/contracts/source/contracts/addressresolver
contract AddressResolver is Owned, IAddressResolver {
    mapping(bytes32 => address) public repository;

    constructor(address _owner) public Owned(_owner) {}

    /* ========== RESTRICTED FUNCTIONS ========== */

    function importAddresses(bytes32[] calldata names, address[] calldata destinations) external onlyOwner {
        require(names.length == destinations.length, "Input lengths must match");

        for (uint i = 0; i < names.length; i++) {
            bytes32 name = names[i];
            address destination = destinations[i];
            repository[name] = destination;
            emit AddressImported(name, destination);
        }
    }

    /* ========= PUBLIC FUNCTIONS ========== */

    function rebuildCaches(MixinResolver[] calldata destinations) external {
        for (uint i = 0; i < destinations.length; i++) {
            destinations[i].rebuildCache();
        }
    }

    /* ========== VIEWS ========== */

    function areAddressesImported(bytes32[] calldata names, address[] calldata destinations) external view returns (bool) {
        for (uint i = 0; i < names.length; i++) {
            if (repository[names[i]] != destinations[i]) {
                return false;
            }
        }
        return true;
    }

    function getAddress(bytes32 name) external view returns (address) {
        return repository[name];
    }

    function requireAndGetAddress(bytes32 name, string calldata reason) external view returns (address) {
        address _foundAddress = repository[name];
        require(_foundAddress != address(0), reason);
        return _foundAddress;
    }

    function getSynth(bytes32 key) external view returns (address) {
        IIssuer issuer = IIssuer(repository["Issuer"]);
        require(address(issuer) != address(0), "Cannot find Issuer address");
        return address(issuer.synths(key));
    }

    /* ========== EVENTS ========== */

    event AddressImported(bytes32 name, address destination);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"name","type":"bytes32"},{"indexed":false,"internalType":"address","name":"destination","type":"address"}],"name":"AddressImported","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32[]","name":"names","type":"bytes32[]"},{"internalType":"address[]","name":"destinations","type":"address[]"}],"name":"areAddressesImported","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"name","type":"bytes32"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"getSynth","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32[]","name":"names","type":"bytes32[]"},{"internalType":"address[]","name":"destinations","type":"address[]"}],"name":"importAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract MixinResolver[]","name":"destinations","type":"address[]"}],"name":"rebuildCaches","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"repository","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"name","type":"bytes32"},{"internalType":"string","name":"reason","type":"string"}],"name":"requireAndGetAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

8060405234801561001957600080610016610c18565b50505b50600436106100b25760003560e01c8063766f78151161007a578063766f78151461018757806379ba5097146102195780638da5cb5b146102215780639f42102f14610229578063ab0b8f771461033a578063dacb2d0114610437576100b2565b80631627540c146100c0578063187f7935146100f157806321f8a72114610133578063514560611461015957806353a47bb71461017f575b6000806100bd610c18565b50505b6100ef600480360360208110156100df576000806100dc610c18565b50505b50356001600160a01b03166104d0565b005b610117600480360360208110156101105760008061010d610c18565b50505b503561054a565b6040516001600160a01b03909116815260200160405180910390f35b610117600480360360208110156101525760008061014f610c18565b50505b5035610577565b6101176004803603602081101561017857600080610175610c18565b50505b50356105a7565b6101176106e8565b6100ef600480360360208110156101a6576000806101a3610c18565b50505b810190602081018135600160201b8111156101c9576000806101c6610c18565b50505b8201836020820111156101e4576000806101e1610c18565b50505b803590602001918460208302840111600160201b8311171561020e5760008061020b610c18565b50505b5090925090506106f4565b6100ef6107a4565b610117610922565b6103266004803603604081101561024857600080610245610c18565b50505b810190602081018135600160201b81111561026b57600080610268610c18565b50505b82018360208201111561028657600080610283610c18565b50505b803590602001918460208302840111600160201b831117156102b0576000806102ad610c18565b50505b919390929091602081019035600160201b8111156102d6576000806102d3610c18565b50505b8201836020820111156102f1576000806102ee610c18565b50505b803590602001918460208302840111600160201b8311171561031b57600080610318610c18565b50505b50909250905061092d565b604051901515815260200160405180910390f35b6100ef6004803603604081101561035957600080610356610c18565b50505b810190602081018135600160201b81111561037c57600080610379610c18565b50505b82018360208201111561039757600080610394610c18565b50505b803590602001918460208302840111600160201b831117156103c1576000806103be610c18565b50505b919390929091602081019035600160201b8111156103e7576000806103e4610c18565b50505b820183602082011115610402576000806103ff610c18565b50505b803590602001918460208302840111600160201b8311171561042c57600080610429610c18565b50505b5090925090506109cc565b6101176004803603604081101561045657600080610453610c18565b50505b81359190810190604081016020820135600160201b8111156104805760008061047d610c18565b50505b82018360208201111561049b57600080610498610c18565b50505b803590602001918460018302840111600160201b831117156104c5576000806104c2610c18565b50505b509092509050610b0a565b6104d8610b9b565b80600180806104e5610c83565b816001600160a01b0302191690836001600160a01b0316021790610507610cde565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b600260205280600052604060002060009150610564610c83565b906101000a90046001600160a01b031681565b6000818152600260205260408120600090610590610c83565b906101000a90046001600160a01b03169050919050565b6524b9b9bab2b960d11b6000908152600260205280604081206000906105cb610c83565b6001600160a01b036101009290920a9004169050806106395760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015260640160405180910390610636610c18565b50505b806001600160a01b03166332608039846040516001600160e01b031960e084901b1681526004810191909152602401602060405180830381868061067b610d2c565b1580156106905760008061068d610c18565b50505b505a61069a610d78565b50505050501580156106b9573d6000803e3d60006106b6610c18565b50505b505050506040513d60208110156106d8576000806106d5610c18565b50505b8101908080519695505050505050565b60006001610564610c83565b60005b8181101561079f5782828281811061070b57fe5b905060200201356001600160a01b03166001600160a01b031663741853606040518163ffffffff1660e01b815260040160006040518083038160008780610750610d2c565b15801561076557600080610762610c18565b50505b505a61076f610e65565b50505050505015801561078f573d6000803e3d600061078c610c18565b50505b5050600190920191506106f79050565b505050565b600060016107b0610c83565b906101000a90046001600160a01b03166001600160a01b03165a6107d2610f2b565b6001600160a01b0316146108205760405162461bcd60e51b8152600401808060200182810382526035815260200180610f72603591396040019150506040518091039061081d610c18565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c60008061084c610c83565b906101000a90046001600160a01b03166001600090610869610c83565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a1600060016108a8610c83565b906101000a90046001600160a01b03166000806101000a816108c8610c83565b816001600160a01b0302191690836001600160a01b03160217906108ea610cde565b5050506000600160006101000a81610900610c83565b816001600160a01b0302191690836001600160a01b031602179061079f610cde565b600080610564610c83565b6000805b848110156109be5783838281811061094557fe5b905060200201356001600160a01b03166001600160a01b03166002600088888581811061096e57fe5b90506020020135815260200190815260200160002060009061098e610c83565b906101000a90046001600160a01b03166001600160a01b0316146109b65760009150506109c4565b600101610931565b50600190505b949350505050565b6109d4610b9b565b828114610a305760405162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015260640160405180910390610a2d610c18565b50505b60005b83811015610b03576000858583818110610a4957fe5b9050602002013590506000848484818110610a6057fe5b905060200201356001600160a01b031690508060026000848152602001908152602001600020600181610a91610c83565b816001600160a01b0302191690836001600160a01b0316021790610ab3610cde565b5050507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa9182826040519182526001600160a01b031660208201526040908101905180910390a15050600101610a33565b5050505050565b600083815260026020528060408120600090610b24610c83565b6001600160a01b036101009290920a9004169050838382610b905760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152601f01601f19169091019450604093505050505180910390610b8d610c18565b50505b509095945050505050565b600080610ba6610c83565b906101000a90046001600160a01b03166001600160a01b03165a610bc8610f2b565b6001600160a01b031614610c165760405162461bcd60e51b815260040180806020018281038252602f815260200180610fa7602f913960400191505060405180910390610c13610c18565b50505b565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015610c50578086015182820160400152602001610c35565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b604081101561079f57600082820152602001610cc7565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020610cc7565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020610cc7565b638540661f598160e01b8152610dab565b8080831115610d955750815b92915050565b8080831015610d95575090919050565b836004820152846024820152606060448201528660648201526084810160005b88811015610de3578088015182820152602001610dcb565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af15059610e388d3d610d9b565b8c01610e448187610d89565b5b82811015610e595760008152602001610e45565b50929c50505050505050565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b89811015610ea9578089015182820152602001610e91565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af15059610efe8e3d610d9b565b8d01610f0a8187610d89565b5b82811015610f1f5760008152602001610f0b565b50929d50505050505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020610cc756fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e

Library Used

SafeDecimalMath : 0x0142f40c25ce1f1177ed131101fa19217396cb88

Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.