ETH Price: $2,525.31 (+2.37%)

Token

RESEARCH OF RYOSHI (RORY)
 

Overview

Max Total Supply

123,456,789.123456789 RORY

Holders

105

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
0 RORY

Value
$0.00
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
rory

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 7 : rory.sol
/// https://bafybeibj6oqi2aoxnywexa3atposyfedk6q5ohyt4qk4cr7mik3felrywq.ipfs.dweb.link/

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

import "../lib/Ownable.sol";
import "./ERC741.sol";
import "../lib/Ownable.sol";
import "./Base64.sol";

contract HasBitmap {
    uint constant SET_BITMAP_STEPS_COUNT = 30;
    bytes _bmp;
    uint[SET_BITMAP_STEPS_COUNT] _hashes = [
        7879843708758950257111111598476424469451599770755164651884173193331289363045,
        55265117461893497942097097363443975539104875809719009280353591222448793351927,
        67332897451042456646777289281810655597749706525706300928494247470485573039376,
        109533563924468498073470670733689923720418165144309415951038217612941699399449,
        115723781124297338819718807258143843160880934926748757785585741703867224941206,
        108126599165598476791197169610303215894379797619646976287698958740333085149471,
        110056987424282905251864697842350312416063001972528538321022437030961662877073,
        84731579313067672813330654578987459473610425933149398317991830912627175532944,
        74993290981634324636032154631819858954736960660704468104787356980966933448912,
        112060441824018689852050804489858347321546125159253186451420082535744904595388,
        24258569409644562615535608770343630996134369547099291096569772138636187987960,
        98386910005178113426357770130730830660874315795908505715478043618320139146345,
        34783818076652573550326158650324518929177799126741215520202040450945803015743,
        75403410448515502281354840055047304726096680968711957103645725587094610187117,
        69509958920619438771744493828741013691362167490048588821166082655694662051911,
        104203363961789204198664495955975049326060017250649114644075912323114267433348,
        3363090700930912565445891443589437130045178777974595108917364713416723554394,
        42679066996337799743204848445764008864401322775639698301432896172095843794412,
        40118311408187134379119001437095735355027690237460414202282654841988605558824,
        79187088051537897124297026376613607941667636719712402754842732830384871594816,
        31049398816341560818352335136564391747938309542257183008573572196448204504410,
        63380241877699942862192136763378341011304874389046387994097500208642096502402,
        7659652937971185987341090628398208287653421075322071241596703018338564889108,
        6583959208745555858114458333299634554313211086252385936166450693270692911354,
        55024706999768984578891304720616237376784394367229212461020363355762309582033,
        15441366432293338463105613891486788780590817301971542659612589100830369344667,
        110732124396237085543463227789862762091367687021257866410037474989407631434311,
        80955862004262642747407769462548400929188391898563821808808329081857519065210,
        52700083511373315208906964118279809547402774787747384451531233512653817803690,
        88135709279108506515378077358661179961902107623334206969799067054215059662379
    ];
    uint public setBitmapStep;

    function setBitmap(string calldata input) external {
        uint messageHash = uint(keccak256(bytes(input)));
        //console.log(messageHash, ",");
        require(_hashes[setBitmapStep++] == messageHash, "bad transaction");
        bytes memory b = bytes(input);
        //console.log('b: ', uint8(b[0]), uint8(b[1]));
        for (uint i = 0; i < b.length; ++i) {
            _bmp.push(b[i]);
        }
    }

    function getbmp() external view returns (string memory) {
        return string(_bmp);
    }

    function bitmapSetStepsCount() external pure returns (uint) {
        return SET_BITMAP_STEPS_COUNT;
    }
}

