ETH Price: $2,364.47 (-5.12%)

Token

CTAGToken (CTAG)
 

Overview

Max Total Supply

4,000,000,000 CTAG

Holders

1,425

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
10 CTAG

Value
$0.00
0x76d96b20cef0407fcae9db7271d3a9118d2a2a23
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CTAGToken

Compiler Version
v0.5.5+commit.47a71e8f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

pragma solidity 0.5.5;

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

pragma solidity ^0.5.2;

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
     * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
     * reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

pragma solidity 0.5.5;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

pragma solidity 0.5.5;

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://eips.ethereum.org/EIPS/eip-20
 * Originally based on code by FirstBlood:
 * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 *
 * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for
 * all accounts just by listening to said events. Note that this isn't required by the specification, and other
 * compliant implementations may not do it.
 */
contract CTAGToken is IERC20, Ownable {
    using SafeMath for uint256;

    uint256 constant private DECIMALS = (10 ** uint256(decimals));

    string constant public name = "CTAGToken";
    string constant public symbol = "CTAG";
    uint8 constant public decimals = 8;
    uint256 constant private _totalSupply = 4000000000 * (10 ** uint256(decimals));

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowed;

    uint256 public feePercent;
    uint256 public minFee;

    address public feeHolder;
    

    constructor (address holder) public {
        _balances[holder] = _totalSupply;
        feeHolder = holder;
        minFee = uint256(5).mul(DECIMALS); // Default minimum 5 CTAG
        feePercent = uint256(5).mul(DECIMALS).div(10); // Default 0.5 percents
    }

    function setFeeHolder(address _feeHolder) public onlyOwner {
        feeHolder = _feeHolder;
    }

    function setFee(uint256 _feePercent) public onlyOwner {
        feePercent = _feePercent;
    }

    function getFee(uint256 _amount) public view returns(uint256 fee) {
        fee = _amount.mul(feePercent).div(uint256(100).mul(DECIMALS));
        if (fee < minFee) {
            fee = minFee;
        }
    }

    function setMinFee(uint256 _minFee) public onlyOwner {
        minFee = _minFee;
    }

    /**
     * @dev Total number of tokens in existence
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param owner The address to query the balance of.
     * @return A uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowed[owner][spender];
    }

    /**
     * @dev Transfer token to a specified address
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Transfer token for a specified addresses
     * @param from The address to transfer from.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        uint256 fee = getFee(value);
        require(fee < value);
        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value.sub(fee));
        _balances[feeHolder] = _balances[feeHolder].add(fee);
        emit Transfer(from, to, value);
    }

    /**
     * @dev Approve an address to spend another addresses' tokens.
     * @param owner The address that owns the tokens.
     * @param spender The address that will spend the tokens.
     * @param value The number of tokens that can be spent.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(spender != address(0));
        require(owner != address(0));

        _allowed[owner][spender] = value;
        emit Approval(owner, spender, value);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_feeHolder","type":"address"}],"name":"setFeeHolder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minFee","type":"uint256"}],"name":"setMinFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_feePercent","type":"uint256"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feePercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeHolder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"getFee","outputs":[{"name":"fee","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"holder","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"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"}]

608060405234801561001057600080fd5b50604051602080610b9c8339810180604052602081101561003057600080fd5b5051600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001600160a01b038116600081815260016020908152604090912067058d15e1762800009055600580546001600160a01b03191690921782556100cc91906305f5e100906109b1610109821b17901c565b600455610100600a6100ee60056305f5e100610109602090811b6109b117901c565b61013d60201b6109dc1790919060201c565b60035550610161565b600082151561011a57506000610137565b82820282848281151561012957fe5b041461013457600080fd5b90505b92915050565b600081151561014b57600080fd5b6000828481151561015857fe5b04949350505050565b610a2c806101706000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063a457c2d71161007c578063a457c2d714610372578063a9059cbb1461039e578063cc6be5e4146103ca578063dd62ed3e146103d2578063f2fde38b14610400578063fcee45f41461042657610142565b8063715018a61461032e5780637fd6f15c146103365780638da5cb5b1461033e5780638f32d59b1461036257806395d89b411461036a57610142565b806324ec75901161010a57806324ec75901461027c578063313ce5671461028457806331ac9920146102a257806339509351146102bf57806369fe0e2d146102eb57806370a082311461030857610142565b806306fdde0314610147578063095ea7b3146101c457806310407f2f1461020457806318160ddd1461022c57806323b872dd14610246575b600080fd5b61014f610443565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b03813516906020013561046b565b604080519115158252519081900360200190f35b61022a6004803603602081101561021a57600080fd5b50356001600160a01b0316610482565b005b6102346104b7565b60408051918252519081900360200190f35b6101f06004803603606081101561025c57600080fd5b506001600160a01b038135811691602081013590911690604001356104c3565b61023461051a565b61028c610520565b6040805160ff9092168252519081900360200190f35b61022a600480360360208110156102b857600080fd5b5035610525565b6101f0600480360360408110156102d557600080fd5b506001600160a01b03813516906020013561053d565b61022a6004803603602081101561030157600080fd5b5035610579565b6102346004803603602081101561031e57600080fd5b50356001600160a01b0316610591565b61022a6105b0565b61023461060d565b610346610613565b604080516001600160a01b039092168252519081900360200190f35b6101f0610622565b61014f610633565b6101f06004803603604081101561038857600080fd5b506001600160a01b038135169060200135610656565b6101f0600480360360408110156103b457600080fd5b506001600160a01b038135169060200135610692565b61034661069f565b610234600480360360408110156103e857600080fd5b506001600160a01b03813581169160200135166106ae565b61022a6004803603602081101561041657600080fd5b50356001600160a01b03166106d9565b6102346004803603602081101561043c57600080fd5b50356106f8565b604051806040016040528060098152602001600160b91b6821aa20a3aa37b5b2b70281525081565b6000610478338484610746565b5060015b92915050565b61048a610622565b151561049557600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b67058d15e17628000090565b60006104d08484846107d2565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461051091869161050b908663ffffffff61091316565b610746565b5060019392505050565b60045481565b600881565b61052d610622565b151561053857600080fd5b600455565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161047891859061050b908663ffffffff61092816565b610581610622565b151561058c57600080fd5b600355565b6001600160a01b0381166000908152600160205260409020545b919050565b6105b8610622565b15156105c357600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60035481565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b604051806040016040528060048152602001600160e01b63435441470281525081565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161047891859061050b908663ffffffff61091316565b60006104783384846107d2565b6005546001600160a01b031681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6106e1610622565b15156106ec57600080fd5b6106f581610941565b50565b600061073261071260646305f5e10063ffffffff6109b116565b60035461072690859063ffffffff6109b116565b9063ffffffff6109dc16565b90506004548110156105ab57505060045490565b6001600160a01b038216151561075b57600080fd5b6001600160a01b038316151561077057600080fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03821615156107e757600080fd5b60006107f2826106f8565b905081811061080057600080fd5b6001600160a01b038416600090815260016020526040902054610829908363ffffffff61091316565b6001600160a01b03851660009081526001602052604090205561087a610855838363ffffffff61091316565b6001600160a01b0385166000908152600160205260409020549063ffffffff61092816565b6001600160a01b0380851660009081526001602052604080822093909355600554909116815220546108b2908263ffffffff61092816565b6005546001600160a01b03908116600090815260016020908152604091829020939093558051858152905186831693928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a350505050565b60008282111561092257600080fd5b50900390565b60008282018381101561093a57600080fd5b9392505050565b6001600160a01b038116151561095657600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008215156109c25750600061047c565b8282028284828115156109d157fe5b041461093a57600080fd5b60008115156109ea57600080fd5b600082848115156109f757fe5b0494935050505056fea165627a7a723058208c77430a68d574fe75cb1ab232c0cdc70fd3a22b6cf8f53930957d07be9186010029000000000000000000000000be6636493f82488bf82e200ab06682cf086c014a

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101425760003560e01c8063715018a6116100b8578063a457c2d71161007c578063a457c2d714610372578063a9059cbb1461039e578063cc6be5e4146103ca578063dd62ed3e146103d2578063f2fde38b14610400578063fcee45f41461042657610142565b8063715018a61461032e5780637fd6f15c146103365780638da5cb5b1461033e5780638f32d59b1461036257806395d89b411461036a57610142565b806324ec75901161010a57806324ec75901461027c578063313ce5671461028457806331ac9920146102a257806339509351146102bf57806369fe0e2d146102eb57806370a082311461030857610142565b806306fdde0314610147578063095ea7b3146101c457806310407f2f1461020457806318160ddd1461022c57806323b872dd14610246575b600080fd5b61014f610443565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610189578181015183820152602001610171565b50505050905090810190601f1680156101b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f0600480360360408110156101da57600080fd5b506001600160a01b03813516906020013561046b565b604080519115158252519081900360200190f35b61022a6004803603602081101561021a57600080fd5b50356001600160a01b0316610482565b005b6102346104b7565b60408051918252519081900360200190f35b6101f06004803603606081101561025c57600080fd5b506001600160a01b038135811691602081013590911690604001356104c3565b61023461051a565b61028c610520565b6040805160ff9092168252519081900360200190f35b61022a600480360360208110156102b857600080fd5b5035610525565b6101f0600480360360408110156102d557600080fd5b506001600160a01b03813516906020013561053d565b61022a6004803603602081101561030157600080fd5b5035610579565b6102346004803603602081101561031e57600080fd5b50356001600160a01b0316610591565b61022a6105b0565b61023461060d565b610346610613565b604080516001600160a01b039092168252519081900360200190f35b6101f0610622565b61014f610633565b6101f06004803603604081101561038857600080fd5b506001600160a01b038135169060200135610656565b6101f0600480360360408110156103b457600080fd5b506001600160a01b038135169060200135610692565b61034661069f565b610234600480360360408110156103e857600080fd5b506001600160a01b03813581169160200135166106ae565b61022a6004803603602081101561041657600080fd5b50356001600160a01b03166106d9565b6102346004803603602081101561043c57600080fd5b50356106f8565b604051806040016040528060098152602001600160b91b6821aa20a3aa37b5b2b70281525081565b6000610478338484610746565b5060015b92915050565b61048a610622565b151561049557600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b67058d15e17628000090565b60006104d08484846107d2565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461051091869161050b908663ffffffff61091316565b610746565b5060019392505050565b60045481565b600881565b61052d610622565b151561053857600080fd5b600455565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161047891859061050b908663ffffffff61092816565b610581610622565b151561058c57600080fd5b600355565b6001600160a01b0381166000908152600160205260409020545b919050565b6105b8610622565b15156105c357600080fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60035481565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b604051806040016040528060048152602001600160e01b63435441470281525081565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161047891859061050b908663ffffffff61091316565b60006104783384846107d2565b6005546001600160a01b031681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6106e1610622565b15156106ec57600080fd5b6106f581610941565b50565b600061073261071260646305f5e10063ffffffff6109b116565b60035461072690859063ffffffff6109b116565b9063ffffffff6109dc16565b90506004548110156105ab57505060045490565b6001600160a01b038216151561075b57600080fd5b6001600160a01b038316151561077057600080fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03821615156107e757600080fd5b60006107f2826106f8565b905081811061080057600080fd5b6001600160a01b038416600090815260016020526040902054610829908363ffffffff61091316565b6001600160a01b03851660009081526001602052604090205561087a610855838363ffffffff61091316565b6001600160a01b0385166000908152600160205260409020549063ffffffff61092816565b6001600160a01b0380851660009081526001602052604080822093909355600554909116815220546108b2908263ffffffff61092816565b6005546001600160a01b03908116600090815260016020908152604091829020939093558051858152905186831693928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef928290030190a350505050565b60008282111561092257600080fd5b50900390565b60008282018381101561093a57600080fd5b9392505050565b6001600160a01b038116151561095657600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b60008215156109c25750600061047c565b8282028284828115156109d157fe5b041461093a57600080fd5b60008115156109ea57600080fd5b600082848115156109f757fe5b0494935050505056fea165627a7a723058208c77430a68d574fe75cb1ab232c0cdc70fd3a22b6cf8f53930957d07be9186010029

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

000000000000000000000000be6636493f82488bf82e200ab06682cf086c014a

-----Decoded View---------------
Arg [0] : holder (address): 0xBe6636493F82488Bf82e200Ab06682cF086c014a

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000be6636493f82488bf82e200ab06682cf086c014a


Swarm Source

bzzr://8c77430a68d574fe75cb1ab232c0cdc70fd3a22b6cf8f53930957d07be918601
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.