Token dKargo

 

Overview [ERC-20]

Price
$0.06 @ 0.000029 Eth (+1.31%)
Fully Diluted Market Cap
Max Total Supply:
5,000,000,000 DKA

Holders:
3,628

Transfers:
-

Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

Dkargo uses blockchain technology to solve the issue in the logistics industry, enabling efficient logistics network based on cooperation.

Market

Volume (24H):$26,379,196.00
Market Capitalization:$117,145,824.00
Circulating Supply:2,125,000,000.00 DKA
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume
1
Upbit
DKA-KRW$0.0552
0.0000291 Eth
$25,862,160.00
468,509,968.207 DKA
97.8336%
2
Huobi Global
DKA-USDT$0.0522
0.0000275 Eth
$279,338.00
4,413,199.902 DKA
0.9216%
3
LATOKEN
DKA-USDT$0.0528
0.0000278 Eth
$109,586.00
2,075,421.092 DKA
0.4334%
4
Gate.io
DKA-USDT$0.0531
0.0000280 Eth
$74,596.00
1,404,146.888 DKA
0.2932%
5
Hotbit
DKA-USDT$0.0604
0.0000338 Eth
$41,829.00
692,189.000 DKA
0.1445%
6
Upbit Indonesia
DKA-BTC$0.0533
0.0000281 Eth
$25,505.00
478,902.456 DKA
0.1000%
7
Gate.io
DKA-ETH$0.0535
0.0000282 Eth
$23,494.00
439,452.895 DKA
0.0918%
8
Huobi Korea
DKA-USDT$0.0527
0.0000278 Eth
$22,596.00
428,665.920 DKA
0.0895%
9
Upbit
DKA-BTC$0.0533
0.0000281 Eth
$22,318.00
419,055.661 DKA
0.0875%
10
Upbit Indonesia
DKA-IDR$0.0546
0.0000288 Eth
$1,284.24
23,529.477 DKA
0.0049%
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DkargoToken

Compiler Version
v0.5.6+commit.b259423e

Optimization Enabled:
Yes with 200 runs

Other Settings:
constantinople EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-05-11
*/

// File: contracts/DkargoPrefix.sol

pragma solidity >=0.5.0 <0.6.0;

/// @title DkargoPrefix
/// @notice 디카르고 컨트랙트 여부 식별용 prefix 컨트랙트 정의
/// @author jhhong
contract DkargoPrefix {
    
    string internal _dkargoPrefix; // 디카르고-프리픽스
    
    /// @author jhhong
    /// @notice 디카르고 프리픽스를 반환한다.
    /// @return 디카르고 프리픽스 (string)
    function getDkargoPrefix() public view returns(string memory) {
        return _dkargoPrefix;
    }

    /// @author jhhong
    /// @notice 디카르고 프리픽스를 설정한다.
    /// @param prefix 설정할 프리픽스
    function _setDkargoPrefix(string memory prefix) internal {
        _dkargoPrefix = prefix;
    }
}

// File: contracts/authority/Ownership.sol

pragma solidity >=0.5.0 <0.6.0;

/// @title Onwership
/// @dev 오너 확인 및 소유권 이전 처리
/// @author jhhong
contract Ownership {
    address private _owner;

    event OwnershipTransferred(address indexed old, address indexed expected);

    /// @author jhhong
    /// @notice 소유자만 접근할 수 있음을 명시한다.
    modifier onlyOwner() {
        require(isOwner() == true, "Ownership: only the owner can call");
        _;
    }

    /// @author jhhong
    /// @notice 컨트랙트 생성자이다.
    constructor() internal {
        emit OwnershipTransferred(_owner, msg.sender);
        _owner = msg.sender;
    }

    /// @author jhhong
    /// @notice 소유권을 넘겨준다.
    /// @param expected 새로운 오너 계정
    function transferOwnership(address expected) public onlyOwner {
        require(expected != address(0), "Ownership: new owner is the zero address");
        emit OwnershipTransferred(_owner, expected);
        _owner = expected;
    }

    /// @author jhhong
    /// @notice 오너 주소를 반환한다.
    /// @return 오너 주소
    function owner() public view returns (address) {
        return _owner;
    }

    /// @author jhhong
    /// @notice 소유자인지 확인한다.
    /// @return 확인 결과 (boolean)
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }
}

// File: contracts/libs/refs/SafeMath.sol

pragma solidity >=0.5.0 <0.6.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * NOTE: This is a feature of the next version of OpenZeppelin Contracts.
     * @dev Get it via `npm install @openzeppelin/[email protected]`.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot 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, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

// File: contracts/chain/AddressChain.sol

pragma solidity >=0.5.0 <0.6.0;


