ETH Price: $2,064.97 (-5.00%)

Contract

0x60DaEC030A5B76bfD4aAA6C0b2bf6d4b81C4a34E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer222076292025-04-06 4:56:35354 days ago1743915395IN
0x60DaEC03...b81C4a34E
0 ETH0.000093511.46272493
Transfer163907512023-01-12 12:33:591169 days ago1673526839IN
0x60DaEC03...b81C4a34E
0 ETH0.0012340517.9582633
Transfer163837912023-01-11 13:12:591170 days ago1673442779IN
0x60DaEC03...b81C4a34E
0 ETH0.0007752816.55960141
Transfer147813702022-05-15 17:54:361410 days ago1652637276IN
0x60DaEC03...b81C4a34E
0 ETH0.0028763145
Transfer144230302022-03-20 11:38:431467 days ago1647776323IN
0x60DaEC03...b81C4a34E
0 ETH0.000887913.88877854
Transfer126824412021-06-22 6:33:241738 days ago1624343604IN
0x60DaEC03...b81C4a34E
0 ETH0.000966718
Transfer122559042021-04-17 6:09:111804 days ago1618639751IN
0x60DaEC03...b81C4a34E
0 ETH0.00790119115
Transfer122559032021-04-17 6:08:581804 days ago1618639738IN
0x60DaEC03...b81C4a34E
0 ETH0.00617619115
Transfer121896892021-04-07 1:27:431814 days ago1617758863IN
0x60DaEC03...b81C4a34E
0 ETH0.00559189116
Transfer109875572020-10-04 5:41:121999 days ago1601790072IN
0x60DaEC03...b81C4a34E
0 ETH0.0017498736.30000123
Transfer108121702020-09-07 3:53:362026 days ago1599450816IN
0x60DaEC03...b81C4a34E
0 ETH0.00562081116.6
Transfer104744322020-07-17 3:06:212078 days ago1594955181IN
0x60DaEC03...b81C4a34E
0 ETH0.0027228982
Transfer104495272020-07-13 6:18:232082 days ago1594621103IN
0x60DaEC03...b81C4a34E
0 ETH0.0020246542.00000141
Transfer103368562020-06-25 19:30:072099 days ago1593113407IN
0x60DaEC03...b81C4a34E
0 ETH0.0016433526
Transfer103346542020-06-25 11:27:092100 days ago1593084429IN
0x60DaEC03...b81C4a34E
0 ETH0.0024650339
Transfer98954112020-04-18 8:31:042168 days ago1587198664IN
0x60DaEC03...b81C4a34E
0 ETH0.000632310
Transfer98951972020-04-18 7:46:032168 days ago1587195963IN
0x60DaEC03...b81C4a34E
0 ETH0.000132683.99300025
Transfer95614432020-02-26 20:58:162219 days ago1582750696IN
0x60DaEC03...b81C4a34E
0 ETH0.000047761.2
Transfer95532342020-02-25 14:45:542221 days ago1582641954IN
0x60DaEC03...b81C4a34E
0 ETH0.000151843.15
Transfer92321932020-01-07 7:45:062270 days ago1578383106IN
0x60DaEC03...b81C4a34E
0 ETH0.00014333.6
Transfer91644152019-12-26 6:13:062282 days ago1577340786IN
0x60DaEC03...b81C4a34E
0 ETH0.000199386
Transfer91555902019-12-24 11:52:302284 days ago1577188350IN
0x60DaEC03...b81C4a34E
0 ETH0.0005979218
Approve90082272019-11-27 5:44:502311 days ago1574833490IN
0x60DaEC03...b81C4a34E
0 ETH0.000245625
Transfer89575492019-11-18 16:44:432319 days ago1574095483IN
0x60DaEC03...b81C4a34E
0 ETH0.0004366210
Transfer89206412019-11-12 13:30:352326 days ago1573565435IN
0x60DaEC03...b81C4a34E
0 ETH0.0017927641
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MainContract

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-08-06
*/

pragma solidity 0.4.11;

// File: contracts/OwnerValidator.sol

contract TokenContract {
    function totalSupply() constant returns (uint256 supply);
    function decimals() constant returns(uint8 units);
    function balanceOf(address _owner) constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
    function transferFromSender(address _to, uint256 _value) returns (bool success);
    function approve(address _spender, uint256 _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint256 remaining);
}
contract OwnerValidator {
    function validate(address addr) constant returns (bool);
}