contract rory is ERC741, Ownable, HasBitmap {
    uint256 constant _startTotalSupply =
        123456789123456789 * (10 ** (_decimals - 9));
    uint256 constant _startMaxBuyCount = (_startTotalSupply * 5) / 10000;
    uint256 constant _addMaxBuyPercentPerSec = 1; // 100%=_addMaxBuyPrecesion add 0.005%/second
    uint256 constant _addMaxBuyPrecesion = 10000;
    uint256 constant _taxPrecesion = 1000;
    uint256 constant _transferZeroTaxSeconds = 1000; // zero tax transfer time
    address _deployer;
    address immutable _withdrawer;
    address internal _pair;
    bool internal _feeLocked;
    uint256 internal _startTime;

    constructor() ERC741("RESEARCH OF RYOSHI", "RORY") {
        _deployer = msg.sender;
        _withdrawer = msg.sender;
        _mint(msg.sender, _startTotalSupply);
    }

    modifier maxBuyLimit(uint256 amount) {
        require(amount <= maxBuy(), "max buy");
        _;
    }
    modifier lockFee() {
        _feeLocked = true;
        _;
        _feeLocked = false;
    }

    function start(address pair) external payable {
        _pair = pair;
        _startTime = block.timestamp;
    }

    function isStarted() public view returns (bool) {
        return _pair != address(0);
    }

    receive() external payable {
        bool sent;
        (sent, ) = payable(_withdrawer).call{value: msg.value}("");
        require(sent, "sent eth error: withdrawer ether is not sent");
    }

    function maxBuy() public view returns (uint256) {
        if (!isStarted()) return _startTotalSupply;
        uint256 count = _startMaxBuyCount +
            (_startTotalSupply *
                (block.timestamp - _startTime) *
                _addMaxBuyPercentPerSec) /
            _addMaxBuyPrecesion;
        if (count > _startTotalSupply) count = _startTotalSupply;
        return count;
    }

    function transferTax() public view returns (uint256) {
        if (!isStarted()) return 0;
        uint256 deltaTime = block.timestamp - _startTime;
        if (deltaTime >= _transferZeroTaxSeconds) return 0;
        return
            (_taxPrecesion * (_transferZeroTaxSeconds - deltaTime)) /
            _transferZeroTaxSeconds;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        // allow burning
        if (to == address(0)) {
            _burn(from, amount);
            return;
        }

        // system transfers
        if (
            from == address(0) ||
            from == address(this) ||
            from == _deployer ||
            to == _deployer
        ) {
            super._transfer(from, to, amount);
            return;
        }

        // transfers with fee
        if (_feeLocked) {
            super._transfer(from, to, amount);
            return;
        } else {
            if (from == _pair) {
                buy(to, amount);
                return;
            } else if (to == _pair) {
                sell(from, amount);
                return;
            } else super._transfer(from, to, amount);
        }
    }

    function buy(
        address to,
        uint256 amount
    ) private maxBuyLimit(amount) lockFee {
        super._transfer(_pair, to, amount);
    }

    function sell(address from, uint256 amount) private lockFee {
        super._transfer(from, _pair, amount);
    }
}

File 2 of 7 : IERC20Metadata.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)

pragma solidity ^0.8.20;

import {IERC20} from "../IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 */
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);
}

File 3 of 7 : IERC20.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)