/// @title AddressChain
/// @notice 주소 체인 정의 및 관리
/// @dev 토큰홀더, 회원정보 등과 같은 유저 리스트 관리에 쓰인다.
/// @author jhhong
contract AddressChain {
    using SafeMath for uint256;

    // 구조체 : 노드 정보
    struct NodeInfo {
        address prev; // 이전 노드
        address next; // 다음 노드
    }
    // 구조체 : 노드 체인
    struct NodeList {
        uint256 count; // 노드의 총 개수
        address head; // 체인의 머리
        address tail; // 체인의 꼬리
        mapping(address => NodeInfo) map; // 계정에 대한 노드 정보 매핑
    }

    // 변수 선언
    NodeList private _slist; // 노드 체인 (싱글리스트)

    // 이벤트 선언
    event AddressChainLinked(address indexed node); // 이벤트: 체인에 추가됨
    event AddressChainUnlinked(address indexed node); // 이벤트: 체인에서 빠짐

    /// @author jhhong
    /// @notice 체인에 연결된 원소의 개수를 반환한다.
    /// @return 체인에 연결된 원소의 개수
    function count() public view returns(uint256) {
        return _slist.count;
    }

    /// @author jhhong
    /// @notice 체인 헤드 정보를 반환한다.
    /// @return 체인 헤드 정보
    function head() public view returns(address) {
        return _slist.head;
    }

    /// @author jhhong
    /// @notice 체인 꼬리 정보를 반환한다.
    /// @return 체인 꼬리 정보
    function tail() public view returns(address) {
        return _slist.tail;
    }

    /// @author jhhong
    /// @notice node의 다음 노드 정보를 반환한다.
    /// @param node 노드 정보 (체인에 연결되어 있을 수도 있고 아닐 수도 있음)
    /// @return node의 다음 노드 정보
    function nextOf(address node) public view returns(address) {
        return _slist.map[node].next;
    }

    /// @author jhhong
    /// @notice node의 이전 노드 정보를 반환한다.
    /// @param node 노드 정보 (체인에 연결되어 있을 수도 있고 아닐 수도 있음)
    /// @return node의 이전 노드 정보
    function prevOf(address node) public view returns(address) {
        return _slist.map[node].prev;
    }

    /// @author jhhong
    /// @notice node가 체인에 연결된 상태인지를 확인한다.
    /// @param node 체인 연결 여부를 확인할 노드 주소
    /// @return 연결 여부 (boolean), true: 연결됨(linked), false: 연결되지 않음(unlinked)
    function isLinked(address node) public view returns (bool) {
        if(_slist.count == 1 && _slist.head == node && _slist.tail == node) {
            return true;
        } else {
            return (_slist.map[node].prev == address(0) && _slist.map[node].next == address(0))? (false) :(true);
        }
    }

    /// @author jhhong
    /// @notice 새로운 노드 정보를 노드 체인에 연결한다.
    /// @param node 노드 체인에 연결할 노드 주소
    function _linkChain(address node) internal {
        require(node != address(0), "AddressChain: try to link to the zero address");
        require(!isLinked(node), "AddressChain: the node is aleady linked");
        if(_slist.count == 0) {
            _slist.head = _slist.tail = node;
        } else {
            _slist.map[node].prev = _slist.tail;
            _slist.map[_slist.tail].next = node;
            _slist.tail = node;
        }
        _slist.count = _slist.count.add(1);
        emit AddressChainLinked(node);
    }

    /// @author jhhong
    /// @notice node 노드를 체인에서 연결 해제한다.
    /// @param node 노드 체인에서 연결 해제할 노드 주소
    function _unlinkChain(address node) internal {
        require(node != address(0), "AddressChain: try to unlink to the zero address");
        require(isLinked(node), "AddressChain: the node is aleady unlinked");
        address tempPrev = _slist.map[node].prev;
        address tempNext = _slist.map[node].next;
        if (_slist.head == node) {
            _slist.head = tempNext;
        }
        if (_slist.tail == node) {
            _slist.tail = tempPrev;
        }
        if (tempPrev != address(0)) {
            _slist.map[tempPrev].next = tempNext;
            _slist.map[node].prev = address(0);
        }
        if (tempNext != address(0)) {
            _slist.map[tempNext].prev = tempPrev;
            _slist.map[node].next = address(0);
        }
        _slist.count = _slist.count.sub(1);
        emit AddressChainUnlinked(node);
    }
}

// File: contracts/introspection/ERC165/IERC165.sol

pragma solidity >=0.5.0 <0.6.0;

/// @title IERC165
/// @dev EIP165 interface 선언
/// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md
/// @author jhhong
interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// File: contracts/introspection/ERC165/ERC165.sol

pragma solidity >=0.5.0 <0.6.0;


/// @title ERC165
/// @dev EIP165 interface 구현
/// @author jhhong
contract ERC165 is IERC165 {
    
    mapping(bytes4 => bool) private _infcs; // INTERFACE ID별 지원여부를 저장하기 위한 매핑 변수

    /// @author jhhong
    /// @notice 컨트랙트 생성자이다.
    /// @dev bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7
    constructor() internal {
        _registerInterface(0x01ffc9a7); // supportsInterface()의 INTERFACE ID 등록
    }

    /// @author jhhong
    /// @notice 컨트랙트가 INTERFACE ID를 지원하는지의 여부를 반환한다.
    /// @param infcid 지원여부를 확인할 INTERFACE ID (Function Selector)
    /// @return 지원여부 (boolean)
    function supportsInterface(bytes4 infcid) external view returns (bool) {
        return _infcs[infcid];
    }

    /// @author jhhong
    /// @notice INTERFACE ID를 등록한다.
    /// @param infcid 등록할 INTERFACE ID (Function Selector)
    function _registerInterface(bytes4 infcid) internal {
        require(infcid != 0xffffffff, "ERC165: invalid interface id");
        _infcs[infcid] = true;
    }
}

// File: contracts/token/ERC20/IERC20.sol

pragma solidity >=0.5.0 <0.6.0;

/// @title IERC20
/// @notice EIP20 interface 선언
/// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md
/// @author jhhong
interface IERC20 {
    function transfer(address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) 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);
}

// File: contracts/token/ERC20/ERC20.sol

pragma solidity >=0.5.0 <0.6.0;



