ETH Price: $3,671.65 (+18.74%)
Gas: 13 Gwei

Token

CBDAO (BREE)
 

Overview

Max Total Supply

1,521,137.922289903849046649 BREE

Holders

2,284 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Uniswap Protocol: UNI token
Balance
100 BREE

Value
$0.00
0x1f9840a85d5af5bf1d1762f925bdaddc4201f984
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

CBDAO serves as a sandbox for blockchain developers, researchers, and Defi users to experiment and proof-test various decentralized consensus protocols on DAOs.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: BREE.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.6.0;

// ----------------------------------------------------------------------------
// 'BREE' token contract

// Symbol      : BREE 
// Name        : CBDAO 
// Total supply: 10 million
// Decimals    : 18
// ----------------------------------------------------------------------------

import './SafeMath.sol';
import './ERC20contract.sol';
import './Owned.sol';

// ----------------------------------------------------------------------------
// ERC20 Token, with the addition of symbol, name and decimals and assisted
// token transfers
// ----------------------------------------------------------------------------
contract Token is ERC20Interface, Owned {
    using SafeMath for uint256;
    string public symbol = "BREE";
    string public  name = "CBDAO";
    uint256 public decimals = 18;
    uint256 private maxCapSupply = 1e7 * 10**(decimals); // 10 million
    uint256 _totalSupply = 1530409 * 10 ** (decimals); // 1,530,409
    address stakeFarmingContract;
    
    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint256)) allowed;
    
    // ------------------------------------------------------------------------
    // Constructor
    // ------------------------------------------------------------------------
    constructor() public {
        // mint _totalSupply amount of tokens and send to owner
        balances[owner] = balances[owner].add(_totalSupply);
        emit Transfer(address(0),owner, _totalSupply);
    }
    
    // ------------------------------------------------------------------------
    // Set the STAKE_FARMING_CONTRACT
    // @required only owner
    // ------------------------------------------------------------------------
    function SetStakeFarmingContract(address _address) external onlyOwner{
        require(_address != address(0), "Invalid address");
        stakeFarmingContract = _address;
    }
    
    // ------------------------------------------------------------------------
    // Token Minting function
    // @params _amount expects the amount of tokens to be minted excluding the 
    // required decimals
    // @params _beneficiary tokens will be sent to _beneficiary
    // @required only owner OR stakeFarmingContract
    // ------------------------------------------------------------------------
    function MintTokens(uint256 _amount, address _beneficiary) public returns(bool){
        require(msg.sender == stakeFarmingContract);
        require(_beneficiary != address(0), "Invalid address");
        require(_totalSupply.add(_amount) <= maxCapSupply, "exceeds max cap supply 10 million");
        _totalSupply = _totalSupply.add(_amount);
        
        // mint _amount tokens and keep inside contract
        balances[_beneficiary] = balances[_beneficiary].add(_amount);
        
        emit Transfer(address(0),_beneficiary, _amount);
        return true;
    }
    
    // ------------------------------------------------------------------------
    // Burn the `_amount` amount of tokens from the calling `account`
    // @params _amount the amount of tokens to burn
    // ------------------------------------------------------------------------
    function BurnTokens(uint256 _amount) external {
        _burn(_amount, msg.sender);
    }

    // ------------------------------------------------------------------------
    // @dev Internal function that burns an amount of the token from a given account
    // @param _amount The amount that will be burnt
    // @param _account The tokens to burn from
    // ------------------------------------------------------------------------
    function _burn(uint256 _amount, address _account) internal {
        require(balances[_account] >= _amount, "insufficient account balance");
        _totalSupply = _totalSupply.sub(_amount);
        balances[_account] = balances[_account].sub(_amount);
        emit Transfer(_account, address(0), _amount);
    }
    
    /** ERC20Interface function's implementation **/
    
    // ------------------------------------------------------------------------
    // Get the total supply of the `token`
    // ------------------------------------------------------------------------
    function totalSupply() public override view returns (uint256){
       return _totalSupply; 
    }
    
    // ------------------------------------------------------------------------
    // Get the token balance for account `tokenOwner`
    // ------------------------------------------------------------------------
    function balanceOf(address tokenOwner) public override view returns (uint256 balance) {
        return balances[tokenOwner];
    }

    // ------------------------------------------------------------------------
    // Transfer the balance from token owner's account to `to` account
    // - Owner's account must have sufficient balance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transfer(address to, uint256 tokens) public override returns  (bool success) {
        // prevent transfer to 0x0, use burn instead
        require(address(to) != address(0));
        require(balances[msg.sender] >= tokens );
        require(balances[to].add(tokens) >= balances[to]);
            
        balances[msg.sender] = balances[msg.sender].sub(tokens);
        balances[to] = balances[to].add(tokens);
        emit Transfer(msg.sender,to,tokens);
        return true;
    }

    /**
     * @dev See `IERC20.approve`.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 value) public override returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    // ------------------------------------------------------------------------
    // Transfer `tokens` from the `from` account to the `to` account
    // 
    // The calling account must already have sufficient tokens approve(...)-d
    // for spending from the `from` account and
    // - From account must have sufficient balance to transfer
    // - Spender must have sufficient allowance to transfer
    // - 0 value transfers are allowed
    // ------------------------------------------------------------------------
    function transferFrom(address from, address to, uint256 tokens) public override returns (bool success){
        require(tokens <= allowed[from][msg.sender]); //check allowance
        require(balances[from] >= tokens);
        require(from != address(0), "Invalid address");
        require(to != address(0), "Invalid address");
        
        balances[from] = balances[from].sub(tokens);
        balances[to] = balances[to].add(tokens);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);
        emit Transfer(from,to,tokens);
        return true;
    }
    
    // ------------------------------------------------------------------------
    // Returns the amount of tokens approved by the owner that can be
    // transferred to the spender's account
    // ------------------------------------------------------------------------
    function allowance(address tokenOwner, address spender) public override view returns (uint256 remaining) {
        return allowed[tokenOwner][spender];
    }
    
    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, allowed[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to `approve` that can be used as a mitigation for
     * problems described in `IERC20.approve`.
     *
     * Emits an `Approval` event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, allowed[msg.sender][spender].sub(subtractedValue));
        return true;
    }
    
    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
     *
     * This is internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an `Approval` event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

File 2 of 4: ERC20contract.sol
// "SPDX-License-Identifier: UNLICENSED "
pragma solidity ^0.6.0;
// ----------------------------------------------------------------------------
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
// ----------------------------------------------------------------------------
abstract contract ERC20Interface {
    function totalSupply() public virtual view returns (uint);
    function balanceOf(address tokenOwner) public virtual view returns (uint256 balance);
    function allowance(address tokenOwner, address spender) public virtual view returns (uint256 remaining);
    function transfer(address to, uint256 tokens) public virtual returns (bool success);
    function approve(address spender, uint256 tokens) public virtual returns (bool success);
    function transferFrom(address from, address to, uint256 tokens) public virtual returns (bool success);

    event Transfer(address indexed from, address indexed to, uint256 tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint256 tokens);
}

File 3 of 4: Owned.sol
// "SPDX-License-Identifier: UNLICENSED "
pragma solidity ^0.6.0;
// ----------------------------------------------------------------------------
// Owned contract
// ----------------------------------------------------------------------------
contract Owned {
    address payable public owner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

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

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    function transferOwnership(address payable _newOwner) public onlyOwner {
        owner = _newOwner;
        emit OwnershipTransferred(msg.sender, _newOwner);
    }
}

File 4 of 4: SafeMath.sol
// "SPDX-License-Identifier: UNLICENSED "
pragma solidity ^0.6.0;
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 *
*/
 
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
  
  function ceil(uint a, uint m) internal pure returns (uint r) {
    return (a + m - 1) / m * m;
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BurnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"MintTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"SetStakeFarmingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405260046080819052634252454560e01b60a0908152610025916001919061013e565b5060408051808201909152600580825264434244414f60d81b60209092019182526100529160029161013e565b5060126003556a084595161401484a0000006004556a014413a35c759af704000060055534801561008257600080fd5b50600080546001600160a01b03191633178082556005546001600160a01b03919091168252600760209081526040909220546100c892909190610a72610128821b17901c565b600080546001600160a01b039081168252600760209081526040808420949094558254600554855190815294519216937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a36101d1565b60008282018381101561013757fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061017f57805160ff19168380011785556101ac565b828001600101855582156101ac579182015b828111156101ac578251825591602001919060010190610191565b506101b89291506101bc565b5090565b5b808211156101b857600081556001016101bd565b610d2880620001e16000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636f2e33b511610097578063a457c2d711610066578063a457c2d714610309578063a9059cbb14610335578063dd62ed3e14610361578063f2fde38b1461038f57610100565b80636f2e33b51461029157806370a08231146102b75780638da5cb5b146102dd57806395d89b411461030157610100565b80632cd3fd70116100d35780632cd3fd7014610212578063313ce5671461023157806339509351146102395780636a9c5acd1461026557610100565b806306fdde0314610105578063095ea7b31461018257806318160ddd146101c257806323b872dd146101dc575b600080fd5b61010d6103b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b038135169060200135610440565b604080519115158252519081900360200190f35b6101ca610456565b60408051918252519081900360200190f35b6101ae600480360360608110156101f257600080fd5b506001600160a01b0381358116916020810135909116906040013561045c565b61022f6004803603602081101561022857600080fd5b5035610634565b005b6101ca610641565b6101ae6004803603604081101561024f57600080fd5b506001600160a01b038135169060200135610647565b6101ae6004803603604081101561027b57600080fd5b50803590602001356001600160a01b0316610682565b61022f600480360360208110156102a757600080fd5b50356001600160a01b03166107b4565b6101ca600480360360208110156102cd57600080fd5b50356001600160a01b031661083a565b6102e5610855565b604080516001600160a01b039092168252519081900360200190f35b61010d610864565b6101ae6004803603604081101561031f57600080fd5b506001600160a01b0381351690602001356108be565b6101ae6004803603604081101561034b57600080fd5b506001600160a01b0381351690602001356108f4565b6101ca6004803603604081101561037757600080fd5b506001600160a01b03813581169160200135166109e5565b61022f600480360360208110156103a557600080fd5b50356001600160a01b0316610a10565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104385780601f1061040d57610100808354040283529160200191610438565b820191906000526020600020905b81548152906001019060200180831161041b57829003601f168201915b505050505081565b600061044d338484610a88565b50600192915050565b60055490565b6001600160a01b038316600090815260086020908152604080832033845290915281205482111561048c57600080fd5b6001600160a01b0384166000908152600760205260409020548211156104b157600080fd5b6001600160a01b0384166104fe576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b6001600160a01b03831661054b576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b6001600160a01b03841660009081526007602052604090205461056e9083610b74565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461059d9083610a72565b6001600160a01b0380851660009081526007602090815260408083209490945591871681526008825282812033825290915220546105db9083610b74565b6001600160a01b0380861660008181526008602090815260408083203384528252918290209490945580518681529051928716939192600080516020610caf833981519152929181900390910190a35060019392505050565b61063e8133610b86565b50565b60035481565b3360008181526008602090815260408083206001600160a01b0387168452909152812054909161044d91859061067d9086610a72565b610a88565b6006546000906001600160a01b0316331461069c57600080fd5b6001600160a01b0382166106e9576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b6004546005546106f99085610a72565b11156107365760405162461bcd60e51b8152600401808060200182810382526021815260200180610c8e6021913960400191505060405180910390fd5b6005546107439084610a72565b6005556001600160a01b0382166000908152600760205260409020546107699084610a72565b6001600160a01b0383166000818152600760209081526040808320949094558351878152935192939192600080516020610caf8339815191529281900390910190a350600192915050565b6000546001600160a01b031633146107cb57600080fd5b6001600160a01b038116610818576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526007602052604090205490565b6000546001600160a01b031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104385780601f1061040d57610100808354040283529160200191610438565b3360008181526008602090815260408083206001600160a01b0387168452909152812054909161044d91859061067d9086610b74565b60006001600160a01b03831661090957600080fd5b3360009081526007602052604090205482111561092557600080fd5b6001600160a01b0383166000908152600760205260409020546109488184610a72565b101561095357600080fd5b3360009081526007602052604090205461096d9083610b74565b33600090815260076020526040808220929092556001600160a01b038516815220546109999083610a72565b6001600160a01b038416600081815260076020908152604091829020939093558051858152905191923392600080516020610caf8339815191529281900390910190a350600192915050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610a2757600080fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600082820183811015610a8157fe5b9392505050565b6001600160a01b038316610acd5760405162461bcd60e51b8152600401808060200182810382526024815260200180610ccf6024913960400191505060405180910390fd5b6001600160a01b038216610b125760405162461bcd60e51b8152600401808060200182810382526022815260200180610c6c6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600082821115610b8057fe5b50900390565b6001600160a01b038116600090815260076020526040902054821115610bf3576040805162461bcd60e51b815260206004820152601c60248201527f696e73756666696369656e74206163636f756e742062616c616e636500000000604482015290519081900360640190fd5b600554610c009083610b74565b6005556001600160a01b038116600090815260076020526040902054610c269083610b74565b6001600160a01b038216600081815260076020908152604080832094909455835186815293519193600080516020610caf833981519152929081900390910190a3505056fe45524332303a20617070726f766520746f20746865207a65726f206164647265737365786365656473206d61782063617020737570706c79203130206d696c6c696f6eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122048fef6e581f8c0f4d6f38c82cf99ee06cefd120f0d8eb50bb3389359bf9a250164736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636f2e33b511610097578063a457c2d711610066578063a457c2d714610309578063a9059cbb14610335578063dd62ed3e14610361578063f2fde38b1461038f57610100565b80636f2e33b51461029157806370a08231146102b75780638da5cb5b146102dd57806395d89b411461030157610100565b80632cd3fd70116100d35780632cd3fd7014610212578063313ce5671461023157806339509351146102395780636a9c5acd1461026557610100565b806306fdde0314610105578063095ea7b31461018257806318160ddd146101c257806323b872dd146101dc575b600080fd5b61010d6103b5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014757818101518382015260200161012f565b50505050905090810190601f1680156101745780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ae6004803603604081101561019857600080fd5b506001600160a01b038135169060200135610440565b604080519115158252519081900360200190f35b6101ca610456565b60408051918252519081900360200190f35b6101ae600480360360608110156101f257600080fd5b506001600160a01b0381358116916020810135909116906040013561045c565b61022f6004803603602081101561022857600080fd5b5035610634565b005b6101ca610641565b6101ae6004803603604081101561024f57600080fd5b506001600160a01b038135169060200135610647565b6101ae6004803603604081101561027b57600080fd5b50803590602001356001600160a01b0316610682565b61022f600480360360208110156102a757600080fd5b50356001600160a01b03166107b4565b6101ca600480360360208110156102cd57600080fd5b50356001600160a01b031661083a565b6102e5610855565b604080516001600160a01b039092168252519081900360200190f35b61010d610864565b6101ae6004803603604081101561031f57600080fd5b506001600160a01b0381351690602001356108be565b6101ae6004803603604081101561034b57600080fd5b506001600160a01b0381351690602001356108f4565b6101ca6004803603604081101561037757600080fd5b506001600160a01b03813581169160200135166109e5565b61022f600480360360208110156103a557600080fd5b50356001600160a01b0316610a10565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156104385780601f1061040d57610100808354040283529160200191610438565b820191906000526020600020905b81548152906001019060200180831161041b57829003601f168201915b505050505081565b600061044d338484610a88565b50600192915050565b60055490565b6001600160a01b038316600090815260086020908152604080832033845290915281205482111561048c57600080fd5b6001600160a01b0384166000908152600760205260409020548211156104b157600080fd5b6001600160a01b0384166104fe576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b6001600160a01b03831661054b576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b6001600160a01b03841660009081526007602052604090205461056e9083610b74565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461059d9083610a72565b6001600160a01b0380851660009081526007602090815260408083209490945591871681526008825282812033825290915220546105db9083610b74565b6001600160a01b0380861660008181526008602090815260408083203384528252918290209490945580518681529051928716939192600080516020610caf833981519152929181900390910190a35060019392505050565b61063e8133610b86565b50565b60035481565b3360008181526008602090815260408083206001600160a01b0387168452909152812054909161044d91859061067d9086610a72565b610a88565b6006546000906001600160a01b0316331461069c57600080fd5b6001600160a01b0382166106e9576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b6004546005546106f99085610a72565b11156107365760405162461bcd60e51b8152600401808060200182810382526021815260200180610c8e6021913960400191505060405180910390fd5b6005546107439084610a72565b6005556001600160a01b0382166000908152600760205260409020546107699084610a72565b6001600160a01b0383166000818152600760209081526040808320949094558351878152935192939192600080516020610caf8339815191529281900390910190a350600192915050565b6000546001600160a01b031633146107cb57600080fd5b6001600160a01b038116610818576040805162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b604482015290519081900360640190fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b031660009081526007602052604090205490565b6000546001600160a01b031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104385780601f1061040d57610100808354040283529160200191610438565b3360008181526008602090815260408083206001600160a01b0387168452909152812054909161044d91859061067d9086610b74565b60006001600160a01b03831661090957600080fd5b3360009081526007602052604090205482111561092557600080fd5b6001600160a01b0383166000908152600760205260409020546109488184610a72565b101561095357600080fd5b3360009081526007602052604090205461096d9083610b74565b33600090815260076020526040808220929092556001600160a01b038516815220546109999083610a72565b6001600160a01b038416600081815260076020908152604091829020939093558051858152905191923392600080516020610caf8339815191529281900390910190a350600192915050565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b6000546001600160a01b03163314610a2757600080fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600082820183811015610a8157fe5b9392505050565b6001600160a01b038316610acd5760405162461bcd60e51b8152600401808060200182810382526024815260200180610ccf6024913960400191505060405180910390fd5b6001600160a01b038216610b125760405162461bcd60e51b8152600401808060200182810382526022815260200180610c6c6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260086020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600082821115610b8057fe5b50900390565b6001600160a01b038116600090815260076020526040902054821115610bf3576040805162461bcd60e51b815260206004820152601c60248201527f696e73756666696369656e74206163636f756e742062616c616e636500000000604482015290519081900360640190fd5b600554610c009083610b74565b6005556001600160a01b038116600090815260076020526040902054610c269083610b74565b6001600160a01b038216600081815260076020908152604080832094909455835186815293519193600080516020610caf833981519152929081900390910190a3505056fe45524332303a20617070726f766520746f20746865207a65726f206164647265737365786365656473206d61782063617020737570706c79203130206d696c6c696f6eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a264697066735822122048fef6e581f8c0f4d6f38c82cf99ee06cefd120f0d8eb50bb3389359bf9a250164736f6c634300060c0033

Deployed Bytecode Sourcemap

699:8955:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5807:157;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5807:157:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4349:99;;;:::i;:::-;;;;;;;;;;;;;;;;6506:591;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6506:591:0;;;;;;;;;;;;;;;;;:::i;3306:91::-;;;;;;;;;;;;;;;;-1:-1:-1;3306:91:0;;:::i;:::-;;851:28;;;:::i;7959:202::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7959:202:0;;;;;;;;:::i;2425:583::-;;;;;;;;;;;;;;;;-1:-1:-1;2425:583:0;;;;;;-1:-1:-1;;;;;2425:583:0;;:::i;1815:180::-;;;;;;;;;;;;;;;;-1:-1:-1;1815:180:0;-1:-1:-1;;;;;1815:180:0;;:::i;4677:132::-;;;;;;;;;;;;;;;;-1:-1:-1;4677:132:0;-1:-1:-1;;;;;4677:132:0;;:::i;271:28:2:-;;;:::i;:::-;;;;-1:-1:-1;;;;;271:28:2;;;;;;;;;;;;;;779:29:0;;;:::i;8664:212::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8664:212:0;;;;;;;;:::i;5158:502::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5158:502:0;;;;;;;;:::i;7387:159::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7387:159:0;;;;;;;;;;:::i;539:166:2:-;;;;;;;;;;;;;;;;-1:-1:-1;539:166:2;-1:-1:-1;;;;;539:166:2;;:::i;815:29:0:-;;;;;;;;;;;;;;-1:-1:-1;;815:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5807:157::-;5881:4;5898:36;5907:10;5919:7;5928:5;5898:8;:36::i;:::-;-1:-1:-1;5952:4:0;5807:157;;;;:::o;4349:99::-;4427:12;;4349:99;:::o;6506:591::-;-1:-1:-1;;;;;6637:13:0;;6595:12;6637:13;;;:7;:13;;;;;;;;6651:10;6637:25;;;;;;;;6627:35;;;6619:44;;;;;;-1:-1:-1;;;;;6700:14:0;;;;;;:8;:14;;;;;;:24;-1:-1:-1;6700:24:0;6692:33;;;;;;-1:-1:-1;;;;;6744:18:0;;6736:46;;;;;-1:-1:-1;;;6736:46:0;;;;;;;;;;;;-1:-1:-1;;;6736:46:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6801:16:0;;6793:44;;;;;-1:-1:-1;;;6793:44:0;;;;;;;;;;;;-1:-1:-1;;;6793:44:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6875:14:0;;;;;;:8;:14;;;;;;:26;;6894:6;6875:18;:26::i;:::-;-1:-1:-1;;;;;6858:14:0;;;;;;;:8;:14;;;;;;:43;;;;6927:12;;;;;;;:24;;6944:6;6927:16;:24::i;:::-;-1:-1:-1;;;;;6912:12:0;;;;;;;:8;:12;;;;;;;;:39;;;;6990:13;;;;;:7;:13;;;;;7004:10;6990:25;;;;;;;:37;;7020:6;6990:29;:37::i;:::-;-1:-1:-1;;;;;6962:13:0;;;;;;;:7;:13;;;;;;;;6976:10;6962:25;;;;;;;;:65;;;;7043:24;;;;;;;;;;;6962:13;;-1:-1:-1;;;;;;;;;;;7043:24:0;;;;;;;;;;-1:-1:-1;7085:4:0;6506:591;;;;;:::o;3306:91::-;3363:26;3369:7;3378:10;3363:5;:26::i;:::-;3306:91;:::o;851:28::-;;;;:::o;7959:202::-;8065:10;8039:4;8086:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8086:28:0;;;;;;;;;;8039:4;;8056:75;;8077:7;;8086:44;;8119:10;8086:32;:44::i;:::-;8056:8;:75::i;2425:583::-;2537:20;;2499:4;;-1:-1:-1;;;;;2537:20:0;2523:10;:34;2515:43;;;;;;-1:-1:-1;;;;;2577:26:0;;2569:54;;;;;-1:-1:-1;;;2569:54:0;;;;;;;;;;;;-1:-1:-1;;;2569:54:0;;;;;;;;;;;;;;;2671:12;;2642;;:25;;2659:7;2642:16;:25::i;:::-;:41;;2634:87;;;;-1:-1:-1;;;2634:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2747:12;;:25;;2764:7;2747:16;:25::i;:::-;2732:12;:40;-1:-1:-1;;;;;2875:22:0;;;;;;:8;:22;;;;;;:35;;2902:7;2875:26;:35::i;:::-;-1:-1:-1;;;;;2850:22:0;;;;;;:8;:22;;;;;;;;:60;;;;2936:42;;;;;;;2850:22;;;;-1:-1:-1;;;;;;;;;;;2936:42:0;;;;;;;;;-1:-1:-1;2996:4:0;2425:583;;;;:::o;1815:180::-;505:5:2;;-1:-1:-1;;;;;505:5:2;491:10;:19;483:28;;;;;;-1:-1:-1;;;;;1903:22:0;::::1;1895:50;;;::::0;;-1:-1:-1;;;1895:50:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;1895:50:0;;;;;;;;;;;;;::::1;;1956:20;:31:::0;;-1:-1:-1;;;;;;1956:31:0::1;-1:-1:-1::0;;;;;1956:31:0;;;::::1;::::0;;;::::1;::::0;;1815:180::o;4677:132::-;-1:-1:-1;;;;;4781:20:0;4746:15;4781:20;;;:8;:20;;;;;;;4677:132::o;271:28:2:-;;;-1:-1:-1;;;;;271:28:2;;:::o;779:29:0:-;;;;;;;;;;;;;;;-1:-1:-1;;779:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8664:212;8775:10;8749:4;8796:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;8796:28:0;;;;;;;;;;8749:4;;8766:80;;8787:7;;8796:49;;8829:15;8796:32;:49::i;5158:502::-;5230:12;-1:-1:-1;;;;;5317:25:0;;5309:34;;;;;;5371:10;5362:20;;;;:8;:20;;;;;;:30;-1:-1:-1;5362:30:0;5354:40;;;;;;-1:-1:-1;;;;;5441:12:0;;;;;;:8;:12;;;;;;5413:24;5441:12;5430:6;5413:16;:24::i;:::-;:40;;5405:49;;;;;;5511:10;5502:20;;;;:8;:20;;;;;;:32;;5527:6;5502:24;:32::i;:::-;5488:10;5479:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;5560:12:0;;;;;;:24;;5577:6;5560:16;:24::i;:::-;-1:-1:-1;;;;;5545:12:0;;;;;;:8;:12;;;;;;;;;:39;;;;5600:30;;;;;;;5545:12;;5609:10;;-1:-1:-1;;;;;;;;;;;5600:30:0;;;;;;;;;-1:-1:-1;5648:4:0;5158:502;;;;:::o;7387:159::-;-1:-1:-1;;;;;7510:19:0;;;7473:17;7510:19;;;:7;:19;;;;;;;;:28;;;;;;;;;;;;;7387:159::o;539:166:2:-;505:5;;-1:-1:-1;;;;;505:5:2;491:10;:19;483:28;;;;;;621:5:::1;:17:::0;;-1:-1:-1;;;;;;621:17:2::1;-1:-1:-1::0;;;;;621:17:2;::::1;::::0;;::::1;::::0;;654:43:::1;::::0;621:17;;675:10:::1;::::0;654:43:::1;::::0;621:5;654:43:::1;539:166:::0;:::o;771:133:3:-;829:7;857:5;;;876:6;;;;869:14;;;;897:1;771:133;-1:-1:-1;;;771:133:3:o;9320:331:0:-;-1:-1:-1;;;;;9413:19:0;;9405:68;;;;-1:-1:-1;;;9405:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9492:21:0;;9484:68;;;;-1:-1:-1;;;9484:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9565:14:0;;;;;;;:7;:14;;;;;;;;:23;;;;;;;;;;;;;:31;;;9612;;;;;;;;;;;;;;;;;9320:331;;;:::o;652:113:3:-;710:7;738:1;733;:6;;726:14;;;;-1:-1:-1;754:5:3;;;652:113::o;3754:317:0:-;-1:-1:-1;;;;;3832:18:0;;;;;;:8;:18;;;;;;:29;-1:-1:-1;3832:29:0;3824:70;;;;;-1:-1:-1;;;3824:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3920:12;;:25;;3937:7;3920:16;:25::i;:::-;3905:12;:40;-1:-1:-1;;;;;3977:18:0;;;;;;:8;:18;;;;;;:31;;4000:7;3977:22;:31::i;:::-;-1:-1:-1;;;;;3956:18:0;;;;;;:8;:18;;;;;;;;:52;;;;4024:39;;;;;;;3956:18;;-1:-1:-1;;;;;;;;;;;4024:39:0;;;;;;;;;;3754:317;;:::o

Swarm Source

ipfs://48fef6e581f8c0f4d6f38c82cf99ee06cefd120f0d8eb50bb3389359bf9a2501
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.