pragma solidity ^0.8.20;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the value of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the value of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves a `value` amount of tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 value) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets a `value` amount of tokens as the allowance of `spender` over the
     * caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 value) external returns (bool);

    /**
     * @dev Moves a `value` amount of tokens from `from` to `to` using the
     * allowance mechanism. `value` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address from, address to, uint256 value) external returns (bool);
}

File 4 of 7 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

File 5 of 7 : Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

contract Ownable {
    address _owner;

    event RenounceOwnership();

    constructor() {
        _owner = msg.sender;
    }

    modifier onlyOwner() {
        require(_owner == msg.sender, "only owner");
        _;
    }

    function owner() external view virtual returns (address) {
        return _owner;
    }

    function ownerRenounce() public onlyOwner {
        _owner = address(0);
        emit RenounceOwnership();
    }

    function transferOwnership(address newOwner) external onlyOwner {
        _owner = newOwner;
    }
}

File 6 of 7 : Base64.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

library Base64 {

    bytes constant private base64stdchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    bytes constant private base64urlchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=";
                                            
    function encode(string memory _str) internal pure returns (string memory) {
        uint i = 0;                                 // Counters & runners
        uint j = 0;

        uint padlen = bytes(_str).length;           // Lenght of the input string "padded" to next multiple of 3
        if (padlen%3 != 0) padlen+=(3-(padlen%3));

        bytes memory _bs = bytes(_str);
        bytes memory _ms = new bytes(padlen);       // extra "padded" bytes in _ms are zero by default
        // copy the string
        for (i=0; i<_bs.length; i++) {              // _ms = input string + zero padding
            _ms[i] = _bs[i];
        }
 
        uint res_length = (padlen/3) * 4;           // compute the length of the resulting string = 4/3 of input
        bytes memory res = new bytes(res_length);   // create the result string

        for (i=0; i < padlen; i+=3) {
            uint c0 = uint(uint8(_ms[i])) >> 2;
            uint c1 = (uint(uint8(_ms[i])) & 3) << 4 |  uint(uint8(_ms[i+1])) >> 4;
            uint c2 = (uint(uint8(_ms[i+1])) & 15) << 2 | uint(uint8(_ms[i+2])) >> 6;
            uint c3 = (uint(uint8(_ms[i+2])) & 63);

            res[j]   = base64urlchars[c0];
            res[j+1] = base64urlchars[c1];
            res[j+2] = base64urlchars[c2];
            res[j+3] = base64urlchars[c3];

            j += 4;
        }

        // Adjust trailing empty values
        if ((padlen - bytes(_str).length) >= 1) { res[j-1] = base64urlchars[64];}
        if ((padlen - bytes(_str).length) >= 2) { res[j-2] = base64urlchars[64];}
        return string(res);
    }


    function decode(string memory _str) internal pure returns (string memory) {
        require( (bytes(_str).length % 4) == 0, "Length not multiple of 4");
        bytes memory _bs = bytes(_str);

        uint i = 0;
        uint j = 0;
        uint dec_length = (_bs.length/4) * 3;
        bytes memory dec = new bytes(dec_length);

        for (; i< _bs.length; i+=4 ) {
            (dec[j], dec[j+1], dec[j+2]) = dencode4(
                bytes1(_bs[i]),
                bytes1(_bs[i+1]),
                bytes1(_bs[i+2]),
                bytes1(_bs[i+3])
            );
            j += 3;
        }
        while (dec[--j]==0)
            {}

        bytes memory res = new bytes(j+1);
        for (i=0; i<=j;i++)
            res[i] = dec[i];

        return string(res);
    }


    function dencode4 (bytes1 b0, bytes1 b1, bytes1 b2, bytes1 b3) private pure returns (bytes1 a0, bytes1 a1, bytes1 a2)
    {
        uint pos0 = charpos(b0);
        uint pos1 = charpos(b1);
        uint pos2 = charpos(b2)%64;
        uint pos3 = charpos(b3)%64;

        a0 = bytes1(uint8(( pos0 << 2 | pos1 >> 4 )));
        a1 = bytes1(uint8(( (pos1&15)<<4 | pos2 >> 2)));
        a2 = bytes1(uint8(( (pos2&3)<<6 | pos3 )));
    }

    function charpos(bytes1 char) private pure returns (uint pos) {
        for (; base64urlchars[pos] != char; pos++) 
            {}    //for loop body is not necessary
        require (base64urlchars[pos]==char, "Illegal char in string");
        return pos;
    }

}

File 7 of 7 : ERC741.sol
pragma solidity ^0.8.23;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
import "@openzeppelin/contracts/utils/Context.sol";

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

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

    uint256 internal _totalSupply;
    uint8 internal constant _decimals = 9;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * 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 default value returned by this function, unless
     * it's 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 pure returns (uint8) {
        return _decimals;
    }

    /**
     * @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:
     *
     * - `to` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _transfer(owner, to, 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}.
     *
     * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
     * `transferFrom`. This is semantically equivalent to an infinite approval.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(
        address spender,
        uint256 amount
    ) public virtual override returns (bool) {
        address owner = _msgSender();
        _approve(owner, 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}.
     *
     * NOTE: Does not update the allowance if the current allowance
     * is the maximum `uint256`.
     *
     * Requirements:
     *
     * - `from` and `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     * - the caller must have allowance for ``from``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, 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) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, 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) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `from` to `to`.
     *
     * This 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:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `from` must have a balance of at least `amount`.
     */
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");

        uint256 fromBalance = _balances[from];
        require(
            fromBalance >= amount,
            "ERC20: transfer amount exceeds balance"
        );
        unchecked {
            _balances[from] = fromBalance - amount;
            // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
            // decrementing then incrementing.
            _balances[to] += amount;
        }

        emit Transfer(from, to, 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:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        unchecked {
            // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Erases `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");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _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 Updates `owner` s allowance for `spender` based on spent `amount`.
     *
     * Does not update the allowance amount in case of infinite allowance.
     * Revert if not enough allowance is available.
     *
     * Might emit an {Approval} event.
     */
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"RenounceOwnership","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":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bitmapSetStepsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"getbmp","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"isStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerRenounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"input","type":"string"}],"name":"setBitmap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setBitmapStep","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"start","outputs":[],"stateMutability":"payable","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":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6104606040527f116bd55f82850ed287fc164d94b7f4fad93b77063496543b2012057bcf28126560a09081527f7a2ef2b014c85410508c050468d4cb0fec337569fea778027e18cdb11c7476f760c0527f94dd11c5b0abc15aca07663779e86dd1746241e7362bdf9c27a92cc633f1751060e0527ff229ccda274d59c8ce112473b7f03d483299eda94482782b4af6f29c2cbd3f19610100527fffd956c7453e92fae1ed4af9ddff74a021bba75ae1d3e90d61d7d7786f9de296610120527fef0d7c82c78e25cfaf5c3061ece3b381e08b6ee7244a89388b7b1acdd569491f610140527ff3520c22cd833637f6055cd27e898b8cbae9a5752835d3b16a3e6c4c7cfb5d91610160527fbb545fd774741f0d13fc3244fcdc9623938413132ff16b3422b667f40c6b2990610180527fa5ccb2d1b19609ed00741432061deadb97ca4063a13e597e4e8f414fab10c8d06101a0527ff7bff6609fbe85440eaf07655e2b5c3c4a444c9ccd9ba62c5e7ef800723f87bc6101c0527f35a1dd1c9c7f09045f0fc997ec380327dcf62ca2ac6ace5e4ac6d27eab9aeff86101e0527fd985048562242e0f6116181923215e236ce25eb3406ed49432aaece51c2fd469610200527f4ce6f17f8b09efded6394e45e46123fe109b3c0b09fb1eb66a3a1b894852d63f610220527fa6b4d1622f36116d37bf10e053a61ee4520c6e556049dffd93d8cdacca2d136d610240527f99ad3e179fb8f83f2f415c2db4b6101e69b49b50f8bf3c945b740a39e4f6a847610260527fe66103914b3c0c78aecaad8df25e824f320eddaeaa5ac62eb4f816d65915d984610280527f076f711f21d30477e7c2233c6f815b81b5c15ed92ba97d44aee94db43854605a6102a0527f5e5b7ef2158bf78bf501e59af2bf1e9756510f4af2c7ad28cf5acb52f342fdec6102c0527f58b228da4deddb210571303a55b14693022d85a6a278c13396cd06163f4040286102e0527faf124db48ed30c223cf02af99896ff71989948eb1b4d4058530a3c86470a5b40610300527f44a55642a5af7640a4b544127d50cef644d908003b35b0622f4b001873cc3d5a610320527f8c1ff2160c578ff96d2242e33fd0c561e79813c7c9baaafa928fc73c42e21682610340527f10ef35bde583730a0a1bddbfdebcc9e8e736922c5a144f387842d3e2c52eda14610360527f0e8e638bedf666cc61e7bb1cf06616c907d611a6a747dc36c63099ebd32758fa610380527f79a6e1686ee3c9a9a0d0c37eb38f369da6acb576a2f08fc68249f5f9997dccd16103a0527f222380f174f1539aea530c7fe1dfc5bfae54cff75a855065dd444443d9fd6c9b6103c0527ff4d02950e45edf87673fa20d97e40421f71b5234263236b6d4d233b409a5e2476103e0527fb2fb64e4cddb896a2af87e2471cd068145c7b09aaa015feccd6c9005bd13187a610400527f748330b30571ba5e202aaa11131b9549720994e6bf5f45a728fb70ea1daa73aa610420527fc2db0b2d885d86d04054e9bf02c66cfc6c6b97c3365abb3221472bf1280ee62b610440526200046a90600790601e6200060f565b503480156200047857600080fd5b50604051806040016040528060128152602001715245534541524348204f462052594f53484960701b81525060405180604001604052806004815260200163524f525960e01b8152508160039081620004d2919062000710565b506004620004e1828262000710565b505060058054336001600160a01b03199182168117909255602680549091168217905560808190526200054391506200051c600980620007f2565b6200052990600a62000911565b6200053d906701b69b4bacd05f1562000929565b62000549565b62000959565b6001600160a01b038216620005a45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620005b8919062000943565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b82601e810192821562000640579160200282015b828111156200064057825182559160200191906001019062000623565b506200064e92915062000652565b5090565b5b808211156200064e576000815560010162000653565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200069457607f821691505b602082108103620006b557634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200070b576000816000526020600020601f850160051c81016020861015620006e65750805b601f850160051c820191505b818110156200070757828155600101620006f2565b5050505b505050565b81516001600160401b038111156200072c576200072c62000669565b62000744816200073d84546200067f565b84620006bb565b602080601f8311600181146200077c5760008415620007635750858301515b600019600386901b1c1916600185901b17855562000707565b600085815260208120601f198616915b82811015620007ad578886015182559484019460019091019084016200078c565b5085821015620007cc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b60ff82811682821603908111156200080e576200080e620007dc565b92915050565b600181815b8085111562000855578160001904821115620008395762000839620007dc565b808516156200084757918102915b93841c939080029062000819565b509250929050565b6000826200086e575060016200080e565b816200087d575060006200080e565b8160018114620008965760028114620008a157620008c1565b60019150506200080e565b60ff841115620008b557620008b5620007dc565b50506001821b6200080e565b5060208310610133831016604e8410600b8410161715620008e6575081810a6200080e565b620008f2838362000814565b8060001904821115620009095762000909620007dc565b029392505050565b60006200092260ff8416836200085d565b9392505050565b80820281158282048414176200080e576200080e620007dc565b808201808211156200080e576200080e620007dc565b60805161142962000975600039600061014201526114296000f3fe6080604052600436106101395760003560e01c806370db69d6116100ab5780639cd8177f1161006f5780639cd8177f1461040f578063a457c2d71461042f578063a9059cbb1461044f578063dd0b281e1461046f578063dd62ed3e146104a3578063f2fde38b146104c357600080fd5b806370db69d6146103945780637f1210d2146103a95780638124f7ac146103bd5780638da5cb5b146103d257806395d89b41146103fa57600080fd5b8063313ce567116100fd578063313ce567146102d8578063333a0072146102f45780633950935114610309578063544736e614610329578063683b3d6b1461034957806370a082311461035e57600080fd5b806306fdde0314610224578063095ea7b31461024f5780630db13d291461027f57806318160ddd146102a357806323b872dd146102b857600080fd5b3661021f5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163460405160006040518083038185875af1925050503d80600081146101ab576040519150601f19603f3d011682016040523d82523d6000602084013e6101b0565b606091505b5050809150508061021d5760405162461bcd60e51b815260206004820152602c60248201527f73656e7420657468206572726f723a207769746864726177657220657468657260448201526b081a5cc81b9bdd081cd95b9d60a21b60648201526084015b60405180910390fd5b005b600080fd5b34801561023057600080fd5b506102396104e3565b6040516102469190611066565b60405180910390f35b34801561025b57600080fd5b5061026f61026a3660046110cc565b610575565b6040519015158152602001610246565b34801561028b57600080fd5b5061029560255481565b604051908152602001610246565b3480156102af57600080fd5b50600254610295565b3480156102c457600080fd5b5061026f6102d33660046110f6565b61058f565b3480156102e457600080fd5b5060405160098152602001610246565b34801561030057600080fd5b5061021d6105b3565b34801561031557600080fd5b5061026f6103243660046110cc565b610635565b34801561033557600080fd5b506027546001600160a01b0316151561026f565b34801561035557600080fd5b50610239610657565b34801561036a57600080fd5b50610295610379366004611132565b6001600160a01b031660009081526020819052604090205490565b3480156103a057600080fd5b50610295610666565b3480156103b557600080fd5b50601e610295565b3480156103c957600080fd5b506102956107b3565b3480156103de57600080fd5b506005546040516001600160a01b039091168152602001610246565b34801561040657600080fd5b5061023961081f565b34801561041b57600080fd5b5061021d61042a366004611154565b61082e565b34801561043b57600080fd5b5061026f61044a3660046110cc565b6109a2565b34801561045b57600080fd5b5061026f61046a3660046110cc565b610a1d565b61021d61047d366004611132565b602780546001600160a01b0319166001600160a01b039290921691909117905542602855565b3480156104af57600080fd5b506102956104be3660046111c6565b610a2b565b3480156104cf57600080fd5b5061021d6104de366004611132565b610a56565b6060600380546104f2906111f9565b80601f016020809104026020016040519081016040528092919081815260200182805461051e906111f9565b801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b5050505050905090565b600033610583818585610abf565b60019150505b92915050565b60003361059d858285610be4565b6105a8858585610c5e565b506001949350505050565b6005546001600160a01b031633146105fa5760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b6044820152606401610214565b600580546001600160a01b03191690556040517f6e4ee811a17215345b89e3506064ff2d62f4feedff3566e9d09219cda7e8cadb90600090a1565b6000336105838185856106488383610a2b565b6106529190611249565b610abf565b6060600680546104f2906111f9565b600061067c6027546001600160a01b0316151590565b6106ad5761068b60098061125c565b61069690600a611359565b6106a8906701b69b4bacd05f15611368565b905090565b60006127106001602854426106c2919061137f565b6106cd60098061125c565b6106d890600a611359565b6106ea906701b69b4bacd05f15611368565b6106f49190611368565b6106fe9190611368565b6107089190611392565b61271061071660098061125c565b61072190600a611359565b610733906701b69b4bacd05f15611368565b61073e906005611368565b6107489190611392565b6107529190611249565b905061075f60098061125c565b61076a90600a611359565b61077c906701b69b4bacd05f15611368565b8111156107ae5761078e60098061125c565b61079990600a611359565b6107ab906701b69b4bacd05f15611368565b90505b919050565b60006107c96027546001600160a01b0316151590565b6107d35750600090565b6000602854426107e3919061137f565b90506103e881106107f657600091505090565b6103e8610803828261137f565b61080f906103e8611368565b6108199190611392565b91505090565b6060600480546104f2906111f9565b600082826040516108409291906113b4565b6040519081900390206025805491925082916007916000610860836113c4565b91905055601e8110610874576108746113dd565b0154146108b55760405162461bcd60e51b815260206004820152600f60248201526e3130b2103a3930b739b0b1ba34b7b760891b6044820152606401610214565b600083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509394505050505b815181101561099b57600682828151811061090d5761090d6113dd565b602001015160f81c60f81b9080805480610926906111f9565b80601f81036109455783600052602060002060ff1984168155603f9350505b5060029190910190915581546001161561096e5790600052602060002090602091828204019190065b909190919091601f036101000a81548160ff02191690600160f81b840402179055508060010190506108f0565b5050505050565b600033816109b08286610a2b565b905083811015610a105760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610214565b6105a88286868403610abf565b600033610583818585610c5e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b03163314610a9d5760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b6044820152606401610214565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610214565b6001600160a01b038216610b825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610214565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610bf08484610a2b565b90506000198114610c585781811015610c4b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610214565b610c588484848403610abf565b50505050565b6001600160a01b038216610c7b57610c768382610d41565b505050565b6001600160a01b0383161580610c9957506001600160a01b03831630145b80610cb157506026546001600160a01b038481169116145b80610cc957506026546001600160a01b038381169116145b15610cd957610c76838383610e6b565b602754600160a01b900460ff1615610cf657610c76838383610e6b565b6027546001600160a01b0390811690841603610d1657610c768282610fae565b6027546001600160a01b0390811690831603610d3657610c76838261102b565b610c76838383610e6b565b6001600160a01b038216610da15760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610214565b6001600160a01b03821660009081526020819052604090205481811015610e155760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610214565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610bd7565b6001600160a01b038316610ecf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610214565b6001600160a01b03831660009081526020819052604090205481811015610f475760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610214565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b80610fb7610666565b811115610ff05760405162461bcd60e51b81526020600482015260076024820152666d61782062757960c81b6044820152606401610214565b6027805460ff60a01b198116600160a01b17909155611019906001600160a01b03168484610e6b565b50506027805460ff60a01b1916905550565b6027805460ff60a01b198116600160a01b179091556110559083906001600160a01b031683610e6b565b50506027805460ff60a01b19169055565b60006020808352835180602085015260005b8181101561109457858101830151858201604001528201611078565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107ae57600080fd5b600080604083850312156110df57600080fd5b6110e8836110b5565b946020939093013593505050565b60008060006060848603121561110b57600080fd5b611114846110b5565b9250611122602085016110b5565b9150604084013590509250925092565b60006020828403121561114457600080fd5b61114d826110b5565b9392505050565b6000806020838503121561116757600080fd5b823567ffffffffffffffff8082111561117f57600080fd5b818501915085601f83011261119357600080fd5b8135818111156111a257600080fd5b8660208285010111156111b457600080fd5b60209290920196919550909350505050565b600080604083850312156111d957600080fd5b6111e2836110b5565b91506111f0602084016110b5565b90509250929050565b600181811c9082168061120d57607f821691505b60208210810361122d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561058957610589611233565b60ff828116828216039081111561058957610589611233565b600181815b808511156112b057816000190482111561129657611296611233565b808516156112a357918102915b93841c939080029061127a565b509250929050565b6000826112c757506001610589565b816112d457506000610589565b81600181146112ea57600281146112f457611310565b6001915050610589565b60ff84111561130557611305611233565b50506001821b610589565b5060208310610133831016604e8410600b8410161715611333575081810a610589565b61133d8383611275565b806000190482111561135157611351611233565b029392505050565b600061114d60ff8416836112b8565b808202811582820484141761058957610589611233565b8181038181111561058957610589611233565b6000826113af57634e487b7160e01b600052601260045260246000fd5b500490565b8183823760009101908152919050565b6000600182016113d6576113d6611233565b5060010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212208a2ad8bb0e92c02dc179bc143d3af84905041790b4cacb5b6051b6d0f5fa115a64736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370db69d6116100ab5780639cd8177f1161006f5780639cd8177f1461040f578063a457c2d71461042f578063a9059cbb1461044f578063dd0b281e1461046f578063dd62ed3e146104a3578063f2fde38b146104c357600080fd5b806370db69d6146103945780637f1210d2146103a95780638124f7ac146103bd5780638da5cb5b146103d257806395d89b41146103fa57600080fd5b8063313ce567116100fd578063313ce567146102d8578063333a0072146102f45780633950935114610309578063544736e614610329578063683b3d6b1461034957806370a082311461035e57600080fd5b806306fdde0314610224578063095ea7b31461024f5780630db13d291461027f57806318160ddd146102a357806323b872dd146102b857600080fd5b3661021f5760007f0000000000000000000000003fa6a47e5ccaf19d9128213e2deaffb4f2ee43e06001600160a01b03163460405160006040518083038185875af1925050503d80600081146101ab576040519150601f19603f3d011682016040523d82523d6000602084013e6101b0565b606091505b5050809150508061021d5760405162461bcd60e51b815260206004820152602c60248201527f73656e7420657468206572726f723a207769746864726177657220657468657260448201526b081a5cc81b9bdd081cd95b9d60a21b60648201526084015b60405180910390fd5b005b600080fd5b34801561023057600080fd5b506102396104e3565b6040516102469190611066565b60405180910390f35b34801561025b57600080fd5b5061026f61026a3660046110cc565b610575565b6040519015158152602001610246565b34801561028b57600080fd5b5061029560255481565b604051908152602001610246565b3480156102af57600080fd5b50600254610295565b3480156102c457600080fd5b5061026f6102d33660046110f6565b61058f565b3480156102e457600080fd5b5060405160098152602001610246565b34801561030057600080fd5b5061021d6105b3565b34801561031557600080fd5b5061026f6103243660046110cc565b610635565b34801561033557600080fd5b506027546001600160a01b0316151561026f565b34801561035557600080fd5b50610239610657565b34801561036a57600080fd5b50610295610379366004611132565b6001600160a01b031660009081526020819052604090205490565b3480156103a057600080fd5b50610295610666565b3480156103b557600080fd5b50601e610295565b3480156103c957600080fd5b506102956107b3565b3480156103de57600080fd5b506005546040516001600160a01b039091168152602001610246565b34801561040657600080fd5b5061023961081f565b34801561041b57600080fd5b5061021d61042a366004611154565b61082e565b34801561043b57600080fd5b5061026f61044a3660046110cc565b6109a2565b34801561045b57600080fd5b5061026f61046a3660046110cc565b610a1d565b61021d61047d366004611132565b602780546001600160a01b0319166001600160a01b039290921691909117905542602855565b3480156104af57600080fd5b506102956104be3660046111c6565b610a2b565b3480156104cf57600080fd5b5061021d6104de366004611132565b610a56565b6060600380546104f2906111f9565b80601f016020809104026020016040519081016040528092919081815260200182805461051e906111f9565b801561056b5780601f106105405761010080835404028352916020019161056b565b820191906000526020600020905b81548152906001019060200180831161054e57829003601f168201915b5050505050905090565b600033610583818585610abf565b60019150505b92915050565b60003361059d858285610be4565b6105a8858585610c5e565b506001949350505050565b6005546001600160a01b031633146105fa5760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b6044820152606401610214565b600580546001600160a01b03191690556040517f6e4ee811a17215345b89e3506064ff2d62f4feedff3566e9d09219cda7e8cadb90600090a1565b6000336105838185856106488383610a2b565b6106529190611249565b610abf565b6060600680546104f2906111f9565b600061067c6027546001600160a01b0316151590565b6106ad5761068b60098061125c565b61069690600a611359565b6106a8906701b69b4bacd05f15611368565b905090565b60006127106001602854426106c2919061137f565b6106cd60098061125c565b6106d890600a611359565b6106ea906701b69b4bacd05f15611368565b6106f49190611368565b6106fe9190611368565b6107089190611392565b61271061071660098061125c565b61072190600a611359565b610733906701b69b4bacd05f15611368565b61073e906005611368565b6107489190611392565b6107529190611249565b905061075f60098061125c565b61076a90600a611359565b61077c906701b69b4bacd05f15611368565b8111156107ae5761078e60098061125c565b61079990600a611359565b6107ab906701b69b4bacd05f15611368565b90505b919050565b60006107c96027546001600160a01b0316151590565b6107d35750600090565b6000602854426107e3919061137f565b90506103e881106107f657600091505090565b6103e8610803828261137f565b61080f906103e8611368565b6108199190611392565b91505090565b6060600480546104f2906111f9565b600082826040516108409291906113b4565b6040519081900390206025805491925082916007916000610860836113c4565b91905055601e8110610874576108746113dd565b0154146108b55760405162461bcd60e51b815260206004820152600f60248201526e3130b2103a3930b739b0b1ba34b7b760891b6044820152606401610214565b600083838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509394505050505b815181101561099b57600682828151811061090d5761090d6113dd565b602001015160f81c60f81b9080805480610926906111f9565b80601f81036109455783600052602060002060ff1984168155603f9350505b5060029190910190915581546001161561096e5790600052602060002090602091828204019190065b909190919091601f036101000a81548160ff02191690600160f81b840402179055508060010190506108f0565b5050505050565b600033816109b08286610a2b565b905083811015610a105760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610214565b6105a88286868403610abf565b600033610583818585610c5e565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546001600160a01b03163314610a9d5760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b6044820152606401610214565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610b215760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610214565b6001600160a01b038216610b825760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610214565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610bf08484610a2b565b90506000198114610c585781811015610c4b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610214565b610c588484848403610abf565b50505050565b6001600160a01b038216610c7b57610c768382610d41565b505050565b6001600160a01b0383161580610c9957506001600160a01b03831630145b80610cb157506026546001600160a01b038481169116145b80610cc957506026546001600160a01b038381169116145b15610cd957610c76838383610e6b565b602754600160a01b900460ff1615610cf657610c76838383610e6b565b6027546001600160a01b0390811690841603610d1657610c768282610fae565b6027546001600160a01b0390811690831603610d3657610c76838261102b565b610c76838383610e6b565b6001600160a01b038216610da15760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610214565b6001600160a01b03821660009081526020819052604090205481811015610e155760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610214565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610bd7565b6001600160a01b038316610ecf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610214565b6001600160a01b03831660009081526020819052604090205481811015610f475760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610214565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b80610fb7610666565b811115610ff05760405162461bcd60e51b81526020600482015260076024820152666d61782062757960c81b6044820152606401610214565b6027805460ff60a01b198116600160a01b17909155611019906001600160a01b03168484610e6b565b50506027805460ff60a01b1916905550565b6027805460ff60a01b198116600160a01b179091556110559083906001600160a01b031683610e6b565b50506027805460ff60a01b19169055565b60006020808352835180602085015260005b8181101561109457858101830151858201604001528201611078565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107ae57600080fd5b600080604083850312156110df57600080fd5b6110e8836110b5565b946020939093013593505050565b60008060006060848603121561110b57600080fd5b611114846110b5565b9250611122602085016110b5565b9150604084013590509250925092565b60006020828403121561114457600080fd5b61114d826110b5565b9392505050565b6000806020838503121561116757600080fd5b823567ffffffffffffffff8082111561117f57600080fd5b818501915085601f83011261119357600080fd5b8135818111156111a257600080fd5b8660208285010111156111b457600080fd5b60209290920196919550909350505050565b600080604083850312156111d957600080fd5b6111e2836110b5565b91506111f0602084016110b5565b90509250929050565b600181811c9082168061120d57607f821691505b60208210810361122d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561058957610589611233565b60ff828116828216039081111561058957610589611233565b600181815b808511156112b057816000190482111561129657611296611233565b808516156112a357918102915b93841c939080029061127a565b509250929050565b6000826112c757506001610589565b816112d457506000610589565b81600181146112ea57600281146112f457611310565b6001915050610589565b60ff84111561130557611305611233565b50506001821b610589565b5060208310610133831016604e8410600b8410161715611333575081810a610589565b61133d8383611275565b806000190482111561135157611351611233565b029392505050565b600061114d60ff8416836112b8565b808202811582820484141761058957610589611233565b8181038181111561058957610589611233565b6000826113af57634e487b7160e01b600052601260045260246000fd5b500490565b8183823760009101908152919050565b6000600182016113d6576113d6611233565b5060010190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212208a2ad8bb0e92c02dc179bc143d3af84905041790b4cacb5b6051b6d0f5fa115a64736f6c63430008170033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.