ETH Price: $3,150.41 (-5.72%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Accept Ownership110295332020-10-10 19:17:411569 days ago1602357461IN
Bancor: Converter Upgrader
0 ETH0.0010677648
Upgrade Old95404692020-02-23 15:41:251799 days ago1582472485IN
Bancor: Converter Upgrader
0 ETH0.008077552.00001
Upgrade Old95399612020-02-23 13:40:131799 days ago1582465213IN
Bancor: Converter Upgrader
0 ETH0.0004122.00001
Upgrade Old95374502020-02-23 4:24:061800 days ago1582431846IN
Bancor: Converter Upgrader
0 ETH0.012202443
Upgrade Old94811112020-02-14 12:26:461808 days ago1581683206IN
Bancor: Converter Upgrader
0 ETH0.024233976
Upgrade Old93255762020-01-21 15:10:411832 days ago1579619441IN
Bancor: Converter Upgrader
0 ETH0.0847157620
Upgrade Old92785972020-01-14 10:20:101839 days ago1578997210IN
Bancor: Converter Upgrader
0 ETH0.0620842315
Upgrade Old92463922020-01-09 12:14:271844 days ago1578572067IN
Bancor: Converter Upgrader
0 ETH0.0929854820
Upgrade Old92107542020-01-04 1:08:091850 days ago1578100089IN
Bancor: Converter Upgrader
0 ETH0.013655123
Upgrade Old91858182019-12-30 12:22:041854 days ago1577708524IN
Bancor: Converter Upgrader
0 ETH0.0017039460
Upgrade Old91858072019-12-30 12:20:381854 days ago1577708438IN
Bancor: Converter Upgrader
0 ETH0.0004620
Upgrade Old91856712019-12-30 11:41:011854 days ago1577706061IN
Bancor: Converter Upgrader
0 ETH0.0004620
Upgrade Old91513792019-12-23 15:40:431861 days ago1577115643IN
Bancor: Converter Upgrader
0 ETH0.0455089510
Upgrade Old90751152019-12-09 2:37:591876 days ago1575859079IN
Bancor: Converter Upgrader
0 ETH0.253001450
Upgrade Old90093082019-11-27 10:17:021887 days ago1574849822IN
Bancor: Converter Upgrader
0 ETH0.1519647330
Upgrade Old90039402019-11-26 11:30:171888 days ago1574767817IN
Bancor: Converter Upgrader
0 ETH0.1519581330
Upgrade Old90039322019-11-26 11:29:051888 days ago1574767745IN
Bancor: Converter Upgrader
0 ETH0.1519542330
Upgrade Old90039232019-11-26 11:27:011888 days ago1574767621IN
Bancor: Converter Upgrader
0 ETH0.1519830930
Upgrade Old90039092019-11-26 11:22:301888 days ago1574767350IN
Bancor: Converter Upgrader
0 ETH0.1519442130
Upgrade Old90039012019-11-26 11:21:101888 days ago1574767270IN
Bancor: Converter Upgrader
0 ETH0.151967730
Upgrade Old90038972019-11-26 11:18:501888 days ago1574767130IN
Bancor: Converter Upgrader
0 ETH0.1519518630
Upgrade Old90038912019-11-26 11:17:241888 days ago1574767044IN
Bancor: Converter Upgrader
0 ETH0.1519551930
Upgrade Old90038832019-11-26 11:16:061888 days ago1574766966IN
Bancor: Converter Upgrader
0 ETH0.1519533930
Upgrade Old90038692019-11-26 11:13:401888 days ago1574766820IN
Bancor: Converter Upgrader
0 ETH0.1519613730
Upgrade Old90038642019-11-26 11:12:371888 days ago1574766757IN
Bancor: Converter Upgrader
0 ETH0.1519472130
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BancorConverterUpgrader

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-11-11
*/

pragma solidity 0.4.26;

// File: contracts/token/interfaces/IERC20Token.sol

/*
    ERC20 Standard Token interface
*/
contract IERC20Token {
    // these functions aren't abstract since the compiler emits automatically generated getter functions as external
    function name() public view returns (string) {this;}
    function symbol() public view returns (string) {this;}
    function decimals() public view returns (uint8) {this;}
    function totalSupply() public view returns (uint256) {this;}
    function balanceOf(address _owner) public view returns (uint256) {_owner; this;}
    function allowance(address _owner, address _spender) public view returns (uint256) {_owner; _spender; this;}

    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
}

// File: contracts/utility/interfaces/IWhitelist.sol

/*
    Whitelist interface
*/
contract IWhitelist {
    function isWhitelisted(address _address) public view returns (bool);
}

// File: contracts/converter/interfaces/IBancorConverter.sol

/*
    Bancor Converter interface
*/
contract IBancorConverter {
    function getReturn(IERC20Token _fromToken, IERC20Token _toToken, uint256 _amount) public view returns (uint256, uint256);
    function convert2(IERC20Token _fromToken, IERC20Token _toToken, uint256 _amount, uint256 _minReturn, address _affiliateAccount, uint256 _affiliateFee) public returns (uint256);
    function quickConvert2(IERC20Token[] _path, uint256 _amount, uint256 _minReturn, address _affiliateAccount, uint256 _affiliateFee) public payable returns (uint256);
    function conversionWhitelist() public view returns (IWhitelist) {this;}
    function conversionFee() public view returns (uint32) {this;}
    function reserves(address _address) public view returns (uint256, uint32, bool, bool, bool) {_address; this;}
    function getReserveBalance(IERC20Token _reserveToken) public view returns (uint256);
    function reserveTokens(uint256 _index) public view returns (IERC20Token) {_index; this;}
    // deprecated, backward compatibility
    function change(IERC20Token _fromToken, IERC20Token _toToken, uint256 _amount, uint256 _minReturn) public returns (uint256);
    function convert(IERC20Token _fromToken, IERC20Token _toToken, uint256 _amount, uint256 _minReturn) public returns (uint256);
    function quickConvert(IERC20Token[] _path, uint256 _amount, uint256 _minReturn) public payable returns (uint256);
    function connectors(address _address) public view returns (uint256, uint32, bool, bool, bool);
    function getConnectorBalance(IERC20Token _connectorToken) public view returns (uint256);
    function connectorTokens(uint256 _index) public view returns (IERC20Token);
}

// File: contracts/converter/interfaces/IBancorConverterUpgrader.sol

/*
    Bancor Converter Upgrader interface
*/
contract IBancorConverterUpgrader {
    function upgrade(bytes32 _version) public;
    function upgrade(uint16 _version) public;
}

// File: contracts/utility/interfaces/IOwned.sol

/*
    Owned contract interface
*/
contract IOwned {
    // this function isn't abstract since the compiler emits automatically generated getter functions as external
    function owner() public view returns (address) {this;}

    function transferOwnership(address _newOwner) public;
    function acceptOwnership() public;
}

// File: contracts/token/interfaces/ISmartToken.sol

/*
    Smart Token interface
*/
contract ISmartToken is IOwned, IERC20Token {
    function disableTransfers(bool _disable) public;
    function issue(address _to, uint256 _amount) public;
    function destroy(address _from, uint256 _amount) public;
}

// File: contracts/utility/interfaces/IContractRegistry.sol

/*
    Contract Registry interface
*/
contract IContractRegistry {
    function addressOf(bytes32 _contractName) public view returns (address);

    // deprecated, backward compatibility
    function getAddress(bytes32 _contractName) public view returns (address);
}

// File: contracts/converter/interfaces/IBancorConverterFactory.sol

/*
    Bancor Converter Factory interface
*/
contract IBancorConverterFactory {
    function createConverter(
        ISmartToken _token,
        IContractRegistry _registry,
        uint32 _maxConversionFee,
        IERC20Token _reserveToken,
        uint32 _reserveRatio
    )
    public returns (address);
}

// File: contracts/utility/Owned.sol

/**
  * @dev Provides support and utilities for contract ownership
*/
contract Owned is IOwned {
    address public owner;
    address public newOwner;

    /**
      * @dev triggered when the owner is updated
      * 
      * @param _prevOwner previous owner
      * @param _newOwner  new owner
    */
    event OwnerUpdate(address indexed _prevOwner, address indexed _newOwner);

    /**
      * @dev initializes a new Owned instance
    */
    constructor() public {
        owner = msg.sender;
    }

    // allows execution by the owner only
    modifier ownerOnly {
        require(msg.sender == owner);
        _;
    }

    /**
      * @dev allows transferring the contract ownership
      * the new owner still needs to accept the transfer
      * can only be called by the contract owner
      * 
      * @param _newOwner    new contract owner
    */
    function transferOwnership(address _newOwner) public ownerOnly {
        require(_newOwner != owner);
        newOwner = _newOwner;
    }

    /**
      * @dev used by a new owner to accept an ownership transfer
    */
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnerUpdate(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

// File: contracts/utility/interfaces/IContractFeatures.sol

/*
    Contract Features interface
*/
contract IContractFeatures {
    function isSupported(address _contract, uint256 _features) public view returns (bool);
    function enableFeatures(uint256 _features, bool _enable) public;
}

// File: contracts/ContractIds.sol

/**
  * @dev Id definitions for bancor contracts
  * 
  * Can be used in conjunction with the contract registry to get contract addresses
*/
contract ContractIds {
    // generic
    bytes32 public constant CONTRACT_FEATURES = "ContractFeatures";
    bytes32 public constant CONTRACT_REGISTRY = "ContractRegistry";
    bytes32 public constant NON_STANDARD_TOKEN_REGISTRY = "NonStandardTokenRegistry";

    // bancor logic
    bytes32 public constant BANCOR_NETWORK = "BancorNetwork";
    bytes32 public constant BANCOR_FORMULA = "BancorFormula";
    bytes32 public constant BANCOR_GAS_PRICE_LIMIT = "BancorGasPriceLimit";
    bytes32 public constant BANCOR_CONVERTER_UPGRADER = "BancorConverterUpgrader";
    bytes32 public constant BANCOR_CONVERTER_FACTORY = "BancorConverterFactory";

    // BNT core
    bytes32 public constant BNT_TOKEN = "BNTToken";
    bytes32 public constant BNT_CONVERTER = "BNTConverter";

    // BancorX
    bytes32 public constant BANCOR_X = "BancorX";
    bytes32 public constant BANCOR_X_UPGRADER = "BancorXUpgrader";
}

// File: contracts/FeatureIds.sol

/**
  * @dev Id definitions for bancor contract features
  * 
  * Can be used to query the ContractFeatures contract to check whether a certain feature is supported by a contract
*/
contract FeatureIds {
    // converter features
    uint256 public constant CONVERTER_CONVERSION_WHITELIST = 1 << 0;
}

// File: contracts/converter/BancorConverterUpgrader.sol

/*
    Bancor converter dedicated interface
*/
contract IBancorConverterExtended is IBancorConverter, IOwned {
    function token() public view returns (ISmartToken) {this;}
    function maxConversionFee() public view returns (uint32) {this;}
    function conversionFee() public view returns (uint32) {this;}
    function connectorTokenCount() public view returns (uint16);
    function reserveTokenCount() public view returns (uint16);
    function connectorTokens(uint256 _index) public view returns (IERC20Token) {_index; this;}
    function reserveTokens(uint256 _index) public view returns (IERC20Token) {_index; this;}
    function setConversionWhitelist(IWhitelist _whitelist) public;
    function transferTokenOwnership(address _newOwner) public;
    function withdrawTokens(IERC20Token _token, address _to, uint256 _amount) public;
    function acceptTokenOwnership() public;
    function transferManagement(address _newManager) public;
    function acceptManagement() public;
    function setConversionFee(uint32 _conversionFee) public;
    function addConnector(IERC20Token _token, uint32 _weight, bool _enableVirtualBalance) public;
    function updateConnector(IERC20Token _connectorToken, uint32 _weight, bool _enableVirtualBalance, uint256 _virtualBalance) public;
}

/**
  * @dev Bancor Converter Upgrader
  * 
  * The Bancor converter upgrader contract allows upgrading an older Bancor converter contract (0.4 and up)
  * to the latest version.
  * To begin the upgrade process, simply execute the 'upgrade' function.
  * At the end of the process, the ownership of the newly upgraded converter will be transferred
  * back to the original owner and the original owner will need to execute the 'acceptOwnership' function.
  * 
  * The address of the new converter is available in the ConverterUpgrade event.
  * 
  * Note that for older converters that don't yet have the 'upgrade' function, ownership should first
  * be transferred manually to the ConverterUpgrader contract using the 'transferOwnership' function
  * and then the upgrader 'upgrade' function should be executed directly.
*/
contract BancorConverterUpgrader is IBancorConverterUpgrader, Owned, ContractIds, FeatureIds {
    string public version = '0.3';

    IContractRegistry public registry;                      // contract registry contract address

    /**
      * @dev triggered when the contract accept a converter ownership
      * 
      * @param _converter   converter address
      * @param _owner       new owner - local upgrader address
    */
    event ConverterOwned(address indexed _converter, address indexed _owner);

    /**
      * @dev triggered when the upgrading process is done
      * 
      * @param _oldConverter    old converter address
      * @param _newConverter    new converter address
    */
    event ConverterUpgrade(address indexed _oldConverter, address indexed _newConverter);

    /**
      * @dev initializes a new BancorConverterUpgrader instance
    */
    constructor(IContractRegistry _registry) public {
        registry = _registry;
    }

    /**
      * @dev allows the owner to update the contract registry contract address
      * 
      * @param _registry   address of a contract registry contract
    */
    function setRegistry(IContractRegistry _registry) public ownerOnly {
        registry = _registry;
    }

    /**
      * @dev upgrades an old converter to the latest version
      * will throw if ownership wasn't transferred to the upgrader before calling this function.
      * ownership of the new converter will be transferred back to the original owner.
      * fires the ConverterUpgrade event upon success.
      * can only be called by a converter
      * 
      * @param _version old converter version
    */
    function upgrade(bytes32 _version) public {
        upgradeOld(IBancorConverter(msg.sender), _version);
    }

    /**
      * @dev upgrades an old converter to the latest version
      * will throw if ownership wasn't transferred to the upgrader before calling this function.
      * ownership of the new converter will be transferred back to the original owner.
      * fires the ConverterUpgrade event upon success.
      * can only be called by a converter
      * 
      * @param _version old converter version
    */
    function upgrade(uint16 _version) public {
        upgradeOld(IBancorConverter(msg.sender), bytes32(_version));
    }

    /**
      * @dev upgrades an old converter to the latest version
      * will throw if ownership wasn't transferred to the upgrader before calling this function.
      * ownership of the new converter will be transferred back to the original owner.
      * fires the ConverterUpgrade event upon success.
      * 
      * @param _converter   old converter contract address
      * @param _version     old converter version
    */
    function upgradeOld(IBancorConverter _converter, bytes32 _version) public {
        bool formerVersions = false;
        if (_version == "0.4")
            formerVersions = true;
        IBancorConverterExtended converter = IBancorConverterExtended(_converter);
        address prevOwner = converter.owner();
        acceptConverterOwnership(converter);
        IBancorConverterExtended newConverter = createConverter(converter);
        copyConnectors(converter, newConverter, formerVersions);
        copyConversionFee(converter, newConverter);
        transferConnectorsBalances(converter, newConverter, formerVersions);                
        ISmartToken token = converter.token();

        if (token.owner() == address(converter)) {
            converter.transferTokenOwnership(newConverter);
            newConverter.acceptTokenOwnership();
        }

        converter.transferOwnership(prevOwner);
        newConverter.transferOwnership(prevOwner);
        newConverter.transferManagement(prevOwner);

        emit ConverterUpgrade(address(converter), address(newConverter));
    }

    /**
      * @dev the first step when upgrading a converter is to transfer the ownership to the local contract.
      * the upgrader contract then needs to accept the ownership transfer before initiating
      * the upgrade process.
      * fires the ConverterOwned event upon success
      * 
      * @param _oldConverter       converter to accept ownership of
    */
    function acceptConverterOwnership(IBancorConverterExtended _oldConverter) private {
        _oldConverter.acceptOwnership();
        emit ConverterOwned(_oldConverter, this);
    }

    /**
      * @dev creates a new converter with same basic data as the original old converter
      * the newly created converter will have no connectors at this step.
      * 
      * @param _oldConverter    old converter contract address
      * 
      * @return the new converter  new converter contract address
    */
    function createConverter(IBancorConverterExtended _oldConverter) private returns(IBancorConverterExtended) {
        IWhitelist whitelist;
        ISmartToken token = _oldConverter.token();
        uint32 maxConversionFee = _oldConverter.maxConversionFee();

        IBancorConverterFactory converterFactory = IBancorConverterFactory(registry.addressOf(ContractIds.BANCOR_CONVERTER_FACTORY));
        address converterAddress  = converterFactory.createConverter(
            token,
            registry,
            maxConversionFee,
            IERC20Token(address(0)),
            0
        );

        IBancorConverterExtended converter = IBancorConverterExtended(converterAddress);
        converter.acceptOwnership();
        converter.acceptManagement();

        // get the contract features address from the registry
        IContractFeatures features = IContractFeatures(registry.addressOf(ContractIds.CONTRACT_FEATURES));

        if (features.isSupported(_oldConverter, FeatureIds.CONVERTER_CONVERSION_WHITELIST)) {
            whitelist = _oldConverter.conversionWhitelist();
            if (whitelist != address(0))
                converter.setConversionWhitelist(whitelist);
        }

        return converter;
    }

    /**
      * @dev copies the connectors from the old converter to the new one.
      * note that this will not work for an unlimited number of connectors due to block gas limit constraints.
      * 
      * @param _oldConverter    old converter contract address
      * @param _newConverter    new converter contract address
      * @param _isLegacyVersion true if the converter version is under 0.5
    */
    function copyConnectors(IBancorConverterExtended _oldConverter, IBancorConverterExtended _newConverter, bool _isLegacyVersion)
        private
    {
        uint256 virtualBalance;
        uint32 weight;
        bool isVirtualBalanceEnabled;
        bool isSaleEnabled;
        bool isSet;
        uint16 connectorTokenCount = _isLegacyVersion ? _oldConverter.reserveTokenCount() : _oldConverter.connectorTokenCount();

        for (uint16 i = 0; i < connectorTokenCount; i++) {
            address connectorAddress = _isLegacyVersion ? _oldConverter.reserveTokens(i) : _oldConverter.connectorTokens(i);
            (virtualBalance, weight, isVirtualBalanceEnabled, isSaleEnabled, isSet) = readConnector(
                _oldConverter,
                connectorAddress,
                _isLegacyVersion
            );

            IERC20Token connectorToken = IERC20Token(connectorAddress);
            _newConverter.addConnector(connectorToken, weight, isVirtualBalanceEnabled);

            if (isVirtualBalanceEnabled)
                _newConverter.updateConnector(connectorToken, weight, isVirtualBalanceEnabled, virtualBalance);
        }
    }

    /**
      * @dev copies the conversion fee from the old converter to the new one
      * 
      * @param _oldConverter    old converter contract address
      * @param _newConverter    new converter contract address
    */
    function copyConversionFee(IBancorConverterExtended _oldConverter, IBancorConverterExtended _newConverter) private {
        uint32 conversionFee = _oldConverter.conversionFee();
        _newConverter.setConversionFee(conversionFee);
    }

    /**
      * @dev transfers the balance of each connector in the old converter to the new one.
      * note that the function assumes that the new converter already has the exact same number of
      * also, this will not work for an unlimited number of connectors due to block gas limit constraints.
      * 
      * @param _oldConverter    old converter contract address
      * @param _newConverter    new converter contract address
      * @param _isLegacyVersion true if the converter version is under 0.5
    */
    function transferConnectorsBalances(IBancorConverterExtended _oldConverter, IBancorConverterExtended _newConverter, bool _isLegacyVersion)
        private
    {
        uint256 connectorBalance;
        uint16 connectorTokenCount = _isLegacyVersion ? _oldConverter.reserveTokenCount() : _oldConverter.connectorTokenCount();

        for (uint16 i = 0; i < connectorTokenCount; i++) {
            address connectorAddress = _isLegacyVersion ? _oldConverter.reserveTokens(i) : _oldConverter.connectorTokens(i);
            IERC20Token connector = IERC20Token(connectorAddress);
            connectorBalance = connector.balanceOf(_oldConverter);
            _oldConverter.withdrawTokens(connector, address(_newConverter), connectorBalance);
        }
    }

    /**
      * @dev returns the connector settings
      * 
      * @param _converter       old converter contract address
      * @param _address         connector's address to read from
      * @param _isLegacyVersion true if the converter version is under 0.5
      * 
      * @return connector's settings
    */
    function readConnector(IBancorConverterExtended _converter, address _address, bool _isLegacyVersion) 
        private
        view
        returns(uint256 virtualBalance, uint32 weight, bool isVirtualBalanceEnabled, bool isSaleEnabled, bool isSet)
    {
        return _isLegacyVersion ? _converter.reserves(_address) : _converter.connectors(_address);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"BANCOR_CONVERTER_UPGRADER","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BNT_TOKEN","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONTRACT_REGISTRY","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_CONVERTER_FACTORY","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BNT_CONVERTER","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_FORMULA","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"registry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONTRACT_FEATURES","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_version","type":"uint16"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_NETWORK","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_GAS_PRICE_LIMIT","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONVERTER_CONVERSION_WHITELIST","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_registry","type":"address"}],"name":"setRegistry","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_version","type":"bytes32"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_X","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_X_UPGRADER","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_converter","type":"address"},{"name":"_version","type":"bytes32"}],"name":"upgradeOld","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"NON_STANDARD_TOKEN_REGISTRY","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_registry","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_converter","type":"address"},{"indexed":true,"name":"_owner","type":"address"}],"name":"ConverterOwned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_oldConverter","type":"address"},{"indexed":true,"name":"_newConverter","type":"address"}],"name":"ConverterUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_prevOwner","type":"address"},{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"}]

60c0604052600360808190527f302e33000000000000000000000000000000000000000000000000000000000060a090815262000040916002919062000094565b503480156200004e57600080fd5b5060405160208062001c5383398101604052516000805433600160a060020a03199182161790915560038054909116600160a060020a0390921691909117905562000139565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000d757805160ff191683800117855562000107565b8280016001018555821562000107579182015b8281111562000107578251825591602001919060010190620000ea565b506200011592915062000119565b5090565b6200013691905b8082111562000115576000815560010162000120565b90565b611b0a80620001496000396000f3006080604052600436106101195763ffffffff60e060020a6000350416630c87355e811461011e5780631d000b611461014557806325f9bfef1461015a57806354fd4d501461016f5780635a46f06c146101f957806362614ae61461020e5780636d7bd3fc1461022357806379ba5097146102385780637b1039991461024f57806383315b6e146102805780638da5cb5b1461029557806390f58c96146102aa5780639232494e146102c65780639249993a146102db57806392d1abb7146102f0578063a91ee0dc14610305578063bc444e1314610326578063c4a8598e1461033e578063cc97b38f14610353578063d4ee1d9014610368578063f2cfed871461037d578063f2fde38b146103a1578063f5286b9c146103c2575b600080fd5b34801561012a57600080fd5b506101336103d7565b60408051918252519081900360200190f35b34801561015157600080fd5b506101336103fb565b34801561016657600080fd5b5061013361041f565b34801561017b57600080fd5b50610184610443565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101be5781810151838201526020016101a6565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020557600080fd5b506101336104ce565b34801561021a57600080fd5b506101336104f2565b34801561022f57600080fd5b50610133610516565b34801561024457600080fd5b5061024d61053a565b005b34801561025b57600080fd5b506102646105c2565b60408051600160a060020a039092168252519081900360200190f35b34801561028c57600080fd5b506101336105d1565b3480156102a157600080fd5b506102646105f5565b3480156102b657600080fd5b5061024d61ffff60043516610604565b3480156102d257600080fd5b50610133610615565b3480156102e757600080fd5b50610133610639565b3480156102fc57600080fd5b5061013361065d565b34801561031157600080fd5b5061024d600160a060020a0360043516610662565b34801561033257600080fd5b5061024d6004356106a8565b34801561034a57600080fd5b506101336106b2565b34801561035f57600080fd5b506101336106d6565b34801561037457600080fd5b506102646106fa565b34801561038957600080fd5b5061024d600160a060020a0360043516602435610709565b3480156103ad57600080fd5b5061024d600160a060020a0360043516610b4b565b3480156103ce57600080fd5b50610133610bac565b7f42616e636f72436f6e766572746572557067726164657200000000000000000081565b7f424e54546f6b656e00000000000000000000000000000000000000000000000081565b7f436f6e747261637452656769737472790000000000000000000000000000000081565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b505050505081565b7f42616e636f72436f6e766572746572466163746f72790000000000000000000081565b7f424e54436f6e766572746572000000000000000000000000000000000000000081565b7f42616e636f72466f726d756c610000000000000000000000000000000000000081565b600154600160a060020a0316331461055157600080fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600354600160a060020a031681565b7f436f6e747261637446656174757265730000000000000000000000000000000081565b600054600160a060020a031681565b6106123361ffff8316610709565b50565b7f42616e636f724e6574776f726b0000000000000000000000000000000000000081565b7f42616e636f7247617350726963654c696d69740000000000000000000000000081565b600181565b600054600160a060020a0316331461067957600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6106123382610709565b7f42616e636f72580000000000000000000000000000000000000000000000000081565b7f42616e636f72585570677261646572000000000000000000000000000000000081565b600154600160a060020a031681565b6000808080807f302e34000000000000000000000000000000000000000000000000000000000086141561073c57600194505b86935083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561077d57600080fd5b505af1158015610791573d6000803e3d6000fd5b505050506040513d60208110156107a757600080fd5b505192506107b484610bd0565b6107bd84610c5f565b91506107ca8483876111ec565b6107d48483611551565b6107df848387611644565b83600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561081d57600080fd5b505af1158015610831573d6000803e3d6000fd5b505050506040513d602081101561084757600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038087169290841691638da5cb5b9160048083019260209291908290030181600087803b1580156108ac57600080fd5b505af11580156108c0573d6000803e3d6000fd5b505050506040513d60208110156108d657600080fd5b5051600160a060020a031614156109b15783600160a060020a03166321e6b53d836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561094257600080fd5b505af1158015610956573d6000803e3d6000fd5b5050505081600160a060020a03166338a5e0166040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561099857600080fd5b505af11580156109ac573d6000803e3d6000fd5b505050505b83600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b5050505081600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a7f57600080fd5b505af1158015610a93573d6000803e3d6000fd5b5050505081600160a060020a031663e4edf852846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610af257600080fd5b505af1158015610b06573d6000803e3d6000fd5b5050604051600160a060020a038086169350871691507f522b846327aea07106ec4d64ae4b6d6dea47689884dab650fd3a1f2e1d6a270190600090a350505050505050565b600054600160a060020a03163314610b6257600080fd5b600054600160a060020a0382811691161415610b7d57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f4e6f6e5374616e64617264546f6b656e5265676973747279000000000000000081565b80600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b5050604051309250600160a060020a03841691507ff764604894fa993d4370a9cb28b81c11deb1aafdb2909156173ae3833dad807590600090a350565b60008060008060008060008088600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b505050506040513d6020811015610cd357600080fd5b5051604080517f94c275ad0000000000000000000000000000000000000000000000000000000081529051919750600160a060020a038b16916394c275ad916004808201926020929091908290030181600087803b158015610d3457600080fd5b505af1158015610d48573d6000803e3d6000fd5b505050506040513d6020811015610d5e57600080fd5b5051600354604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f42616e636f72436f6e766572746572466163746f72790000000000000000000060048201529051929750600160a060020a039091169163bb34534c916024808201926020929091908290030181600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b505050506040513d6020811015610e1357600080fd5b5051600354604080517f034efaeb000000000000000000000000000000000000000000000000000000008152600160a060020a038a81166004830152928316602482015263ffffffff891660448201526000606482018190526084820181905291519397509187169263034efaeb9260a4808201936020939283900390910190829087803b158015610ea457600080fd5b505af1158015610eb8573d6000803e3d6000fd5b505050506040513d6020811015610ece57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919450849350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610f3157600080fd5b505af1158015610f45573d6000803e3d6000fd5b5050505081600160a060020a031663c8c2fe6c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f8757600080fd5b505af1158015610f9b573d6000803e3d6000fd5b5050600354604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637446656174757265730000000000000000000000000000000060048201529051600160a060020a03909216935063bb34534c92506024808201926020929091908290030181600087803b15801561102557600080fd5b505af1158015611039573d6000803e3d6000fd5b505050506040513d602081101561104f57600080fd5b5051604080517fa5fbf287000000000000000000000000000000000000000000000000000000008152600160a060020a038c811660048301526001602483015291519293509083169163a5fbf287916044808201926020929091908290030181600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b505050506040513d60208110156110ea57600080fd5b5051156111e05788600160a060020a031663c45d3d926040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561112f57600080fd5b505af1158015611143573d6000803e3d6000fd5b505050506040513d602081101561115957600080fd5b50519650600160a060020a038716156111e05781600160a060020a0316634af80f0e886040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050505b50979650505050505050565b60008060008060008060008060008961126e578b600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561123d57600080fd5b505af1158015611251573d6000803e3d6000fd5b505050506040513d602081101561126757600080fd5b50516112d9565b8b600160a060020a0316639b99a8e26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156112ac57600080fd5b505af11580156112c0573d6000803e3d6000fd5b505050506040513d60208110156112d657600080fd5b50515b9350600092505b8361ffff168361ffff1610156115435789611373578b600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561134257600080fd5b505af1158015611356573d6000803e3d6000fd5b505050506040513d602081101561136c57600080fd5b50516113ed565b8b600160a060020a031663d031370b846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505050506040513d60208110156113ea57600080fd5b50515b91506113fa8c838c61196f565b604080517f3f4d2fc2000000000000000000000000000000000000000000000000000000008152600160a060020a03808a16600483015263ffffffff8716602483015285151560448301529151969f50949d50929b5090995097508493508d1691633f4d2fc29160648082019260009290919082900301818387803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50505050861561153857604080517f0ca78923000000000000000000000000000000000000000000000000000000008152600160a060020a03838116600483015263ffffffff8b1660248301528915156044830152606482018c90529151918d1691630ca789239160848082019260009290919082900301818387803b15801561151f57600080fd5b505af1158015611533573d6000803e3d6000fd5b505050505b6001909201916112e0565b505050505050505050505050565b600082600160a060020a031663579cd3ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561159157600080fd5b505af11580156115a5573d6000803e3d6000fd5b505050506040513d60208110156115bb57600080fd5b5051604080517fecbca55d00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201529051919250600160a060020a0384169163ecbca55d9160248082019260009290919082900301818387803b15801561162757600080fd5b505af115801561163b573d6000803e3d6000fd5b50505050505050565b6000806000806000856116c05787600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561168f57600080fd5b505af11580156116a3573d6000803e3d6000fd5b505050506040513d60208110156116b957600080fd5b505161172b565b87600160a060020a0316639b99a8e26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156116fe57600080fd5b505af1158015611712573d6000803e3d6000fd5b505050506040513d602081101561172857600080fd5b50515b9350600092505b8361ffff168361ffff16101561196557856117c55787600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561179457600080fd5b505af11580156117a8573d6000803e3d6000fd5b505050506040513d60208110156117be57600080fd5b505161183f565b87600160a060020a031663d031370b846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561181257600080fd5b505af1158015611826573d6000803e3d6000fd5b505050506040513d602081101561183c57600080fd5b50515b915081905080600160a060020a03166370a08231896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561189f57600080fd5b505af11580156118b3573d6000803e3d6000fd5b505050506040513d60208110156118c957600080fd5b5051604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528a81166024830152604482018490529151929750908a1691635e35359e9160648082019260009290919082900301818387803b15801561194157600080fd5b505af1158015611955573d6000803e3d6000fd5b5050600190940193506117329050565b5050505050505050565b600080600080600085611a255787600160a060020a0316630e53aae9886040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060a060405180830381600087803b1580156119d757600080fd5b505af11580156119eb573d6000803e3d6000fd5b505050506040513d60a0811015611a0157600080fd5b50805160208201516040830151606084015160809094015192939192909190611aca565b87600160a060020a031663d66bd524886040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060a060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050506040513d60a0811015611aaa57600080fd5b508051602082015160408301516060840151608090940151929391929091905b939c929b50909950975090955093505050505600a165627a7a7230582074d02b2984267bac4f853c4481465c641be15a89aabf918a025dcb62e3dbf801002900000000000000000000000052ae12abe5d8bd778bd5397f99ca900624cfadd4

Deployed Bytecode

0x6080604052600436106101195763ffffffff60e060020a6000350416630c87355e811461011e5780631d000b611461014557806325f9bfef1461015a57806354fd4d501461016f5780635a46f06c146101f957806362614ae61461020e5780636d7bd3fc1461022357806379ba5097146102385780637b1039991461024f57806383315b6e146102805780638da5cb5b1461029557806390f58c96146102aa5780639232494e146102c65780639249993a146102db57806392d1abb7146102f0578063a91ee0dc14610305578063bc444e1314610326578063c4a8598e1461033e578063cc97b38f14610353578063d4ee1d9014610368578063f2cfed871461037d578063f2fde38b146103a1578063f5286b9c146103c2575b600080fd5b34801561012a57600080fd5b506101336103d7565b60408051918252519081900360200190f35b34801561015157600080fd5b506101336103fb565b34801561016657600080fd5b5061013361041f565b34801561017b57600080fd5b50610184610443565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101be5781810151838201526020016101a6565b50505050905090810190601f1680156101eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020557600080fd5b506101336104ce565b34801561021a57600080fd5b506101336104f2565b34801561022f57600080fd5b50610133610516565b34801561024457600080fd5b5061024d61053a565b005b34801561025b57600080fd5b506102646105c2565b60408051600160a060020a039092168252519081900360200190f35b34801561028c57600080fd5b506101336105d1565b3480156102a157600080fd5b506102646105f5565b3480156102b657600080fd5b5061024d61ffff60043516610604565b3480156102d257600080fd5b50610133610615565b3480156102e757600080fd5b50610133610639565b3480156102fc57600080fd5b5061013361065d565b34801561031157600080fd5b5061024d600160a060020a0360043516610662565b34801561033257600080fd5b5061024d6004356106a8565b34801561034a57600080fd5b506101336106b2565b34801561035f57600080fd5b506101336106d6565b34801561037457600080fd5b506102646106fa565b34801561038957600080fd5b5061024d600160a060020a0360043516602435610709565b3480156103ad57600080fd5b5061024d600160a060020a0360043516610b4b565b3480156103ce57600080fd5b50610133610bac565b7f42616e636f72436f6e766572746572557067726164657200000000000000000081565b7f424e54546f6b656e00000000000000000000000000000000000000000000000081565b7f436f6e747261637452656769737472790000000000000000000000000000000081565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b505050505081565b7f42616e636f72436f6e766572746572466163746f72790000000000000000000081565b7f424e54436f6e766572746572000000000000000000000000000000000000000081565b7f42616e636f72466f726d756c610000000000000000000000000000000000000081565b600154600160a060020a0316331461055157600080fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600354600160a060020a031681565b7f436f6e747261637446656174757265730000000000000000000000000000000081565b600054600160a060020a031681565b6106123361ffff8316610709565b50565b7f42616e636f724e6574776f726b0000000000000000000000000000000000000081565b7f42616e636f7247617350726963654c696d69740000000000000000000000000081565b600181565b600054600160a060020a0316331461067957600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6106123382610709565b7f42616e636f72580000000000000000000000000000000000000000000000000081565b7f42616e636f72585570677261646572000000000000000000000000000000000081565b600154600160a060020a031681565b6000808080807f302e34000000000000000000000000000000000000000000000000000000000086141561073c57600194505b86935083600160a060020a0316638da5cb5b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561077d57600080fd5b505af1158015610791573d6000803e3d6000fd5b505050506040513d60208110156107a757600080fd5b505192506107b484610bd0565b6107bd84610c5f565b91506107ca8483876111ec565b6107d48483611551565b6107df848387611644565b83600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561081d57600080fd5b505af1158015610831573d6000803e3d6000fd5b505050506040513d602081101561084757600080fd5b5051604080517f8da5cb5b0000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038087169290841691638da5cb5b9160048083019260209291908290030181600087803b1580156108ac57600080fd5b505af11580156108c0573d6000803e3d6000fd5b505050506040513d60208110156108d657600080fd5b5051600160a060020a031614156109b15783600160a060020a03166321e6b53d836040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b15801561094257600080fd5b505af1158015610956573d6000803e3d6000fd5b5050505081600160a060020a03166338a5e0166040518163ffffffff1660e060020a028152600401600060405180830381600087803b15801561099857600080fd5b505af11580156109ac573d6000803e3d6000fd5b505050505b83600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a0c57600080fd5b505af1158015610a20573d6000803e3d6000fd5b5050505081600160a060020a031663f2fde38b846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610a7f57600080fd5b505af1158015610a93573d6000803e3d6000fd5b5050505081600160a060020a031663e4edf852846040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b158015610af257600080fd5b505af1158015610b06573d6000803e3d6000fd5b5050604051600160a060020a038086169350871691507f522b846327aea07106ec4d64ae4b6d6dea47689884dab650fd3a1f2e1d6a270190600090a350505050505050565b600054600160a060020a03163314610b6257600080fd5b600054600160a060020a0382811691161415610b7d57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f4e6f6e5374616e64617264546f6b656e5265676973747279000000000000000081565b80600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b5050604051309250600160a060020a03841691507ff764604894fa993d4370a9cb28b81c11deb1aafdb2909156173ae3833dad807590600090a350565b60008060008060008060008088600160a060020a031663fc0c546a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ca957600080fd5b505af1158015610cbd573d6000803e3d6000fd5b505050506040513d6020811015610cd357600080fd5b5051604080517f94c275ad0000000000000000000000000000000000000000000000000000000081529051919750600160a060020a038b16916394c275ad916004808201926020929091908290030181600087803b158015610d3457600080fd5b505af1158015610d48573d6000803e3d6000fd5b505050506040513d6020811015610d5e57600080fd5b5051600354604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f42616e636f72436f6e766572746572466163746f72790000000000000000000060048201529051929750600160a060020a039091169163bb34534c916024808201926020929091908290030181600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b505050506040513d6020811015610e1357600080fd5b5051600354604080517f034efaeb000000000000000000000000000000000000000000000000000000008152600160a060020a038a81166004830152928316602482015263ffffffff891660448201526000606482018190526084820181905291519397509187169263034efaeb9260a4808201936020939283900390910190829087803b158015610ea457600080fd5b505af1158015610eb8573d6000803e3d6000fd5b505050506040513d6020811015610ece57600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919450849350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b158015610f3157600080fd5b505af1158015610f45573d6000803e3d6000fd5b5050505081600160a060020a031663c8c2fe6c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b158015610f8757600080fd5b505af1158015610f9b573d6000803e3d6000fd5b5050600354604080517fbb34534c0000000000000000000000000000000000000000000000000000000081527f436f6e747261637446656174757265730000000000000000000000000000000060048201529051600160a060020a03909216935063bb34534c92506024808201926020929091908290030181600087803b15801561102557600080fd5b505af1158015611039573d6000803e3d6000fd5b505050506040513d602081101561104f57600080fd5b5051604080517fa5fbf287000000000000000000000000000000000000000000000000000000008152600160a060020a038c811660048301526001602483015291519293509083169163a5fbf287916044808201926020929091908290030181600087803b1580156110c057600080fd5b505af11580156110d4573d6000803e3d6000fd5b505050506040513d60208110156110ea57600080fd5b5051156111e05788600160a060020a031663c45d3d926040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561112f57600080fd5b505af1158015611143573d6000803e3d6000fd5b505050506040513d602081101561115957600080fd5b50519650600160a060020a038716156111e05781600160a060020a0316634af80f0e886040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050600060405180830381600087803b1580156111c757600080fd5b505af11580156111db573d6000803e3d6000fd5b505050505b50979650505050505050565b60008060008060008060008060008961126e578b600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561123d57600080fd5b505af1158015611251573d6000803e3d6000fd5b505050506040513d602081101561126757600080fd5b50516112d9565b8b600160a060020a0316639b99a8e26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156112ac57600080fd5b505af11580156112c0573d6000803e3d6000fd5b505050506040513d60208110156112d657600080fd5b50515b9350600092505b8361ffff168361ffff1610156115435789611373578b600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561134257600080fd5b505af1158015611356573d6000803e3d6000fd5b505050506040513d602081101561136c57600080fd5b50516113ed565b8b600160a060020a031663d031370b846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b505050506040513d60208110156113ea57600080fd5b50515b91506113fa8c838c61196f565b604080517f3f4d2fc2000000000000000000000000000000000000000000000000000000008152600160a060020a03808a16600483015263ffffffff8716602483015285151560448301529151969f50949d50929b5090995097508493508d1691633f4d2fc29160648082019260009290919082900301818387803b15801561148257600080fd5b505af1158015611496573d6000803e3d6000fd5b50505050861561153857604080517f0ca78923000000000000000000000000000000000000000000000000000000008152600160a060020a03838116600483015263ffffffff8b1660248301528915156044830152606482018c90529151918d1691630ca789239160848082019260009290919082900301818387803b15801561151f57600080fd5b505af1158015611533573d6000803e3d6000fd5b505050505b6001909201916112e0565b505050505050505050505050565b600082600160a060020a031663579cd3ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561159157600080fd5b505af11580156115a5573d6000803e3d6000fd5b505050506040513d60208110156115bb57600080fd5b5051604080517fecbca55d00000000000000000000000000000000000000000000000000000000815263ffffffff831660048201529051919250600160a060020a0384169163ecbca55d9160248082019260009290919082900301818387803b15801561162757600080fd5b505af115801561163b573d6000803e3d6000fd5b50505050505050565b6000806000806000856116c05787600160a060020a03166371f52bf36040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561168f57600080fd5b505af11580156116a3573d6000803e3d6000fd5b505050506040513d60208110156116b957600080fd5b505161172b565b87600160a060020a0316639b99a8e26040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156116fe57600080fd5b505af1158015611712573d6000803e3d6000fd5b505050506040513d602081101561172857600080fd5b50515b9350600092505b8361ffff168361ffff16101561196557856117c55787600160a060020a03166319b64015846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561179457600080fd5b505af11580156117a8573d6000803e3d6000fd5b505050506040513d60208110156117be57600080fd5b505161183f565b87600160a060020a031663d031370b846040518263ffffffff1660e060020a028152600401808261ffff168152602001915050602060405180830381600087803b15801561181257600080fd5b505af1158015611826573d6000803e3d6000fd5b505050506040513d602081101561183c57600080fd5b50515b915081905080600160a060020a03166370a08231896040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b15801561189f57600080fd5b505af11580156118b3573d6000803e3d6000fd5b505050506040513d60208110156118c957600080fd5b5051604080517f5e35359e000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301528a81166024830152604482018490529151929750908a1691635e35359e9160648082019260009290919082900301818387803b15801561194157600080fd5b505af1158015611955573d6000803e3d6000fd5b5050600190940193506117329050565b5050505050505050565b600080600080600085611a255787600160a060020a0316630e53aae9886040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060a060405180830381600087803b1580156119d757600080fd5b505af11580156119eb573d6000803e3d6000fd5b505050506040513d60a0811015611a0157600080fd5b50805160208201516040830151606084015160809094015192939192909190611aca565b87600160a060020a031663d66bd524886040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a0316815260200191505060a060405180830381600087803b158015611a8057600080fd5b505af1158015611a94573d6000803e3d6000fd5b505050506040513d60a0811015611aaa57600080fd5b508051602082015160408301516060840151608090940151929391929091905b939c929b50909950975090955093505050505600a165627a7a7230582074d02b2984267bac4f853c4481465c641be15a89aabf918a025dcb62e3dbf8010029

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

00000000000000000000000052ae12abe5d8bd778bd5397f99ca900624cfadd4

-----Decoded View---------------
Arg [0] : _registry (address): 0x52Ae12ABe5D8BD778BD5397F99cA900624CfADD4

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000052ae12abe5d8bd778bd5397f99ca900624cfadd4


Swarm Source

bzzr://74d02b2984267bac4f853c4481465c641be15a89aabf918a025dcb62e3dbf801

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.