ERC-20
Source Code
Overview
Max Total Supply
5,000,000,000 KTC
Holders
2,387
Transfers
-
0 (0%)
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
MainContract
Compiler Version
v0.4.11+commit.68ef5810
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)