Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 7 from a total of 7 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Register Typed C... | 10362583 | 1597 days ago | IN | 0 ETH | 0.00097792 | ||||
Register Typed C... | 10362562 | 1597 days ago | IN | 0 ETH | 0.00103904 | ||||
Register Typed C... | 10287473 | 1609 days ago | IN | 0 ETH | 0.00110016 | ||||
Register Typed C... | 10285584 | 1609 days ago | IN | 0 ETH | 0.00097792 | ||||
Register Typed C... | 10272789 | 1611 days ago | IN | 0 ETH | 0.00141236 | ||||
Register Typed C... | 10272776 | 1611 days ago | IN | 0 ETH | 0.00141236 | ||||
0x60806040 | 10272737 | 1611 days ago | IN | 0 ETH | 0.0912446 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
10563514 | 1566 days ago | Contract Creation | 0 ETH | |||
10557571 | 1567 days ago | Contract Creation | 0 ETH | |||
10542996 | 1569 days ago | Contract Creation | 0 ETH | |||
10520859 | 1572 days ago | Contract Creation | 0 ETH | |||
10518805 | 1573 days ago | Contract Creation | 0 ETH | |||
10430571 | 1586 days ago | Contract Creation | 0 ETH | |||
10426463 | 1587 days ago | Contract Creation | 0 ETH | |||
10402041 | 1591 days ago | Contract Creation | 0 ETH | |||
10397696 | 1591 days ago | Contract Creation | 0 ETH | |||
10393710 | 1592 days ago | Contract Creation | 0 ETH | |||
10384748 | 1593 days ago | Contract Creation | 0 ETH | |||
10384738 | 1593 days ago | Contract Creation | 0 ETH | |||
10382712 | 1594 days ago | Contract Creation | 0 ETH | |||
10373354 | 1595 days ago | Contract Creation | 0 ETH | |||
10373318 | 1595 days ago | Contract Creation | 0 ETH | |||
10373306 | 1595 days ago | Contract Creation | 0 ETH | |||
10373306 | 1595 days ago | Contract Creation | 0 ETH | |||
10362422 | 1597 days ago | Contract Creation | 0 ETH | |||
10329440 | 1602 days ago | Contract Creation | 0 ETH | |||
10326543 | 1602 days ago | Contract Creation | 0 ETH | |||
10307583 | 1605 days ago | Contract Creation | 0 ETH | |||
10301277 | 1606 days ago | Contract Creation | 0 ETH | |||
10291692 | 1608 days ago | Contract Creation | 0 ETH | |||
10286988 | 1609 days ago | Contract Creation | 0 ETH | |||
10277224 | 1610 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
ConverterFactory
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-06-15 */ // File: contracts/utility/interfaces/IOwned.sol pragma solidity 0.4.26; /* 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/IERC20Token.sol pragma solidity 0.4.26; /* 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/ITokenHolder.sol pragma solidity 0.4.26; /* Token Holder interface */ contract ITokenHolder is IOwned { function withdrawTokens(IERC20Token _token, address _to, uint256 _amount) public; } // File: contracts/converter/interfaces/IConverterAnchor.sol pragma solidity 0.4.26; /* Converter Anchor interface */ contract IConverterAnchor is IOwned, ITokenHolder { } // File: contracts/utility/interfaces/IWhitelist.sol pragma solidity 0.4.26; /* Whitelist interface */ contract IWhitelist { function isWhitelisted(address _address) public view returns (bool); } // File: contracts/converter/interfaces/IConverter.sol pragma solidity 0.4.26; /* Converter interface */ contract IConverter is IOwned { function converterType() public pure returns (uint16); function anchor() public view returns (IConverterAnchor) {this;} function isActive() public view returns (bool); function rateAndFee(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount) public view returns (uint256, uint256); function convert(IERC20Token _sourceToken, IERC20Token _targetToken, uint256 _amount, address _trader, address _beneficiary) public payable returns (uint256); function conversionWhitelist() public view returns (IWhitelist) {this;} function conversionFee() public view returns (uint32) {this;} function maxConversionFee() public view returns (uint32) {this;} function reserveBalance(IERC20Token _reserveToken) public view returns (uint256); function() external payable; function transferAnchorOwnership(address _newOwner) public; function acceptAnchorOwnership() public; function setConversionFee(uint32 _conversionFee) public; function setConversionWhitelist(IWhitelist _whitelist) public; function withdrawTokens(IERC20Token _token, address _to, uint256 _amount) public; function withdrawETH(address _to) public; function addReserve(IERC20Token _token, uint32 _ratio) public; // deprecated, backward compatibility function token() public view returns (IConverterAnchor); function transferTokenOwnership(address _newOwner) public; function acceptTokenOwnership() public; 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); function connectorTokenCount() public view returns (uint16); } // File: contracts/utility/interfaces/IContractRegistry.sol pragma solidity 0.4.26; /* 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/IConverterFactory.sol pragma solidity 0.4.26; /* Converter Factory interface */ contract IConverterFactory { function createAnchor(uint16 _type, string _name, string _symbol, uint8 _decimals) public returns (IConverterAnchor); function createConverter(uint16 _type, IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter); } // File: contracts/converter/interfaces/ITypedConverterAnchorFactory.sol pragma solidity 0.4.26; /* Typed Converter Anchor Factory interface */ contract ITypedConverterAnchorFactory { function converterType() public pure returns (uint16); function createAnchor(string _name, string _symbol, uint8 _decimals) public returns (IConverterAnchor); } // File: contracts/converter/interfaces/ITypedConverterFactory.sol pragma solidity 0.4.26; /* Typed Converter Factory interface */ contract ITypedConverterFactory { function converterType() public pure returns (uint16); function createConverter(IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter); } // File: contracts/utility/Owned.sol pragma solidity 0.4.26; /** * @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 { _ownerOnly(); _; } // error message binary size optimization function _ownerOnly() internal view { require(msg.sender == owner, "ERR_ACCESS_DENIED"); } /** * @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, "ERR_SAME_OWNER"); newOwner = _newOwner; } /** * @dev used by a new owner to accept an ownership transfer */ function acceptOwnership() public { require(msg.sender == newOwner, "ERR_ACCESS_DENIED"); emit OwnerUpdate(owner, newOwner); owner = newOwner; newOwner = address(0); } } // File: contracts/utility/Utils.sol pragma solidity 0.4.26; /** * @dev Utilities & Common Modifiers */ contract Utils { // verifies that a value is greater than zero modifier greaterThanZero(uint256 _value) { _greaterThanZero(_value); _; } // error message binary size optimization function _greaterThanZero(uint256 _value) internal pure { require(_value > 0, "ERR_ZERO_VALUE"); } // validates an address - currently only checks that it isn't null modifier validAddress(address _address) { _validAddress(_address); _; } // error message binary size optimization function _validAddress(address _address) internal pure { require(_address != address(0), "ERR_INVALID_ADDRESS"); } // verifies that the address is different than this contract address modifier notThis(address _address) { _notThis(_address); _; } // error message binary size optimization function _notThis(address _address) internal view { require(_address != address(this), "ERR_ADDRESS_IS_SELF"); } } // File: contracts/utility/SafeMath.sol pragma solidity 0.4.26; /** * @dev Library for basic math operations with overflow/underflow protection */ library SafeMath { /** * @dev returns the sum of _x and _y, reverts if the calculation overflows * * @param _x value 1 * @param _y value 2 * * @return sum */ function add(uint256 _x, uint256 _y) internal pure returns (uint256) { uint256 z = _x + _y; require(z >= _x, "ERR_OVERFLOW"); return z; } /** * @dev returns the difference of _x minus _y, reverts if the calculation underflows * * @param _x minuend * @param _y subtrahend * * @return difference */ function sub(uint256 _x, uint256 _y) internal pure returns (uint256) { require(_x >= _y, "ERR_UNDERFLOW"); return _x - _y; } /** * @dev returns the product of multiplying _x by _y, reverts if the calculation overflows * * @param _x factor 1 * @param _y factor 2 * * @return product */ function mul(uint256 _x, uint256 _y) internal pure returns (uint256) { // gas optimization if (_x == 0) return 0; uint256 z = _x * _y; require(z / _x == _y, "ERR_OVERFLOW"); return z; } /** * @dev Integer division of two numbers truncating the quotient, reverts on division by zero. * * @param _x dividend * @param _y divisor * * @return quotient */ function div(uint256 _x, uint256 _y) internal pure returns (uint256) { require(_y > 0, "ERR_DIVIDE_BY_ZERO"); uint256 c = _x / _y; return c; } } // File: contracts/token/ERC20Token.sol pragma solidity 0.4.26; /** * @dev ERC20 Standard Token implementation */ contract ERC20Token is IERC20Token, Utils { using SafeMath for uint256; string public name; string public symbol; uint8 public decimals; uint256 public totalSupply; mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; /** * @dev triggered when tokens are transferred between wallets * * @param _from source address * @param _to target address * @param _value transfer amount */ event Transfer(address indexed _from, address indexed _to, uint256 _value); /** * @dev triggered when a wallet allows another wallet to transfer tokens from on its behalf * * @param _owner wallet that approves the allowance * @param _spender wallet that receives the allowance * @param _value allowance amount */ event Approval(address indexed _owner, address indexed _spender, uint256 _value); /** * @dev initializes a new ERC20Token instance * * @param _name token name * @param _symbol token symbol * @param _decimals decimal points, for display purposes * @param _totalSupply total supply of token units */ constructor(string _name, string _symbol, uint8 _decimals, uint256 _totalSupply) public { // validate input require(bytes(_name).length > 0, "ERR_INVALID_NAME"); require(bytes(_symbol).length > 0, "ERR_INVALID_SYMBOL"); name = _name; symbol = _symbol; decimals = _decimals; totalSupply = _totalSupply; balanceOf[msg.sender] = _totalSupply; } /** * @dev transfers tokens to a given address * throws on any error rather then return a false flag to minimize user errors * * @param _to target address * @param _value transfer amount * * @return true if the transfer was successful, false if it wasn't */ function transfer(address _to, uint256 _value) public validAddress(_to) returns (bool success) { balanceOf[msg.sender] = balanceOf[msg.sender].sub(_value); balanceOf[_to] = balanceOf[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev transfers tokens to a given address on behalf of another address * throws on any error rather then return a false flag to minimize user errors * * @param _from source address * @param _to target address * @param _value transfer amount * * @return true if the transfer was successful, false if it wasn't */ function transferFrom(address _from, address _to, uint256 _value) public validAddress(_from) validAddress(_to) returns (bool success) { allowance[_from][msg.sender] = allowance[_from][msg.sender].sub(_value); balanceOf[_from] = balanceOf[_from].sub(_value); balanceOf[_to] = balanceOf[_to].add(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev allows another account/contract to transfers tokens on behalf of the caller * throws on any error rather then return a false flag to minimize user errors * * also, to minimize the risk of the approve/transferFrom attack vector * (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice * in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value * * @param _spender approved address * @param _value allowance amount * * @return true if the approval was successful, false if it wasn't */ function approve(address _spender, uint256 _value) public validAddress(_spender) returns (bool success) { // if the allowance isn't 0, it can only be updated to 0 to prevent an allowance change immediately after withdrawal require(_value == 0 || allowance[msg.sender][_spender] == 0, "ERR_INVALID_AMOUNT"); allowance[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } } // File: contracts/token/interfaces/ISmartToken.sol pragma solidity 0.4.26; /* Smart Token interface */ contract ISmartToken is IConverterAnchor, IERC20Token { function disableTransfers(bool _disable) public; function issue(address _to, uint256 _amount) public; function destroy(address _from, uint256 _amount) public; } // File: contracts/utility/TokenHandler.sol pragma solidity 0.4.26; contract TokenHandler { bytes4 private constant APPROVE_FUNC_SELECTOR = bytes4(keccak256("approve(address,uint256)")); bytes4 private constant TRANSFER_FUNC_SELECTOR = bytes4(keccak256("transfer(address,uint256)")); bytes4 private constant TRANSFER_FROM_FUNC_SELECTOR = bytes4(keccak256("transferFrom(address,address,uint256)")); /** * @dev executes the ERC20 token's `approve` function and reverts upon failure * the main purpose of this function is to prevent a non standard ERC20 token * from failing silently * * @param _token ERC20 token address * @param _spender approved address * @param _value allowance amount */ function safeApprove(IERC20Token _token, address _spender, uint256 _value) public { execute(_token, abi.encodeWithSelector(APPROVE_FUNC_SELECTOR, _spender, _value)); } /** * @dev executes the ERC20 token's `transfer` function and reverts upon failure * the main purpose of this function is to prevent a non standard ERC20 token * from failing silently * * @param _token ERC20 token address * @param _to target address * @param _value transfer amount */ function safeTransfer(IERC20Token _token, address _to, uint256 _value) public { execute(_token, abi.encodeWithSelector(TRANSFER_FUNC_SELECTOR, _to, _value)); } /** * @dev executes the ERC20 token's `transferFrom` function and reverts upon failure * the main purpose of this function is to prevent a non standard ERC20 token * from failing silently * * @param _token ERC20 token address * @param _from source address * @param _to target address * @param _value transfer amount */ function safeTransferFrom(IERC20Token _token, address _from, address _to, uint256 _value) public { execute(_token, abi.encodeWithSelector(TRANSFER_FROM_FUNC_SELECTOR, _from, _to, _value)); } /** * @dev executes a function on the ERC20 token and reverts upon failure * the main purpose of this function is to prevent a non standard ERC20 token * from failing silently * * @param _token ERC20 token address * @param _data data to pass in to the token's contract for execution */ function execute(IERC20Token _token, bytes memory _data) private { uint256[1] memory ret = [uint256(1)]; assembly { let success := call( gas, // gas remaining _token, // destination address 0, // no ether add(_data, 32), // input buffer (starts after the first 32 bytes in the `data` array) mload(_data), // input length (loaded from the first 32 bytes in the `data` array) ret, // output buffer 32 // output length ) if iszero(success) { revert(0, 0) } } require(ret[0] != 0, "ERR_TRANSFER_FAILED"); } } // File: contracts/utility/TokenHolder.sol pragma solidity 0.4.26; /** * @dev We consider every contract to be a 'token holder' since it's currently not possible * for a contract to deny receiving tokens. * * The TokenHolder's contract sole purpose is to provide a safety mechanism that allows * the owner to send tokens that were sent to the contract by mistake back to their sender. * * Note that we use the non standard ERC-20 interface which has no return value for transfer * in order to support both non standard as well as standard token contracts. * see https://github.com/ethereum/solidity/issues/4116 */ contract TokenHolder is ITokenHolder, TokenHandler, Owned, Utils { /** * @dev withdraws tokens held by the contract and sends them to an account * can only be called by the owner * * @param _token ERC20 token contract address * @param _to account to receive the new amount * @param _amount amount to withdraw */ function withdrawTokens(IERC20Token _token, address _to, uint256 _amount) public ownerOnly validAddress(_token) validAddress(_to) notThis(_to) { safeTransfer(_token, _to, _amount); } } // File: contracts/token/SmartToken.sol pragma solidity 0.4.26; /** * @dev Smart Token * * 'Owned' is specified here for readability reasons */ contract SmartToken is ISmartToken, Owned, ERC20Token, TokenHolder { using SafeMath for uint256; uint16 public constant version = 4; bool public transfersEnabled = true; // true if transfer/transferFrom are enabled, false otherwise /** * @dev triggered when the total supply is increased * * @param _amount amount that gets added to the supply */ event Issuance(uint256 _amount); /** * @dev triggered when the total supply is decreased * * @param _amount amount that gets removed from the supply */ event Destruction(uint256 _amount); /** * @dev initializes a new SmartToken instance * * @param _name token name * @param _symbol token short symbol, minimum 1 character * @param _decimals for display purposes only */ constructor(string _name, string _symbol, uint8 _decimals) public ERC20Token(_name, _symbol, _decimals, 0) { } // allows execution only when transfers are enabled modifier transfersAllowed { _transfersAllowed(); _; } // error message binary size optimization function _transfersAllowed() internal view { require(transfersEnabled, "ERR_TRANSFERS_DISABLED"); } /** * @dev disables/enables transfers * can only be called by the contract owner * * @param _disable true to disable transfers, false to enable them */ function disableTransfers(bool _disable) public ownerOnly { transfersEnabled = !_disable; } /** * @dev increases the token supply and sends the new tokens to the given account * can only be called by the contract owner * * @param _to account to receive the new amount * @param _amount amount to increase the supply by */ function issue(address _to, uint256 _amount) public ownerOnly validAddress(_to) notThis(_to) { totalSupply = totalSupply.add(_amount); balanceOf[_to] = balanceOf[_to].add(_amount); emit Issuance(_amount); emit Transfer(address(0), _to, _amount); } /** * @dev removes tokens from the given account and decreases the token supply * can only be called by the contract owner * * @param _from account to remove the amount from * @param _amount amount to decrease the supply by */ function destroy(address _from, uint256 _amount) public ownerOnly { balanceOf[_from] = balanceOf[_from].sub(_amount); totalSupply = totalSupply.sub(_amount); emit Transfer(_from, address(0), _amount); emit Destruction(_amount); } // ERC20 standard method overrides with some extra functionality /** * @dev send coins * throws on any error rather then return a false flag to minimize user errors * in addition to the standard checks, the function throws if transfers are disabled * * @param _to target address * @param _value transfer amount * * @return true if the transfer was successful, false if it wasn't */ function transfer(address _to, uint256 _value) public transfersAllowed returns (bool success) { assert(super.transfer(_to, _value)); return true; } /** * @dev an account/contract attempts to get the coins * throws on any error rather then return a false flag to minimize user errors * in addition to the standard checks, the function throws if transfers are disabled * * @param _from source address * @param _to target address * @param _value transfer amount * * @return true if the transfer was successful, false if it wasn't */ function transferFrom(address _from, address _to, uint256 _value) public transfersAllowed returns (bool success) { assert(super.transferFrom(_from, _to, _value)); return true; } } // File: contracts/converter/ConverterFactory.sol pragma solidity 0.4.26; /* Converter Factory */ contract ConverterFactory is IConverterFactory, Owned { /** * @dev triggered when a new converter is created * * @param _converter new converter address * @param _owner converter owner address */ event NewConverter(address indexed _converter, address indexed _owner); mapping (uint16 => ITypedConverterAnchorFactory) public anchorFactories; mapping (uint16 => ITypedConverterFactory) public converterFactories; /** * @dev initializes the factory with a specific typed converter anchor factory * can only be called by the owner * * @param _factory typed converter anchor factory */ function registerTypedConverterAnchorFactory(ITypedConverterAnchorFactory _factory) public ownerOnly { anchorFactories[_factory.converterType()] = _factory; } /** * @dev initializes the factory with a specific typed converter factory * can only be called by the owner * * @param _factory typed converter factory */ function registerTypedConverterFactory(ITypedConverterFactory _factory) public ownerOnly { converterFactories[_factory.converterType()] = _factory; } /** * @dev creates a new converter anchor with the given arguments and transfers * the ownership to the caller * * @param _converterType converter type, see ConverterBase contract main doc * @param _name name * @param _symbol symbol * @param _decimals decimals * * @return new converter anchor */ function createAnchor(uint16 _converterType, string _name, string _symbol, uint8 _decimals) public returns (IConverterAnchor) { IConverterAnchor anchor; ITypedConverterAnchorFactory factory = anchorFactories[_converterType]; if (factory == address(0)) { // create default anchor (SmartToken) anchor = new SmartToken(_name, _symbol, _decimals); } else { // create custom anchor anchor = factory.createAnchor(_name, _symbol, _decimals); anchor.acceptOwnership(); } anchor.transferOwnership(msg.sender); return anchor; } /** * @dev creates a new converter with the given arguments and transfers * the ownership to the caller * * @param _type converter type, see ConverterBase contract main doc * @param _anchor anchor governed by the converter * @param _registry address of a contract registry contract * @param _maxConversionFee maximum conversion fee, represented in ppm * * @return new converter */ function createConverter(uint16 _type, IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee) public returns (IConverter) { IConverter converter = converterFactories[_type].createConverter(_anchor, _registry, _maxConversionFee); converter.acceptOwnership(); converter.transferOwnership(msg.sender); emit NewConverter(converter, msg.sender); return converter; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_factory","type":"address"}],"name":"registerTypedConverterFactory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_type","type":"uint16"},{"name":"_anchor","type":"address"},{"name":"_registry","type":"address"},{"name":"_maxConversionFee","type":"uint32"}],"name":"createConverter","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_converterType","type":"uint16"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"}],"name":"createAnchor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"converterFactories","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint16"}],"name":"anchorFactories","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"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":"_factory","type":"address"}],"name":"registerTypedConverterAnchorFactory","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_converter","type":"address"},{"indexed":true,"name":"_owner","type":"address"}],"name":"NewConverter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_prevOwner","type":"address"},{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"}]
Contract Creation Code
608060405260008054600160a060020a03191633179055611fcb806100256000396000f30060806040526004361061008a5763ffffffff60e060020a60003504166312b4c6c1811461008f57806315f64b6a146100b25780632e9ab7b314610105578063327779a7146101aa5780633a8fc520146101c657806379ba5097146101e25780638da5cb5b146101f7578063d4ee1d901461020c578063e54b93ef14610221578063f2fde38b14610242575b600080fd5b34801561009b57600080fd5b506100b0600160a060020a0360043516610263565b005b3480156100be57600080fd5b506100e961ffff60043516600160a060020a036024358116906044351663ffffffff6064351661031c565b60408051600160a060020a039092168252519081900360200190f35b34801561011157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100e995833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff1693506104ff92505050565b3480156101b657600080fd5b506100e961ffff60043516610873565b3480156101d257600080fd5b506100e961ffff6004351661088e565b3480156101ee57600080fd5b506100b06108a9565b34801561020357600080fd5b506100e9610993565b34801561021857600080fd5b506100e96109a2565b34801561022d57600080fd5b506100b0600160a060020a03600435166109b1565b34801561024e57600080fd5b506100b0600160a060020a03600435166109fc565b61026b610ab0565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102ae57600080fd5b505af11580156102c2573d6000803e3d6000fd5b505050506040513d60208110156102d857600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b61ffff841660009081526003602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156103a657600080fd5b505af11580156103ba573d6000803e3d6000fd5b505050506040513d60208110156103d057600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156104a857600080fd5b505af11580156104bc573d6000803e3d6000fd5b5050604051339250600160a060020a03841691507fb54eb8f70476910bea510b4ca1ece1fdb11eeb345b0d46221dd40ba86e64953390600090a395945050505050565b61ffff84166000908152600260205260408120548190600160a060020a031680151561062d57858585610530610b2b565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b8381101561057457818101518382015260200161055c565b50505050905090810190601f1680156105a15780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156105d45781810151838201526020016105bc565b50505050905090810190601f1680156106015780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610625573d6000803e3d6000fd5b5091506107f0565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b8381101561069e578181015183820152602001610686565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156106fe5781810151838201526020016106e6565b50505050905090810190601f16801561072b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561074d57600080fd5b505af1158015610761573d6000803e3d6000fd5b505050506040513d602081101561077757600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b1580156107d757600080fd5b505af11580156107eb573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b15801561085057600080fd5b505af1158015610864573d6000803e3d6000fd5b50939998505050505050505050565b600360205260009081526040902054600160a060020a031681565b600260205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461092257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b6109b9610ab0565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102ae57600080fd5b610a04610ab0565b600054600160a060020a0382811691161415610a8157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610b2957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60405161146480610b3c83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200146438038062001464833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b611207806200025d6000396000f3006080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461012c578063095ea7b3146101b65780631608f18f146101ee57806318160ddd1461020a57806323b872dd14610231578063313ce5671461025b57806354fd4d50146102865780635e35359e146102b257806370a08231146102dc57806379ba5097146102fd578063867904b4146103125780638da5cb5b1461033657806395d89b4114610367578063a24835d11461037c578063a9059cbb146103a0578063bef97c87146103c4578063d1660f99146103d9578063d4ee1d9014610403578063d9fc4b6114610418578063dd62ed3e14610448578063eb5625d91461046f578063f2fde38b14610499575b600080fd5b34801561013857600080fd5b506101416104ba565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017b578181015183820152602001610163565b50505050905090810190601f1680156101a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101c257600080fd5b506101da600160a060020a0360043516602435610545565b604080519115158252519081900360200190f35b3480156101fa57600080fd5b50610208600435151561063d565b005b34801561021657600080fd5b5061021f610657565b60408051918252519081900360200190f35b34801561023d57600080fd5b506101da600160a060020a036004358116906024351660443561065d565b34801561026757600080fd5b50610270610684565b6040805160ff9092168252519081900360200190f35b34801561029257600080fd5b5061029b61068d565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b50610208600160a060020a0360043581169060243516604435610692565b3480156102e857600080fd5b5061021f600160a060020a03600435166106cb565b34801561030957600080fd5b506102086106dd565b34801561031e57600080fd5b50610208600160a060020a03600435166024356107b0565b34801561034257600080fd5b5061034b610892565b60408051600160a060020a039092168252519081900360200190f35b34801561037357600080fd5b506101416108a1565b34801561038857600080fd5b50610208600160a060020a03600435166024356108fc565b3480156103ac57600080fd5b506101da600160a060020a03600435166024356109c2565b3480156103d057600080fd5b506101da6109e7565b3480156103e557600080fd5b50610208600160a060020a03600435811690602435166044356109f0565b34801561040f57600080fd5b5061034b610aa7565b34801561042457600080fd5b50610208600160a060020a0360043581169060243581169060443516606435610ab6565b34801561045457600080fd5b5061021f600160a060020a0360043581169060243516610b9e565b34801561047b57600080fd5b50610208600160a060020a0360043581169060243516604435610bbb565b3480156104a557600080fd5b50610208600160a060020a0360043516610c6d565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561053d5780601f106105125761010080835404028352916020019161053d565b820191906000526020600020905b81548152906001019060200180831161052057829003601f168201915b505050505081565b60008261055181610d0a565b82158061057f5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b15156105d5576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b610645610d6d565b6008805460ff19169115919091179055565b60055481565b6000610667610dd1565b610672848484610e2d565b151561067a57fe5b5060019392505050565b60045460ff1681565b600481565b61069a610d6d565b826106a481610d0a565b826106ae81610d0a565b836106b881610f3e565b6106c38686866109f0565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461073f576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6107b8610d6d565b816107c281610d0a565b826107cc81610f3e565b6005546107df908463ffffffff610f9f16565b600555600160a060020a03841660009081526006602052604090205461080b908463ffffffff610f9f16565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a038616916000916000805160206111bc8339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561053d5780601f106105125761010080835404028352916020019161053d565b610904610d6d565b600160a060020a03821660009081526006602052604090205461092d908263ffffffff61100316565b600160a060020a038316600090815260066020526040902055600554610959908263ffffffff61100316565b600555604080518281529051600091600160a060020a038516916000805160206111bc8339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b60006109cc610dd1565b6109d68383611063565b15156109de57fe5b50600192915050565b60085460ff1681565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152610aa290849061110e565b505050565b600154600160a060020a031681565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152610b9890859061110e565b50505050565b600760209081526000928352604080842090915290825290205481565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152610aa290849061110e565b610c75610d6d565b600054600160a060020a0382811691161415610cdb576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610d6a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610dcf576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610dcf576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610e3981610d0a565b83610e4381610d0a565b600160a060020a0386166000908152600760209081526040808320338452909152902054610e77908563ffffffff61100316565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610eb8908563ffffffff61100316565b600160a060020a038088166000908152600660205260408082209390935590871681522054610eed908563ffffffff610f9f16565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a16926000805160206111bc83398151915292918290030190a350600195945050505050565b600160a060020a038116301415610d6a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600082820183811015610ffc576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b60008183101561105d576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008261106f81610d0a565b3360009081526006602052604090205461108f908463ffffffff61100316565b3360009081526006602052604080822092909255600160a060020a038616815220546110c1908463ffffffff610f9f16565b600160a060020a0385166000818152600660209081526040918290209390935580518681529051919233926000805160206111bc8339815191529281900390910190a35060019392505050565b61111661119c565b602060405190810160405280600181525090506020818351602085016000875af180151561114357600080fd5b5080511515610aa2576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820803c5c21824ce7e0c06d4dcd129b2c36c2bab21eaef578d98d412e69bb3e14680029a165627a7a7230582076a7173d3e99e3cd059b3bf0211b112b074c38c57094db220ea8a7b8b9b91a260029
Deployed Bytecode
0x60806040526004361061008a5763ffffffff60e060020a60003504166312b4c6c1811461008f57806315f64b6a146100b25780632e9ab7b314610105578063327779a7146101aa5780633a8fc520146101c657806379ba5097146101e25780638da5cb5b146101f7578063d4ee1d901461020c578063e54b93ef14610221578063f2fde38b14610242575b600080fd5b34801561009b57600080fd5b506100b0600160a060020a0360043516610263565b005b3480156100be57600080fd5b506100e961ffff60043516600160a060020a036024358116906044351663ffffffff6064351661031c565b60408051600160a060020a039092168252519081900360200190f35b34801561011157600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526100e995833561ffff1695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497505050923560ff1693506104ff92505050565b3480156101b657600080fd5b506100e961ffff60043516610873565b3480156101d257600080fd5b506100e961ffff6004351661088e565b3480156101ee57600080fd5b506100b06108a9565b34801561020357600080fd5b506100e9610993565b34801561021857600080fd5b506100e96109a2565b34801561022d57600080fd5b506100b0600160a060020a03600435166109b1565b34801561024e57600080fd5b506100b0600160a060020a03600435166109fc565b61026b610ab0565b806003600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102ae57600080fd5b505af11580156102c2573d6000803e3d6000fd5b505050506040513d60208110156102d857600080fd5b505161ffff1681526020810191909152604001600020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b61ffff841660009081526003602090815260408083205481517f11413958000000000000000000000000000000000000000000000000000000008152600160a060020a038881166004830152878116602483015263ffffffff8716604483015292518594939092169263114139589260648084019382900301818787803b1580156103a657600080fd5b505af11580156103ba573d6000803e3d6000fd5b505050506040513d60208110156103d057600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919250600160a060020a038316916379ba50979160048082019260009290919082900301818387803b15801561043057600080fd5b505af1158015610444573d6000803e3d6000fd5b5050604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a038516935063f2fde38b9250602480830192600092919082900301818387803b1580156104a857600080fd5b505af11580156104bc573d6000803e3d6000fd5b5050604051339250600160a060020a03841691507fb54eb8f70476910bea510b4ca1ece1fdb11eeb345b0d46221dd40ba86e64953390600090a395945050505050565b61ffff84166000908152600260205260408120548190600160a060020a031680151561062d57858585610530610b2b565b60ff82166040820152606080825284519082015283518190602080830191608084019188019080838360005b8381101561057457818101518382015260200161055c565b50505050905090810190601f1680156105a15780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156105d45781810151838201526020016105bc565b50505050905090810190601f1680156106015780820380516001836020036101000a031916815260200191505b5095505050505050604051809103906000f080158015610625573d6000803e3d6000fd5b5091506107f0565b80600160a060020a031663a9fd4a2a8787876040518463ffffffff1660e060020a0281526004018080602001806020018460ff1660ff168152602001838103835286818151815260200191508051906020019080838360005b8381101561069e578181015183820152602001610686565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b838110156106fe5781810151838201526020016106e6565b50505050905090810190601f16801561072b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561074d57600080fd5b505af1158015610761573d6000803e3d6000fd5b505050506040513d602081101561077757600080fd5b5051604080517f79ba50970000000000000000000000000000000000000000000000000000000081529051919350600160a060020a038416916379ba50979160048082019260009290919082900301818387803b1580156107d757600080fd5b505af11580156107eb573d6000803e3d6000fd5b505050505b604080517ff2fde38b0000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a0384169163f2fde38b91602480830192600092919082900301818387803b15801561085057600080fd5b505af1158015610864573d6000803e3d6000fd5b50939998505050505050505050565b600360205260009081526040902054600160a060020a031681565b600260205260009081526040902054600160a060020a031681565b600154600160a060020a0316331461092257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600154600160a060020a031681565b6109b9610ab0565b806002600083600160a060020a0316633e8ff43f6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156102ae57600080fd5b610a04610ab0565b600054600160a060020a0382811691161415610a8157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610b2957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60405161146480610b3c83390190560060806040526008805460ff191660011790553480156200001e57600080fd5b506040516200146438038062001464833981016040908152815160208301519183015160008054600160a060020a0319163317815591840180519094939093019290918491849184918110620000d557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4552525f494e56414c49445f4e414d4500000000000000000000000000000000604482015290519081900360640190fd5b82516000106200014657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4552525f494e56414c49445f53594d424f4c0000000000000000000000000000604482015290519081900360640190fd5b83516200015b906002906020870190620001a8565b50825162000171906003906020860190620001a8565b506004805460ff191660ff9390931692909217909155600581905533600090815260066020526040902055506200024d9350505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001eb57805160ff19168380011785556200021b565b828001600101855582156200021b579182015b828111156200021b578251825591602001919060010190620001fe565b50620002299291506200022d565b5090565b6200024a91905b8082111562000229576000815560010162000234565b90565b611207806200025d6000396000f3006080604052600436106101275763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461012c578063095ea7b3146101b65780631608f18f146101ee57806318160ddd1461020a57806323b872dd14610231578063313ce5671461025b57806354fd4d50146102865780635e35359e146102b257806370a08231146102dc57806379ba5097146102fd578063867904b4146103125780638da5cb5b1461033657806395d89b4114610367578063a24835d11461037c578063a9059cbb146103a0578063bef97c87146103c4578063d1660f99146103d9578063d4ee1d9014610403578063d9fc4b6114610418578063dd62ed3e14610448578063eb5625d91461046f578063f2fde38b14610499575b600080fd5b34801561013857600080fd5b506101416104ba565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561017b578181015183820152602001610163565b50505050905090810190601f1680156101a85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101c257600080fd5b506101da600160a060020a0360043516602435610545565b604080519115158252519081900360200190f35b3480156101fa57600080fd5b50610208600435151561063d565b005b34801561021657600080fd5b5061021f610657565b60408051918252519081900360200190f35b34801561023d57600080fd5b506101da600160a060020a036004358116906024351660443561065d565b34801561026757600080fd5b50610270610684565b6040805160ff9092168252519081900360200190f35b34801561029257600080fd5b5061029b61068d565b6040805161ffff9092168252519081900360200190f35b3480156102be57600080fd5b50610208600160a060020a0360043581169060243516604435610692565b3480156102e857600080fd5b5061021f600160a060020a03600435166106cb565b34801561030957600080fd5b506102086106dd565b34801561031e57600080fd5b50610208600160a060020a03600435166024356107b0565b34801561034257600080fd5b5061034b610892565b60408051600160a060020a039092168252519081900360200190f35b34801561037357600080fd5b506101416108a1565b34801561038857600080fd5b50610208600160a060020a03600435166024356108fc565b3480156103ac57600080fd5b506101da600160a060020a03600435166024356109c2565b3480156103d057600080fd5b506101da6109e7565b3480156103e557600080fd5b50610208600160a060020a03600435811690602435166044356109f0565b34801561040f57600080fd5b5061034b610aa7565b34801561042457600080fd5b50610208600160a060020a0360043581169060243581169060443516606435610ab6565b34801561045457600080fd5b5061021f600160a060020a0360043581169060243516610b9e565b34801561047b57600080fd5b50610208600160a060020a0360043581169060243516604435610bbb565b3480156104a557600080fd5b50610208600160a060020a0360043516610c6d565b6002805460408051602060018416156101000260001901909316849004601f8101849004840282018401909252818152929183018282801561053d5780601f106105125761010080835404028352916020019161053d565b820191906000526020600020905b81548152906001019060200180831161052057829003601f168201915b505050505081565b60008261055181610d0a565b82158061057f5750336000908152600760209081526040808320600160a060020a0388168452909152902054155b15156105d5576040805160e560020a62461bcd02815260206004820152601260248201527f4552525f494e56414c49445f414d4f554e540000000000000000000000000000604482015290519081900360640190fd5b336000818152600760209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b610645610d6d565b6008805460ff19169115919091179055565b60055481565b6000610667610dd1565b610672848484610e2d565b151561067a57fe5b5060019392505050565b60045460ff1681565b600481565b61069a610d6d565b826106a481610d0a565b826106ae81610d0a565b836106b881610f3e565b6106c38686866109f0565b505050505050565b60066020526000908152604090205481565b600154600160a060020a0316331461073f576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6107b8610d6d565b816107c281610d0a565b826107cc81610f3e565b6005546107df908463ffffffff610f9f16565b600555600160a060020a03841660009081526006602052604090205461080b908463ffffffff610f9f16565b600160a060020a03851660009081526006602090815260409182902092909255805185815290517f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc3929181900390910190a1604080518481529051600160a060020a038616916000916000805160206111bc8339815191529181900360200190a350505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561053d5780601f106105125761010080835404028352916020019161053d565b610904610d6d565b600160a060020a03821660009081526006602052604090205461092d908263ffffffff61100316565b600160a060020a038316600090815260066020526040902055600554610959908263ffffffff61100316565b600555604080518281529051600091600160a060020a038516916000805160206111bc8339815191529181900360200190a36040805182815290517f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539181900360200190a15050565b60006109cc610dd1565b6109d68383611063565b15156109de57fe5b50600192915050565b60085460ff1681565b604080517f7472616e7366657228616464726573732c75696e74323536290000000000000081528151908190036019018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152610aa290849061110e565b505050565b600154600160a060020a031681565b604080517f7472616e7366657246726f6d28616464726573732c616464726573732c75696e81527f74323536290000000000000000000000000000000000000000000000000000006020808301919091528251918290036025018220600160a060020a038088166024850152861660448401526064808401869052845180850390910181526084909301909352810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152610b9890859061110e565b50505050565b600760209081526000928352604080842090915290825290205481565b604080517f617070726f766528616464726573732c75696e7432353629000000000000000081528151908190036018018120600160a060020a038516602483015260448083018590528351808403909101815260649092019092526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1990931692909217909152610aa290849061110e565b610c75610d6d565b600054600160a060020a0382811691161415610cdb576040805160e560020a62461bcd02815260206004820152600e60248201527f4552525f53414d455f4f574e4552000000000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a0381161515610d6a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f494e56414c49445f4144445245535300000000000000000000000000604482015290519081900360640190fd5b50565b600054600160a060020a03163314610dcf576040805160e560020a62461bcd02815260206004820152601160248201527f4552525f4143434553535f44454e494544000000000000000000000000000000604482015290519081900360640190fd5b565b60085460ff161515610dcf576040805160e560020a62461bcd02815260206004820152601660248201527f4552525f5452414e53464552535f44495341424c454400000000000000000000604482015290519081900360640190fd5b600083610e3981610d0a565b83610e4381610d0a565b600160a060020a0386166000908152600760209081526040808320338452909152902054610e77908563ffffffff61100316565b600160a060020a038716600081815260076020908152604080832033845282528083209490945591815260069091522054610eb8908563ffffffff61100316565b600160a060020a038088166000908152600660205260408082209390935590871681522054610eed908563ffffffff610f9f16565b600160a060020a0380871660008181526006602090815260409182902094909455805188815290519193928a16926000805160206111bc83398151915292918290030190a350600195945050505050565b600160a060020a038116301415610d6a576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f414444524553535f49535f53454c4600000000000000000000000000604482015290519081900360640190fd5b600082820183811015610ffc576040805160e560020a62461bcd02815260206004820152600c60248201527f4552525f4f564552464c4f570000000000000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b60008183101561105d576040805160e560020a62461bcd02815260206004820152600d60248201527f4552525f554e444552464c4f5700000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b60008261106f81610d0a565b3360009081526006602052604090205461108f908463ffffffff61100316565b3360009081526006602052604080822092909255600160a060020a038616815220546110c1908463ffffffff610f9f16565b600160a060020a0385166000818152600660209081526040918290209390935580518681529051919233926000805160206111bc8339815191529281900390910190a35060019392505050565b61111661119c565b602060405190810160405280600181525090506020818351602085016000875af180151561114357600080fd5b5080511515610aa2576040805160e560020a62461bcd02815260206004820152601360248201527f4552525f5452414e534645525f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60206040519081016040528060019060208202803883395091929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820803c5c21824ce7e0c06d4dcd129b2c36c2bab21eaef578d98d412e69bb3e14680029a165627a7a7230582076a7173d3e99e3cd059b3bf0211b112b074c38c57094db220ea8a7b8b9b91a260029
Deployed Bytecode Sourcemap
24141:3233:0:-;;;;;;;;;-1:-1:-1;;;24141:3233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25204:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25204:163:0;-1:-1:-1;;;;;25204:163:0;;;;;;;26933:438;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26933:438:0;;;;;-1:-1:-1;;;;;26933:438:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26933:438:0;;;;;;;;;;;;;;25774:663;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25774:663:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;25774:663:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25774:663:0;;;;-1:-1:-1;25774:663:0;-1:-1:-1;25774:663:0;;-1:-1:-1;25774:663:0;;;;;;;;-1:-1:-1;25774:663:0;;-1:-1:-1;;;25774:663:0;;;;;-1:-1:-1;25774:663:0;;-1:-1:-1;;;25774:663:0;24545:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24545:68:0;;;;;;;24467:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24467:71:0;;;;;;;7088:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7088:208:0;;;;5903:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5903:20:0;;;;5930:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5930:23:0;;;;24830:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24830:172:0;-1:-1:-1;;;;;24830:172:0;;;;;6839:158;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6839:158:0;-1:-1:-1;;;;;6839:158:0;;;;;25204:163;6401:12;:10;:12::i;:::-;25351:8;25304:18;:44;25323:8;-1:-1:-1;;;;;25323:22:0;;:24;;;;;-1:-1:-1;;;25323:24:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;25323:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;25323:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25323:24:0;25304:44;;;;25323:24;25304:44;;;;;;;;-1:-1:-1;25304:44:0;:55;;-1:-1:-1;;25304:55:0;-1:-1:-1;;;;;25304:55:0;;;;;;;;;;-1:-1:-1;25204:163:0:o;26933:438::-;27115:25;;;27069:10;27115:25;;;:18;:25;;;;;;;;;:80;;;;;-1:-1:-1;;;;;27115:80:0;;;;;;;;;;;;;;;;;;;;;;;27069:10;;27115:25;;;;;:41;;:80;;;;;;;;;;27069:10;27115:25;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;27115:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27115:80:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27115:80:0;27206:27;;;;;;;;27115:80;;-1:-1:-1;;;;;;27206:25:0;;;;;:27;;;;;;;;;;;;;;;;:25;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;27206:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;27244:39:0;;;;;;27272:10;27244:39;;;;;;-1:-1:-1;;;;;27244:27:0;;;-1:-1:-1;27244:27:0;;-1:-1:-1;27244:39:0;;;;;-1:-1:-1;;27244:39:0;;;;;;;-1:-1:-1;27244:27:0;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;27244:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;27301:35:0;;27325:10;;-1:-1:-1;;;;;;27301:35:0;;;-1:-1:-1;27301:35:0;;;;;27354:9;26933:438;-1:-1:-1;;;;;26933:438:0:o;25774:663::-;25984:31;;;25882:16;25984:31;;;:15;:31;;;;;;25882:16;;-1:-1:-1;;;;;25984:31:0;26032:21;;26028:329;;;26145:5;26152:7;26161:9;26130:41;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;26130:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26130:41:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;26130:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26130:41:0;26121:50;;26028:329;;;26259:7;-1:-1:-1;;;;;26259:20:0;;26280:5;26287:7;26296:9;26259:47;;;;;-1:-1:-1;;;26259:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;26259:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26259:47:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;26259:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26259:47:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26259:47:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;26259:47:0;26321:24;;;;;;;;26259:47;;-1:-1:-1;;;;;;26321:22:0;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;26321:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26321:24:0;;;;26028:329;26369:36;;;;;;26394:10;26369:36;;;;;;-1:-1:-1;;;;;26369:24:0;;;;;:36;;;;;-1:-1:-1;;26369:36:0;;;;;;;-1:-1:-1;26369:24:0;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;26369:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;26423:6:0;;25774:663;-1:-1:-1;;;;;;;;;25774:663:0:o;24545:68::-;;;;;;;;;;;;-1:-1:-1;;;;;24545:68:0;;:::o;24467:71::-;;;;;;;;;;;;-1:-1:-1;;;;;24467:71:0;;:::o;7088:208::-;7155:8;;-1:-1:-1;;;;;7155:8:0;7141:10;:22;7133:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7220:8;;;7213:5;;7201:28;;-1:-1:-1;;;;;7220:8:0;;;;7213:5;;;;7201:28;;;7248:8;;;;7240:16;;-1:-1:-1;;7240:16:0;;;-1:-1:-1;;;;;7248:8:0;;7240:16;;;;7267:21;;;7088:208::o;5903:20::-;;;-1:-1:-1;;;;;5903:20:0;;:::o;5930:23::-;;;-1:-1:-1;;;;;5930:23:0;;:::o;24830:172::-;6401:12;:10;:12::i;:::-;24986:8;24942:15;:41;24958:8;-1:-1:-1;;;;;24958:22:0;;:24;;;;;-1:-1:-1;;;24958:24:0;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;6839:158:0;6401:12;:10;:12::i;:::-;6934:5;;-1:-1:-1;;;;;6921:18:0;;;6934:5;;6921:18;;6913:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6969:8;:20;;-1:-1:-1;;6969:20:0;-1:-1:-1;;;;;6969:20:0;;;;;;;;;;6839:158::o;6488:104::-;6557:5;;-1:-1:-1;;;;;6557:5:0;6543:10;:19;6535:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6488:104::o;24141:3233::-;;;;;;;;;;:::o
Swarm Source
bzzr://76a7173d3e99e3cd059b3bf0211b112b074c38c57094db220ea8a7b8b9b91a26
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.