Contract 0xf239e69ce434c7fb408b05a0da416b14917d934e 4

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x541b82c1c8c65f9841c44ce348101c5a0f32f5d9574aad21b22253f3727c4dc1Approve384733502023-01-24 15:06:514 days 2 hrs ago0xa35b66b07510d9e6e99efcc9f7bb17b72ae57261 IN  PolyShield: PolyShield Token0 MATIC0.002566917468 105.551933419
0x5ea804554fff12d3a5356ecf338d6009c3b0f96e7b0a1d3b28ed1881d0a23890Approve384733302023-01-24 15:05:434 days 2 hrs ago0xa35b66b07510d9e6e99efcc9f7bb17b72ae57261 IN  PolyShield: PolyShield Token0 MATIC0.001655125855 68.058960281
0x6ff998e6378449f43d088e50ba498a4187108a5381aa379a967d88408f200994Approve376655402023-01-04 14:34:4624 days 2 hrs ago0x6e36a5cd83aae3d997550b42f4ed47619cca51ce IN  PolyShield: PolyShield Token0 MATIC0.002419590608 99.493836449
0x46d338d399a8db61109d9d08d13000e7ff67b7f65fb7bbb5031ff2d79990ac28Approve375715772023-01-02 6:24:0626 days 10 hrs ago0x57a18c4dfc24e4e345fb9dd5d60812731f1c8dab IN  PolyShield: PolyShield Token0 MATIC0.00133754555
0x5a0a1cb059a34ef7ac6a093bdd795d5e8ade5f8b9dd9a9ce6aca3e54f3dbd7a7Approve374579762022-12-30 11:09:4629 days 6 hrs ago0x71aa08dbe336d566480885cb1bf41e8d6234c7a1 IN  PolyShield: PolyShield Token0 MATIC0.000996363098 40.970562043
0x06c4c47c1f6fc7712ccf0a46921f3cda8422f5848e96325c81711d92ee4ff005Approve374578942022-12-30 11:06:5829 days 6 hrs ago0x71aa08dbe336d566480885cb1bf41e8d6234c7a1 IN  PolyShield: PolyShield Token0 MATIC0.00098254745 40.402461052
0xd7a7d43dff9608fe45834e1e5da7748c992eeb29ec5405d5e3ab6be5b689cc6cApprove374136412022-12-29 9:03:1430 days 8 hrs ago0xdc5ce68e71c4a831a4b2914082d84f042842c13f IN  PolyShield: PolyShield Token0 MATIC0.000982594364 40.404390171
0xbbd53768d85c35b73dd511fe09af2b6fe208e9e0ffdfc815593a660828185ebaApprove368461162022-12-15 4:03:0744 days 13 hrs ago0x61d4eb6d62b8856d6824c97172a4746f5a469a92 IN  PolyShield: PolyShield Token0 MATIC0.002413578051 51.790186288
0x568ff44aa96145c143df3ad61c967f1cb640fcf54c5162ee85c39abda8244690Approve366201542022-12-09 13:43:3750 days 3 hrs ago0x2ba56a2415dedaaef2a54a1a6cc90d4555e0000d IN  PolyShield: PolyShield Token0 MATIC0.005114782264 210.320418775
0xa7e4387810d0b137d84b669e65ee558c0c0f5b38c21fd381c2f90ff87f131dedApprove365624292022-12-08 3:47:1051 days 13 hrs ago0xbb5a65743fa15359c4c8265b1ce62e79625a21da IN  PolyShield: PolyShield Token0 MATIC0.000741385581 30.48585805
0xdd24724eb3405b69d846ce4df9206e191739faf4e61ea3bb5a1c96fe774d0eccApprove365261962022-12-07 6:16:1052 days 10 hrs ago0x27d93ad49996151636e89be588bd93ffd7d14753 IN  PolyShield: PolyShield Token0 MATIC0.002140978 46
0xaf8a00f496f042fd543e78bb4828786a57ad8be9c0deb4caf2cbb3500ed1cd34Approve365244262022-12-07 5:14:4752 days 11 hrs ago0x96e82ce1d109863fd51567eaf2835c9c30f35d71 IN  PolyShield: PolyShield Token0 MATIC0.00072957 30.000000027
0x00e24e86824e03b437ec8c5d8a65aa83c5ea0834ed7a403aca03c8d0a217d638Approve364948172022-12-06 11:48:3253 days 5 hrs ago0x44fc7c5dbcf1c40b4546571453157fd52bf08195 IN  PolyShield: PolyShield Token0 MATIC0.00114988143 47.283253027
0x625d83bfbb5c013e1c18878968b8cd1609499fdd3739d04e4c2ae93affa306d9Approve362517882022-11-30 11:47:3759 days 5 hrs ago0xd02963480c6f76f41c5df900a23c82ef563bce6a IN  PolyShield: PolyShield Token0 MATIC0.000743901934 30.589330734
0xb5143ce4a27bd08cadbb3018b98b9c3bf84558a12d990e247d415d2f3845725cApprove357435622022-11-18 2:22:2171 days 14 hrs ago0xc3def0a139f6d40dc3cd1ce308115db8bb00ca97 IN  PolyShield: PolyShield Token0 MATIC0.00144469331
0xca08d6f4b922a2486bbb873ac95b0b1330f2dcdeeda7265ab489554ad8e6146bApprove356760962022-11-16 11:07:1273 days 6 hrs ago0xa43299fd28dc01c48ace8db9b0493a35130821f2 IN  PolyShield: PolyShield Token0 MATIC0.002898623711 62.198221387
0x8b5abca4b49af9fd05f7d94c3a3618015b143dcf6a95066e256e951e42af347aApprove354036652022-11-09 17:11:5479 days 23 hrs ago0x8df9a7d45f30936ce7e6f1d1e95d80d83d4cd340 IN  PolyShield: PolyShield Token0 MATIC0.0108165563232.1
0x911054d19f2c316b2b785d158e99652255d019a20af2d9352b9c8a220f492de2Approve353881522022-11-09 8:09:5880 days 9 hrs ago0x1a3738a61a3063a7510fa1ee7dd21dcab1f989fd IN  PolyShield: PolyShield Token0 MATIC0.0059745046128.2
0x5af9b5fecf479e8e665014a2a992314a04033ec62099f5c06f7ac168f1bb2cf5Approve353454272022-11-08 7:09:3481 days 10 hrs ago0x8949565aeed72c004b2a20ed97d5fa07c94a842e IN  PolyShield: PolyShield Token0 MATIC0.017600437089 377.667469672
0x55dace60e7a07099a8be94a5c2244a859cb02b16aff6cf1dd0912ddde8c18f4eApprove351525252022-11-03 14:35:5086 days 2 hrs ago0x8154f6cf85f060ee45e7c8ba24068a0fea68f040 IN  PolyShield: PolyShield Token0 MATIC0.008796822666 329.431998911
0x7357007d7568cc351ad546a9d7525a4c6eb8712514ece33a92caf12894521c56Approve351524712022-11-03 14:32:3886 days 2 hrs ago0x8154f6cf85f060ee45e7c8ba24068a0fea68f040 IN  PolyShield: PolyShield Token0 MATIC0.011737852213 251.869025887
0xa71cb36e4df1c3842905435ba79db71504c5d9f0b25a8fe6bc84aa9ac641bdcaApprove351079272022-11-02 12:06:5187 days 5 hrs ago0xe31dd440418d512f1d1ec967f7eb37f967303fd1 IN  PolyShield: PolyShield Token0 MATIC0.001094127872 40.973968197
0x83b158e2bbec2f3d69fc3f4489ff78fece2a9585069414acd7e8712253cf16edApprove351079072022-11-02 12:06:1187 days 5 hrs ago0xe31dd440418d512f1d1ec967f7eb37f967303fd1 IN  PolyShield: PolyShield Token0 MATIC0.001105950935 41.416729773
0x2102f823a31c8b7234e61b66712887514f02d59fd5cc8e72b27959e53d53c07fApprove349271922022-10-29 1:53:5891 days 15 hrs ago0xc2d847620e5c148e945d549cdce3005a1dfc960d IN  PolyShield: PolyShield Token0 MATIC0.000870625389 35.800213413
0xf8a34ef3f4e540bfe5eb6de905b1f4007e4e7784c7bcdabf61b1fcbabd05cc7dApprove349271922022-10-29 1:53:5891 days 15 hrs ago0xc2d847620e5c148e945d549cdce3005a1dfc960d IN  PolyShield: PolyShield Token0 MATIC0.000870402243 35.791037591
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Polyshield

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-08-02
*/