contract Owned {
    function ownerValidate(address addr) constant returns (bool);
    bool public isWorking;

    function Owned() {
        isWorking = true;
    }

    modifier onlyOwner {
        if (!ownerValidate(msg.sender)) throw;
        _;
    }

    modifier onlyWorking {
        if (!isWorking) throw;
        _;
    }

    modifier onlyNotWorking {
        if (isWorking) throw;
        _;
    }

    function setWorking(bool _isWorking) onlyOwner {
        isWorking = _isWorking;
    }
}

contract OwnerValidatorImpl is OwnerValidator, Owned {

    address[] public owners;


    TokenContract public tokenContract;

    function OwnerValidatorImpl() {
        owners.push(msg.sender);
    }


    function indexOfOwners(address _address) private constant returns (uint pos) {
        pos = 0;
        for (uint i = 0; i < owners.length; i++) {
            if (owners[i] == _address) {
                pos = i + 1;
                break;
            }
        }
        return pos;
    }

    function validate(address addr) constant returns (bool) {
        return (indexOfOwners(addr) != 0);
    }

    function getOwners() constant returns (address[]) {
        return owners;
    }

    function addOwner(address addr) onlyWorking {
        if (validate(msg.sender)) {
            if (!validate(addr)) {
                owners.push(addr);
            }
        }
    }

    function removeOwner(address addr) onlyWorking {
        if (validate(msg.sender)) {
            uint pos = indexOfOwners(addr);
            if (pos > 0) {
                owners[pos - 1] = 0x0;
            }
        }
    }

    function setTokenContract(address _tokenContract) onlyWorking {
        if (validate(msg.sender)) {
            tokenContract = TokenContract(_tokenContract);
        }
    }

    function ownerValidate(address addr) constant returns (bool) {
        return validate(addr);
    }

    function transferFromSender(address _to, uint256 _value) returns (bool success) {
        if (!validate(msg.sender)) throw;
        return tokenContract.transferFromSender(_to, _value);
    }

    function sendFromOwn(address _to, uint256 _value) returns (bool success) {
        if (!validate(msg.sender)) throw;
        if (!_to.send(_value)) throw;
        return true;
    }
}

// File: contracts/OffChainManager.sol


contract OffChainManager {
    function isToOffChainAddress(address addr) constant returns (bool);
    function getOffChainRootAddress() constant returns (address);
}

contract OffChainManagerImpl is OffChainManager, Owned {
    address public rootAddress;
    address[] public offChainAddreses;

    mapping (address => uint256) refOffChainAddresses;

    OwnerValidator public ownerValidator;

    TokenContract public tokenContract;

    function OffChainManagerImpl(
        address _rootAddress,
        address _ownerValidator
    ) {
        rootAddress = _rootAddress;
        ownerValidator = OwnerValidator(_ownerValidator);
    }

    function setRootAddress(address _address) onlyWorking {
        if (ownerValidator.validate(msg.sender)) {
            rootAddress = _address;
        }
    }

    function setOwnerValidatorAddress(address _ownerValidator) onlyWorking {
        if (ownerValidator.validate(msg.sender)) {
            ownerValidator = OwnerValidator(_ownerValidator);
        }
    }

    function setTokenContract(address _tokenContract) {
        if (ownerValidator.validate(msg.sender)) {
            tokenContract = TokenContract(_tokenContract);
        }
    }

    function offChainAddresesValidCount() constant returns (uint) {
        uint cnt = 0;
        for (uint i = 0; i < offChainAddreses.length; i++) {
            if (offChainAddreses[i] != 0) {
                cnt++;
            }
        }
        return cnt;
    }

    function addOffChainAddress(address _address) private {
        if (!isToOffChainAddress(_address)) {
            offChainAddreses.push(_address);
            refOffChainAddresses[_address] = offChainAddreses.length;
        }
    }

    function removeOffChainAddress(address _address) private {
        uint pos = refOffChainAddresses[_address];
        if (pos > 0) {
            offChainAddreses[pos - 1] = 0;
            refOffChainAddresses[_address] = 0x0;
        }
    }

    function addOffChainAddresses(address[] _addresses) onlyWorking {
        if (ownerValidator.validate(msg.sender)) {
            for (uint i = 0; i < _addresses.length; i++) {
                addOffChainAddress(_addresses[i]);
            }
        }
    }

    function removeOffChainAddresses(address[] _addresses) onlyWorking {
        if (ownerValidator.validate(msg.sender)) {
            for (uint i = 0; i < _addresses.length; i++) {
                removeOffChainAddress(_addresses[i]);
            }
        }
    }

    function ownerValidate(address addr) constant returns (bool) {
        return ownerValidator.validate(addr);
    }

    function transferFromSender(address _to, uint256 _value) returns (bool success) {
        if (!ownerValidator.validate(msg.sender)) throw;
        return tokenContract.transferFromSender(_to, _value);
    }

    function sendFromOwn(address _to, uint256 _value) returns (bool success) {
        if (!ownerValidator.validate(msg.sender)) throw;
        if (!_to.send(_value)) throw;
        return true;
    }

    function isToOffChainAddress(address addr) constant returns (bool) {
        return refOffChainAddresses[addr] > 0;
    }

    function getOffChainRootAddress() constant returns (address) {
        return rootAddress;
    }

    function getOffChainAddresses() constant returns (address[]) {
        return offChainAddreses;
    }

    function isToOffChainAddresses(address[] _addresses) constant returns (bool) {
        for (uint i = 0; i < _addresses.length; i++) {
            if (!isToOffChainAddress(_addresses[i])) {
                return false;
            }
        }
        return true;
    }
}

