ETH Price: $3,434.88 (+3.63%)

Token

Gluwa Creditcoin Vesting Token (G-CRE)
 

Overview

Max Total Supply

549,564,264.291934899999999961 G-CRE

Holders

846,517 ( 0.002%)

Market

Price

$0.93 @ 0.000270 ETH (+13.25%)

Onchain Market Cap

$510,580,831.16

Circulating Supply Market Cap

$378,208,152.02

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.0001 G-CRE

Value
$0.00 ( ~0 Eth) [0.0000%]
0x9710eb8697387a4032a799ed5cd6a9228fbdae6b
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Gluwa Creditcoin Vesting Token (G-CRE) is an ERC-20 representation of Creditcoin (CTC). Creditcoin is the native token of the Creditcoin network, a blockchain that provides a cryptocurrency credit investment market.

Market

Volume (24H):$58,777,975.35
Market Capitalization:$378,208,152.02
Circulating Supply:407,084,779.00 G-CRE
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Upbit
CTC-KRW$0.9301
0.0002714 Eth
$34,457,258.00
37,047,237.822 CTC
55.6057%
2
OKX
CTC-USDT$0.9342
0.0002728 Eth
$8,129,938.00
9,260,939.279 CTC
13.9001%
3
Bithumb
CTC-KRW$0.9301
0.0002716 Eth
$4,540,032.00
4,881,283.852 CTC
7.3265%
4
HTX
CTC-USDT$0.9318
0.0002718 Eth
$4,333,263.00
5,160,324.188 CTC
7.7453%
5
Bybit
CTC-USDT$0.9341
0.0002726 Eth
$2,511,851.00
2,879,250.100 CTC
4.3216%
6
Hotcoin
CTC-USDT$0.9382
0.0002740 Eth
$2,354,346.00
2,509,365.808 CTC
3.7664%
7
XT.COM
CTC-USDT$0.9358
0.0002739 Eth
$1,608,285.00
1,834,422.970 CTC
2.7534%
8
Gate.io
CTC-USDT$0.9348
0.0002730 Eth
$876,705.00
970,167.750 CTC
1.4562%
9
KuCoin
CTC-USDT$0.9345
0.0002728 Eth
$450,137.00
481,662.371 CTC
0.7229%
10
MEXC
CTC-USDT$0.935
0.0002732 Eth
$321,889.00
344,253.420 CTC
0.5167%
11
LBank
CTC-USDT$0.9288
0.0002721 Eth
$302,516.00
325,700.220 CTC
0.4889%
12
Crypto.com Exchange
CTC-USD$0.9318
0.0002720 Eth
$219,943.00
236,030.700 CTC
0.3543%
13
Bitget
CTC-USDT$0.9348
0.0002729 Eth
$118,336.00
137,367.000 CTC
0.2062%
14
BingX
CTC-USDT$0.9337
0.0002726 Eth
$98,950.00
114,126.663 CTC
0.1713%
15
Tapbit
CTC-USDT$0.936
0.0002733 Eth
$97,191.00
115,933.352 CTC
0.1740%
16
BVOX
CTC-USDT$0.939
0.0002742 Eth
$77,930.00
91,814.052 CTC
0.1378%
17
BYDFi
CTC-USDT$0.93
0.0002714 Eth
$76,409.00
82,161.900 CTC
0.1233%
18
Uniswap V3 (Ethereum)
0XA3EE21C306A700E682ABCDFE9BAA6A08F3820419-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.9141
0.0002669 Eth
$63,925.00
70,482.837 0XA3EE21C306A700E682ABCDFE9BAA6A08F3820419
0.1058%
19
OKX
CTC-USDC$0.9082
0.0002651 Eth
$58,373.00
67,717.709 CTC
0.1016%
20
OrangeX
CTC-USDT$0.9328
0.0002724 Eth
$57,102.00
63,951.703 CTC
0.0960%
21
Upbit Indonesia
CTC-BTC$1.006
0.0002948 Eth
$32,514.00
32,322.811 CTC
0.0485%
22
BloFin
CTC-USDT$0.9419
0.0002751 Eth
$32,173.00
38,088.584 CTC
0.0572%
23
Upbit
CTC-BTC$1.008
0.0002942 Eth
$31,323.00
31,070.784 CTC
0.0466%
24
GoPax
CTC-KRW$0.913
0.0002668 Eth
$29,930.00
32,781.688 CTC
0.0492%
25
Korbit
CTC-KRW$0.9423
0.0002750 Eth
$22,623.00
24,741.540 CTC
0.0371%
26
CoinEx
CTC-USDT$0.9364
0.0002740 Eth
$11,825.60
13,991.177 CTC
0.0210%
27
Tothemoon
CTC-USDT$0.9378
0.0002738 Eth
$9,141.18
9,746.964 CTC
0.0146%
28
Uniswap V2 (Ethereum)
0XA3EE21C306A700E682ABCDFE9BAA6A08F3820419-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$0.9322
0.0002722 Eth
$1,870.19
1,990.198 0XA3EE21C306A700E682ABCDFE9BAA6A08F3820419
0.0030%
29
CoinDCX
CTC-INR$0.9803
0.0002871 Eth
$1,142.22
0.000 CTC
0.0000%
30
Indodax
CTC-IDR$0.9434
0.0002757 Eth
$174.13
184.586 CTC
0.0003%
31
Bittime
CTC-IDR$0.9407
0.0002750 Eth
$143.70
150.920 CTC
0.0002%
32
Poloniex
CTC-USDT$0.2379
0.0000696 Eth
$70.28
354.651 CTC
0.0005%

Contract Source Code Verified (Exact Match)

Contract Name:
GluwaCreditcoinVestingToken

Compiler Version
v0.5.1+commit.c8a2cb62

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-04-16
*/

pragma solidity ^0.5.1;
/**
The MIT License (MIT)

Copyright (c) 2016 Smart Contract Solutions, Inc.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */


/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

    /**
    * @dev Multiplies two numbers, reverts on overflow.
    */
    function multiply(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, "Multiplication overflow");

        return c;
    }

    /**
    * @dev Integer division of two numbers truncating the quotient, reverts on division by zero.
    */
    function divide(uint256 a, uint256 b) internal pure returns (uint256)
    {
        require(b > 0, "Division by zero"); // Solidity only automatically asserts when dividing by 0
        uint256 c = a / b;

        return c;
    }

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

        return c;
    }

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

        return c;
    }
}

pragma solidity ^0.5.1;

/**
Copyright(c) 2018 Gluwa, Inc.

This file is part of GluwaCreditcoinVestingToken.

GluwaCreditcoinVestingToken is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
	
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
	
You should have received a copy of the GNU Lesser General Public License
along with GluwaCreditcoinVestingToken. If not, see <https://www.gnu.org/licenses/>.
 */