// SPDX-License-Identifier: UNLICENSED

/*
Website     https://polyshield.finance
*/

pragma solidity 0.7.6;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

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

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}


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


/** 
 * @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 GSN 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 payable) {
        return payable(msg.sender);
    }

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



/**
 * @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 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = 18;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual 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 {_setupDecimals} is
     * called.
     *
     * 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 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:
     *
     * - `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);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        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].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        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);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(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 = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(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);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(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 Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal virtual {
        _decimals = decimals_;
    }

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

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


contract Polyshield is ERC20("PolyShield", "SHI3LD"), Ownable {

    uint256 public minted;
    uint256 public burned;

    constructor() {
        _mint(address(msg.sender), 1000 ether);
        minted+=1000 ether;
    }

    function mint(address _to, uint256 _amount) public onlyOwner {
        _mint(_to, _amount);
        minted+=_amount;
    }

    function burn(uint256 _amount) public {
        require (balanceOf(msg.sender)>=_amount);
        _burn(msg.sender, _amount);
        burned+=_amount;
    }

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

    function website() external pure returns (string memory) {
        return "https://polyshield.finance";
    }

}

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":[{"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":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minted","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"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":"website","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600a81526020017f506f6c79536869656c64000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f534849334c4400000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200042d565b508060049080519060200190620000af9291906200042d565b506012600560006101000a81548160ff021916908360ff16021790555050506000620000e0620001b960201b60201c565b905080600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200019a33683635c9adc5dea00000620001c160201b60201c565b683635c9adc5dea00000600660008282540192505081905550620004e3565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000265576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b62000279600083836200039f60201b60201c565b6200029581600254620003a460201b620010fa1790919060201c565b600281905550620002f3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620003a460201b620010fa1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60008082840190508381101562000423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620004655760008555620004b1565b82601f106200048057805160ff1916838001178555620004b1565b82800160010185558215620004b1579182015b82811115620004b057825182559160200191906001019062000493565b5b509050620004c09190620004c4565b5090565b5b80821115620004df576000816000905550600101620004c5565b5090565b611caf80620004f36000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a457c2d711610071578063a457c2d714610544578063a9059cbb146105a8578063beb0a4161461060c578063dd62ed3e1461068f578063f2fde38b146107075761012c565b8063715018a61461043157806373f425611461043b578063893d20e8146104595780638da5cb5b1461048d57806395d89b41146104c15761012c565b806339509351116100f457806339509351146102db57806340c10f191461033f57806342966c681461038d5780634f02c420146103bb57806370a08231146103d95761012c565b806306fdde0314610131578063095ea7b3146101b457806318160ddd1461021857806323b872dd14610236578063313ce567146102ba575b600080fd5b61013961074b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017957808201518184015260208101905061015e565b50505050905090810190601f1680156101a65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610200600480360360408110156101ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107ed565b60405180821515815260200191505060405180910390f35b61022061080b565b6040518082815260200191505060405180910390f35b6102a26004803603606081101561024c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610815565b60405180821515815260200191505060405180910390f35b6102c26108ee565b604051808260ff16815260200191505060405180910390f35b610327600480360360408110156102f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610905565b60405180821515815260200191505060405180910390f35b61038b6004803603604081101561035557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109b8565b005b6103b9600480360360208110156103a357600080fd5b8101908080359060200190929190505050610a85565b005b6103c3610ab7565b6040518082815260200191505060405180910390f35b61041b600480360360208110156103ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610abd565b6040518082815260200191505060405180910390f35b610439610b05565b005b610443610c75565b6040518082815260200191505060405180910390f35b610461610c7b565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610495610c8a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104c9610cb4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105095780820151818401526020810190506104ee565b50505050905090810190601f1680156105365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105906004803603604081101561055a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d56565b60405180821515815260200191505060405180910390f35b6105f4600480360360408110156105be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e23565b60405180821515815260200191505060405180910390f35b610614610e41565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610654578082015181840152602081019050610639565b50505050905090810190601f1680156106815780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106f1600480360360408110156106a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e7e565b6040518082815260200191505060405180910390f35b6107496004803603602081101561071d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f05565b005b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107e35780601f106107b8576101008083540402835291602001916107e3565b820191906000526020600020905b8154815290600101906020018083116107c657829003601f168201915b5050505050905090565b60006108016107fa611182565b848461118a565b6001905092915050565b6000600254905090565b6000610822848484611381565b6108e38461082e611182565b6108de85604051806060016040528060288152602001611bc360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610894611182565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116429092919063ffffffff16565b61118a565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006109ae610912611182565b846109a98560016000610923611182565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fa90919063ffffffff16565b61118a565b6001905092915050565b6109c0611182565b73ffffffffffffffffffffffffffffffffffffffff166109de610c8a565b73ffffffffffffffffffffffffffffffffffffffff1614610a67576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610a7182826116fc565b806006600082825401925050819055505050565b80610a8f33610abd565b1015610a9a57600080fd5b610aa433826118c3565b8060076000828254019250508190555050565b60065481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b0d611182565b73ffffffffffffffffffffffffffffffffffffffff16610b2b610c8a565b73ffffffffffffffffffffffffffffffffffffffff1614610bb4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60075481565b6000610c85610c8a565b905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d4c5780601f10610d2157610100808354040283529160200191610d4c565b820191906000526020600020905b815481529060010190602001808311610d2f57829003601f168201915b5050505050905090565b6000610e19610d63611182565b84610e1485604051806060016040528060258152602001611c556025913960016000610d8d611182565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116429092919063ffffffff16565b61118a565b6001905092915050565b6000610e37610e30611182565b8484611381565b6001905092915050565b60606040518060400160405280601a81526020017f68747470733a2f2f706f6c79736869656c642e66696e616e6365000000000000815250905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f0d611182565b73ffffffffffffffffffffffffffffffffffffffff16610f2b610c8a565b73ffffffffffffffffffffffffffffffffffffffff1614610fb4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561103a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611b556026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080828401905083811015611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611210576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611c316024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611296576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611b7b6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611407576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611c0c6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561148d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611b106023913960400191505060405180910390fd5b611498838383611a87565b61150381604051806060016040528060268152602001611b9d602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116429092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611596816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fa90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906116ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116b4578082015181840152602081019050611699565b50505050905090810190601f1680156116e15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561179f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6117ab60008383611a87565b6117c0816002546110fa90919063ffffffff16565b600281905550611817816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110fa90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611949576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611beb6021913960400191505060405180910390fd5b61195582600083611a87565b6119c081604051806060016040528060228152602001611b33602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116429092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a1781600254611a8c90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b600082821115611b04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b81830390509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d915b3a5d7e9f540ae54626c46a51bcfd1bbb8ad1149bd59ea383924475b0db464736f6c63430007060033

Deployed ByteCode Sourcemap

24264:747:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13176:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15322:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14275:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15973:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14119:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16703:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24501:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24634:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24335:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14446:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23708:148;;;:::i;:::-;;24363:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24802:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23057:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13386:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17424:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14786:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24895:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15024:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24011:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13176:91;13221:13;13254:5;13247:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13176:91;:::o;15322:169::-;15405:4;15422:39;15431:12;:10;:12::i;:::-;15445:7;15454:6;15422:8;:39::i;:::-;15479:4;15472:11;;15322:169;;;;:::o;14275:108::-;14336:7;14363:12;;14356:19;;14275:108;:::o;15973:321::-;16079:4;16096:36;16106:6;16114:9;16125:6;16096:9;:36::i;:::-;16143:121;16152:6;16160:12;:10;:12::i;:::-;16174:89;16212:6;16174:89;;;;;;;;;;;;;;;;;:11;:19;16186:6;16174:19;;;;;;;;;;;;;;;:33;16194:12;:10;:12::i;:::-;16174:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;16143:8;:121::i;:::-;16282:4;16275:11;;15973:321;;;;;:::o;14119:91::-;14168:5;14193:9;;;;;;;;;;;14186:16;;14119:91;:::o;16703:218::-;16791:4;16808:83;16817:12;:10;:12::i;:::-;16831:7;16840:50;16879:10;16840:11;:25;16852:12;:10;:12::i;:::-;16840:25;;;;;;;;;;;;;;;:34;16866:7;16840:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;16808:8;:83::i;:::-;16909:4;16902:11;;16703:218;;;;:::o;24501:125::-;23288:12;:10;:12::i;:::-;23277:23;;:7;:5;:7::i;:::-;:23;;;23269:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24573:19:::1;24579:3;24584:7;24573:5;:19::i;:::-;24611:7;24603:6;;:15;;;;;;;;;;;24501:125:::0;;:::o;24634:160::-;24715:7;24692:21;24702:10;24692:9;:21::i;:::-;:30;;24683:40;;;;;;24734:26;24740:10;24752:7;24734:5;:26::i;:::-;24779:7;24771:6;;:15;;;;;;;;;;;24634:160;:::o;24335:21::-;;;;:::o;14446:127::-;14520:7;14547:9;:18;14557:7;14547:18;;;;;;;;;;;;;;;;14540:25;;14446:127;;;:::o;23708:148::-;23288:12;:10;:12::i;:::-;23277:23;;:7;:5;:7::i;:::-;:23;;;23269:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23815:1:::1;23778:40;;23799:6;;;;;;;;;;;23778:40;;;;;;;;;;;;23846:1;23829:6;;:19;;;;;;;;;;;;;;;;;;23708:148::o:0;24363:21::-;;;;:::o;24802:85::-;24845:7;24872;:5;:7::i;:::-;24865:14;;24802:85;:::o;23057:87::-;23103:7;23130:6;;;;;;;;;;;23123:13;;23057:87;:::o;13386:95::-;13433:13;13466:7;13459:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13386:95;:::o;17424:269::-;17517:4;17534:129;17543:12;:10;:12::i;:::-;17557:7;17566:96;17605:15;17566:96;;;;;;;;;;;;;;;;;:11;:25;17578:12;:10;:12::i;:::-;17566:25;;;;;;;;;;;;;;;:34;17592:7;17566:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;17534:8;:129::i;:::-;17681:4;17674:11;;17424:269;;;;:::o;14786:175::-;14872:4;14889:42;14899:12;:10;:12::i;:::-;14913:9;14924:6;14889:9;:42::i;:::-;14949:4;14942:11;;14786:175;;;;:::o;24895:111::-;24937:13;24963:35;;;;;;;;;;;;;;;;;;;24895:111;:::o;15024:151::-;15113:7;15140:11;:18;15152:5;15140:18;;;;;;;;;;;;;;;:27;15159:7;15140:27;;;;;;;;;;;;;;;;15133:34;;15024:151;;;;:::o;24011:244::-;23288:12;:10;:12::i;:::-;23277:23;;:7;:5;:7::i;:::-;:23;;;23269:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24120:1:::1;24100:22;;:8;:22;;;;24092:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24210:8;24181:38;;24202:6;;;;;;;;;;;24181:38;;;;;;;;;;;;24239:8;24230:6;;:17;;;;;;;;;;;;;;;;;;24011:244:::0;:::o;2822:179::-;2880:7;2900:9;2916:1;2912;:5;2900:17;;2941:1;2936;:6;;2928:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2992:1;2985:8;;;2822:179;;;;:::o;10751:115::-;10804:15;10847:10;10832:26;;10751:115;:::o;20571:346::-;20690:1;20673:19;;:5;:19;;;;20665:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20771:1;20752:21;;:7;:21;;;;20744:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20855:6;20825:11;:18;20837:5;20825:18;;;;;;;;;;;;;;;:27;20844:7;20825:27;;;;;;;;;;;;;;;:36;;;;20893:7;20877:32;;20886:5;20877:32;;;20902:6;20877:32;;;;;;;;;;;;;;;;;;20571:346;;;:::o;18183:539::-;18307:1;18289:20;;:6;:20;;;;18281:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18391:1;18370:23;;:9;:23;;;;18362:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18446:47;18467:6;18475:9;18486:6;18446:20;:47::i;:::-;18526:71;18548:6;18526:71;;;;;;;;;;;;;;;;;:9;:17;18536:6;18526:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;18506:9;:17;18516:6;18506:17;;;;;;;;;;;;;;;:91;;;;18631:32;18656:6;18631:9;:20;18641:9;18631:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18608:9;:20;18618:9;18608:20;;;;;;;;;;;;;;;:55;;;;18696:9;18679:35;;18688:6;18679:35;;;18707:6;18679:35;;;;;;;;;;;;;;;;;;18183:539;;;:::o;5649:166::-;5735:7;5768:1;5763;:6;;5771:12;5755:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5806:1;5802;:5;5795:12;;5649:166;;;;;:::o;19004:378::-;19107:1;19088:21;;:7;:21;;;;19080:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19158:49;19187:1;19191:7;19200:6;19158:20;:49::i;:::-;19235:24;19252:6;19235:12;;:16;;:24;;;;:::i;:::-;19220:12;:39;;;;19291:30;19314:6;19291:9;:18;19301:7;19291:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;19270:9;:18;19280:7;19270:18;;;;;;;;;;;;;;;:51;;;;19358:7;19337:37;;19354:1;19337:37;;;19367:6;19337:37;;;;;;;;;;;;;;;;;;19004:378;;:::o;19715:418::-;19818:1;19799:21;;:7;:21;;;;19791:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19871:49;19892:7;19909:1;19913:6;19871:20;:49::i;:::-;19954:68;19977:6;19954:68;;;;;;;;;;;;;;;;;:9;:18;19964:7;19954:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;19933:9;:18;19943:7;19933:18;;;;;;;;;;;;;;;:89;;;;20048:24;20065:6;20048:12;;:16;;:24;;;;:::i;:::-;20033:12;:39;;;;20114:1;20088:37;;20097:7;20088:37;;;20118:6;20088:37;;;;;;;;;;;;;;;;;;19715:418;;:::o;21950:92::-;;;;:::o;3284:158::-;3342:7;3375:1;3370;:6;;3362:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3433:1;3429;:5;3422:12;;3284:158;;;;:::o

Swarm Source

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