// File: contracts/TokenContract.sol

library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant returns (uint256) {
// assert(b > 0);
    uint256 c = a / b;
// assert(a == b * c + a % b);
    return c;
  }

  function sub(uint256 a, uint256 b) internal constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}


contract TokenContractImpl is TokenContract, Owned {
    using SafeMath for uint256;
    string public standard = "Token 0.1";
    uint256 _totalSupply;
    uint8 _decimals;

    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;

    OwnerValidator public ownerValidator;
    OffChainManager public offChainManager;

    bool public isRedenominated;
    uint256 public redenomiValue;
    mapping (address => uint256) public redenominatedBalances;
    mapping (address => mapping (address => uint256)) public redenominatedAllowed;

    function TokenContractImpl(
        uint256 initialSupply,
        uint8 decimals,
        address _ownerValidator,
        address _offChainManager
    ){
        balances[msg.sender] = initialSupply;
        _totalSupply = initialSupply;
        _decimals = decimals;
        ownerValidator = OwnerValidator(_ownerValidator);
        offChainManager = OffChainManager(_offChainManager);
    }

    function totalSupply() constant returns (uint256 totalSupply) {
        if (isRedenominated) {
            return redenominatedValue(_totalSupply);
        }
        return _totalSupply;
    }

    function decimals() constant returns (uint8 decimals) {
        return _decimals;
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        if (isRedenominated) {
            if (redenominatedBalances[_owner] > 0) {
                return redenominatedBalances[_owner];
            }
            return redenominatedValue(balances[_owner]);
        }
        return balances[_owner];
    }

    function allowance(address _owner, address _spender) constant returns (uint remaining) {
        if (isRedenominated) {
            if (redenominatedAllowed[_owner][_spender] > 0) {
                return redenominatedAllowed[_owner][_spender];
            }
            return redenominatedValue(allowed[_owner][_spender]);
        }
        return allowed[_owner][_spender];
    }

    function redenominatedValue(uint256 _value) private returns (uint256) {
        return _value.mul(redenomiValue);
    }

    function ownerValidate(address addr) constant returns (bool) {
        return ownerValidator.validate(addr);
    }


    function redenominate(uint256 _redenomiValue) {
        if (isRedenominated) throw;
        if (ownerValidator.validate(msg.sender)) {
            redenomiValue = _redenomiValue;
            Redenominate(msg.sender, isRedenominated, redenomiValue);
        }
    }


    function applyRedenomination() onlyNotWorking {
        if (isRedenominated) throw;
        if (redenomiValue == 0) throw;
        if (ownerValidator.validate(msg.sender)) {
            isRedenominated = true;
            ApplyRedenomination(msg.sender, isRedenominated, redenomiValue);
        }
    }

    function setOwnerValidatorAddress(address _ownerValidator) onlyWorking {
        if (ownerValidator.validate(msg.sender)) {
            ownerValidator = OwnerValidator(_ownerValidator);
        }
    }

    function setOffChainManagerAddress(address _offChainManager) onlyWorking {
        if (ownerValidator.validate(msg.sender)) {
            offChainManager = OffChainManager(_offChainManager);
        }
    }

    function transfer(address _to, uint256 _value) onlyWorking returns (bool success) {
        return transferProcess(tx.origin, _to, _value);
    }

    function transferProcess(address _from, address _to, uint256 _value) private returns (bool success) {
        if (balanceOf(_from) < _value) throw;
        subtractBalance(_from, _value);
        if (offChainManager.isToOffChainAddress(_to)) {
            addBalance(offChainManager.getOffChainRootAddress(), _value);
            ToOffChainTransfer(_from, _to, _to, _value);
        } else {
            addBalance(_to, _value);
        }
        return true;
    }

    function addBalance(address _address, uint256 _value) private {
        if (isRedenominated) {
            if (redenominatedBalances[_address] == 0) {
                if (balances[_address] > 0) {
                    redenominatedBalances[_address] = redenominatedValue(balances[_address]);
                    balances[_address] = 0;
                }
            }
            redenominatedBalances[_address] = redenominatedBalances[_address].add(_value);
        } else {
            balances[_address] = balances[_address].add(_value);
        }
    }

    function subtractBalance(address _address, uint256 _value) private {
        if (isRedenominated) {
            if (redenominatedBalances[_address] == 0) {
                if (balances[_address] > 0) {
                    redenominatedBalances[_address] = redenominatedValue(balances[_address]);
                    balances[_address] = 0;
                }
            }
            redenominatedBalances[_address] = redenominatedBalances[_address].sub(_value);
        } else {
            balances[_address] = balances[_address].sub(_value);
        }
    }

    function transferFrom(address _from, address _to, uint256 _value) onlyWorking returns (bool success) {
        if (balanceOf(_from) < _value) throw;
        if (balanceOf(_to).add(_value) < balanceOf(_to)) throw;
        if (_value > allowance(_from, tx.origin)) throw;
        subtractBalance(_from, _value);
        if (offChainManager.isToOffChainAddress(_to)) {
            addBalance(offChainManager.getOffChainRootAddress(), _value);
            ToOffChainTransfer(tx.origin, _to, _to, _value);
        } else {
            addBalance(_to, _value);
        }
        subtractAllowed(_from, tx.origin, _value);
        return true;
    }


    function transferFromSender(address _to, uint256 _value) onlyWorking returns (bool success) {
        if (!transferProcess(msg.sender, _to, _value)) throw;
        TransferFromSender(msg.sender, _to, _value);
        return true;
    }


    function transferFromOwn(address _to, uint256 _value) onlyWorking returns (bool success) {
        if (!ownerValidator.validate(msg.sender)) throw;
        if (!transferProcess(this, _to, _value)) throw;
        TransferFromSender(this, _to, _value);
        return true;
    }

    function sendFromOwn(address _to, uint256 _value) returns (bool success) {
        if (!ownerValidator.validate(msg.sender)) throw;
        if (!_to.send(_value)) throw;
        return true;
    }

    function approve(address _spender, uint256 _value) onlyWorking returns (bool success) {
        setAllowed(tx.origin, _spender, _value);
        return true;
    }

    function subtractAllowed(address _from, address _spender, uint256 _value) private {
        if (isRedenominated) {
            if (redenominatedAllowed[_from][_spender] == 0) {
                if (allowed[_from][_spender] > 0) {
                    redenominatedAllowed[_from][_spender] = redenominatedValue(allowed[_from][_spender]);
                    allowed[_from][_spender] = 0;
                }
            }
            redenominatedAllowed[_from][_spender] = redenominatedAllowed[_from][_spender].sub(_value);
        } else {
            allowed[_from][_spender] = allowed[_from][_spender].sub(_value);
        }
    }

    function setAllowed(address _owner, address _spender, uint256 _value) private {
        if (isRedenominated) {
            redenominatedAllowed[_owner][_spender] = _value;
        } else {
            allowed[_owner][_spender] = _value;
        }
    }

    event TransferFromSender(address indexed _from, address indexed _to, uint256 _value);
    event ToOffChainTransfer(address indexed _from, address indexed _toKey, address _to, uint256 _value);
    event Redenominate(address _owner, bool _isRedenominated, uint256 _redenomiVakye);
    event ApplyRedenomination(address _owner, bool _isRedenominated, uint256 _redenomiVakye);
}

