Contract Address Details

0xC2Fd09f43685D8DecAa0F08D7470F38d444852BE

Token
BondedToken (BT)
Creator
0x5fe5a7–765b03 at 0x50a57b–6b8e59
Balance
0 EWT ( )
Tokens
Fetching tokens...
Transactions
19 Transactions
Transfers
24 Transfers
Gas Used
1,705,391
Last Balance Update
37852573
Contract name:
bondprot1




Optimization enabled
true
Compiler version
v0.8.6+commit.11564f7e




Optimization runs
200
EVM Version
default




Verified at
2022-01-15T17:16:39.878065Z

Constructor Arguments

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000b426f6e646564546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024254000000000000000000000000000000000000000000000000000000000000

Arg [0] (string) : BondedToken
Arg [1] (string) : BT

              

Contract source code

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }


    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @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 virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + 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 virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This 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 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

contract Ownable is Context {
    address private _owner;
 

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}


contract bondprot1 is ERC20, Ownable {
    using Address for address;
    
    address public  treasurey = address(this);
    address public  ewd = 0x16e13C4cCcC031a0D7BAa34bcB39Aaf65b3C1891;

    address public  cc1 = 0x62250F0B6a9923a19412469ad09F37A2aA367eda;
    address public  cc2 = 0x0000000000000000000000000000000000000000;
    address public  cc3 = 0x0000000000000000000000000000000000000000;
    address public  cc4 = 0x0000000000000000000000000000000000000000;
    address public  cc5 = 0x0000000000000000000000000000000000000000;

    uint256 public ewd1price = 1000;
    uint256 public ewd2price = 0;
    uint256 public ewd3price = 0;
    uint256 public ewd4price = 0;
    uint256 public ewd5price = 0;
    
    constructor(
        string memory _name,
        string memory _symbol
    ) ERC20(_name, _symbol) {

    }

  //
  //  Carbon credit #1
  //

  function bondcc1(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    uint256 ewdcost = amount * ewd1price;
    IERC20(ewd).transferFrom(msg.sender, treasurey, ewdcost);
    IERC20(cc1).transferFrom(msg.sender, treasurey, amount);
    _mint(msg.sender, amount);
  }

  function unbondcc1(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    _burn(msg.sender, amount);
    IERC20(cc1).approve(treasurey, amount);
    IERC20(cc1).transferFrom(treasurey, msg.sender, amount);
  }

  //
  //  Carbon credit #2
  //

  function bondcc2(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    uint256 ewdcost = amount * ewd1price;
    IERC20(ewd).transferFrom(msg.sender, treasurey, ewdcost);
    IERC20(cc2).transferFrom(msg.sender, treasurey, amount);
    _mint(msg.sender, amount);
  }

  function unbondcc2(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    _burn(msg.sender, amount);
    IERC20(cc2).approve(treasurey, amount);
    IERC20(cc2).transferFrom(treasurey, msg.sender, amount);
  }

  //
  //  Carbon credit #3
  //

  function bondcc3(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    uint256 ewdcost = amount * ewd1price;
    IERC20(ewd).transferFrom(msg.sender, treasurey, ewdcost);
    IERC20(cc3).transferFrom(msg.sender, treasurey, amount);
    _mint(msg.sender, amount);
  }

  function unbondcc3(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    _burn(msg.sender, amount);
    IERC20(cc3).approve(treasurey, amount);
    IERC20(cc3).transferFrom(treasurey, msg.sender, amount);
  }

  //
  //  Carbon credit #4
  //

  function bondcc4(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    uint256 ewdcost = amount * ewd1price;
    IERC20(ewd).transferFrom(msg.sender, treasurey, ewdcost);
    IERC20(cc4).transferFrom(msg.sender, treasurey, amount);
    _mint(msg.sender, amount);
  }

  function unbondcc4(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    _burn(msg.sender, amount);
    IERC20(cc4).approve(treasurey, amount);
    IERC20(cc4).transferFrom(treasurey, msg.sender, amount);
  }

  //
  //  Carbon credit #5
  //

  function bondcc5(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    uint256 ewdcost = amount * ewd1price;
    IERC20(ewd).transferFrom(msg.sender, treasurey, ewdcost);
    IERC20(cc5).transferFrom(msg.sender, treasurey, amount);
    _mint(msg.sender, amount);
  }

  function unbondcc5(uint256 _amount) public {
    uint256 amount = _amount * 10**18;
    _burn(msg.sender, amount);
    IERC20(cc5).approve(treasurey, amount);
    IERC20(cc5).transferFrom(treasurey, msg.sender, amount);
  }

  //
  //  Set the carbon credit contract addresses
  //

  function setcc1(address _setcc1) public onlyOwner() {
    cc1 = _setcc1;
  }
  function setcc2(address _setcc2) public onlyOwner() {
    cc2 = _setcc2;
  }
  function setcc3(address _setcc3) public onlyOwner() {
    cc3 = _setcc3;
  }
  function setcc4(address _setcc4) public onlyOwner() {
    cc4 = _setcc4;
  }
  function setcc5(address _setcc5) public onlyOwner() {
    cc5 = _setcc5;
  }

  //
  //  Set the EWD fee for bond
  //

  function setEwd1Price(uint256 _setEwd1Price) public onlyOwner() {
    ewd1price = _setEwd1Price;
  }
  function setEwd2Price(uint256 _setEwd2Price) public onlyOwner() {
    ewd2price = _setEwd2Price;
  }
  function setEwd3Price(uint256 _setEwd3Price) public onlyOwner() {
    ewd3price = _setEwd3Price;
  }
  function setEwd4Price(uint256 _setEwd4Price) public onlyOwner() {
    ewd4price = _setEwd4Price;
  }
  function setEwd5Price(uint256 _setEwd5Price) public onlyOwner() {
    ewd5price = _setEwd5Price;
  }
    
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"string","name":"_name","internalType":"string"},{"type":"string","name":"_symbol","internalType":"string"}]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"owner","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"bondcc1","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"bondcc2","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"bondcc3","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"bondcc4","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"bondcc5","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"cc1","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"cc2","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"cc3","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"cc4","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"cc5","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"decreaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"subtractedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"ewd","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"ewd1price","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"ewd2price","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"ewd3price","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"ewd4price","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"ewd5price","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"addedValue","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setEwd1Price","inputs":[{"type":"uint256","name":"_setEwd1Price","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setEwd2Price","inputs":[{"type":"uint256","name":"_setEwd2Price","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setEwd3Price","inputs":[{"type":"uint256","name":"_setEwd3Price","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setEwd4Price","inputs":[{"type":"uint256","name":"_setEwd4Price","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setEwd5Price","inputs":[{"type":"uint256","name":"_setEwd5Price","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setcc1","inputs":[{"type":"address","name":"_setcc1","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setcc2","inputs":[{"type":"address","name":"_setcc2","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setcc3","inputs":[{"type":"address","name":"_setcc3","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setcc4","inputs":[{"type":"address","name":"_setcc4","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setcc5","inputs":[{"type":"address","name":"_setcc5","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"treasurey","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unbondcc1","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unbondcc2","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unbondcc3","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unbondcc4","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unbondcc5","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]}]
            