contract Erc20
{   
    // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
    function totalSupply() public view returns (uint256 amount);
    function balanceOf(address owner) public view returns (uint256 balance);
    function transfer(address to, uint256 value) public returns (bool success);
    function transferFrom(address from, address to, uint256 value) public returns (bool success);
    function approve(address spender, uint256 value) public returns (bool success);
    function allowance(address owner, address spender) public view returns (uint256 remaining);
    
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract Erc20Plus is Erc20
{
    function burn(uint256 value) public returns (bool success);
    function burnFrom(address from, uint256 value) public returns (bool success);

    event Burnt(address indexed from, uint256 value);
}


contract Owned
{
    address internal Owner;

    constructor() public
    {
        Owner = msg.sender;
    }

    modifier onlyOwner 
    {
        require(msg.sender == Owner, "Only contract owner can do this.");
        _;
    }   

    function () external payable 
    {
        require(false, "eth transfer is disabled."); // throw
    }
}


contract CreditcoinBase is Owned
{
    //----------- ERC20 members
    uint8 public constant decimals = 18;
    //=========== ERC20 members

    uint256 internal constant FRAC_IN1UNIT = 10 ** uint256(decimals);
    uint256 public constant creditcoinLimitInFrac = 2000000000 * FRAC_IN1UNIT;
}


contract GluwaCreditcoinVestingToken is CreditcoinBase, Erc20Plus
{
    using SafeMath for uint256;

    //----------- ERC20 members
    string public constant name = "Gluwa Creditcoin Vesting Token";
    string public constant symbol = "G-CRE";
    //=========== ERC20 members

    uint256 public constant creditcoinSalesLimit = creditcoinLimitInFrac * 3 / 10;

    bool public IsSalesFinalized;
    uint256 public VestingStartDate;

    address private _creditcoinFoundation;

    uint256 private _totalSupply;

    event Exchange(address indexed from, uint256 value, string indexed sighash);

    /* 
        Mapping of addresses to map of vesting periods (uint16) to token balance (uint256).
        Also maps investor address to their amount of token transfer balance and amount of vesting tokens used.
    */
    mapping(address => mapping(uint16 => uint256)) private _balances;
    mapping (address => mapping (address => uint256)) private _allowance;

    uint16 constant TRANSFER_TOKENS_BALANCE  = 0;
    uint16 constant USED_VESTED_AMOUNT = 1;
    uint16 constant SIX_MONTH_VESTING_IN_DAYS = 183;
    uint16 constant ONE_YEAR_VESTING_IN_DAYS = 365;
    uint16 constant TWO_YEAR_VESTING_IN_DAYS = 730;
    uint16 constant THREE_YEAR_VESTING_IN_DAYS = 1095;
    uint16 constant SIX_YEAR_VESTING_IN_DAYS = 2190;

    modifier salesNotFinalized()
    {
        require(!IsSalesFinalized, "Sales have been finalized");
        _;
    }

    constructor(address creditcoinFoundation, address devCost) public
    {
        _creditcoinFoundation = creditcoinFoundation;
        uint256 creditcoinFoundationTokens = creditcoinLimitInFrac.multiply(5).divide(100);
        uint256 devCostTokens = creditcoinLimitInFrac.multiply(15).divide(100);
        
        _balances[creditcoinFoundation][SIX_YEAR_VESTING_IN_DAYS] = creditcoinFoundationTokens;
        _totalSupply = _totalSupply.add(creditcoinFoundationTokens);

        _balances[devCost][SIX_YEAR_VESTING_IN_DAYS] = devCostTokens;
        _totalSupply = _totalSupply.add(devCostTokens);

        emit Transfer(address(0), creditcoinFoundation, creditcoinFoundationTokens);
        emit Transfer(address(0), devCost, devCostTokens);
    }

    function totalSupply() public view returns (uint256 amount)
    {
        return _totalSupply;
    }

    function balanceOf(address owner) public view returns (uint256 balance)
    {
        uint256 vestedBalance = vestedBalanceOf(owner);
        uint256 transferBalance = _balances[owner][TRANSFER_TOKENS_BALANCE];
        uint256 usedVestedAmount = _balances[owner][USED_VESTED_AMOUNT];

        return vestedBalance.add(transferBalance).subtract(usedVestedAmount);
    }

    function transfer(address to, uint256 value) public returns (bool success)
    {
        require(to != address(0), "Invalid to address");
        require(to != msg.sender, "Can't transfer to self");
        require(balanceOf(msg.sender) >= value, "Insufficient balance");
        
        _removeTokensFromAddress(msg.sender, value);
        _balances[to][TRANSFER_TOKENS_BALANCE] = _balances[to][TRANSFER_TOKENS_BALANCE].add(value);

        emit Transfer(msg.sender, to, value);

        return true;
    }

    function transferFrom(address from, address to, uint256 value) public returns (bool success)
    {
        require(from != address(0), "Invalid from address");
        require(to != address(0), "Invalid recipient address");
        require(balanceOf(from) >= value, "Insufficient balance");
        require(_allowance[from][msg.sender] >= value, "Allowance exceeded");

        _removeTokensFromAddress(from, value);
        _balances[to][TRANSFER_TOKENS_BALANCE] = _balances[to][TRANSFER_TOKENS_BALANCE].add(value);
        _allowance[from][msg.sender] = _allowance[from][msg.sender].subtract(value);

        emit Transfer(from, to, value);

        return true;
    }

    function approve(address spender, uint256 value) public returns (bool success)
    {
        require(spender != address(0), "Invalid spender address");
        require(spender != msg.sender, "Can't approve allowance for yourself");

        _allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        
        return true;
    }

    function allowance(address owner, address spender) public view returns (uint256 remaining)
    {
        return _allowance[owner][spender];
    }

    function burn(uint256 value) public returns (bool success) 
    {
        require(balanceOf(msg.sender) >= value, "Insufficient balance");

        _removeTokensFromAddress(msg.sender, value);
        _totalSupply = _totalSupply.subtract(value);

        emit Burnt(msg.sender, value);
        emit Transfer(msg.sender, address(0), value);

        return true;
    }

    function burnFrom(address from, uint256 value) public returns (bool success)
    {
        require(balanceOf(from) >= value, "Insufficient balance");
        require(_allowance[from][msg.sender] >= value, "Allowance exceeded");

        _removeTokensFromAddress(from, value);
        _allowance[from][msg.sender] = _allowance[from][msg.sender].subtract(value);
        _totalSupply = _totalSupply.subtract(value);

        emit Burnt(from, value);
        emit Transfer(from, address(0), value);

        return true;
    }

    function exchange(uint256 value, string memory sighash) public returns (bool success) 
    {
        require(balanceOf(msg.sender) >= value, "Insufficient balance");
        require(bytes(sighash).length == 60, "Invalid sighash length");

        _removeTokensFromAddress(msg.sender, value);
        _totalSupply = _totalSupply.subtract(value);

        emit Exchange(msg.sender, value, sighash);
        emit Transfer(msg.sender, address(0), value);

        return true;
    }

    function finalizeSales() public onlyOwner
    {
        require(!IsSalesFinalized, "Sales have already been finalized");

        uint256 remainingTokens = creditcoinSalesLimit.subtract(_totalSupply);
        _balances[_creditcoinFoundation][SIX_YEAR_VESTING_IN_DAYS] = _balances[_creditcoinFoundation][SIX_YEAR_VESTING_IN_DAYS].add(remainingTokens);
        _totalSupply = creditcoinSalesLimit;
        
        emit Transfer(address(0), _creditcoinFoundation, remainingTokens);

        IsSalesFinalized = true;
    }

    function startVesting() public onlyOwner
    {
        require(IsSalesFinalized, "Sales must be finalized before vesting start.");
        require(VestingStartDate == 0, "Vesting  has already started");

        VestingStartDate = now;
    }

    function recordSale183Days(address tokenHolder, uint256 numCoins) public onlyOwner salesNotFinalized
    {
        _recordSale(tokenHolder, SIX_MONTH_VESTING_IN_DAYS, numCoins);
    }

    function recordSales183Days(address[] memory tokenHolders, uint256[] memory amounts) public onlyOwner salesNotFinalized
    {
        require(tokenHolders.length == amounts.length, "Token holder list and values list length mismatch");

        for (uint i = 0; i < tokenHolders.length; i++)
        {
            recordSale183Days(tokenHolders[i], amounts[i]);
        }
    }

    function recordSale365Days(address tokenHolder, uint256 numCoins) public onlyOwner salesNotFinalized
    {
        _recordSale(tokenHolder, ONE_YEAR_VESTING_IN_DAYS, numCoins);
    }

    function recordSales365Days(address[] memory tokenHolders, uint256[] memory amounts) public onlyOwner salesNotFinalized
    {
        require(tokenHolders.length == amounts.length, "Token holder list and values list length mismatch");

        for (uint i = 0; i < tokenHolders.length; i++)
        {
            recordSale365Days(tokenHolders[i], amounts[i]);
        }
    }

    function recordSale730Days(address tokenHolder, uint256 numCoins) public onlyOwner salesNotFinalized
    {
        _recordSale(tokenHolder, TWO_YEAR_VESTING_IN_DAYS, numCoins);
    }

    function recordSales730Days(address[] memory tokenHolders, uint256[] memory amounts) public onlyOwner salesNotFinalized
    {
        require(tokenHolders.length == amounts.length, "Token holder list and values list length mismatch");

        for (uint i = 0; i < tokenHolders.length; i++)
        {
            recordSale730Days(tokenHolders[i], amounts[i]);
        }
    }

    function recordSale1095Days(address tokenHolder, uint256 numCoins) public onlyOwner salesNotFinalized
    {
        _recordSale(tokenHolder, THREE_YEAR_VESTING_IN_DAYS, numCoins);
    }

    function recordSales1095Days(address[] memory tokenHolders, uint256[] memory amounts) public onlyOwner salesNotFinalized
    {
        require(tokenHolders.length == amounts.length, "Token holder list and values list length mismatch");

        for (uint i = 0; i < tokenHolders.length; i++)
        {
            recordSale1095Days(tokenHolders[i], amounts[i]);
        }
    }

    function recordSale2190Days(address tokenHolder, uint256 numCoins) public onlyOwner salesNotFinalized
    {
        _recordSale(tokenHolder, SIX_YEAR_VESTING_IN_DAYS, numCoins);
    }

    function recordSales2190Days(address[] memory tokenHolders, uint256[] memory amounts) public onlyOwner salesNotFinalized
    {
        require(tokenHolders.length == amounts.length, "Token holder list and values list length mismatch");

        for (uint i = 0; i < tokenHolders.length; i++)
        {
            recordSale2190Days(tokenHolders[i], amounts[i]);
        }
    }

    function vestedBalanceOf183Days(address tokenHolder) public view returns (uint256 balance) 
    {
        return _calculateAvailableVestingTokensForPeriod(tokenHolder, SIX_MONTH_VESTING_IN_DAYS);
    }

    function vestedBalanceOf365Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _calculateAvailableVestingTokensForPeriod(tokenHolder, ONE_YEAR_VESTING_IN_DAYS);
    }

    function vestedBalanceOf730Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _calculateAvailableVestingTokensForPeriod(tokenHolder, TWO_YEAR_VESTING_IN_DAYS);
    }

    function vestedBalanceOf1095Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _calculateAvailableVestingTokensForPeriod(tokenHolder, THREE_YEAR_VESTING_IN_DAYS);
    }

    function vestedBalanceOf2190Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _calculateAvailableVestingTokensForPeriod(tokenHolder, SIX_YEAR_VESTING_IN_DAYS);
    }

    function vestedBalanceOf(address tokenHolder) public view returns (uint256 balance)
    {
        if (VestingStartDate == 0)
        {
            return 0;
        }

        uint256 vestedBalance183Days = vestedBalanceOf183Days(tokenHolder);
        uint256 vestedBalance365Days = vestedBalanceOf365Days(tokenHolder);
        uint256 vestedBalance730Days = vestedBalanceOf730Days(tokenHolder);
        uint256 vestedBalance1095Days = vestedBalanceOf1095Days(tokenHolder);
        uint256 vestedBalance2190Days = vestedBalanceOf2190Days(tokenHolder);
        
        return vestedBalance183Days.add(vestedBalance365Days).add(vestedBalance730Days).add(vestedBalance1095Days).add(vestedBalance2190Days);
    }

    function purchasedBalanceOf183Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _balances[tokenHolder][SIX_MONTH_VESTING_IN_DAYS];
    }

    function purchasedBalanceOf365Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _balances[tokenHolder][ONE_YEAR_VESTING_IN_DAYS];
    }

    function purchasedBalanceOf730Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _balances[tokenHolder][TWO_YEAR_VESTING_IN_DAYS];
    }

    function purchasedBalanceOf1095Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _balances[tokenHolder][THREE_YEAR_VESTING_IN_DAYS];
    }

    function purchasedBalanceOf2190Days(address tokenHolder) public view returns (uint256 balance)
    {
        return _balances[tokenHolder][SIX_YEAR_VESTING_IN_DAYS];
    }

    function purchasedBalanceOf(address tokenHolder) public view returns (uint256 balance)
    {
        uint256 purchasedBalance183Days = purchasedBalanceOf183Days(tokenHolder);
        uint256 purchasedBalance365Days = purchasedBalanceOf365Days(tokenHolder);
        uint256 purchasedBalance730Days = purchasedBalanceOf730Days(tokenHolder);
        uint256 purchasedBalance1095Days = purchasedBalanceOf1095Days(tokenHolder);
        uint256 purchasedBalance2190Days = purchasedBalanceOf2190Days(tokenHolder);

        return purchasedBalance183Days
            .add(purchasedBalance365Days)
            .add(purchasedBalance730Days)
            .add(purchasedBalance1095Days)
            .add(purchasedBalance2190Days);
    }

    function _calculateAvailableVestingTokensForPeriod(address tokenHolder, uint16 vestingPeriod) private view returns (uint256)
    {
        if (VestingStartDate == 0)
        {
            return 0;
        }

        uint256 numDaysSinceVesting = now.subtract(VestingStartDate).divide(1 days);
        uint256 totalVestingTokens = _balances[tokenHolder][vestingPeriod];

        if (numDaysSinceVesting >= vestingPeriod)
        {
            return totalVestingTokens;
        }
        
        return totalVestingTokens.multiply(numDaysSinceVesting).divide(vestingPeriod);
    }

    function _recordSale(address tokenHolder, uint16 vestingPeriod, uint256 numCoins) private
    {
        require(_balances[tokenHolder][vestingPeriod] == 0, "Sales have already been recorded for this address and vestingPeriod");

        uint256 newTotalSupply = _totalSupply.add(numCoins);
        require(newTotalSupply <= creditcoinSalesLimit, "Creditcoin sales limit exceeded");

        _balances[tokenHolder][vestingPeriod] = numCoins;
        _totalSupply = newTotalSupply;

        emit Transfer(address(0), tokenHolder, numCoins);
    }

    function _removeTokensFromAddress(address from, uint256 value) private
    {
        uint256 fromTransferBalance = _balances[from][TRANSFER_TOKENS_BALANCE];

        if (fromTransferBalance >= value)
        {
            _balances[from][TRANSFER_TOKENS_BALANCE] -= value;
        }
        else
        {
            _balances[from][USED_VESTED_AMOUNT] = _balances[from][USED_VESTED_AMOUNT].add(value - fromTransferBalance);
            _balances[from][TRANSFER_TOKENS_BALANCE] = 0;
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"tokenHolders","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"recordSales730Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"VestingStartDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"vestedBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"purchasedBalanceOf365Days","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"},{"name":"sighash","type":"string"}],"name":"exchange","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"vestedBalanceOf183Days","outputs":[{"name":"balance","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":"tokenHolders","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"recordSales1095Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"vestedBalanceOf365Days","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"purchasedBalanceOf2190Days","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenHolders","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"recordSales183Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenHolder","type":"address"},{"name":"numCoins","type":"uint256"}],"name":"recordSale365Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"vestedBalanceOf730Days","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"purchasedBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalizeSales","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"vestedBalanceOf2190Days","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"purchasedBalanceOf730Days","outputs":[{"name":"balance","type":"uint256"}],"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":"tokenHolder","type":"address"},{"name":"numCoins","type":"uint256"}],"name":"recordSale183Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"creditcoinSalesLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"vestedBalanceOf1095Days","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"creditcoinLimitInFrac","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenHolder","type":"address"},{"name":"numCoins","type":"uint256"}],"name":"recordSale2190Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenHolder","type":"address"},{"name":"numCoins","type":"uint256"}],"name":"recordSale730Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"purchasedBalanceOf1095Days","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startVesting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenHolders","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"recordSales2190Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"purchasedBalanceOf183Days","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"IsSalesFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenHolders","type":"address[]"},{"name":"amounts","type":"uint256[]"}],"name":"recordSales365Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenHolder","type":"address"},{"name":"numCoins","type":"uint256"}],"name":"recordSale1095Days","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"creditcoinFoundation","type":"address"},{"name":"devCost","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":true,"name":"sighash","type":"string"}],"name":"Exchange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burnt","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"}]

