Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 48 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Accept Ownership | 11029533 | 1569 days ago | IN | 0 ETH | 0.00106776 | ||||
Upgrade Old | 9540469 | 1799 days ago | IN | 0 ETH | 0.00807755 | ||||
Upgrade Old | 9539961 | 1799 days ago | IN | 0 ETH | 0.000412 | ||||
Upgrade Old | 9537450 | 1800 days ago | IN | 0 ETH | 0.01220244 | ||||
Upgrade Old | 9481111 | 1808 days ago | IN | 0 ETH | 0.02423397 | ||||
Upgrade Old | 9325576 | 1832 days ago | IN | 0 ETH | 0.08471576 | ||||
Upgrade Old | 9278597 | 1839 days ago | IN | 0 ETH | 0.06208423 | ||||
Upgrade Old | 9246392 | 1844 days ago | IN | 0 ETH | 0.09298548 | ||||
Upgrade Old | 9210754 | 1850 days ago | IN | 0 ETH | 0.01365512 | ||||
Upgrade Old | 9185818 | 1854 days ago | IN | 0 ETH | 0.00170394 | ||||
Upgrade Old | 9185807 | 1854 days ago | IN | 0 ETH | 0.00046 | ||||
Upgrade Old | 9185671 | 1854 days ago | IN | 0 ETH | 0.00046 | ||||
Upgrade Old | 9151379 | 1861 days ago | IN | 0 ETH | 0.04550895 | ||||
Upgrade Old | 9075115 | 1876 days ago | IN | 0 ETH | 0.2530014 | ||||
Upgrade Old | 9009308 | 1887 days ago | IN | 0 ETH | 0.15196473 | ||||
Upgrade Old | 9003940 | 1888 days ago | IN | 0 ETH | 0.15195813 | ||||
Upgrade Old | 9003932 | 1888 days ago | IN | 0 ETH | 0.15195423 | ||||
Upgrade Old | 9003923 | 1888 days ago | IN | 0 ETH | 0.15198309 | ||||
Upgrade Old | 9003909 | 1888 days ago | IN | 0 ETH | 0.15194421 | ||||
Upgrade Old | 9003901 | 1888 days ago | IN | 0 ETH | 0.1519677 | ||||
Upgrade Old | 9003897 | 1888 days ago | IN | 0 ETH | 0.15195186 | ||||
Upgrade Old | 9003891 | 1888 days ago | IN | 0 ETH | 0.15195519 | ||||
Upgrade Old | 9003883 | 1888 days ago | IN | 0 ETH | 0.15195339 | ||||
Upgrade Old | 9003869 | 1888 days ago | IN | 0 ETH | 0.15196137 | ||||
Upgrade Old | 9003864 | 1888 days ago | IN | 0 ETH | 0.15194721 |
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.