Deployed ByteCode

0x608060405234801561001057600080fd5b506004361061028a5760003560e01c806386dc07d41161015c578063b794b434116100ce578063cd585fbf11610087578063cd585fbf1461058d578063dd62ed3e14610596578063e61b9a4a146105cf578063ef590dbf146105e2578063f190d239146105f5578063f2fde38b1461060857600080fd5b8063b794b4341461051b578063bc5cf2c61461052e578063c51aca9b14610541578063c51d0c0114610554578063cc50a76814610567578063cc5fd6cb1461057a57600080fd5b806396c6aede1161012057806396c6aede146104a95780639f9bf4e2146104bc578063a02cdcbe146104cf578063a457c2d7146104e2578063a88e1f0f146104f5578063a9059cbb1461050857600080fd5b806386dc07d41461043f5780638c3ca0fa1461046a5780638cf5df591461047d5780638da5cb5b1461049057806395d89b41146104a157600080fd5b806347bf8f561161020057806370a08231116101b957806370a08231146103d6578063715018a6146103ff57806376f7c6b7146104075780637c80f4fc1461041a5780637f85105d1461042d578063867600271461043657600080fd5b806347bf8f561461036e57806351cd2e00146103815780635b112b78146103945780635f52ed54146103a7578063695c43b8146103b05780636a14311c146103c357600080fd5b80632c0e3b8c116102525780632c0e3b8c1461030a578063313ce5671461031357806337a9f7411461032257806339509351146103355780633d3a7c2d1461034857806341f85f941461035b57600080fd5b806306fdde031461028f578063095ea7b3146102ad57806318160ddd146102d05780631955d72f146102e257806323b872dd146102f7575b600080fd5b61029761061b565b6040516102a49190611c4c565b60405180910390f35b6102c06102bb366004611bc3565b6106ad565b60405190151581526020016102a4565b6002545b6040519081526020016102a4565b6102f56102f0366004611c0f565b6106c3565b005b6102c0610305366004611b87565b6106fb565b6102d460105481565b604051601281526020016102a4565b6102f5610330366004611c0f565b6107ac565b6102c0610343366004611bc3565b6107db565b6102f5610356366004611b32565b610812565b6102f5610369366004611c0f565b61085e565b6102f561037c366004611c0f565b610996565b6102f561038f366004611c0f565b6109c5565b6102f56103a2366004611c0f565b610aa6565b6102d4600e5481565b6102f56103be366004611c0f565b610bf0565b6102f56103d1366004611b32565b610cdd565b6102d46103e4366004611b32565b6001600160a01b031660009081526020819052604090205490565b6102f5610d29565b6102f5610415366004611b32565b610d9d565b6102f5610428366004611c0f565b610de9565b6102d4600f5481565b6102d4600d5481565b600654610452906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b6102f5610478366004611b32565b610ed6565b600a54610452906001600160a01b031681565b6005546001600160a01b0316610452565b610297610f22565b6102f56104b7366004611b32565b610f31565b6102f56104ca366004611c0f565b610f7d565b600754610452906001600160a01b031681565b6102c06104f0366004611bc3565b610fac565b6102f5610503366004611c0f565b611047565b6102c0610516366004611bc3565b611128565b600c54610452906001600160a01b031681565b6102f561053c366004611c0f565b611135565b600b54610452906001600160a01b031681565b6102f5610562366004611c0f565b611222565b6102f5610575366004611c0f565b611251565b600954610452906001600160a01b031681565b6102d460115481565b6102d46105a4366004611b54565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600854610452906001600160a01b031681565b6102f56105f0366004611c0f565b61133e565b6102f5610603366004611c0f565b61141f565b6102f5610616366004611b32565b611500565b60606003805461062a90611d24565b80601f016020809104026020016040519081016040528092919081815260200182805461065690611d24565b80156106a35780601f10610678576101008083540402835291602001916106a3565b820191906000526020600020905b81548152906001019060200180831161068657829003601f168201915b5050505050905090565b60006106ba3384846115eb565b50600192915050565b6005546001600160a01b031633146106f65760405162461bcd60e51b81526004016106ed90611ca1565b60405180910390fd5b601055565b6000610708848484611710565b6001600160a01b03841660009081526001602090815260408083203384529091529020548281101561078d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016106ed565b6107a1853361079c8685611d0d565b6115eb565b506001949350505050565b6005546001600160a01b031633146107d65760405162461bcd60e51b81526004016106ed90611ca1565b600d55565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106ba91859061079c908690611cd6565b6005546001600160a01b0316331461083c5760405162461bcd60e51b81526004016106ed90611ca1565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b600061087282670de0b6b3a7640000611cee565b905061087e33826118e8565b600c5460065460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401602060405180830381600087803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109069190611bed565b50600c546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd9261093f9291169033908690600401611c28565b602060405180830381600087803b15801561095957600080fd5b505af115801561096d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109919190611bed565b505050565b6005546001600160a01b031633146109c05760405162461bcd60e51b81526004016106ed90611ca1565b601155565b60006109d982670de0b6b3a7640000611cee565b90506109e533826118e8565b60085460065460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401602060405180830381600087803b158015610a3557600080fd5b505af1158015610a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6d9190611bed565b506008546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd9261093f9291169033908690600401611c28565b6000610aba82670de0b6b3a7640000611cee565b90506000600d5482610acc9190611cee565b6007546006546040516323b872dd60e01b81529293506001600160a01b03918216926323b872dd92610b079233929116908690600401611c28565b602060405180830381600087803b158015610b2157600080fd5b505af1158015610b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b599190611bed565b506009546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd92610b93923392909116908790600401611c28565b602060405180830381600087803b158015610bad57600080fd5b505af1158015610bc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be59190611bed565b506109913383611a37565b6000610c0482670de0b6b3a7640000611cee565b90506000600d5482610c169190611cee565b6007546006546040516323b872dd60e01b81529293506001600160a01b03918216926323b872dd92610c519233929116908690600401611c28565b602060405180830381600087803b158015610c6b57600080fd5b505af1158015610c7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca39190611bed565b50600b546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd92610b93923392909116908790600401611c28565b6005546001600160a01b03163314610d075760405162461bcd60e51b81526004016106ed90611ca1565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d535760405162461bcd60e51b81526004016106ed90611ca1565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610dc75760405162461bcd60e51b81526004016106ed90611ca1565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000610dfd82670de0b6b3a7640000611cee565b90506000600d5482610e0f9190611cee565b6007546006546040516323b872dd60e01b81529293506001600160a01b03918216926323b872dd92610e4a9233929116908690600401611c28565b602060405180830381600087803b158015610e6457600080fd5b505af1158015610e78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9c9190611bed565b50600c546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd92610b93923392909116908790600401611c28565b6005546001600160a01b03163314610f005760405162461bcd60e51b81526004016106ed90611ca1565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461062a90611d24565b6005546001600160a01b03163314610f5b5760405162461bcd60e51b81526004016106ed90611ca1565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610fa75760405162461bcd60e51b81526004016106ed90611ca1565b600f55565b3360009081526001602090815260408083206001600160a01b03861684529091528120548281101561102e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106ed565b61103d338561079c8685611d0d565b5060019392505050565b600061105b82670de0b6b3a7640000611cee565b905061106733826118e8565b600a5460065460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401602060405180830381600087803b1580156110b757600080fd5b505af11580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef9190611bed565b50600a546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd9261093f9291169033908690600401611c28565b60006106ba338484611710565b600061114982670de0b6b3a7640000611cee565b90506000600d548261115b9190611cee565b6007546006546040516323b872dd60e01b81529293506001600160a01b03918216926323b872dd926111969233929116908690600401611c28565b602060405180830381600087803b1580156111b057600080fd5b505af11580156111c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e89190611bed565b50600a546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd92610b93923392909116908790600401611c28565b6005546001600160a01b0316331461124c5760405162461bcd60e51b81526004016106ed90611ca1565b600e55565b600061126582670de0b6b3a7640000611cee565b90506000600d54826112779190611cee565b6007546006546040516323b872dd60e01b81529293506001600160a01b03918216926323b872dd926112b29233929116908690600401611c28565b602060405180830381600087803b1580156112cc57600080fd5b505af11580156112e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113049190611bed565b506008546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd92610b93923392909116908790600401611c28565b600061135282670de0b6b3a7640000611cee565b905061135e33826118e8565b600b5460065460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401602060405180830381600087803b1580156113ae57600080fd5b505af11580156113c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e69190611bed565b50600b546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd9261093f9291169033908690600401611c28565b600061143382670de0b6b3a7640000611cee565b905061143f33826118e8565b60095460065460405163095ea7b360e01b81526001600160a01b0391821660048201526024810184905291169063095ea7b390604401602060405180830381600087803b15801561148f57600080fd5b505af11580156114a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c79190611bed565b506009546006546040516323b872dd60e01b81526001600160a01b03928316926323b872dd9261093f9291169033908690600401611c28565b6005546001600160a01b0316331461152a5760405162461bcd60e51b81526004016106ed90611ca1565b6001600160a01b03811661158f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106ed565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661164d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106ed565b6001600160a01b0382166116ae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106ed565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166117745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106ed565b6001600160a01b0382166117d65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106ed565b6001600160a01b0383166000908152602081905260409020548181101561184e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106ed565b6118588282611d0d565b6001600160a01b03808616600090815260208190526040808220939093559085168152908120805484929061188e908490611cd6565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118da91815260200190565b60405180910390a350505050565b6001600160a01b0382166119485760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016106ed565b6001600160a01b038216600090815260208190526040902054818110156119bc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016106ed565b6119c68282611d0d565b6001600160a01b038416600090815260208190526040812091909155600280548492906119f4908490611d0d565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001611703565b6001600160a01b038216611a8d5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016106ed565b8060026000828254611a9f9190611cd6565b90915550506001600160a01b03821660009081526020819052604081208054839290611acc908490611cd6565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80356001600160a01b0381168114611b2d57600080fd5b919050565b600060208284031215611b4457600080fd5b611b4d82611b16565b9392505050565b60008060408385031215611b6757600080fd5b611b7083611b16565b9150611b7e60208401611b16565b90509250929050565b600080600060608486031215611b9c57600080fd5b611ba584611b16565b9250611bb360208501611b16565b9150604084013590509250925092565b60008060408385031215611bd657600080fd5b611bdf83611b16565b946020939093013593505050565b600060208284031215611bff57600080fd5b81518015158114611b4d57600080fd5b600060208284031215611c2157600080fd5b5035919050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b600060208083528351808285015260005b81811015611c7957858101830151858201604001528201611c5d565b81811115611c8b576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611ce957611ce9611d5f565b500190565b6000816000190483118215151615611d0857611d08611d5f565b500290565b600082821015611d1f57611d1f611d5f565b500390565b600181811c90821680611d3857607f821691505b60208210811415611d5957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220652251a9a479476329b993e23485469d10c3a15a4691f9dc1c749792eeb8c68f64736f6c63430008060033