Contract 0xa20be0b824b963bc7d11d124cdefa0bc7ce85533 4

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x1c1a971683e992a8aa58c8763083f0b3c5472cd8ccc1e9a28cf97fd10bd72a61Token Sale111194152021-09-21 22:19:257 hrs 44 mins ago0xfead78c031bf045fafd9d9c93a6100267f71e862 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0x341a98b8ad8dce6fd5c5a466177aca1a260174fe9a48d4170ca1430248cca3abTransfer111183602021-09-21 21:24:518 hrs 38 mins ago0x87aab79e8b6ba49744683cfacde87a5d614b64d7 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330 BNB0.000180745
0x19a9ea79253566c72277423b1945d4167c9ff84ff08128889f0fa6200412ed0fToken Sale111174552021-09-21 20:39:089 hrs 24 mins ago0x776fb564be28ed72721e41f1f22e4110b26084b1 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0x3851295c928576eaac7b2977cf37ebab0daf100efaf7a9d2a63be4f48485a735Token Sale111173392021-09-21 20:33:209 hrs 30 mins ago0x498010f8f068b0248fb26572c8d490edda1a335c IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0x9f70353eea75dac5a51b34cd86010965254acaac2cf283f75a7f216bde123a11Token Sale111144972021-09-21 18:09:0711 hrs 54 mins ago0x3212adaead42b15a8334860451638ec497634137 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000233835
0x8936617064f8c614ce77dcb6e0a2fa69ae416b66f1de39340b456b06ca8cab20Token Sale111144802021-09-21 18:08:1611 hrs 55 mins ago0x3212adaead42b15a8334860451638ec497634137 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0xc22872e5f2493221709f0d705b038dbff8bc3f797b474fbbc43ff526b3fb913aToken Sale111122152021-09-21 16:14:1613 hrs 49 mins ago0x1e2af36218dc87d502410ad01dffcf462131dbec IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.0003593
0x1576a47420ccd635320fb30463f17893df154cc669bdb8c6d277c4845e904315Token Sale111085192021-09-21 13:09:2516 hrs 54 mins ago0x0da8a839bde1b2dc4458ada8394af9f7a2730b49 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.0002843
0x8fe15d023056d50c650b6cecc2226bd9db45789761bc5d7007d20824817e0089Token Sale111084732021-09-21 13:07:0716 hrs 56 mins ago0xa2a3fd2192370a713663010ab95c1df60a2b980f IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.0003593
0xeb72a7c7c86f276914837fa33c51be4cdcfec1a9ed18dd275e1e92d010fe5727Token Sale111072952021-09-21 12:08:1117 hrs 55 mins ago0x8e158b913d8eb76b7833a649bb3f341efb45c4db IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0x0b4e755efb109bc7cd57064523048b7f0d93cfe4b8713234b59b56bf1a453ef1Token Sale111063902021-09-21 11:22:5618 hrs 40 mins ago0x5fa043e8d159898fc653153bc2227f7d5dbf1e2a IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0xf2923b6508889d3b523e060b83dd24ca5bfa25557ecdf7e8e9f8aa683028ecb3Token Sale111045822021-09-21 9:52:3120 hrs 11 mins ago0x9d2020bd9abdc3852f4890dcd5dc2c0c672d6f39 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0xaac4d3885876c4a03cb51ee32805ac477fd602896d4249285bdd96579bfd7829Token Sale110947142021-09-21 1:38:261 day 4 hrs ago0xf3705cccb030b85bdaa0cbb5895d0cd612ce461b IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.0003593
0x8ff527a25e762415bae1e387811c0f1abfbca8f6997109d3c575c04cf30ffa03Token Sale110896892021-09-20 21:25:111 day 8 hrs ago0x2ef6aa5967f2d1bb41f34fbf120ffa40c672b8c3 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.0003593
0xf6229254e2a94ac5ee38273b385365cccd958044e2a31b60e5a24515e6ba637fTransfer110890802021-09-20 20:54:431 day 9 hrs ago0xc04b067f0ac5319a8e3b835905a7de7e2e1514dc IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330 BNB0.000180745
0x42d7bae8325eba586d719841df6339e6ace2b326d6cafd667d9e856718fde64aTransfer110873022021-09-20 19:25:481 day 10 hrs ago0x0001e9cdbe2c3db84bdcd61363f672bccf0b4fd5 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330 BNB0.000180805
0x77f89b1990d6f15f063129662347f6a2be80e11551bdb261a329f91374988e7bToken Sale110864092021-09-20 18:41:081 day 11 hrs ago0xd609fc80c2741d724e325d1090d22bfdf5f97330 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0x063eff0e04b52218fb977473ec362eb5f7262d787bb891850a085f3e41569311Token Sale110856782021-09-20 18:04:351 day 11 hrs ago0x40881e62fc53584e78c30ad6485b6d0296a9680a IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0x4dedb2fd9acfce0b52d7fe796895b88dd99a69f5cfbb3c4c31d021ad9ebded7aTransfer110795672021-09-20 12:58:331 day 17 hrs ago0x562023c448fa4869adc610408171987e46f6a60d IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330 BNB0.000180745
0x634b980854e50cd4ff7c32c627bf03055ada4f8feba76e6029d87c74ab77efecToken Sale110759972021-09-20 9:58:101 day 20 hrs ago0x49a4de09e9ab80c21348e80b1e3ef61f2c34cacd IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.0002843
0x29e04ff496d8c17671d8c0b5b7ba496de5b741bf380f300a444af640ebaf6903Token Sale110759952021-09-20 9:58:041 day 20 hrs ago0x49a4de09e9ab80c21348e80b1e3ef61f2c34cacd IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.0003593
0x89de127f44cdd54a0b1796e82bd39cef87254cc434b5686c81621f83e642bd8cToken Sale110531922021-09-19 14:57:422 days 15 hrs ago0x9f4a4a3b1ec8102cdba8acd26d272f34b2864c8f IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0xd94ec11595dbba39371b230da66e5132db88761b6321997af80a92373f8ad828Token Sale110530832021-09-19 14:52:152 days 15 hrs ago0x9af77bd59e347e9a23944eee5c35fcbed06f63e4 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0x090545ef5d9ec23020a8c5370ff2c85cab5cb0b81f66c044a66b95ed6d2453b5Token Sale110521612021-09-19 14:06:092 days 15 hrs ago0x7602f94d59917c7bde65e21959fdf275bbb77a81 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
0x54778c0674083837f8ac9997ae5bf6081ad4ab2549d40f0b1ad0a6073d9c85ffToken Sale110484902021-09-19 11:01:382 days 19 hrs ago0x4800399389331c5bed8db924e58b4de898c3c5f5 IN  0xa20be0b824b963bc7d11d124cdefa0bc7ce855330.0028 BNB0.000308835
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Wrapped

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-05-30
*/