/// @title ERC20
/// @notice EIP20 interface 정의 및 mint/burn (internal) 함수 구현
/// @author jhhong
contract ERC20 is IERC20 {
    using SafeMath for uint256;
    
    uint256 private _supply; // 총 통화량
    mapping(address => uint256) private _balances; // 계정별 통화량 저장소
    mapping(address => mapping(address => uint256)) private _allowances; // 각 계정에 대해 "계정별 위임량"을 저장
    
    /// @author jhhong
    /// @notice 컨트랙트 생성자이다.
    /// @param supply 초기 발행량
    constructor(uint256 supply) internal {
        uint256 pebs = supply;
        _mint(msg.sender, pebs);
    }
    
    /// @author jhhong
    /// @notice 계정(spender)에게 통화량(value)을 위임한다.
    /// @param spender 위임받을 계정
    /// @param amount 위임할 통화량
    /// @return 정상처리 시 true
    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    
    /// @author jhhong
    /// @notice 계정(recipient)에게 통화량(amount)을 전송한다.
    /// @param recipient 전송받을 계정
    /// @param amount 금액
    /// @return 정상처리 시 true
    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    /// @author jhhong
    /// @notice 계정(sender)이 계정(recipient)에게 통화량(amount)을 전송한다.
    /// @param sender 전송할 계정
    /// @param recipient 전송받을 계정
    /// @param amount 금액
    /// @return 정상처리 시 true
    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /// @author jhhong
    /// @notice 발행된 총 통화량을 반환한다.
    /// @return 총 통화량
    function totalSupply() public view returns (uint256) {
        return _supply;
    }
    
    /// @author jhhong
    /// @notice 계정(account)이 보유한 통화량을 반환한다.
    /// @param account 계정
    /// @return 계정(account)이 보유한 통화량
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }
    
    /// @author jhhong
    /// @notice 계정(approver)이 계정(spender)에게 위임한 통화량을 반환한다.
    /// @param approver 위임할 계정
    /// @param spender 위임받을 계정
    /// @return 계정(approver)이 계정(spender)에게 위임한 통화량
    function allowance(address approver, address spender) public view returns (uint256) {
        return _allowances[approver][spender];
    }
    
    /// @author jhhong
    /// @notice 계정(approver)이 계정(spender)에게 통화량(value)을 위임한다.
    /// @param approver 위임할 계정
    /// @param spender 위임받을 계정
    /// @param value 위임할 통화량
    function _approve(address approver, address spender, uint256 value) internal {
        require(approver != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[approver][spender] = value;
        emit Approval(approver, spender, value);
    }
    
    /// @author jhhong
    /// @notice 계정(sender)이 계정(recipient)에게 통화량(amount)을 전송한다.
    /// @param sender 위임할 계정
    /// @param recipient 위임받을 계정
    /// @param amount 금액
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /// @author jhhong
    /// @notice 통화량(amount)만큼 주조하여 계정(account)의 통화량에 더해준다.
    /// @dev ERC20Mint에 정의하면 private 속성인 supply와 balances에 access할 수 없어서 ERC20에 internal로 정의함.
    /// @param account 주조된 통화량을 받을 계정
    /// @param amount 주조할 통화량
    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");
        _supply = _supply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /// @author jhhong
    /// @notice 통화량(value)만큼 소각하여 계정(account)의 통화량에서 뺀다.
    /// @dev ERC20Mint에 정의하면 private 속성인 supply와 balances에 access할 수 없어서 ERC20에 internal로 정의함.
    /// @param account 통화량을 소각시킬 계정
    /// @param value 소각시킬 통화량
    function _burn(address account, uint256 value) internal {
        require(account != address(0), "ERC20: burn from the zero address");
        _balances[account] = _balances[account].sub(value, "ERC20: burn amount exceeds balance");
        _supply = _supply.sub(value);
        emit Transfer(account, address(0), value);
    }
}

// File: contracts/token/ERC20/ERC20Safe.sol

pragma solidity >=0.5.0 <0.6.0;



/// @title ERC20Safe
/// @notice Approve Bug Fix 버전 (중복 위임 방지)
/// @author jhhong
contract ERC20Safe is ERC20 {
    using SafeMath for uint256;

    /// @author jhhong
    /// @notice 계정(spender)에게 통화량(amount)을 위임한다.
    /// @dev 값이 덮어써짐을 방지하기 위해 기존에 위임받은 통화량이 0인 경우에만 호출을 허용한다.
    /// @param spender 위임받을 계정
    /// @param amount 위임할 통화량
    /// @return 정상처리 시 true
    function approve(address spender, uint256 amount) public returns (bool) {
        require((amount == 0) || (allowance(msg.sender, spender) == 0), "ERC20Safe: approve from non-zero to non-zero allowance");
        return super.approve(spender, amount);
    }

    /// @author jhhong
    /// @notice 계정(spender)에 위임된 통화량에 통화량(addedValue)를 더한값을 위임한다.
    /// @dev 위임된 통화량이 있을 경우, 통화량 증가는 상기 함수로 수행할 것
    /// @param spender 위임받을 계정
    /// @param addedValue 더해질 통화량
    /// @return 정상처리 시 true
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        uint256 amount = allowance(msg.sender, spender).add(addedValue);
        return super.approve(spender, amount);
    }
    
    /// @author jhhong
    /// @notice 계정(spender)에 위임된 통화량에 통화량(subtractedValue)를 뺀값을 위임한다.
    /// @dev 위임된 통화량이 있을 경우, 통화량 감소는 상기 함수로 수행할 것
    /// @param spender 위임받을 계정
    /// @param subtractedValue 빼질 통화량
    /// @return 정상처리 시 true
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        uint256 amount = allowance(msg.sender, spender).sub(subtractedValue, "ERC20: decreased allowance below zero");
        return super.approve(spender, amount);
    }
}

// File: contracts/DkargoToken.sol