60806040523480156200001157600080fd5b50604051604080620031f0833981018060405260408110156200003357600080fd5b5080516020909101516000805433600160a060020a031991821617825560028054909116600160a060020a038516179055620000a66064620000916b06765c793fa10079d00000006005640100000000620001d4810262002cf31704565b9064010000000062002c846200026e82021704565b90506000620000d76064620000916b06765c793fa10079d0000000600f64010000000062002cf3620001d482021704565b600160a060020a038516600090815260046020908152604080832061088e845290915290208390556003549091506200011f9083640100000000620028cb620002f682021704565b6003908155600160a060020a038416600090815260046020908152604080832061088e8452909152902082905554620001679082640100000000620028cb620002f682021704565b600355604080518381529051600160a060020a03861691600091600080516020620031d08339815191529181900360200190a3604080518281529051600160a060020a03851691600091600080516020620031d08339815191529181900360200190a3505050506200036b565b6000821515620001e75750600062000268565b828202828482811515620001f757fe5b04146200026557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000604482015290519081900360640190fd5b90505b92915050565b6000808211620002df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4469766973696f6e206279207a65726f00000000000000000000000000000000604482015290519081900360640190fd5b60008284811515620002ed57fe5b04949350505050565b6000828201838110156200026557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f4164646974696f6e206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b612e55806200037b6000396000f3fe6080604052600436106101e7577c0100000000000000000000000000000000000000000000000000000000600035046304dc0f9c8114610239578063057272b61461036d57806306fdde0314610394578063095ea7b31461041e5780630e2d1a2a1461046b57806318160ddd1461049e57806320b8f2f6146104b357806323a56849146104e657806323b872dd146105a0578063250944db146105e3578063313ce5671461061657806334ccc871146106415780633cb8e5271461077557806342966c68146107a857806348900c90146107d25780635d51ef3714610805578063699c3906146109395780636ee6347b1461097257806370815b10146109a557806370a08231146109d8578063768882df14610a0b57806379cc679014610a205780638f8ace5c14610a595780639374d7f614610a8c57806395d89b4114610abf5780639da9469114610ad4578063a9059cbb14610b0d578063aa37ca0214610b46578063afd90c2914610b5b578063d147957514610b8e578063d378d07714610ba3578063d5a2ffde14610bdc578063d6a5334a14610c15578063dd62ed3e14610c48578063deb36e3214610c83578063e7725f5b14610c98578063eaa142ba14610dcc578063ebf701ae14610dff578063f39d39a014610e14578063fda1bfc514610f48575b6040805160e560020a62461bcd02815260206004820152601960248201527f657468207472616e736665722069732064697361626c65642e00000000000000604482015290519081900360640190fd5b005b34801561024557600080fd5b506102376004803603604081101561025c57600080fd5b81019060208101813564010000000081111561027757600080fd5b82018360208201111561028957600080fd5b803590602001918460208302840111640100000000831117156102ab57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102fb57600080fd5b82018360208201111561030d57600080fd5b8035906020019184602083028401116401000000008311171561032f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f81945050505050565b34801561037957600080fd5b506103826110cd565b60408051918252519081900360200190f35b3480156103a057600080fd5b506103a96110d3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103e35781810151838201526020016103cb565b50505050905090810190601f1680156104105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561042a57600080fd5b506104576004803603604081101561044157600080fd5b50600160a060020a03813516906020013561110a565b604080519115158252519081900360200190f35b34801561047757600080fd5b506103826004803603602081101561048e57600080fd5b5035600160a060020a031661125a565b3480156104aa57600080fd5b506103826112e1565b3480156104bf57600080fd5b50610382600480360360208110156104d657600080fd5b5035600160a060020a03166112e7565b3480156104f257600080fd5b506104576004803603604081101561050957600080fd5b8135919081019060408101602082013564010000000081111561052b57600080fd5b82018360208201111561053d57600080fd5b8035906020019184600183028401116401000000008311171561055f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061130f945050505050565b3480156105ac57600080fd5b50610457600480360360608110156105c357600080fd5b50600160a060020a03813581169160208101359091169060400135611495565b3480156105ef57600080fd5b506103826004803603602081101561060657600080fd5b5035600160a060020a0316611703565b34801561062257600080fd5b5061062b611710565b6040805160ff9092168252519081900360200190f35b34801561064d57600080fd5b506102376004803603604081101561066457600080fd5b81019060208101813564010000000081111561067f57600080fd5b82018360208201111561069157600080fd5b803590602001918460208302840111640100000000831117156106b357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561070357600080fd5b82018360208201111561071557600080fd5b8035906020019184602083028401116401000000008311171561073757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611715945050505050565b34801561078157600080fd5b506103826004803603602081101561079857600080fd5b5035600160a060020a031661185c565b3480156107b457600080fd5b50610457600480360360208110156107cb57600080fd5b503561186a565b3480156107de57600080fd5b50610382600480360360208110156107f557600080fd5b5035600160a060020a031661193e565b34801561081157600080fd5b506102376004803603604081101561082857600080fd5b81019060208101813564010000000081111561084357600080fd5b82018360208201111561085557600080fd5b8035906020019184602083028401116401000000008311171561087757600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156108c757600080fd5b8201836020820111156108d957600080fd5b803590602001918460208302840111640100000000831117156108fb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611966945050505050565b34801561094557600080fd5b506102376004803603604081101561095c57600080fd5b50600160a060020a038135169060200135611aad565b34801561097e57600080fd5b506103826004803603602081101561099557600080fd5b5035600160a060020a0316611b5e565b3480156109b157600080fd5b50610382600480360360208110156109c857600080fd5b5035600160a060020a0316611b6c565b3480156109e457600080fd5b50610382600480360360208110156109fb57600080fd5b5035600160a060020a0316611bac565b348015610a1757600080fd5b50610237611c0b565b348015610a2c57600080fd5b5061045760048036036040811015610a4357600080fd5b50600160a060020a038135169060200135611dd1565b348015610a6557600080fd5b5061038260048036036020811015610a7c57600080fd5b5035600160a060020a0316611f8b565b348015610a9857600080fd5b5061038260048036036020811015610aaf57600080fd5b5035600160a060020a0316611f99565b348015610acb57600080fd5b506103a9611fc1565b348015610ae057600080fd5b5061023760048036036040811015610af757600080fd5b50600160a060020a038135169060200135611ff8565b348015610b1957600080fd5b5061045760048036036040811015610b3057600080fd5b50600160a060020a0381351690602001356120a4565b348015610b5257600080fd5b50610382612247565b348015610b6757600080fd5b5061038260048036036020811015610b7e57600080fd5b5035600160a060020a0316612257565b348015610b9a57600080fd5b50610382612265565b348015610baf57600080fd5b5061023760048036036040811015610bc657600080fd5b50600160a060020a038135169060200135612275565b348015610be857600080fd5b5061023760048036036040811015610bff57600080fd5b50600160a060020a038135169060200135612322565b348015610c2157600080fd5b5061038260048036036020811015610c3857600080fd5b5035600160a060020a03166123cf565b348015610c5457600080fd5b5061038260048036036040811015610c6b57600080fd5b50600160a060020a03813581169160200135166123f7565b348015610c8f57600080fd5b50610237612422565b348015610ca457600080fd5b5061023760048036036040811015610cbb57600080fd5b810190602081018135640100000000811115610cd657600080fd5b820183602082011115610ce857600080fd5b80359060200191846020830284011164010000000083111715610d0a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610d5a57600080fd5b820183602082011115610d6c57600080fd5b80359060200191846020830284011164010000000083111715610d8e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612559945050505050565b348015610dd857600080fd5b5061038260048036036020811015610def57600080fd5b5035600160a060020a03166126a0565b348015610e0b57600080fd5b506104576126c7565b348015610e2057600080fd5b5061023760048036036040811015610e3757600080fd5b810190602081018135640100000000811115610e5257600080fd5b820183602082011115610e6457600080fd5b80359060200191846020830284011164010000000083111715610e8657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610ed657600080fd5b820183602082011115610ee857600080fd5b80359060200191846020830284011164010000000083111715610f0a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506126d7945050505050565b348015610f5457600080fd5b5061023760048036036040811015610f6b57600080fd5b50600160a060020a03813516906020013561281e565b600054600160a060020a03163314610fd1576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611021576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b805182511461107c576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c8576110c0838281518110151561109957fe5b9060200190602002015183838151811015156110b157fe5b90602001906020020151612322565b60010161107f565b505050565b60015481565b60408051808201909152601e81527f476c75776120437265646974636f696e2056657374696e6720546f6b656e0000602082015281565b6000600160a060020a038316151561116c576040805160e560020a62461bcd02815260206004820152601760248201527f496e76616c6964207370656e6465722061646472657373000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314156111f2576040805160e560020a62461bcd028152602060048201526024808201527f43616e277420617070726f766520616c6c6f77616e636520666f7220796f757260448201527f73656c6600000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60006001546000141561126f575060006112dc565b600061127a83611703565b905060006112878461185c565b9050600061129485611b5e565b905060006112a186612257565b905060006112ae87611f8b565b90506112d4816112c8848187818b8b63ffffffff6128cb16565b9063ffffffff6128cb16565b955050505050505b919050565b60035490565b600160a060020a0316600090815260046020908152604080832061016d845290915290205490565b60008261131b33611bac565b101561135f576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b8151603c146113b8576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c69642073696768617368206c656e67746800000000000000000000604482015290519081900360640190fd5b6113c2338461292f565b6003546113d5908463ffffffff6129f816565b6003556040518251839190819060208401908083835b6020831061140a5780518252601f1990920191602091820191016113eb565b51815160209384036101000a60001901801990921691161790526040805192909401829003822089835293519395503394507f1ed7bbccd2ed756e55a14e1873ce4f295f67cb73ade758a84e3b5a91e556e8699391829003019150a36040805184815290516000913391600080516020612daa8339815191529181900360200190a350600192915050565b6000600160a060020a03841615156114f7576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c69642066726f6d2061646472657373000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515611557576040805160e560020a62461bcd02815260206004820152601960248201527f496e76616c696420726563697069656e74206164647265737300000000000000604482015290519081900360640190fd5b8161156185611bac565b10156115a5576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054821115611620576040805160e560020a62461bcd02815260206004820152601260248201527f416c6c6f77616e63652065786365656465640000000000000000000000000000604482015290519081900360640190fd5b61162a848361292f565b600160a060020a038316600090815260046020908152604080832083805290915290205461165e908363ffffffff6128cb16565b600160a060020a03808516600090815260046020908152604080832083805282528083209490945591871681526005825282812033825290915220546116aa908363ffffffff6129f816565b600160a060020a0380861660008181526005602090815260408083203384528252918290209490945580518681529051928716939192600080516020612daa833981519152929181900390910190a35060019392505050565b60006112548260b7612a58565b601281565b600054600160a060020a03163314611765576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156117b5576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b8051825114611810576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c857611854838281518110151561182d57fe5b90602001906020020151838381518110151561184557fe5b9060200190602002015161281e565b600101611813565b60006112548261016d612a58565b60008161187633611bac565b10156118ba576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b6118c4338361292f565b6003546118d7908363ffffffff6129f816565b60035560408051838152905133917f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b1919081900360200190a26040805183815290516000913391600080516020612daa8339815191529181900360200190a3506001919050565b600160a060020a0316600090815260046020908152604080832061088e845290915290205490565b600054600160a060020a031633146119b6576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611a06576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b8051825114611a61576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c857611aa58382815181101515611a7e57fe5b906020019060200201518383815181101515611a9657fe5b90602001906020020151611ff8565b600101611a64565b600054600160a060020a03163314611afd576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611b4d576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a8261016d83612aea565b5050565b6000611254826102da612a58565b600080611b78836126a0565b90506000611b85846112e7565b90506000611b9285611f99565b90506000611b9f866123cf565b905060006112ae8761193e565b600080611bb88361125a565b600160a060020a0384166000908152600460209081526040808320838052909152808220546001835291205491925090611c0281611bf685856128cb565b9063ffffffff6129f816565b95945050505050565b600054600160a060020a03163314611c5b576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611ce3576040805160e560020a62461bcd02815260206004820152602160248201527f53616c6573206861766520616c7265616479206265656e2066696e616c697a6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600354600090611d00906b01f04ef12cb04cf158000000906129f8565b600254600160a060020a0316600090815260046020908152604080832061088e8452909152902054909150611d3b908263ffffffff6128cb16565b600254600160a060020a0316600090815260046020908152604080832061088e8452909152902055600a6b1363156bbee3016d7000000004600355600254604080518381529051600160a060020a0390921691600091600080516020612daa833981519152919081900360200190a3506000805474ff0000000000000000000000000000000000000000191660a060020a179055565b600081611ddd84611bac565b1015611e21576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600560209081526040808320338452909152902054821115611e9c576040805160e560020a62461bcd02815260206004820152601260248201527f416c6c6f77616e63652065786365656465640000000000000000000000000000604482015290519081900360640190fd5b611ea6838361292f565b600160a060020a0383166000908152600560209081526040808320338452909152902054611eda908363ffffffff6129f816565b600160a060020a0384166000908152600560209081526040808320338452909152902055600354611f11908363ffffffff6129f816565b600355604080518381529051600160a060020a038516917f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b1919081900360200190a2604080518381529051600091600160a060020a03861691600080516020612daa8339815191529181900360200190a350600192915050565b60006112548261088e612a58565b600160a060020a031660009081526004602090815260408083206102da845290915290205490565b60408051808201909152600581527f472d435245000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a03163314612048576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612098576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a8260b783612aea565b6000600160a060020a0383161515612106576040805160e560020a62461bcd02815260206004820152601260248201527f496e76616c696420746f20616464726573730000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038316331415612167576040805160e560020a62461bcd02815260206004820152601660248201527f43616e2774207472616e7366657220746f2073656c6600000000000000000000604482015290519081900360640190fd5b8161217133611bac565b10156121b5576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b6121bf338361292f565b600160a060020a03831660009081526004602090815260408083208380529091529020546121f3908363ffffffff6128cb16565b600160a060020a0384166000818152600460209081526040808320838052825291829020939093558051858152905191923392600080516020612daa8339815191529281900390910190a350600192915050565b6b01f04ef12cb04cf15800000081565b600061125482610447612a58565b6b06765c793fa10079d000000081565b600054600160a060020a031633146122c5576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612315576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a8261088e83612aea565b600054600160a060020a03163314612372576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156123c2576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a826102da83612aea565b600160a060020a03166000908152600460209081526040808320610447845290915290205490565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600054600160a060020a03163314612472576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615156124fb576040805160e560020a62461bcd02815260206004820152602d60248201527f53616c6573206d7573742062652066696e616c697a6564206265666f7265207660448201527f657374696e672073746172742e00000000000000000000000000000000000000606482015290519081900360840190fd5b60015415612553576040805160e560020a62461bcd02815260206004820152601c60248201527f56657374696e67202068617320616c7265616479207374617274656400000000604482015290519081900360640190fd5b42600155565b600054600160a060020a031633146125a9576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156125f9576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b8051825114612654576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c857612698838281518110151561267157fe5b90602001906020020151838381518110151561268957fe5b90602001906020020151612275565b600101612657565b600160a060020a0316600090815260046020908152604080832060b7845290915290205490565b60005460a060020a900460ff1681565b600054600160a060020a03163314612727576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612777576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b80518251146127d2576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c85761281683828151811015156127ef57fe5b90602001906020020151838381518110151561280757fe5b90602001906020020151611aad565b6001016127d5565b600054600160a060020a0316331461286e576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156128be576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a8261044783612aea565b600082820183811015612928576040805160e560020a62461bcd02815260206004820152601160248201527f4164646974696f6e206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600160a060020a038216600090815260046020908152604080832083805290915290205481811061298957600160a060020a03831660009081526004602090815260408083208380529091529020805483900390556110c8565b600160a060020a0383166000908152600460209081526040808320600184529091529020546129c09082840363ffffffff6128cb16565b600160a060020a0384166000908152600460209081526040808320600184528083528184209490945582805292905290812055505050565b600082821115612a52576040805160e560020a62461bcd02815260206004820152601560248201527f5375627472616374696f6e20756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b50900390565b600060015460001415612a6d57506000611254565b6000612a9762015180612a8b600154426129f890919063ffffffff16565b9063ffffffff612c8416565b600160a060020a038516600090815260046020908152604080832061ffff88168085529252909120549192508210612ad25791506112549050565b611c0261ffff8516612a8b838563ffffffff612cf316565b600160a060020a038316600090815260046020908152604080832061ffff8616845290915290205415612bb3576040805160e560020a62461bcd02815260206004820152604360248201527f53616c6573206861766520616c7265616479206265656e207265636f7264656460448201527f20666f722074686973206164647265737320616e642076657374696e6750657260648201527f696f640000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600354600090612bc9908363ffffffff6128cb16565b90506b01f04ef12cb04cf158000000811115612c2f576040805160e560020a62461bcd02815260206004820152601f60248201527f437265646974636f696e2073616c6573206c696d697420657863656564656400604482015290519081900360640190fd5b600160a060020a038416600081815260046020908152604080832061ffff881684528252808320869055600385905580518681529051600080516020612daa833981519152929181900390910190a350505050565b6000808211612cdd576040805160e560020a62461bcd02815260206004820152601060248201527f4469766973696f6e206279207a65726f00000000000000000000000000000000604482015290519081900360640190fd5b60008284811515612cea57fe5b04949350505050565b6000821515612d0457506000611254565b828202828482811515612d1357fe5b0414612928576040805160e560020a62461bcd02815260206004820152601760248201527f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000604482015290519081900360640190fdfe53616c65732068617665206265656e2066696e616c697a656400000000000000496e73756666696369656e742062616c616e6365000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4f6e6c7920636f6e7472616374206f776e65722063616e20646f20746869732e546f6b656e20686f6c646572206c69737420616e642076616c756573206c697374206c656e677468206d69736d61746368000000000000000000000000000000a165627a7a723058205d98591ac63d39c6a5dc2cb49de230d01b347e07c24b2a22b1116e71c10931ba0029ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000016d43e797d14d626a90060ac7cf9b451f77ec1e80000000000000000000000002c21b180014b5fb261a2253962a2ca9ebd33bf8e