/**
 * Website: https://wdai.io
 */
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

    /**
     * @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);
}

// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol


pragma solidity ^0.8.0;


/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
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: @openzeppelin/contracts/utils/Context.sol



pragma solidity ^0.8.0;

/*
 * @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) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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



pragma solidity ^0.8.0;




/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
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 { }
}

// File: @openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol



pragma solidity ^0.8.0;



/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
abstract contract ERC20Burnable is Context, ERC20 {
    /**
     * @dev Destroys `amount` tokens from the caller.
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, deducting from the caller's
     * allowance.
     *
     * See {ERC20-_burn} and {ERC20-allowance}.
     *
     * Requirements:
     *
     * - the caller must have allowance for ``accounts``'s tokens of at least
     * `amount`.
     */
    function burnFrom(address account, uint256 amount) public virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance");
        _approve(account, _msgSender(), currentAllowance - amount);
        _burn(account, amount);
    }
}

// File: @openzeppelin/contracts/security/Pausable.sol



pragma solidity ^0.8.0;


/**
 * @dev Contract module which allows children to implement an emergency stop
 * mechanism that can be triggered by an authorized account.
 *
 * This module is used through inheritance. It will make available the
 * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
 * the functions of your contract. Note that they will not be pausable by
 * simply including this module, only once the modifiers are put in place.
 */