pragma solidity >=0.5.0 <0.6.0;






/// @title DkargoToken
/// @notice 디카르고 토큰 컨트랙트 정의 (메인넷 deploy용)
/// @dev burn 기능 추가 (public)
/// @author jhhong
contract DkargoToken is Ownership, ERC20Safe, AddressChain, ERC165, DkargoPrefix {
    
    string private _name; // 토큰 이름
    string private _symbol; // 토큰 심볼
    
    /// @author jhhong
    /// @notice 컨트랙트 생성자이다.
    /// @dev 초기 발행량이 있을 경우, msg.sender를 홀더 리스트에 추가한다.
    /// @param name 토큰 이름
    /// @param symbol 토큰 심볼
    /// @param supply 초기 발행량
    constructor(string memory name, string memory symbol, uint256 supply) ERC20(supply) public {
        _setDkargoPrefix("token"); // 프리픽스 설정 (token)
        _registerInterface(0x946edbed); // INTERFACE ID 등록 (getDkargoPrefix)
        _name = name;
        _symbol = symbol;
        _linkChain(msg.sender);
    }

    /// @author jhhong
    /// @notice 본인의 보유금액 중 지정된 금액만큼 소각한다.
    /// @param amount 소각시킬 통화량
    function burn(uint256 amount) external {
        _burn(msg.sender, amount);
    }

    /// @author jhhong
    /// @notice 토큰을 전송한다. (전송주체: msg.sender)
    /// @dev 전송 후 변경된 토큰 홀더 상태를 체인에 기록한다.
    /// @param to 토큰을 받을 주소
    /// @param value 전송 금액 (토큰량)
    function transfer(address to, uint256 value) public returns (bool) {
        bool ret = super.transfer(to, value);
        if(isLinked(msg.sender) && balanceOf(msg.sender) == 0) {
            _unlinkChain(msg.sender);
        }
        if(!isLinked(to) && balanceOf(to) > 0) {
            _linkChain(to);
        }
        return ret;
    }

    /// @author jhhong
    /// @notice 토큰을 전송한다. (전송주체: from)
    /// @dev 전송 후 변경된 토큰 홀더 상태를 체인에 기록한다.
    /// @param from 토큰을 보낼 계정
    /// @param to 토큰을 받을 계정
    /// @param value 전송 금액 (토큰량)
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        bool ret = super.transferFrom(from, to, value);
        if(isLinked(from) && balanceOf(from) == 0) {
            _unlinkChain(from);
        }
        if(!isLinked(to) && balanceOf(to) > 0) {
            _linkChain(to);
        }
        return ret;
    }

    /// @author jhhong
    /// @notice 토큰의 이름을 반환한다.
    /// @return 토큰 이름
    function name() public view returns(string memory) {
        return _name;
    }
    
    /// @author jhhong
    /// @notice 토큰의 심볼을 반환한다.
    /// @return 토큰 심볼
    function symbol() public view returns(string memory) {
        return _symbol;
    }

    /// @author jhhong
    /// @notice 토큰 데시멀을 반환한다.
    /// @dev 데시멀 값은 18 (peb) 로 고정이다.
    /// @return 토큰 데시멀
    function decimals() public pure returns(uint256) {
        return 18;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"infcid","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"count","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":"amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tail","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","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":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","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":"head","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDkargoPrefix","outputs":[{"name":"","type":"string"}],"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":"node","type":"address"}],"name":"nextOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"approver","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"expected","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"address"}],"name":"prevOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"node","type":"address"}],"name":"isLinked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"name","type":"string"},{"name":"symbol","type":"string"},{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"address"}],"name":"AddressChainLinked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"node","type":"address"}],"name":"AddressChainUnlinked","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"old","type":"address"},{"indexed":true,"name":"expected","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60806040523480156200001157600080fd5b5060405162001cef38038062001cef833981018060405260608110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505092919060200180516401000000008111156200009c57600080fd5b82016020810184811115620000b057600080fd5b8151640100000000811182820187101715620000cb57600080fd5b505060209091015160008054604051939550919350839233926001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319163390811790915581906200013b9082620001f9602090811b901c565b5050620001556301ffc9a760e01b6200031860201b60201c565b6200019b6040518060400160405280600581526020017f746f6b656e000000000000000000000000000000000000000000000000000000815250620003e760201b60201c565b620001b363946edbed60e01b6200031860201b60201c565b8251620001c890600a906020860190620006d2565b508151620001de90600b906020850190620006d2565b50620001f0336200040060201b60201c565b50505062000777565b6001600160a01b0382166200026f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6200028b81600154620005ae60201b62000ddd1790919060201c565b6001556001600160a01b038216600090815260026020908152604090912054620002c091839062000ddd620005ae821b17901c565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620003aa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152600860205260409020805460ff19166001179055565b8051620003fc906009906020840190620006d2565b5050565b6001600160a01b03811662000461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018062001cc2602d913960400191505060405180910390fd5b62000472816200062a60201b60201c565b15620004ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018062001c9b6027913960400191505060405180910390fd5b6004546200050357600680546001600160a01b0383166001600160a01b0319918216811790925560058054909116909117905562000554565b600680546001600160a01b0383811660008181526007602052604080822080549585166001600160a01b03199687161790558554909316815291909120600101805483168217905582549091161790555b620005746001600460000154620005ae60201b62000ddd1790919060201c565b6004556040516001600160a01b038216907ffb98a8b56eed2c666f89f2f34b3436cff006ee4c5222c1c0b13fb0ea9ee4265590600090a250565b6000828201838110156200062357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60045460009060011480156200064d57506005546001600160a01b038381169116145b80156200066757506006546001600160a01b038381169116145b156200067657506001620006cd565b6001600160a01b0382811660009081526007602052604090205416158015620006ba57506001600160a01b0382811660009081526007602052604090206001015416155b620006c7576001620006ca565b60005b90505b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200071557805160ff191683800117855562000745565b8280016001018555821562000745579182015b828111156200074557825182559160200191906001019062000728565b506200075392915062000757565b5090565b6200077491905b808211156200075357600081556001016200075e565b90565b61151480620007876000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063a9059cbb1161007c578063a9059cbb1461037f578063c68c8feb146103ab578063dd62ed3e146103d1578063f2fde38b146103ff578063f32ca66014610425578063fb1afbd71461044b5761014d565b80638da5cb5b1461032b5780638f32d59b146103335780638f7dcfa31461033b578063946edbed1461034357806395d89b411461034b578063a457c2d7146103535761014d565b806318160ddd1161011557806318160ddd1461027457806323b872dd1461027c578063313ce567146102b257806339509351146102ba57806342966c68146102e657806370a08231146103055761014d565b806301ffc9a71461015257806306661abd1461018d57806306fdde03146101a7578063095ea7b31461022457806313d8c84014610250575b600080fd5b6101796004803603602081101561016857600080fd5b50356001600160e01b031916610471565b604080519115158252519081900360200190f35b610195610494565b60408051918252519081900360200190f35b6101af61049a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101e95781810151838201526020016101d1565b50505050905090810190601f1680156102165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101796004803603604081101561023a57600080fd5b506001600160a01b038135169060200135610530565b610258610595565b604080516001600160a01b039092168252519081900360200190f35b6101956105a4565b6101796004803603606081101561029257600080fd5b506001600160a01b038135811691602081013590911690604001356105aa565b610195610617565b610179600480360360408110156102d057600080fd5b506001600160a01b03813516906020013561061c565b610303600480360360208110156102fc57600080fd5b5035610645565b005b6101956004803603602081101561031b57600080fd5b50356001600160a01b0316610652565b61025861066d565b61017961067c565b61025861068d565b6101af61069c565b6101af6106fd565b6101796004803603604081101561036957600080fd5b506001600160a01b03813516906020013561075e565b6101796004803603604081101561039557600080fd5b506001600160a01b038135169060200135610795565b610258600480360360208110156103c157600080fd5b50356001600160a01b03166107f9565b610195600480360360408110156103e757600080fd5b506001600160a01b038135811691602001351661081a565b6103036004803603602081101561041557600080fd5b50356001600160a01b0316610845565b6102586004803603602081101561043b57600080fd5b50356001600160a01b0316610933565b6101796004803603602081101561046157600080fd5b50356001600160a01b0316610951565b6001600160e01b0319811660009081526008602052604090205460ff165b919050565b60045490565b600a8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105265780601f106104fb57610100808354040283529160200191610526565b820191906000526020600020905b81548152906001019060200180831161050957829003601f168201915b5050505050905090565b60008115806105465750610544338461081a565b155b61058457604051600160e51b62461bcd02815260040180806020018281038252603681526020018061148e6036913960400191505060405180910390fd5b61058e83836109f1565b9392505050565b6006546001600160a01b031690565b60015490565b6000806105b8858585610a07565b90506105c385610951565b80156105d557506105d385610652565b155b156105e3576105e385610a76565b6105ec84610951565b158015610601575060006105ff85610652565b115b1561060f5761060f84610c77565b949350505050565b601290565b6000806106398361062d338761081a565b9063ffffffff610ddd16565b905061060f84826109f1565b61064f3382610e3a565b50565b6001600160a01b031660009081526002602052604090205490565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6005546001600160a01b031690565b60098054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105265780601f106104fb57610100808354040283529160200191610526565b600b8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105265780601f106104fb57610100808354040283529160200191610526565b600080610639836040518060600160405280602581526020016114c460259139610788338861081a565b919063ffffffff610f3916565b6000806107a28484610fd3565b90506107ad33610951565b80156107bf57506107bd33610652565b155b156107cd576107cd33610a76565b6107d684610951565b1580156107eb575060006107e985610652565b115b1561058e5761058e84610c77565b6001600160a01b039081166000908152600760205260409020600101541690565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b61084d61067c565b151560011461089057604051600160e51b62461bcd0281526004018080602001828103825260228152602001806113566022913960400191505060405180910390fd5b6001600160a01b0381166108d857604051600160e51b62461bcd0281526004018080602001828103825260288152602001806113cd6028913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b039081166000908152600760205260409020541690565b600454600090600114801561097357506005546001600160a01b038381169116145b801561098c57506006546001600160a01b038381169116145b156109995750600161048f565b6001600160a01b03828116600090815260076020526040902054161580156109dc57506001600160a01b0382811660009081526007602052604090206001015416155b6109e75760016109ea565b60005b905061048f565b60006109fe338484610fe0565b50600192915050565b6000610a148484846110d2565b610a6c8433610a67856040518060600160405280602881526020016113a5602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919063ffffffff610f3916565b610fe0565b5060019392505050565b6001600160a01b038116610abe57604051600160e51b62461bcd02815260040180806020018281038252602f815260200180611416602f913960400191505060405180910390fd5b610ac781610951565b610b0557604051600160e51b62461bcd0281526004018080602001828103825260298152602001806112e06029913960400191505060405180910390fd5b6001600160a01b0380821660008181526007602052604090208054600190910154600554918416939081169291161415610b5557600580546001600160a01b0319166001600160a01b0383161790555b6006546001600160a01b0384811691161415610b8757600680546001600160a01b0319166001600160a01b0384161790555b6001600160a01b03821615610bd7576001600160a01b0380831660009081526007602052604080822060010180548486166001600160a01b03199182161790915592861682529020805490911690555b6001600160a01b03811615610c27576001600160a01b0380821660009081526007602052604080822080548487166001600160a01b03199182161790915592861682529020600101805490911690555b600454610c3b90600163ffffffff61123616565b6004556040516001600160a01b038416907fafa37ecd3c0a33e32c703b30b29966f99a9b771578068da492e6297a4acb84ee90600090a2505050565b6001600160a01b038116610cbf57604051600160e51b62461bcd02815260040180806020018281038252602d815260200180611378602d913960400191505060405180910390fd5b610cc881610951565b15610d0757604051600160e51b62461bcd0281526004018080602001828103825260278152602001806113096027913960400191505060405180910390fd5b600454610d3e57600680546001600160a01b0383166001600160a01b03199182168117909255600580549091169091179055610d8f565b600680546001600160a01b0383811660008181526007602052604080822080549585166001600160a01b03199687161790558554909316815291909120600101805483168217905582549091161790555b600454610da390600163ffffffff610ddd16565b6004556040516001600160a01b038216907ffb98a8b56eed2c666f89f2f34b3436cff006ee4c5222c1c0b13fb0ea9ee4265590600090a250565b60008282018381101561058e5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b038216610e8257604051600160e51b62461bcd0281526004018080602001828103825260218152602001806113f56021913960400191505060405180910390fd5b610ec58160405180606001604052806022815260200161129c602291396001600160a01b038516600090815260026020526040902054919063ffffffff610f3916565b6001600160a01b038316600090815260026020526040902055600154610ef1908263ffffffff61123616565b6001556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60008184841115610fcb57604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f90578181015183820152602001610f78565b50505050905090810190601f168015610fbd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60006109fe3384846110d2565b6001600160a01b03831661102857604051600160e51b62461bcd02815260040180806020018281038252602481526020018061146a6024913960400191505060405180910390fd5b6001600160a01b03821661107057604051600160e51b62461bcd0281526004018080602001828103825260228152602001806112be6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03831661111a57604051600160e51b62461bcd0281526004018080602001828103825260258152602001806114456025913960400191505060405180910390fd5b6001600160a01b03821661116257604051600160e51b62461bcd0281526004018080602001828103825260238152602001806112796023913960400191505060405180910390fd5b6111a581604051806060016040528060268152602001611330602691396001600160a01b038616600090815260026020526040902054919063ffffffff610f3916565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546111da908263ffffffff610ddd16565b6001600160a01b0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600061058e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f3956fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737341646472657373436861696e3a20746865206e6f646520697320616c6561647920756e6c696e6b656441646472657373436861696e3a20746865206e6f646520697320616c65616479206c696e6b656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654f776e6572736869703a206f6e6c7920746865206f776e65722063616e2063616c6c41646472657373436861696e3a2074727920746f206c696e6b20746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e6572736869703a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737341646472657373436861696e3a2074727920746f20756e6c696e6b20746f20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230536166653a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a72305820e89b01004bc315350f003204c48aec71d2bfef0998c836fd1c9f78a343296ab0002941646472657373436861696e3a20746865206e6f646520697320616c65616479206c696e6b656441646472657373436861696e3a2074727920746f206c696e6b20746f20746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000001027e72f1f128130880000000000000000000000000000000000000000000000000000000000000000000006644b6172676f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003444b410000000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000001027e72f1f128130880000000000000000000000000000000000000000000000000000000000000000000006644b6172676f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003444b410000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): dKargo