Deployed Bytecode

0x6080604052600436106101e7577c0100000000000000000000000000000000000000000000000000000000600035046304dc0f9c8114610239578063057272b61461036d57806306fdde0314610394578063095ea7b31461041e5780630e2d1a2a1461046b57806318160ddd1461049e57806320b8f2f6146104b357806323a56849146104e657806323b872dd146105a0578063250944db146105e3578063313ce5671461061657806334ccc871146106415780633cb8e5271461077557806342966c68146107a857806348900c90146107d25780635d51ef3714610805578063699c3906146109395780636ee6347b1461097257806370815b10146109a557806370a08231146109d8578063768882df14610a0b57806379cc679014610a205780638f8ace5c14610a595780639374d7f614610a8c57806395d89b4114610abf5780639da9469114610ad4578063a9059cbb14610b0d578063aa37ca0214610b46578063afd90c2914610b5b578063d147957514610b8e578063d378d07714610ba3578063d5a2ffde14610bdc578063d6a5334a14610c15578063dd62ed3e14610c48578063deb36e3214610c83578063e7725f5b14610c98578063eaa142ba14610dcc578063ebf701ae14610dff578063f39d39a014610e14578063fda1bfc514610f48575b6040805160e560020a62461bcd02815260206004820152601960248201527f657468207472616e736665722069732064697361626c65642e00000000000000604482015290519081900360640190fd5b005b34801561024557600080fd5b506102376004803603604081101561025c57600080fd5b81019060208101813564010000000081111561027757600080fd5b82018360208201111561028957600080fd5b803590602001918460208302840111640100000000831117156102ab57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156102fb57600080fd5b82018360208201111561030d57600080fd5b8035906020019184602083028401116401000000008311171561032f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610f81945050505050565b34801561037957600080fd5b506103826110cd565b60408051918252519081900360200190f35b3480156103a057600080fd5b506103a96110d3565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103e35781810151838201526020016103cb565b50505050905090810190601f1680156104105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561042a57600080fd5b506104576004803603604081101561044157600080fd5b50600160a060020a03813516906020013561110a565b604080519115158252519081900360200190f35b34801561047757600080fd5b506103826004803603602081101561048e57600080fd5b5035600160a060020a031661125a565b3480156104aa57600080fd5b506103826112e1565b3480156104bf57600080fd5b50610382600480360360208110156104d657600080fd5b5035600160a060020a03166112e7565b3480156104f257600080fd5b506104576004803603604081101561050957600080fd5b8135919081019060408101602082013564010000000081111561052b57600080fd5b82018360208201111561053d57600080fd5b8035906020019184600183028401116401000000008311171561055f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061130f945050505050565b3480156105ac57600080fd5b50610457600480360360608110156105c357600080fd5b50600160a060020a03813581169160208101359091169060400135611495565b3480156105ef57600080fd5b506103826004803603602081101561060657600080fd5b5035600160a060020a0316611703565b34801561062257600080fd5b5061062b611710565b6040805160ff9092168252519081900360200190f35b34801561064d57600080fd5b506102376004803603604081101561066457600080fd5b81019060208101813564010000000081111561067f57600080fd5b82018360208201111561069157600080fd5b803590602001918460208302840111640100000000831117156106b357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561070357600080fd5b82018360208201111561071557600080fd5b8035906020019184602083028401116401000000008311171561073757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611715945050505050565b34801561078157600080fd5b506103826004803603602081101561079857600080fd5b5035600160a060020a031661185c565b3480156107b457600080fd5b50610457600480360360208110156107cb57600080fd5b503561186a565b3480156107de57600080fd5b50610382600480360360208110156107f557600080fd5b5035600160a060020a031661193e565b34801561081157600080fd5b506102376004803603604081101561082857600080fd5b81019060208101813564010000000081111561084357600080fd5b82018360208201111561085557600080fd5b8035906020019184602083028401116401000000008311171561087757600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156108c757600080fd5b8201836020820111156108d957600080fd5b803590602001918460208302840111640100000000831117156108fb57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611966945050505050565b34801561094557600080fd5b506102376004803603604081101561095c57600080fd5b50600160a060020a038135169060200135611aad565b34801561097e57600080fd5b506103826004803603602081101561099557600080fd5b5035600160a060020a0316611b5e565b3480156109b157600080fd5b50610382600480360360208110156109c857600080fd5b5035600160a060020a0316611b6c565b3480156109e457600080fd5b50610382600480360360208110156109fb57600080fd5b5035600160a060020a0316611bac565b348015610a1757600080fd5b50610237611c0b565b348015610a2c57600080fd5b5061045760048036036040811015610a4357600080fd5b50600160a060020a038135169060200135611dd1565b348015610a6557600080fd5b5061038260048036036020811015610a7c57600080fd5b5035600160a060020a0316611f8b565b348015610a9857600080fd5b5061038260048036036020811015610aaf57600080fd5b5035600160a060020a0316611f99565b348015610acb57600080fd5b506103a9611fc1565b348015610ae057600080fd5b5061023760048036036040811015610af757600080fd5b50600160a060020a038135169060200135611ff8565b348015610b1957600080fd5b5061045760048036036040811015610b3057600080fd5b50600160a060020a0381351690602001356120a4565b348015610b5257600080fd5b50610382612247565b348015610b6757600080fd5b5061038260048036036020811015610b7e57600080fd5b5035600160a060020a0316612257565b348015610b9a57600080fd5b50610382612265565b348015610baf57600080fd5b5061023760048036036040811015610bc657600080fd5b50600160a060020a038135169060200135612275565b348015610be857600080fd5b5061023760048036036040811015610bff57600080fd5b50600160a060020a038135169060200135612322565b348015610c2157600080fd5b5061038260048036036020811015610c3857600080fd5b5035600160a060020a03166123cf565b348015610c5457600080fd5b5061038260048036036040811015610c6b57600080fd5b50600160a060020a03813581169160200135166123f7565b348015610c8f57600080fd5b50610237612422565b348015610ca457600080fd5b5061023760048036036040811015610cbb57600080fd5b810190602081018135640100000000811115610cd657600080fd5b820183602082011115610ce857600080fd5b80359060200191846020830284011164010000000083111715610d0a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610d5a57600080fd5b820183602082011115610d6c57600080fd5b80359060200191846020830284011164010000000083111715610d8e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612559945050505050565b348015610dd857600080fd5b5061038260048036036020811015610def57600080fd5b5035600160a060020a03166126a0565b348015610e0b57600080fd5b506104576126c7565b348015610e2057600080fd5b5061023760048036036040811015610e3757600080fd5b810190602081018135640100000000811115610e5257600080fd5b820183602082011115610e6457600080fd5b80359060200191846020830284011164010000000083111715610e8657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050640100000000811115610ed657600080fd5b820183602082011115610ee857600080fd5b80359060200191846020830284011164010000000083111715610f0a57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506126d7945050505050565b348015610f5457600080fd5b5061023760048036036040811015610f6b57600080fd5b50600160a060020a03813516906020013561281e565b600054600160a060020a03163314610fd1576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611021576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b805182511461107c576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c8576110c0838281518110151561109957fe5b9060200190602002015183838151811015156110b157fe5b90602001906020020151612322565b60010161107f565b505050565b60015481565b60408051808201909152601e81527f476c75776120437265646974636f696e2056657374696e6720546f6b656e0000602082015281565b6000600160a060020a038316151561116c576040805160e560020a62461bcd02815260206004820152601760248201527f496e76616c6964207370656e6465722061646472657373000000000000000000604482015290519081900360640190fd5b600160a060020a0383163314156111f2576040805160e560020a62461bcd028152602060048201526024808201527f43616e277420617070726f766520616c6c6f77616e636520666f7220796f757260448201527f73656c6600000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b60006001546000141561126f575060006112dc565b600061127a83611703565b905060006112878461185c565b9050600061129485611b5e565b905060006112a186612257565b905060006112ae87611f8b565b90506112d4816112c8848187818b8b63ffffffff6128cb16565b9063ffffffff6128cb16565b955050505050505b919050565b60035490565b600160a060020a0316600090815260046020908152604080832061016d845290915290205490565b60008261131b33611bac565b101561135f576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b8151603c146113b8576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c69642073696768617368206c656e67746800000000000000000000604482015290519081900360640190fd5b6113c2338461292f565b6003546113d5908463ffffffff6129f816565b6003556040518251839190819060208401908083835b6020831061140a5780518252601f1990920191602091820191016113eb565b51815160209384036101000a60001901801990921691161790526040805192909401829003822089835293519395503394507f1ed7bbccd2ed756e55a14e1873ce4f295f67cb73ade758a84e3b5a91e556e8699391829003019150a36040805184815290516000913391600080516020612daa8339815191529181900360200190a350600192915050565b6000600160a060020a03841615156114f7576040805160e560020a62461bcd02815260206004820152601460248201527f496e76616c69642066726f6d2061646472657373000000000000000000000000604482015290519081900360640190fd5b600160a060020a0383161515611557576040805160e560020a62461bcd02815260206004820152601960248201527f496e76616c696420726563697069656e74206164647265737300000000000000604482015290519081900360640190fd5b8161156185611bac565b10156115a5576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b600160a060020a0384166000908152600560209081526040808320338452909152902054821115611620576040805160e560020a62461bcd02815260206004820152601260248201527f416c6c6f77616e63652065786365656465640000000000000000000000000000604482015290519081900360640190fd5b61162a848361292f565b600160a060020a038316600090815260046020908152604080832083805290915290205461165e908363ffffffff6128cb16565b600160a060020a03808516600090815260046020908152604080832083805282528083209490945591871681526005825282812033825290915220546116aa908363ffffffff6129f816565b600160a060020a0380861660008181526005602090815260408083203384528252918290209490945580518681529051928716939192600080516020612daa833981519152929181900390910190a35060019392505050565b60006112548260b7612a58565b601281565b600054600160a060020a03163314611765576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156117b5576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b8051825114611810576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c857611854838281518110151561182d57fe5b90602001906020020151838381518110151561184557fe5b9060200190602002015161281e565b600101611813565b60006112548261016d612a58565b60008161187633611bac565b10156118ba576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b6118c4338361292f565b6003546118d7908363ffffffff6129f816565b60035560408051838152905133917f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b1919081900360200190a26040805183815290516000913391600080516020612daa8339815191529181900360200190a3506001919050565b600160a060020a0316600090815260046020908152604080832061088e845290915290205490565b600054600160a060020a031633146119b6576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611a06576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b8051825114611a61576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c857611aa58382815181101515611a7e57fe5b906020019060200201518383815181101515611a9657fe5b90602001906020020151611ff8565b600101611a64565b600054600160a060020a03163314611afd576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611b4d576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a8261016d83612aea565b5050565b6000611254826102da612a58565b600080611b78836126a0565b90506000611b85846112e7565b90506000611b9285611f99565b90506000611b9f866123cf565b905060006112ae8761193e565b600080611bb88361125a565b600160a060020a0384166000908152600460209081526040808320838052909152808220546001835291205491925090611c0281611bf685856128cb565b9063ffffffff6129f816565b95945050505050565b600054600160a060020a03163314611c5b576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615611ce3576040805160e560020a62461bcd02815260206004820152602160248201527f53616c6573206861766520616c7265616479206265656e2066696e616c697a6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600354600090611d00906b01f04ef12cb04cf158000000906129f8565b600254600160a060020a0316600090815260046020908152604080832061088e8452909152902054909150611d3b908263ffffffff6128cb16565b600254600160a060020a0316600090815260046020908152604080832061088e8452909152902055600a6b1363156bbee3016d7000000004600355600254604080518381529051600160a060020a0390921691600091600080516020612daa833981519152919081900360200190a3506000805474ff0000000000000000000000000000000000000000191660a060020a179055565b600081611ddd84611bac565b1015611e21576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b600160a060020a0383166000908152600560209081526040808320338452909152902054821115611e9c576040805160e560020a62461bcd02815260206004820152601260248201527f416c6c6f77616e63652065786365656465640000000000000000000000000000604482015290519081900360640190fd5b611ea6838361292f565b600160a060020a0383166000908152600560209081526040808320338452909152902054611eda908363ffffffff6129f816565b600160a060020a0384166000908152600560209081526040808320338452909152902055600354611f11908363ffffffff6129f816565b600355604080518381529051600160a060020a038516917f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b1919081900360200190a2604080518381529051600091600160a060020a03861691600080516020612daa8339815191529181900360200190a350600192915050565b60006112548261088e612a58565b600160a060020a031660009081526004602090815260408083206102da845290915290205490565b60408051808201909152600581527f472d435245000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a03163314612048576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612098576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a8260b783612aea565b6000600160a060020a0383161515612106576040805160e560020a62461bcd02815260206004820152601260248201527f496e76616c696420746f20616464726573730000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038316331415612167576040805160e560020a62461bcd02815260206004820152601660248201527f43616e2774207472616e7366657220746f2073656c6600000000000000000000604482015290519081900360640190fd5b8161217133611bac565b10156121b5576040805160e560020a62461bcd0281526020600482015260146024820152600080516020612d8a833981519152604482015290519081900360640190fd5b6121bf338361292f565b600160a060020a03831660009081526004602090815260408083208380529091529020546121f3908363ffffffff6128cb16565b600160a060020a0384166000818152600460209081526040808320838052825291829020939093558051858152905191923392600080516020612daa8339815191529281900390910190a350600192915050565b6b01f04ef12cb04cf15800000081565b600061125482610447612a58565b6b06765c793fa10079d000000081565b600054600160a060020a031633146122c5576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612315576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a8261088e83612aea565b600054600160a060020a03163314612372576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156123c2576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a826102da83612aea565b600160a060020a03166000908152600460209081526040808320610447845290915290205490565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600054600160a060020a03163314612472576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615156124fb576040805160e560020a62461bcd02815260206004820152602d60248201527f53616c6573206d7573742062652066696e616c697a6564206265666f7265207660448201527f657374696e672073746172742e00000000000000000000000000000000000000606482015290519081900360840190fd5b60015415612553576040805160e560020a62461bcd02815260206004820152601c60248201527f56657374696e67202068617320616c7265616479207374617274656400000000604482015290519081900360640190fd5b42600155565b600054600160a060020a031633146125a9576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156125f9576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b8051825114612654576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c857612698838281518110151561267157fe5b90602001906020020151838381518110151561268957fe5b90602001906020020151612275565b600101612657565b600160a060020a0316600090815260046020908152604080832060b7845290915290205490565b60005460a060020a900460ff1681565b600054600160a060020a03163314612727576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff1615612777576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b80518251146127d2576040805160e560020a62461bcd0281526020600482015260316024820152600080516020612dea8339815191526044820152600080516020612e0a833981519152606482015290519081900360840190fd5b60005b82518110156110c85761281683828151811015156127ef57fe5b90602001906020020151838381518110151561280757fe5b90602001906020020151611aad565b6001016127d5565b600054600160a060020a0316331461286e576040805160e560020a62461bcd0281526020600482018190526024820152600080516020612dca833981519152604482015290519081900360640190fd5b60005460a060020a900460ff16156128be576040805160e560020a62461bcd0281526020600482015260196024820152600080516020612d6a833981519152604482015290519081900360640190fd5b611b5a8261044783612aea565b600082820183811015612928576040805160e560020a62461bcd02815260206004820152601160248201527f4164646974696f6e206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b9392505050565b600160a060020a038216600090815260046020908152604080832083805290915290205481811061298957600160a060020a03831660009081526004602090815260408083208380529091529020805483900390556110c8565b600160a060020a0383166000908152600460209081526040808320600184529091529020546129c09082840363ffffffff6128cb16565b600160a060020a0384166000908152600460209081526040808320600184528083528184209490945582805292905290812055505050565b600082821115612a52576040805160e560020a62461bcd02815260206004820152601560248201527f5375627472616374696f6e20756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b50900390565b600060015460001415612a6d57506000611254565b6000612a9762015180612a8b600154426129f890919063ffffffff16565b9063ffffffff612c8416565b600160a060020a038516600090815260046020908152604080832061ffff88168085529252909120549192508210612ad25791506112549050565b611c0261ffff8516612a8b838563ffffffff612cf316565b600160a060020a038316600090815260046020908152604080832061ffff8616845290915290205415612bb3576040805160e560020a62461bcd02815260206004820152604360248201527f53616c6573206861766520616c7265616479206265656e207265636f7264656460448201527f20666f722074686973206164647265737320616e642076657374696e6750657260648201527f696f640000000000000000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b600354600090612bc9908363ffffffff6128cb16565b90506b01f04ef12cb04cf158000000811115612c2f576040805160e560020a62461bcd02815260206004820152601f60248201527f437265646974636f696e2073616c6573206c696d697420657863656564656400604482015290519081900360640190fd5b600160a060020a038416600081815260046020908152604080832061ffff881684528252808320869055600385905580518681529051600080516020612daa833981519152929181900390910190a350505050565b6000808211612cdd576040805160e560020a62461bcd02815260206004820152601060248201527f4469766973696f6e206279207a65726f00000000000000000000000000000000604482015290519081900360640190fd5b60008284811515612cea57fe5b04949350505050565b6000821515612d0457506000611254565b828202828482811515612d1357fe5b0414612928576040805160e560020a62461bcd02815260206004820152601760248201527f4d756c7469706c69636174696f6e206f766572666c6f77000000000000000000604482015290519081900360640190fdfe53616c65732068617665206265656e2066696e616c697a656400000000000000496e73756666696369656e742062616c616e6365000000000000000000000000ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef4f6e6c7920636f6e7472616374206f776e65722063616e20646f20746869732e546f6b656e20686f6c646572206c69737420616e642076616c756573206c697374206c656e677468206d69736d61746368000000000000000000000000000000a165627a7a723058205d98591ac63d39c6a5dc2cb49de230d01b347e07c24b2a22b1116e71c10931ba0029

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

00000000000000000000000016d43e797d14d626a90060ac7cf9b451f77ec1e80000000000000000000000002c21b180014b5fb261a2253962a2ca9ebd33bf8e

-----Decoded View---------------
Arg [0] : creditcoinFoundation (address): 0x16D43E797D14D626a90060Ac7Cf9B451F77eC1E8
Arg [1] : devCost (address): 0x2c21B180014B5Fb261a2253962a2CA9ebd33bF8e

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000016d43e797d14d626a90060ac7cf9b451f77ec1e8
Arg [1] : 0000000000000000000000002c21b180014b5fb261a2253962a2ca9ebd33bf8e


Swarm Source

bzzr://5d98591ac63d39c6a5dc2cb49de230d01b347e07c24b2a22b1116e71c10931ba
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.