// File: contracts/MainContract.sol

contract MainContract {
    string public standard = "Token 0.1";
    string public name;
    string public symbol;

    OwnerValidator public ownerValidator;
    TokenContract public tokenContract;

    function MainContract(
        string _tokenName,
        address _ownerValidator,
        address _tokenContract,
        string _symbol
    ) {
        ownerValidator = OwnerValidator(_ownerValidator);
        tokenContract = TokenContract(_tokenContract);
        name = _tokenName;
        symbol = _symbol;
    }

    function totalSupply() constant returns(uint256 totalSupply) {
        return tokenContract.totalSupply();
    }

    function decimals() constant returns(uint8 decimals) {
        return tokenContract.decimals();
    }

    function setOwnerValidateAddress(address _ownerValidator) {
        if (ownerValidator.validate(msg.sender)) {
            ownerValidator = OwnerValidator(_ownerValidator);
        }
    }

    function setTokenContract(address _tokenContract) {
        if (ownerValidator.validate(msg.sender)) {
            tokenContract = TokenContract(_tokenContract);
        }
    }

    function transferFromSender(address _to, uint256 _value) returns (bool success) {
        if (!ownerValidator.validate(msg.sender)) throw;
        return tokenContract.transferFromSender(_to, _value);
    }

    function sendFromOwn(address _to, uint256 _value) returns (bool success) {
        if (!ownerValidator.validate(msg.sender)) throw;
        if (!_to.send(_value)) throw;
        return true;
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return uint256(tokenContract.balanceOf(_owner));
    }

    function transfer(address _to, uint256 _value) returns (bool success) {
        if (tokenContract.transfer(_to, _value)) {
            Transfer(msg.sender, _to, _value);
            return true;
        } else {
            throw;
        }
    }

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        if (tokenContract.transferFrom(_from, _to, _value)) {
            Transfer(_from, _to, _value);
            return true;
        } else {
            throw;
        }
    }

    function approve(address _spender, uint256 _value) returns (bool success) {
        if (tokenContract.approve(_spender,_value)) {
            Approval(msg.sender,_spender,_value);
            return true;
        } else {
            throw;
        }
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return tokenContract.allowance(_owner,_spender);
    }

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"decimals","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ownerValidator","type":"address"}],"name":"setOwnerValidateAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"sendFromOwn","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFromSender","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"setTokenContract","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ownerValidator","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_tokenName","type":"string"},{"name":"_ownerValidator","type":"address"},{"name":"_tokenContract","type":"address"},{"name":"_symbol","type":"string"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60a0604052600960608190527f546f6b656e20302e3100000000000000000000000000000000000000000000006080908152620000409160009190620000e0565b5034156200004a57fe5b6040516200103d3803806200103d83398101604090815281516020830151918301516060840151918401939091015b60038054600160a060020a03808616600160a060020a03199283161790925560048054928516929091169190911790558351620000be906001906020870190620000e0565b508051620000d4906002906020840190620000e0565b505b505050506200018a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012357805160ff191683800117855562000153565b8280016001018555821562000153579182015b828111156200015357825182559160200191906001019062000136565b5b506200016292915062000166565b5090565b6200018791905b808211156200016257600081556001016200016d565b5090565b90565b610ea3806200019a6000396000f300606060405236156100ca5763ffffffff60e060020a60003504166306fdde0381146100cc578063095ea7b31461015c57806318160ddd1461018f57806323b872dd146101b1578063313ce567146101ea57806350e86e1e1461021057806355a373d61461022e5780635a3b7e421461025a57806370a08231146102ea5780637e6216671461031857806395d89b411461034b578063a9059cbb146103db578063bae804a71461040e578063bbcd5bbe14610441578063d2d5a55c1461045f578063dd62ed3e1461048b575bfe5b34156100d457fe5b6100dc6104bf565b604080516020808252835181830152835191928392908301918501908083838215610122575b80518252602083111561012257601f199092019160209182019101610102565b505050905090810190601f16801561014e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561016457fe5b61017b600160a060020a036004351660243561054c565b604080519115158252519081900360200190f35b341561019757fe5b61019f61063e565b60408051918252519081900360200190f35b34156101b957fe5b61017b600160a060020a03600435811690602435166044356106b6565b604080519115158252519081900360200190f35b34156101f257fe5b6101fa6107b1565b6040805160ff9092168252519081900360200190f35b341561021857fe5b61022c600160a060020a0360043516610829565b005b341561023657fe5b61023e6108c9565b60408051600160a060020a039092168252519081900360200190f35b341561026257fe5b6100dc6108d8565b604080516020808252835181830152835191928392908301918501908083838215610122575b80518252602083111561012257601f199092019160209182019101610102565b505050905090810190601f16801561014e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102f257fe5b61019f600160a060020a0360043516610966565b60408051918252519081900360200190f35b341561032057fe5b61017b600160a060020a03600435166024356109f3565b604080519115158252519081900360200190f35b341561035357fe5b6100dc610aa8565b604080516020808252835181830152835191928392908301918501908083838215610122575b80518252602083111561012257601f199092019160209182019101610102565b505050905090810190601f16801561014e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e357fe5b61017b600160a060020a0360043516602435610b33565b604080519115158252519081900360200190f35b341561041657fe5b61017b600160a060020a0360043516602435610c25565b604080519115158252519081900360200190f35b341561044957fe5b61022c600160a060020a0360043516610d32565b005b341561046757fe5b61023e610dd2565b60408051600160a060020a039092168252519081900360200190f35b341561049357fe5b61019f600160a060020a0360043581169060243516610de1565b60408051918252519081900360200190f35b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105445780601f1061051957610100808354040283529160200191610544565b820191906000526020600020905b81548152906001019060200180831161052757829003601f168201915b505050505081565b60048054604080516000602091820181905282517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a038881169682019690965260248101879052925190949093169263095ea7b392604480820193929182900301818787803b15156105c357fe5b6102c65a03f115156105d157fe5b5050604051511590506106315782600160a060020a031633600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3506001610637565b60006000fd5b5b92915050565b6000600460009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b151561069b57fe5b6102c65a03f115156106a957fe5b5050604051519150505b90565b60048054604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038981169682019690965287861660248201526044810187905292519094909316926323b872dd92606480820193929182900301818787803b151561073557fe5b6102c65a03f1151561074357fe5b5050604051511590506106315782600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060016107a9565b60006000fd5b5b9392505050565b6000600460009054906101000a9004600160a060020a0316600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b151561069b57fe5b6102c65a03f115156106a957fe5b5050604051519150505b90565b6003546040805160006020918201819052825160e060020a63207c64fb028152600160a060020a0333811660048301529351939094169363207c64fb936024808301949391928390030190829087803b151561088157fe5b6102c65a03f1151561088f57fe5b5050604051511590506108c5576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600454600160a060020a031681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105445780601f1061051957610100808354040283529160200191610544565b820191906000526020600020905b81548152906001019060200180831161052757829003601f168201915b505050505081565b60048054604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038781169682019690965292519094909316926370a0823192602480820193929182900301818787803b15156109d657fe5b6102c65a03f115156109e457fe5b5050604051519150505b919050565b6003546040805160006020918201819052825160e060020a63207c64fb028152600160a060020a03338116600483015293519194939093169263207c64fb92602480830193919282900301818787803b1515610a4b57fe5b6102c65a03f11515610a5957fe5b50506040515115159050610a6d5760006000fd5b604051600160a060020a0384169083156108fc029084906000818181858888f193505050501515610a9e5760006000fd5b5060015b92915050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105445780601f1061051957610100808354040283529160200191610544565b820191906000526020600020905b81548152906001019060200180831161052757829003601f168201915b505050505081565b60048054604080516000602091820181905282517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038881169682019690965260248101879052925190949093169263a9059cbb92604480820193929182900301818787803b1515610baa57fe5b6102c65a03f11515610bb857fe5b5050604051511590506106315782600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3506001610637565b60006000fd5b5b92915050565b6003546040805160006020918201819052825160e060020a63207c64fb028152600160a060020a03338116600483015293519194939093169263207c64fb92602480830193919282900301818787803b1515610c7d57fe5b6102c65a03f11515610c8b57fe5b50506040515115159050610c9f5760006000fd5b60048054604080516000602091820181905282517fbae804a7000000000000000000000000000000000000000000000000000000008152600160a060020a0389811696820196909652602481018890529251949093169363bae804a7936044808501948390030190829087803b1515610d1457fe5b6102c65a03f11515610d2257fe5b5050604051519150505b92915050565b6003546040805160006020918201819052825160e060020a63207c64fb028152600160a060020a0333811660048301529351939094169363207c64fb936024808301949391928390030190829087803b1515610d8a57fe5b6102c65a03f11515610d9857fe5b5050604051511590506108c5576004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600354600160a060020a031681565b60048054604080516000602091820181905282517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03888116968201969096528686166024820152925190949093169263dd62ed3e92604480820193929182900301818787803b1515610d1457fe5b6102c65a03f11515610d2257fe5b5050604051519150505b929150505600a165627a7a723058200a0aa351212af1184d6c60a67c5886d37fe8a4779a01eb4a7df52cf453c9757400290000000000000000000000000000000000000000000000000000000000000080000000000000000000000000ebd5be233c4e9765ccb36c8b6f8de336ceda210000000000000000000000000047be251e13101c30528c61a88393788997552eae00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000034b5443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034b54430000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x606060405236156100ca5763ffffffff60e060020a60003504166306fdde0381146100cc578063095ea7b31461015c57806318160ddd1461018f57806323b872dd146101b1578063313ce567146101ea57806350e86e1e1461021057806355a373d61461022e5780635a3b7e421461025a57806370a08231146102ea5780637e6216671461031857806395d89b411461034b578063a9059cbb146103db578063bae804a71461040e578063bbcd5bbe14610441578063d2d5a55c1461045f578063dd62ed3e1461048b575bfe5b34156100d457fe5b6100dc6104bf565b604080516020808252835181830152835191928392908301918501908083838215610122575b80518252602083111561012257601f199092019160209182019101610102565b505050905090810190601f16801561014e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561016457fe5b61017b600160a060020a036004351660243561054c565b604080519115158252519081900360200190f35b341561019757fe5b61019f61063e565b60408051918252519081900360200190f35b34156101b957fe5b61017b600160a060020a03600435811690602435166044356106b6565b604080519115158252519081900360200190f35b34156101f257fe5b6101fa6107b1565b6040805160ff9092168252519081900360200190f35b341561021857fe5b61022c600160a060020a0360043516610829565b005b341561023657fe5b61023e6108c9565b60408051600160a060020a039092168252519081900360200190f35b341561026257fe5b6100dc6108d8565b604080516020808252835181830152835191928392908301918501908083838215610122575b80518252602083111561012257601f199092019160209182019101610102565b505050905090810190601f16801561014e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102f257fe5b61019f600160a060020a0360043516610966565b60408051918252519081900360200190f35b341561032057fe5b61017b600160a060020a03600435166024356109f3565b604080519115158252519081900360200190f35b341561035357fe5b6100dc610aa8565b604080516020808252835181830152835191928392908301918501908083838215610122575b80518252602083111561012257601f199092019160209182019101610102565b505050905090810190601f16801561014e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e357fe5b61017b600160a060020a0360043516602435610b33565b604080519115158252519081900360200190f35b341561041657fe5b61017b600160a060020a0360043516602435610c25565b604080519115158252519081900360200190f35b341561044957fe5b61022c600160a060020a0360043516610d32565b005b341561046757fe5b61023e610dd2565b60408051600160a060020a039092168252519081900360200190f35b341561049357fe5b61019f600160a060020a0360043581169060243516610de1565b60408051918252519081900360200190f35b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105445780601f1061051957610100808354040283529160200191610544565b820191906000526020600020905b81548152906001019060200180831161052757829003601f168201915b505050505081565b60048054604080516000602091820181905282517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a038881169682019690965260248101879052925190949093169263095ea7b392604480820193929182900301818787803b15156105c357fe5b6102c65a03f115156105d157fe5b5050604051511590506106315782600160a060020a031633600160a060020a03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a3506001610637565b60006000fd5b5b92915050565b6000600460009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b151561069b57fe5b6102c65a03f115156106a957fe5b5050604051519150505b90565b60048054604080516000602091820181905282517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038981169682019690965287861660248201526044810187905292519094909316926323b872dd92606480820193929182900301818787803b151561073557fe5b6102c65a03f1151561074357fe5b5050604051511590506106315782600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35060016107a9565b60006000fd5b5b9392505050565b6000600460009054906101000a9004600160a060020a0316600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401809050602060405180830381600087803b151561069b57fe5b6102c65a03f115156106a957fe5b5050604051519150505b90565b6003546040805160006020918201819052825160e060020a63207c64fb028152600160a060020a0333811660048301529351939094169363207c64fb936024808301949391928390030190829087803b151561088157fe5b6102c65a03f1151561088f57fe5b5050604051511590506108c5576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600454600160a060020a031681565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105445780601f1061051957610100808354040283529160200191610544565b820191906000526020600020905b81548152906001019060200180831161052757829003601f168201915b505050505081565b60048054604080516000602091820181905282517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038781169682019690965292519094909316926370a0823192602480820193929182900301818787803b15156109d657fe5b6102c65a03f115156109e457fe5b5050604051519150505b919050565b6003546040805160006020918201819052825160e060020a63207c64fb028152600160a060020a03338116600483015293519194939093169263207c64fb92602480830193919282900301818787803b1515610a4b57fe5b6102c65a03f11515610a5957fe5b50506040515115159050610a6d5760006000fd5b604051600160a060020a0384169083156108fc029084906000818181858888f193505050501515610a9e5760006000fd5b5060015b92915050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105445780601f1061051957610100808354040283529160200191610544565b820191906000526020600020905b81548152906001019060200180831161052757829003601f168201915b505050505081565b60048054604080516000602091820181905282517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038881169682019690965260248101879052925190949093169263a9059cbb92604480820193929182900301818787803b1515610baa57fe5b6102c65a03f11515610bb857fe5b5050604051511590506106315782600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3506001610637565b60006000fd5b5b92915050565b6003546040805160006020918201819052825160e060020a63207c64fb028152600160a060020a03338116600483015293519194939093169263207c64fb92602480830193919282900301818787803b1515610c7d57fe5b6102c65a03f11515610c8b57fe5b50506040515115159050610c9f5760006000fd5b60048054604080516000602091820181905282517fbae804a7000000000000000000000000000000000000000000000000000000008152600160a060020a0389811696820196909652602481018890529251949093169363bae804a7936044808501948390030190829087803b1515610d1457fe5b6102c65a03f11515610d2257fe5b5050604051519150505b92915050565b6003546040805160006020918201819052825160e060020a63207c64fb028152600160a060020a0333811660048301529351939094169363207c64fb936024808301949391928390030190829087803b1515610d8a57fe5b6102c65a03f11515610d9857fe5b5050604051511590506108c5576004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600354600160a060020a031681565b60048054604080516000602091820181905282517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03888116968201969096528686166024820152925190949093169263dd62ed3e92604480820193929182900301818787803b1515610d1457fe5b6102c65a03f11515610d2257fe5b5050604051519150505b929150505600a165627a7a723058200a0aa351212af1184d6c60a67c5886d37fe8a4779a01eb4a7df52cf453c975740029

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

0000000000000000000000000000000000000000000000000000000000000080000000000000000000000000ebd5be233c4e9765ccb36c8b6f8de336ceda210000000000000000000000000047be251e13101c30528c61a88393788997552eae00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000034b5443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034b54430000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _tokenName (string): KTC
Arg [1] : _ownerValidator (address): 0xEBd5be233c4E9765CcB36C8b6F8dE336CEdA2100
Arg [2] : _tokenContract (address): 0x47be251E13101C30528C61a88393788997552eAe
Arg [3] : _symbol (string): KTC

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 000000000000000000000000ebd5be233c4e9765ccb36c8b6f8de336ceda2100
Arg [2] : 00000000000000000000000047be251e13101c30528c61a88393788997552eae
Arg [3] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 4b54430000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [7] : 4b54430000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://0a0aa351212af1184d6c60a67c5886d37fe8a4779a01eb4a7df52cf453c97574

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.