Arg [1] : symbol (string): DKA
Arg [2] : supply (uint256): 5000000000000000000000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 00000000000000000000000000000000000000001027e72f1f12813088000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [4] : 644b6172676f0000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 444b410000000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

21930:2993:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21930:2993:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12483:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12483:111:0;-1:-1:-1;;;;;;12483:111:0;;:::i;:::-;;;;;;;;;;;;;;;;;;7756:84;;;:::i;:::-;;;;;;;;;;;;;;;;24382:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;24382:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20180:260;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20180:260:0;;;;;;;;:::i;8172:82::-;;;:::i;:::-;;;;-1:-1:-1;;;;;8172:82:0;;;;;;;;;;;;;;16044:86;;;:::i;23909:359::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23909:359:0;;;;;;;;;;;;;;;;;:::i;24843:77::-;;;:::i;20816:216::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20816:216:0;;;;;;;;:::i;22890:83::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22890:83:0;;:::i;:::-;;16326:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16326:110:0;-1:-1:-1;;;;;16326:110:0;;:::i;1980:79::-;;;:::i;2179:92::-;;;:::i;7965:82::-;;;:::i;444:101::-;;;:::i;24582:86::-;;;:::i;21416:267::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;21416:267:0;;;;;;;;:::i;23247:349::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;23247:349:0;;;;;;;;:::i;8497:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8497:106:0;-1:-1:-1;;;;;8497:106:0;;:::i;16733:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16733:140:0;;;;;;;;;;:::i;1631:238::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1631:238:0;-1:-1:-1;;;;;1631:238:0;;:::i;8846:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8846:106:0;-1:-1:-1;;;;;8846:106:0;;:::i;9232:316::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9232:316:0;-1:-1:-1;;;;;9232:316:0;;:::i;12483:111::-;-1:-1:-1;;;;;;12572:14:0;;12548:4;12572:14;;;:6;:14;;;;;;;;12483:111;;;;:::o;7756:84::-;7820:6;:12;7756:84;:::o;24382:82::-;24451:5;24444:12;;;;;;;;-1:-1:-1;;24444:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24418:13;;24444:12;;24451:5;;24444:12;;24451:5;24444:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24382:82;:::o;20180:260::-;20246:4;20272:11;;;20271:54;;;20289:30;20299:10;20311:7;20289:9;:30::i;:::-;:35;20271:54;20263:121;;;;-1:-1:-1;;;;;20263:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20402:30;20416:7;20425:6;20402:13;:30::i;:::-;20395:37;20180:260;-1:-1:-1;;;20180:260:0:o;8172:82::-;8235:11;;-1:-1:-1;;;;;8235:11:0;8172:82;:::o;16044:86::-;16115:7;;16044:86;:::o;23909:359::-;23988:4;24005:8;24016:35;24035:4;24041:2;24045:5;24016:18;:35::i;:::-;24005:46;;24065:14;24074:4;24065:8;:14::i;:::-;:38;;;;;24083:15;24093:4;24083:9;:15::i;:::-;:20;24065:38;24062:88;;;24120:18;24133:4;24120:12;:18::i;:::-;24164:12;24173:2;24164:8;:12::i;:::-;24163:13;:34;;;;;24196:1;24180:13;24190:2;24180:9;:13::i;:::-;:17;24163:34;24160:80;;;24214:14;24225:2;24214:10;:14::i;:::-;24257:3;23909:359;-1:-1:-1;;;;23909:359:0:o;24843:77::-;24910:2;24843:77;:::o;20816:216::-;20896:4;20913:14;20930:46;20965:10;20930:30;20940:10;20952:7;20930:9;:30::i;:::-;:34;:46;:34;:46;:::i;:::-;20913:63;;20994:30;21008:7;21017:6;20994:13;:30::i;22890:83::-;22940:25;22946:10;22958:6;22940:5;:25::i;:::-;22890:83;:::o;16326:110::-;-1:-1:-1;;;;;16410:18:0;16383:7;16410:18;;;:9;:18;;;;;;;16326:110::o;1980:79::-;2018:7;2045:6;-1:-1:-1;;;;;2045:6:0;1980:79;:::o;2179:92::-;2219:4;2257:6;-1:-1:-1;;;;;2257:6:0;2243:10;:20;;2179:92::o;7965:82::-;8028:11;;-1:-1:-1;;;;;8028:11:0;7965:82;:::o;444:101::-;524:13;517:20;;;;;;;;-1:-1:-1;;517:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;491:13;;517:20;;524:13;;517:20;;524:13;517:20;;;;;;;;;;;;;;;;;;;;;;;;24582:86;24653:7;24646:14;;;;;;;;-1:-1:-1;;24646:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24620:13;;24646:14;;24653:7;;24646:14;;24653:7;24646:14;;;;;;;;;;;;;;;;;;;;;;;;21416:267;21501:4;21518:14;21535:92;21570:15;21535:92;;;;;;;;;;;;;;;;;:30;21545:10;21557:7;21535:9;:30::i;:::-;:34;:92;;:34;:92;:::i;23247:349::-;23308:4;23325:8;23336:25;23351:2;23355:5;23336:14;:25::i;:::-;23325:36;;23375:20;23384:10;23375:8;:20::i;:::-;:50;;;;;23399:21;23409:10;23399:9;:21::i;:::-;:26;23375:50;23372:106;;;23442:24;23455:10;23442:12;:24::i;:::-;23492:12;23501:2;23492:8;:12::i;:::-;23491:13;:34;;;;;23524:1;23508:13;23518:2;23508:9;:13::i;:::-;:17;23491:34;23488:80;;;23542:14;23553:2;23542:10;:14::i;8497:106::-;-1:-1:-1;;;;;8574:16:0;;;8547:7;8574:16;;;:10;:16;;;;;:21;;;;;8497:106::o;16733:140::-;-1:-1:-1;;;;;16835:21:0;;;16808:7;16835:21;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;16733:140::o;1631:238::-;1234:9;:7;:9::i;:::-;:17;;1247:4;1234:17;1226:64;;;;-1:-1:-1;;;;;1226:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1712:22:0;;1704:75;;;;-1:-1:-1;;;;;1704:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1816:6;;;1795:38;;-1:-1:-1;;;;;1795:38:0;;;;1816:6;;;1795:38;;;1844:6;:17;;-1:-1:-1;;;;;;1844:17:0;-1:-1:-1;;;;;1844:17:0;;;;;;;;;;1631:238::o;8846:106::-;-1:-1:-1;;;;;8923:16:0;;;8896:7;8923:16;;;:10;:16;;;;;:21;;;8846:106::o;9232:316::-;9305:6;:12;9285:4;;9321:1;9305:17;:40;;;;-1:-1:-1;9326:11:0;;-1:-1:-1;;;;;9326:19:0;;;:11;;:19;9305:40;:63;;;;-1:-1:-1;9349:11:0;;-1:-1:-1;;;;;9349:19:0;;;:11;;:19;9305:63;9302:239;;;-1:-1:-1;9392:4:0;9385:11;;9302:239;-1:-1:-1;;;;;9437:16:0;;;9470:1;9437:16;;;:10;:16;;;;;:21;;:35;:74;;;;-1:-1:-1;;;;;;9476:16:0;;;9509:1;9476:16;;;:10;:16;;;;;:21;;;;:35;9437:74;9436:93;;9524:4;9436:93;;;9515:5;9436:93;9429:100;;;;14805:150;14871:4;14888:37;14897:10;14909:7;14918:6;14888:8;:37::i;:::-;-1:-1:-1;14943:4:0;14805:150;;;;:::o;15623:300::-;15712:4;15729:36;15739:6;15747:9;15758:6;15729:9;:36::i;:::-;15776:117;15785:6;15793:10;15805:87;15841:6;15805:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15805:19:0;;;;;;:11;:19;;;;;;;;15825:10;15805:31;;;;;;;;;:87;;:35;:87;:::i;:::-;15776:8;:117::i;:::-;-1:-1:-1;15911:4:0;15623:300;;;;;:::o;10430:878::-;-1:-1:-1;;;;;10494:18:0;;10486:78;;;;-1:-1:-1;;;;;10486:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10583:14;10592:4;10583:8;:14::i;:::-;10575:68;;;;-1:-1:-1;;;;;10575:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10673:16:0;;;10654;10673;;;:10;:16;;;;;:21;;;10724;;;;10760:11;;10673:21;;;;10724;;;;10760:11;;:19;10756:74;;;10796:11;:22;;-1:-1:-1;;;;;;10796:22:0;-1:-1:-1;;;;;10796:22:0;;;;;10756:74;10844:11;;-1:-1:-1;;;;;10844:19:0;;;:11;;:19;10840:74;;;10880:11;:22;;-1:-1:-1;;;;;;10880:22:0;-1:-1:-1;;;;;10880:22:0;;;;;10840:74;-1:-1:-1;;;;;10928:22:0;;;10924:140;;-1:-1:-1;;;;;10967:20:0;;;;;;;:10;:20;;;;;;:25;;:36;;;;;-1:-1:-1;;;;;;10967:36:0;;;;;;;11018:16;;;;;;;:34;;;;;;;10924:140;-1:-1:-1;;;;;11078:22:0;;;11074:140;;-1:-1:-1;;;;;11117:20:0;;;;;;;:10;:20;;;;;;:36;;;;;-1:-1:-1;;;;;;11117:36:0;;;;;;;11168:16;;;;;;;11117:36;11168:21;:34;;;;;;;11074:140;11239:6;:12;:19;;11256:1;11239:19;:16;:19;:::i;:::-;11224:6;:34;11274:26;;-1:-1:-1;;;;;11274:26:0;;;;;11224:12;;11274:26;10430:878;;;:::o;9717:543::-;-1:-1:-1;;;;;9779:18:0;;9771:76;;;;-1:-1:-1;;;;;9771:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9867:14;9876:4;9867:8;:14::i;:::-;9866:15;9858:67;;;;-1:-1:-1;;;;;9858:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9939:6;:12;9936:232;;9987:11;:18;;-1:-1:-1;;;;;9987:18:0;;-1:-1:-1;;;;;;9987:18:0;;;;;;;;9973:11;:32;;;;;;;;;;9936:232;;;10062:11;;;-1:-1:-1;;;;;10038:16:0;;;10062:11;10038:16;;;:10;:16;;;;;;:35;;10062:11;;;-1:-1:-1;;;;;;10038:35:0;;;;;;10099:11;;;;;10088:23;;;;;;-1:-1:-1;10088:28:0;:35;;;;;;;;10138:18;;;;;;;;9936:232;10193:6;:12;:19;;10210:1;10193:19;:16;:19;:::i;:::-;10178:6;:34;10228:24;;-1:-1:-1;;;;;10228:24:0;;;;;10178:12;;10228:24;9717:543;:::o;3190:181::-;3248:7;3280:5;;;3304:6;;;;3296:46;;;;;-1:-1:-1;;;;;3296:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;19224:332;-1:-1:-1;;;;;19299:21:0;;19291:67;;;;-1:-1:-1;;;;;19291:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19390;19413:5;19390:67;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19390:18:0;;;;;;:9;:18;;;;;;;:67;;:22;:67;:::i;:::-;-1:-1:-1;;;;;19369:18:0;;;;;;:9;:18;;;;;:88;19478:7;;:18;;19490:5;19478:18;:11;:18;:::i;:::-;19468:7;:28;19512:36;;;;;;;;19538:1;;-1:-1:-1;;;;;19512:36:0;;;;;;;;;;;;19224:332;;:::o;4232:192::-;4318:7;4354:12;4346:6;;;;4338:29;;;;-1:-1:-1;;;;;4338:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4338:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4390:5:0;;;4232:192::o;15182:156::-;15251:4;15268:40;15278:10;15290:9;15301:6;15268:9;:40::i;17130:345::-;-1:-1:-1;;;;;17226:22:0;;17218:71;;;;-1:-1:-1;;;;;17218:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17308:21:0;;17300:68;;;;-1:-1:-1;;;;;17300:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17379:21:0;;;;;;;:11;:21;;;;;;;;:30;;;;;;;;;;;;;:38;;;17433:34;;;;;;;;;;;;;;;;;17130:345;;;:::o;17721:469::-;-1:-1:-1;;;;;17819:20:0;;17811:70;;;;-1:-1:-1;;;;;17811:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17900:23:0;;17892:71;;;;-1:-1:-1;;;;;17892:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17994;18016:6;17994:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17994:17:0;;;;;;:9;:17;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;17974:17:0;;;;;;;:9;:17;;;;;;:91;;;;18099:20;;;;;;;:32;;18124:6;18099:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;18076:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;18147:35;;;;;;;18076:20;;18147:35;;;;;;;;;;;;;17721:469;;;:::o;3646:136::-;3704:7;3731:43;3735:1;3738;3731:43;;;;;;;;;;;;;;;;;:3;:43::i

Swarm Source

bzzr://e89b01004bc315350f003204c48aec71d2bfef0998c836fd1c9f78a343296ab0

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.