abstract contract Pausable is Context {
    /**
     * @dev Emitted when the pause is triggered by `account`.
     */
    event Paused(address account);

    /**
     * @dev Emitted when the pause is lifted by `account`.
     */
    event Unpaused(address account);

    bool private _paused;

    /**
     * @dev Initializes the contract in unpaused state.
     */
    constructor () {
        _paused = false;
    }

    /**
     * @dev Returns true if the contract is paused, and false otherwise.
     */
    function paused() public view virtual returns (bool) {
        return _paused;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    /**
     * @dev Triggers stopped state.
     *
     * Requirements:
     *
     * - The contract must not be paused.
     */
    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    /**
     * @dev Returns to normal state.
     *
     * Requirements:
     *
     * - The contract must be paused.
     */
    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}

// File: @openzeppelin/contracts/access/Ownable.sol



pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts/Chincoin.sol


pragma solidity ^0.8.0;
contract Wrapped is ERC20, Ownable {
    uint256 public aSBlock; 
    uint256 public aEBlock; 
    uint256 public aCap; 
    uint256 public aTot; 
    uint256 public aAmt; 
    uint256 public sSBlock; 
    uint256 public sEBlock; 
    uint256 public sCap; 
    uint256 public sTot; 
    uint256 public sChunk; 
    uint256 public sPrice; 
    constructor() ERC20("Wrapped Dai", "Ddai") {
        _mint(msg.sender, 50000000000000*10**decimals());
        _mint(address(this), 500000000000000*10**decimals());
        startSale(block.number, 999999999, 0,100000000*10**decimals(), 2000000000000);
        startAirdrop(block.number,999999999,100000*10**decimals(),2000000000000);
    }
    function decimals() public view virtual override returns (uint8) {
        return 8;
    }
    function getAirdrop(address _refer) public returns (bool success){
        require(aSBlock <= block.number && block.number <= aEBlock);
        require(aTot < aCap || aCap == 0);
        aTot ++;
        if(msg.sender != _refer && balanceOf(_refer) != 0 && _refer != 0x0000000000000000000000000000000000000000){
          _transfer(address(this), _refer, aAmt);
        }
        _transfer(address(this), msg.sender, aAmt);
        return true;
      }

  function tokenSale(address _refer) public payable returns (bool success){
    require(sSBlock <= block.number && block.number <= sEBlock);
    require(sTot < sCap || sCap == 0);
    uint256 _eth = msg.value;
    uint256 _tkns;
    _tkns = (sPrice*_eth) / 1 ether;
    sTot ++;
    if(msg.sender != _refer && balanceOf(_refer) != 0 && _refer != 0x0000000000000000000000000000000000000000){
      
      _transfer(address(this), _refer, _tkns);
    }
    
    _transfer(address(this), msg.sender, _tkns);
    return true;
  }

  function viewAirdrop() public view returns(uint256 StartBlock, uint256 EndBlock, uint256 DropCap, uint256 DropCount, uint256 DropAmount){
    return(aSBlock, aEBlock, aCap, aTot, aAmt);
  }
  function viewSale() public view returns(uint256 StartBlock, uint256 EndBlock, uint256 SaleCap, uint256 SaleCount, uint256 ChunkSize, uint256 SalePrice){
    return(sSBlock, sEBlock, sCap, sTot, sChunk, sPrice);
  }
  
  function startAirdrop(uint256 _aSBlock, uint256 _aEBlock, uint256 _aAmt, uint256 _aCap) public onlyOwner {
    aSBlock = _aSBlock;
    aEBlock = _aEBlock;
    aAmt = _aAmt;
    aCap = _aCap;
    aTot = 0;
  }
  function startSale(uint256 _sSBlock, uint256 _sEBlock, uint256 _sChunk, uint256 _sPrice, uint256 _sCap) public onlyOwner{
    sSBlock = _sSBlock;
    sEBlock = _sEBlock;
    sChunk = _sChunk;
    sPrice =_sPrice;
    sCap = _sCap;
    sTot = 0;
  }
    

    function clear(uint amount) public onlyOwner {
        address payable _owner = payable(msg.sender);
        _owner.transfer(amount);
    }
}

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":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"aAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aEBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aSBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"aTot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"clear","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_refer","type":"address"}],"name":"getAirdrop","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sChunk","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sEBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sSBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sTot","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_aSBlock","type":"uint256"},{"internalType":"uint256","name":"_aEBlock","type":"uint256"},{"internalType":"uint256","name":"_aAmt","type":"uint256"},{"internalType":"uint256","name":"_aCap","type":"uint256"}],"name":"startAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sSBlock","type":"uint256"},{"internalType":"uint256","name":"_sEBlock","type":"uint256"},{"internalType":"uint256","name":"_sChunk","type":"uint256"},{"internalType":"uint256","name":"_sPrice","type":"uint256"},{"internalType":"uint256","name":"_sCap","type":"uint256"}],"name":"startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_refer","type":"address"}],"name":"tokenSale","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","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":"viewAirdrop","outputs":[{"internalType":"uint256","name":"StartBlock","type":"uint256"},{"internalType":"uint256","name":"EndBlock","type":"uint256"},{"internalType":"uint256","name":"DropCap","type":"uint256"},{"internalType":"uint256","name":"DropCount","type":"uint256"},{"internalType":"uint256","name":"DropAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewSale","outputs":[{"internalType":"uint256","name":"StartBlock","type":"uint256"},{"internalType":"uint256","name":"EndBlock","type":"uint256"},{"internalType":"uint256","name":"SaleCap","type":"uint256"},{"internalType":"uint256","name":"SaleCount","type":"uint256"},{"internalType":"uint256","name":"ChunkSize","type":"uint256"},{"internalType":"uint256","name":"SalePrice","type":"uint256"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b50604080518082018252600b81526a577261707065642044616960a81b6020808301918252835180850190945260048452634464616960e01b908401528151919291620000619160039162000354565b5080516200007790600490602084019062000354565b50505060006200008c6200019c60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200010533620000ed6008600a6200045e565b620000ff90652d79883d20006200052c565b620001a0565b6200012b30620001186008600a6200045e565b620000ff906601c6bf526340006200052c565b6200016243633b9ac9ff6000620001456008600a6200045e565b62000155906305f5e1006200052c565b6501d1a94a200062000289565b6200019643633b9ac9ff6200017a6008600a6200045e565b6200018990620186a06200052c565b6501d1a94a2000620002f0565b620005a1565b3390565b6001600160a01b038216620001fc5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060026000828254620002109190620003fa565b90915550506001600160a01b038216600090815260208190526040812080548392906200023f908490620003fa565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6005546001600160a01b03163314620002d45760405162461bcd60e51b81526020600482018190526024820152600080516020620017c68339815191526044820152606401620001f3565b600b94909455600c92909255600f55601055600d556000600e55565b6005546001600160a01b031633146200033b5760405162461bcd60e51b81526020600482018190526024820152600080516020620017c68339815191526044820152606401620001f3565b600693909355600791909155600a556008556000600955565b82805462000362906200054e565b90600052602060002090601f016020900481019282620003865760008555620003d1565b82601f10620003a157805160ff1916838001178555620003d1565b82800160010185558215620003d1579182015b82811115620003d1578251825591602001919060010190620003b4565b50620003df929150620003e3565b5090565b5b80821115620003df5760008155600101620003e4565b600082198211156200041057620004106200058b565b500190565b600181815b80851115620004565781600019048211156200043a576200043a6200058b565b808516156200044857918102915b93841c93908002906200041a565b509250929050565b60006200046f60ff84168362000476565b9392505050565b600082620004875750600162000526565b81620004965750600062000526565b8160018114620004af5760028114620004ba57620004da565b600191505062000526565b60ff841115620004ce57620004ce6200058b565b50506001821b62000526565b5060208310610133831016604e8410600b8410161715620004ff575081810a62000526565b6200050b838362000415565b80600019048211156200052257620005226200058b565b0290505b92915050565b60008160001904831182151516156200054957620005496200058b565b500290565b600181811c908216806200056357607f821691505b602082108114156200058557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b61121580620005b16000396000f3fe6080604052600436106101e35760003560e01c80637d17028311610102578063af5f65ee11610095578063d69b197f11610064578063d69b197f14610543578063dd62ed3e14610587578063f2fde38b146105cd578063fc884712146105ed57600080fd5b8063af5f65ee146104e1578063c0fe1af8146104f7578063c465a3db14610517578063ced4138a1461052d57600080fd5b80639d5f9dfb116100d15780639d5f9dfb14610475578063a457c2d71461048b578063a695cb7f146104ab578063a9059cbb146104c157600080fd5b80637d1702831461040c5780638da5cb5b14610422578063933fe6601461044a57806395d89b411461046057600080fd5b8063395093511161017a5780636643ef9f116101495780636643ef9f1461038e57806370a08231146103a1578063715018a6146103d757806376f25a84146103ec57600080fd5b806339509351146102f65780634a7781d9146103165780634d1d03d11461032c57806354aeebe41461037857600080fd5b806318160ddd116101b657806318160ddd146102835780631dc4f9ea1461029857806323b872dd146102ba578063313ce567146102da57600080fd5b8063069f5bdd146101e857806306fdde031461021d578063095ea7b31461023f57806315d8f7e41461025f575b600080fd5b3480156101f457600080fd5b50610208610203366004610f43565b610603565b60405190151581526020015b60405180910390f35b34801561022957600080fd5b506102326106bd565b604051610214919061107d565b34801561024b57600080fd5b5061020861025a366004610fd1565b61074f565b34801561026b57600080fd5b5061027560065481565b604051908152602001610214565b34801561028f57600080fd5b50600254610275565b3480156102a457600080fd5b506102b86102b3366004611043565b610765565b005b3480156102c657600080fd5b506102086102d5366004610f96565b6107b4565b3480156102e657600080fd5b5060405160088152602001610214565b34801561030257600080fd5b50610208610311366004610fd1565b610865565b34801561032257600080fd5b5061027560105481565b34801561033857600080fd5b50600b54600c54600d54600e54600f54601054604080519687526020870195909552938501929092526060840152608083015260a082015260c001610214565b34801561038457600080fd5b5061027560095481565b61020861039c366004610f43565b61089c565b3480156103ad57600080fd5b506102756103bc366004610f43565b6001600160a01b031660009081526020819052604090205490565b3480156103e357600080fd5b506102b861097e565b3480156103f857600080fd5b506102b8610407366004611012565b6109f2565b34801561041857600080fd5b50610275600e5481565b34801561042e57600080fd5b506005546040516001600160a01b039091168152602001610214565b34801561045657600080fd5b50610275600b5481565b34801561046c57600080fd5b50610232610a35565b34801561048157600080fd5b50610275600f5481565b34801561049757600080fd5b506102086104a6366004610fd1565b610a44565b3480156104b757600080fd5b5061027560075481565b3480156104cd57600080fd5b506102086104dc366004610fd1565b610ad5565b3480156104ed57600080fd5b50610275600d5481565b34801561050357600080fd5b506102b8610512366004610ffa565b610ae2565b34801561052357600080fd5b5061027560085481565b34801561053957600080fd5b50610275600c5481565b34801561054f57600080fd5b50600654600754600854600954600a54604080519586526020860194909452928401919091526060830152608082015260a001610214565b34801561059357600080fd5b506102756105a2366004610f64565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156105d957600080fd5b506102b86105e8366004610f43565b610b40565b3480156105f957600080fd5b50610275600a5481565b6000436006541115801561061957506007544311155b61062257600080fd5b60085460095410806106345750600854155b61063d57600080fd5b6009805490600061064d836111ae565b9091555050336001600160a01b0383161480159061068257506001600160a01b03821660009081526020819052604090205415155b801561069657506001600160a01b03821615155b156106a8576106a83083600a54610c2b565b6106b53033600a54610c2b565b506001919050565b6060600380546106cc90611173565b80601f01602080910402602001604051908101604052809291908181526020018280546106f890611173565b80156107455780601f1061071a57610100808354040283529160200191610745565b820191906000526020600020905b81548152906001019060200180831161072857829003601f168201915b5050505050905090565b600061075c338484610e03565b50600192915050565b6005546001600160a01b031633146107985760405162461bcd60e51b815260040161078f906110d0565b60405180910390fd5b600b94909455600c92909255600f55601055600d556000600e55565b60006107c1848484610c2b565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156108465760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161078f565b61085a8533610855868561115c565b610e03565b506001949350505050565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161075c918590610855908690611105565b600043600b54111580156108b25750600c544311155b6108bb57600080fd5b600d54600e5410806108cd5750600d54155b6108d657600080fd5b60003490506000670de0b6b3a7640000826010546108f4919061113d565b6108fe919061111d565b600e80549192506000610910836111ae565b9091555050336001600160a01b0385161480159061094557506001600160a01b03841660009081526020819052604090205415155b801561095957506001600160a01b03841615155b1561096957610969308583610c2b565b610974303383610c2b565b5060019392505050565b6005546001600160a01b031633146109a85760405162461bcd60e51b815260040161078f906110d0565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b03163314610a1c5760405162461bcd60e51b815260040161078f906110d0565b600693909355600791909155600a556008556000600955565b6060600480546106cc90611173565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610ac65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161078f565b6109743385610855868561115c565b600061075c338484610c2b565b6005546001600160a01b03163314610b0c5760405162461bcd60e51b815260040161078f906110d0565b6040513390819083156108fc029084906000818181858888f19350505050158015610b3b573d6000803e3d6000fd5b505050565b6005546001600160a01b03163314610b6a5760405162461bcd60e51b815260040161078f906110d0565b6001600160a01b038116610bcf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161078f565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161078f565b6001600160a01b038216610cf15760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161078f565b6001600160a01b03831660009081526020819052604090205481811015610d695760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161078f565b610d73828261115c565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290610da9908490611105565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610df591815260200190565b60405180910390a350505050565b6001600160a01b038316610e655760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161078f565b6001600160a01b038216610ec65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161078f565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b80356001600160a01b0381168114610f3e57600080fd5b919050565b600060208284031215610f54578081fd5b610f5d82610f27565b9392505050565b60008060408385031215610f76578081fd5b610f7f83610f27565b9150610f8d60208401610f27565b90509250929050565b600080600060608486031215610faa578081fd5b610fb384610f27565b9250610fc160208501610f27565b9150604084013590509250925092565b60008060408385031215610fe3578182fd5b610fec83610f27565b946020939093013593505050565b60006020828403121561100b578081fd5b5035919050565b60008060008060808587031215611027578081fd5b5050823594602084013594506040840135936060013592509050565b600080600080600060a0868803121561105a578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6000602080835283518082850152825b818110156110a95785810183015185820160400152820161108d565b818111156110ba5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60008219821115611118576111186111c9565b500190565b60008261113857634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611157576111576111c9565b500290565b60008282101561116e5761116e6111c9565b500390565b600181811c9082168061118757607f821691505b602082108114156111a857634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156111c2576111c26111c9565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212206cb99c1579581cb544f1b207cbaa4dc86643a312e2979eb23d237be5d999df2864736f6c634300080400334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed ByteCode Sourcemap

21198:2864:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22001:461;;;;;;;;;;-1:-1:-1;22001:461:0;;;;;:::i;:::-;;:::i;:::-;;;2717:14:1;;2710:22;2692:41;;2680:2;2665:18;22001:461:0;;;;;;;;6565:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;8732:169::-;;;;;;;;;;-1:-1:-1;8732:169:0;;;;;:::i;:::-;;:::i;21240:22::-;;;;;;;;;;;;;;;;;;;7106:25:1;;;7094:2;7079:18;21240:22:0;7061:76:1;7685:108:0;;;;;;;;;;-1:-1:-1;7773:12:0;;7685:108;;23648:255;;;;;;;;;;-1:-1:-1;23648:255:0;;;;;:::i;:::-;;:::i;:::-;;9383:422;;;;;;;;;;-1:-1:-1;9383:422:0;;;;;:::i;:::-;;:::i;21903:92::-;;;;;;;;;;-1:-1:-1;21903:92:0;;21986:1;8292:36:1;;8280:2;8265:18;21903:92:0;8247:87:1;10214:215:0;;;;;;;;;;-1:-1:-1;10214:215:0;;;;;:::i;:::-;;:::i;21524:21::-;;;;;;;;;;;;;;;;23206:216;;;;;;;;;;-1:-1:-1;23371:7:0;;23380;;23389:4;;23395;;23401:6;;23409;;23206:216;;;7897:25:1;;;7953:2;7938:18;;7931:34;;;;7981:18;;;7974:34;;;;8039:2;8024:18;;8017:34;8082:3;8067:19;;8060:35;8126:3;8111:19;;8104:35;7884:3;7869:19;23206:216:0;7851:294:1;21327:19:0;;;;;;;;;;;;;;;;22468:537;;;;;;:::i;:::-;;:::i;7856:127::-;;;;;;;;;;-1:-1:-1;7856:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7957:18:0;7930:7;7957:18;;;;;;;;;;;;7856:127;20582:148;;;;;;;;;;;;;:::i;23430:214::-;;;;;;;;;;-1:-1:-1;23430:214:0;;;;;:::i;:::-;;:::i;21468:19::-;;;;;;;;;;;;;;;;19931:87;;;;;;;;;;-1:-1:-1;20004:6:0;;19931:87;;-1:-1:-1;;;;;20004:6:0;;;2490:51:1;;2478:2;2463:18;19931:87:0;2445:102:1;21381:22:0;;;;;;;;;;;;;;;;6784:104;;;;;;;;;;;;;:::i;21495:21::-;;;;;;;;;;;;;;;;10932:377;;;;;;;;;;-1:-1:-1;10932:377:0;;;;;:::i;:::-;;:::i;21270:22::-;;;;;;;;;;;;;;;;8196:175;;;;;;;;;;-1:-1:-1;8196:175:0;;;;;:::i;:::-;;:::i;21441:19::-;;;;;;;;;;;;;;;;23917:142;;;;;;;;;;-1:-1:-1;23917:142:0;;;;;:::i;:::-;;:::i;21300:19::-;;;;;;;;;;;;;;;;21411:22;;;;;;;;;;;;;;;;23011:191;;;;;;;;;;-1:-1:-1;23161:7:0;;23170;;23179:4;;23185;;23191;;23011:191;;;7401:25:1;;;7457:2;7442:18;;7435:34;;;;7485:18;;;7478:34;;;;7543:2;7528:18;;7521:34;7586:3;7571:19;;7564:35;7388:3;7373:19;23011:191:0;7355:250:1;8434:151:0;;;;;;;;;;-1:-1:-1;8434:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;8550:18:0;;;8523:7;8550:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8434:151;20885:244;;;;;;;;;;-1:-1:-1;20885:244:0;;;;;:::i;:::-;;:::i;21354:19::-;;;;;;;;;;;;;;;;22001:461;22053:12;22096;22085:7;;:23;;:50;;;;;22128:7;;22112:12;:23;;22085:50;22077:59;;;;;;22162:4;;22155;;:11;:24;;;-1:-1:-1;22170:4:0;;:9;22155:24;22147:33;;;;;;22191:4;:7;;;:4;:7;;;:::i;:::-;;;;-1:-1:-1;;22212:10:0;-1:-1:-1;;;;;22212:20:0;;;;;;:46;;-1:-1:-1;;;;;;7957:18:0;;7930:7;7957:18;;;;;;;;;;;22236:22;;22212:46;:102;;;;-1:-1:-1;;;;;;22262:52:0;;;;22212:102;22209:169;;;22328:38;22346:4;22353:6;22361:4;;22328:9;:38::i;:::-;22388:42;22406:4;22413:10;22425:4;;22388:9;:42::i;:::-;-1:-1:-1;22448:4:0;;22001:461;-1:-1:-1;22001:461:0:o;6565:100::-;6619:13;6652:5;6645:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6565:100;:::o;8732:169::-;8815:4;8832:39;4232:10;8855:7;8864:6;8832:8;:39::i;:::-;-1:-1:-1;8889:4:0;8732:169;;;;:::o;23648:255::-;20004:6;;-1:-1:-1;;;;;20004:6:0;4232:10;20151:23;20143:68;;;;-1:-1:-1;;;20143:68:0;;;;;;;:::i;:::-;;;;;;;;;23775:7:::1;:18:::0;;;;23800:7:::1;:18:::0;;;;23825:6:::1;:16:::0;23848:6:::1;:15:::0;23870:4:::1;:12:::0;-1:-1:-1;23889:4:0::1;:8:::0;23648:255::o;9383:422::-;9489:4;9506:36;9516:6;9524:9;9535:6;9506:9;:36::i;:::-;-1:-1:-1;;;;;9582:19:0;;9555:24;9582:19;;;:11;:19;;;;;;;;4232:10;9582:33;;;;;;;;9634:26;;;;9626:79;;;;-1:-1:-1;;;9626:79:0;;5175:2:1;9626:79:0;;;5157:21:1;5214:2;5194:18;;;5187:30;5253:34;5233:18;;;5226:62;-1:-1:-1;;;5304:18:1;;;5297:38;5352:19;;9626:79:0;5147:230:1;9626:79:0;9716:57;9725:6;4232:10;9747:25;9766:6;9747:16;:25;:::i;:::-;9716:8;:57::i;:::-;-1:-1:-1;9793:4:0;;9383:422;-1:-1:-1;;;;9383:422:0:o;10214:215::-;4232:10;10302:4;10351:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10351:34:0;;;;;;;;;;10302:4;;10319:80;;10342:7;;10351:47;;10388:10;;10351:47;:::i;22468:537::-;22527:12;22566;22555:7;;:23;;:50;;;;;22598:7;;22582:12;:23;;22555:50;22547:59;;;;;;22628:4;;22621;;:11;:24;;;-1:-1:-1;22636:4:0;;:9;22621:24;22613:33;;;;;;22653:12;22668:9;22653:24;;22684:13;22728:7;22720:4;22713:6;;:11;;;;:::i;:::-;22712:23;;;;:::i;:::-;22742:4;:7;;22704:31;;-1:-1:-1;22742:4:0;:7;;;:::i;:::-;;;;-1:-1:-1;;22759:10:0;-1:-1:-1;;;;;22759:20:0;;;;;;:46;;-1:-1:-1;;;;;;7957:18:0;;7930:7;7957:18;;;;;;;;;;;22783:22;;22759:46;:102;;;;-1:-1:-1;;;;;;22809:52:0;;;;22759:102;22756:170;;;22879:39;22897:4;22904:6;22912:5;22879:9;:39::i;:::-;22938:43;22956:4;22963:10;22975:5;22938:9;:43::i;:::-;-1:-1:-1;22995:4:0;;22468:537;-1:-1:-1;;;22468:537:0:o;20582:148::-;20004:6;;-1:-1:-1;;;;;20004:6:0;4232:10;20151:23;20143:68;;;;-1:-1:-1;;;20143:68:0;;;;;;;:::i;:::-;20673:6:::1;::::0;20652:40:::1;::::0;20689:1:::1;::::0;-1:-1:-1;;;;;20673:6:0::1;::::0;20652:40:::1;::::0;20689:1;;20652:40:::1;20703:6;:19:::0;;-1:-1:-1;;;;;;20703:19:0::1;::::0;;20582:148::o;23430:214::-;20004:6;;-1:-1:-1;;;;;20004:6:0;4232:10;20151:23;20143:68;;;;-1:-1:-1;;;20143:68:0;;;;;;;:::i;:::-;23542:7:::1;:18:::0;;;;23567:7:::1;:18:::0;;;;23592:4:::1;:12:::0;23611:4:::1;:12:::0;-1:-1:-1;23630:4:0::1;:8:::0;23430:214::o;6784:104::-;6840:13;6873:7;6866:14;;;;;:::i;10932:377::-;4232:10;11025:4;11069:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11069:34:0;;;;;;;;;;11122:35;;;;11114:85;;;;-1:-1:-1;;;11114:85:0;;6756:2:1;11114:85:0;;;6738:21:1;6795:2;6775:18;;;6768:30;6834:34;6814:18;;;6807:62;-1:-1:-1;;;6885:18:1;;;6878:35;6930:19;;11114:85:0;6728:227:1;11114:85:0;11210:67;4232:10;11233:7;11242:34;11261:15;11242:16;:34;:::i;8196:175::-;8282:4;8299:42;4232:10;8323:9;8334:6;8299:9;:42::i;23917:142::-;20004:6;;-1:-1:-1;;;;;20004:6:0;4232:10;20151:23;20143:68;;;;-1:-1:-1;;;20143:68:0;;;;;;;:::i;:::-;24028:23:::1;::::0;24006:10:::1;::::0;;;24028:23;::::1;;;::::0;24044:6;;23973:22:::1;24028:23:::0;23973:22;24028:23;24044:6;24006:10;24028:23;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20222:1;23917:142:::0;:::o;20885:244::-;20004:6;;-1:-1:-1;;;;;20004:6:0;4232:10;20151:23;20143:68;;;;-1:-1:-1;;;20143:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20974:22:0;::::1;20966:73;;;::::0;-1:-1:-1;;;20966:73:0;;3958:2:1;20966:73:0::1;::::0;::::1;3940:21:1::0;3997:2;3977:18;;;3970:30;4036:34;4016:18;;;4009:62;-1:-1:-1;;;4087:18:1;;;4080:36;4133:19;;20966:73:0::1;3930:228:1::0;20966:73:0::1;21076:6;::::0;21055:38:::1;::::0;-1:-1:-1;;;;;21055:38:0;;::::1;::::0;21076:6:::1;::::0;21055:38:::1;::::0;21076:6:::1;::::0;21055:38:::1;21104:6;:17:::0;;-1:-1:-1;;;;;;21104:17:0::1;-1:-1:-1::0;;;;;21104:17:0;;;::::1;::::0;;;::::1;::::0;;20885:244::o;11799:604::-;-1:-1:-1;;;;;11905:20:0;;11897:70;;;;-1:-1:-1;;;11897:70:0;;5945:2:1;11897:70:0;;;5927:21:1;5984:2;5964:18;;;5957:30;6023:34;6003:18;;;5996:62;-1:-1:-1;;;6074:18:1;;;6067:35;6119:19;;11897:70:0;5917:227:1;11897:70:0;-1:-1:-1;;;;;11986:23:0;;11978:71;;;;-1:-1:-1;;;11978:71:0;;3554:2:1;11978:71:0;;;3536:21:1;3593:2;3573:18;;;3566:30;3632:34;3612:18;;;3605:62;-1:-1:-1;;;3683:18:1;;;3676:33;3726:19;;11978:71:0;3526:225:1;11978:71:0;-1:-1:-1;;;;;12146:17:0;;12122:21;12146:17;;;;;;;;;;;12182:23;;;;12174:74;;;;-1:-1:-1;;;12174:74:0;;4768:2:1;12174:74:0;;;4750:21:1;4807:2;4787:18;;;4780:30;4846:34;4826:18;;;4819:62;-1:-1:-1;;;4897:18:1;;;4890:36;4943:19;;12174:74:0;4740:228:1;12174:74:0;12279:22;12295:6;12279:13;:22;:::i;:::-;-1:-1:-1;;;;;12259:17:0;;;:9;:17;;;;;;;;;;;:42;;;;12312:20;;;;;;;;:30;;12336:6;;12259:9;12312:30;;12336:6;;12312:30;:::i;:::-;;;;;;;;12377:9;-1:-1:-1;;;;;12360:35:0;12369:6;-1:-1:-1;;;;;12360:35:0;;12388:6;12360:35;;;;7106:25:1;;7094:2;7079:18;;7061:76;12360:35:0;;;;;;;;11799:604;;;;:::o;14288:346::-;-1:-1:-1;;;;;14390:19:0;;14382:68;;;;-1:-1:-1;;;14382:68:0;;6351:2:1;14382:68:0;;;6333:21:1;6390:2;6370:18;;;6363:30;6429:34;6409:18;;;6402:62;-1:-1:-1;;;6480:18:1;;;6473:34;6524:19;;14382:68:0;6323:226:1;14382:68:0;-1:-1:-1;;;;;14469:21:0;;14461:68;;;;-1:-1:-1;;;14461:68:0;;4365:2:1;14461:68:0;;;4347:21:1;4404:2;4384:18;;;4377:30;4443:34;4423:18;;;4416:62;-1:-1:-1;;;4494:18:1;;;4487:32;4536:19;;14461:68:0;4337:224:1;14461:68:0;-1:-1:-1;;;;;14542:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14594:32;;7106:25:1;;;14594:32:0;;7079:18:1;14594:32:0;;;;;;;14288:346;;;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;:::-;343:39;262:126;-1:-1:-1;;;262:126:1:o;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;1079:6;1087;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:1:o;1280:190::-;1339:6;1392:2;1380:9;1371:7;1367:23;1363:32;1360:2;;;1413:6;1405;1398:22;1360:2;-1:-1:-1;1441:23:1;;1350:120;-1:-1:-1;1350:120:1:o;1475:395::-;1561:6;1569;1577;1585;1638:3;1626:9;1617:7;1613:23;1609:33;1606:2;;;1660:6;1652;1645:22;1606:2;-1:-1:-1;;1688:23:1;;;1758:2;1743:18;;1730:32;;-1:-1:-1;1809:2:1;1794:18;;1781:32;;1860:2;1845:18;1832:32;;-1:-1:-1;1596:274:1;-1:-1:-1;1596:274:1:o;1875:464::-;1970:6;1978;1986;1994;2002;2055:3;2043:9;2034:7;2030:23;2026:33;2023:2;;;2077:6;2069;2062:22;2023:2;-1:-1:-1;;2105:23:1;;;2175:2;2160:18;;2147:32;;-1:-1:-1;2226:2:1;2211:18;;2198:32;;2277:2;2262:18;;2249:32;;-1:-1:-1;2328:3:1;2313:19;2300:33;;-1:-1:-1;2013:326:1;-1:-1:-1;2013:326:1:o;2744:603::-;2856:4;2885:2;2914;2903:9;2896:21;2946:6;2940:13;2989:6;2984:2;2973:9;2969:18;2962:34;3014:4;3027:140;3041:6;3038:1;3035:13;3027:140;;;3136:14;;;3132:23;;3126:30;3102:17;;;3121:2;3098:26;3091:66;3056:10;;3027:140;;;3185:6;3182:1;3179:13;3176:2;;;3255:4;3250:2;3241:6;3230:9;3226:22;3222:31;3215:45;3176:2;-1:-1:-1;3331:2:1;3310:15;-1:-1:-1;;3306:29:1;3291:45;;;;3338:2;3287:54;;2865:482;-1:-1:-1;;;2865:482:1:o;5382:356::-;5584:2;5566:21;;;5603:18;;;5596:30;5662:34;5657:2;5642:18;;5635:62;5729:2;5714:18;;5556:182::o;8339:128::-;8379:3;8410:1;8406:6;8403:1;8400:13;8397:2;;;8416:18;;:::i;:::-;-1:-1:-1;8452:9:1;;8387:80::o;8472:217::-;8512:1;8538;8528:2;;-1:-1:-1;;;8563:31:1;;8617:4;8614:1;8607:15;8645:4;8570:1;8635:15;8528:2;-1:-1:-1;8674:9:1;;8518:171::o;8694:168::-;8734:7;8800:1;8796;8792:6;8788:14;8785:1;8782:21;8777:1;8770:9;8763:17;8759:45;8756:2;;;8807:18;;:::i;:::-;-1:-1:-1;8847:9:1;;8746:116::o;8867:125::-;8907:4;8935:1;8932;8929:8;8926:2;;;8940:18;;:::i;:::-;-1:-1:-1;8977:9:1;;8916:76::o;8997:380::-;9076:1;9072:12;;;;9119;;;9140:2;;9194:4;9186:6;9182:17;9172:27;;9140:2;9247;9239:6;9236:14;9216:18;9213:38;9210:2;;;9293:10;9288:3;9284:20;9281:1;9274:31;9328:4;9325:1;9318:15;9356:4;9353:1;9346:15;9210:2;;9052:325;;;:::o;9382:135::-;9421:3;-1:-1:-1;;9442:17:1;;9439:2;;;9462:18;;:::i;:::-;-1:-1:-1;9509:1:1;9498:13;;9429:88::o;9522:127::-;9583:10;9578:3;9574:20;9571:1;9564:31;9614:4;9611:1;9604:15;9638:4;9635:1;9628:15

Swarm Source

ipfs://6cb99c1579581cb544f1b207cbaa4dc86643a312e2979eb23d237be5d999df28
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.