Contract 0xf1428850f92B87e629c6f3A3B75BffBC496F7Ba6 2

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x4868da06a59776e98266f6e22dcb2bc69c64304627b49205ad8be070547f4b5bTransfer299901482022-06-25 18:30:091 hr 58 mins ago0xf76fa4f6b86eef882934e2c5e70ea45fbaed9271 IN  Geopoly: GEO$ Token0 MATIC0.00150136100131.000000026
0x7f44107561cda46732632743898fdda126a692587cfef00f443edaf7eeeeb23eTransfer299900702022-06-25 18:27:252 hrs 1 min ago0xff7396600146001a1da0bae6b8cd3ca60941c8b8 IN  Geopoly: GEO$ Token0 MATIC0.006725140094 102.625323815
0x15cab2e6dd97214b7a51dec4f39d2b4dd5f319c5e73f9b7f706222c56b446e65Approve299900232022-06-25 18:25:512 hrs 2 mins ago0x04eab620551431316c69bf71bc9c049e3ded03f7 IN  Geopoly: GEO$ Token0 MATIC0.0027785460
0xfa0bfb2676cdf33f2c923b56471e3a95397752dc4b00a8e8f295eade37166441Transfer299810962022-06-25 12:48:117 hrs 40 mins ago0x085b042532661d965deab854c34d4f3d975cdf56 IN  Geopoly: GEO$ Token0 MATIC0.00215645889344.559539076
0x07a6ef9edc1669070d5a7addc03b6e309bdf137b0691aa21aaa93bd45511198aTransfer299809972022-06-25 12:43:277 hrs 45 mins ago0x270707db805631990209db6583ab0fa73c72c373 IN  Geopoly: GEO$ Token0 MATIC0.0020874853 31.872437595
0x82487f9601ab92b52b3a4d0d535e65de2877c5d6d07811e9cea5d666400df994Transfer299763642022-06-25 9:34:0710 hrs 54 mins ago0xf76fa4f6b86eef882934e2c5e70ea45fbaed9271 IN  Geopoly: GEO$ Token0 MATIC0.010080313388208.137626498
0x54dc7e99f387c3c8c25db6997497bf46941586d8301aab4c326928d98af25273Transfer299762352022-06-25 9:29:0110 hrs 59 mins ago0xff7396600146001a1da0bae6b8cd3ca60941c8b8 IN  Geopoly: GEO$ Token0 MATIC0.043317775679 661.02723412
0x4b8f9152704163e057c48ef34e3dfa2e938cfc348de220f07a973ee5f99c814dApprove299747162022-06-25 8:20:2312 hrs 8 mins ago0x52125738a4ac48f5a620756e6c63dee6aa021562 IN  Geopoly: GEO$ Token0 MATIC0.000924315 35
0x01b7d8338904114927eba44cd5639e75f6bf05c5d66da3c4c8ca8af2fee6f4b3Approve299746772022-06-25 8:19:0512 hrs 9 mins ago0x52125738a4ac48f5a620756e6c63dee6aa021562 IN  Geopoly: GEO$ Token0 MATIC0.001022315 35
0xbc5d4a0b0c1b62d97ec59ab1e1b50bad0f5d24ac87d876f6344d48abbd2cd347Approve299658522022-06-25 2:13:2318 hrs 15 mins ago0x3f0e525bd35b1e620f9ac909913ba6b327b12014 IN  Geopoly: GEO$ Token0 MATIC0.003697320355 139.938698602
0x0cdcae308073f9639ca391e74706b8219b747453c5795ea6555230a0e8264e48Approve299658162022-06-25 2:11:5318 hrs 16 mins ago0x3f0e525bd35b1e620f9ac909913ba6b327b12014 IN  Geopoly: GEO$ Token0 MATIC0.006898798847 148.934583614
0x41eb861d56263d4e36cbb0ad780da0709287adebeedbb2cc4f1cc15d35a8e72dTransfer299597462022-06-24 22:07:0622 hrs 21 mins ago0x924e7293e0ea99608da60af6c6cc5b0a8bc67347 IN  Geopoly: GEO$ Token0 MATIC0.014468629349298.821317043
0xc11ef8ce6e898836cdb4e932c5a109934f1d10106526a5b57e7e788977fd87bcTransfer299595802022-06-24 22:01:2222 hrs 27 mins ago0x62fe491f87ae3b3169cb1c4fcb9b9049915ab204 IN  Geopoly: GEO$ Token0 MATIC0.00398101651360.761252673
0x5a3662d7ad6fa50eefc2b6ef3bb67dd16be402ac773960228b9c23da1404eefcApprove299547212022-06-24 18:42:191 day 1 hr ago0x6df672c3145a17ec54205571ba3967124375b8e2 IN  Geopoly: GEO$ Token0 MATIC0.001461658239 31.359999986
0x126a59b5e963a960fb3d4bd7aa0743ad467150010a3b814dbee4e7186a2afac0Approve299523562022-06-24 17:14:371 day 3 hrs ago0xb6d3f44d325c35e8434bf389efd9ee83b19ded54 IN  Geopoly: GEO$ Token0 MATIC0.001621235 35
0xd89b01ece879a569c663c4cab69acdba768f0a12c5bec15120f67cf43c3fa816Approve299449332022-06-24 12:42:011 day 7 hrs ago0x8980b12a3b3503a39c1688ab0e7370693991ea5e IN  Geopoly: GEO$ Token0 MATIC0.001621235 35
0xcaddc04adb0b7e6097de84cb98fdcb294964c9f068b3efd925d55073000782c9Approve299449022022-06-24 12:40:591 day 7 hrs ago0x8980b12a3b3503a39c1688ab0e7370693991ea5e IN  Geopoly: GEO$ Token0 MATIC0.001621235 35
0x419b0fb0cd917c877b321cba3d5afcc3e767bd1971020b9ee071bb08277a7bc9Transfer299439922022-06-24 12:07:171 day 8 hrs ago0x8980b12a3b3503a39c1688ab0e7370693991ea5e IN  Geopoly: GEO$ Token0 MATIC0.001595850001 30.000000031
0x49da55648d64902e1551739085920aa165573ec74775243161a442f6685aae19Transfer299439732022-06-24 12:06:391 day 8 hrs ago0x8980b12a3b3503a39c1688ab0e7370693991ea5e IN  Geopoly: GEO$ Token0 MATIC0.001595850001 30.000000027
0x9ac210dc95933decefbe5dc6f08b5a2b78b2f00dd98ba99cd9826a9508658278Approve299415102022-06-24 10:35:371 day 9 hrs ago0x098418ef7d16c6da7e42b7e5f2863d203a6e5dff IN  Geopoly: GEO$ Token0 MATIC0.00138927 30.000000016
0x13e5ade704c53b759dfe48f7ea3f6d35b4e77dc4ebed3ea235a61e91af19e30eApprove299403142022-06-24 9:50:131 day 10 hrs ago0xb5e4c5d3fd1ac0832ba9910eb7687b3a58f36637 IN  Geopoly: GEO$ Token0 MATIC0.001621235 35
0x0df7f1c2e49d3648153d8e12c3ec5a1e899b5144b925417a2afa35465bf82b52Approve299331362022-06-24 5:18:231 day 15 hrs ago0xcdb3fc38419616862ddf723a9fa8668e76bf0483 IN  Geopoly: GEO$ Token0 MATIC0.00146532399 31.63411824
0xe8f0f71fbe9a5426343abac20dcf9409d3efead91b01370515e0236c10882fc1Approve299283232022-06-24 2:15:111 day 18 hrs ago0xd436142c7ba90979fe549136583b7a598b10647c IN  Geopoly: GEO$ Token0 MATIC0.001650507543 35.411777622
0xc574b61f91119d42b0a1ea6c222450a4fa795fa47bc18f1f576dff777dcea73fApprove299282632022-06-24 2:11:151 day 18 hrs ago0xd436142c7ba90979fe549136583b7a598b10647c IN  Geopoly: GEO$ Token0 MATIC0.001797720521 38.800002618
0x50a858c85d94e6163aa22b5cc6ec627555f9e531d6c05cc694612c3d2b12e0f0Approve299213602022-06-23 21:58:381 day 22 hrs ago0x341f1e72733604bfaff4b69ff16b6d618d3cbbbe IN  Geopoly: GEO$ Token0 MATIC0.00349567575
[ Download CSV Export 

OVERVIEW

GEOPOLY is a geolocation economic simulator that allows users to rent and buy, upgrade and sell real-life businesses all around the world.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GEO20

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license, Audited

Contract Source Code (Solidity)Audit Report

/**
 *Submitted for verification at polygonscan.com on 2021-12-10
*/

/*
 $$$$$$\                         $$\    
$$  __$$\                      $$$$$$\  
$$ /  \__| $$$$$$\   $$$$$$\  $$  __$$\ 
$$ |$$$$\ $$  __$$\ $$  __$$\ $$ /  \__|
$$ |\_$$ |$$$$$$$$ |$$ /  $$ |\$$$$$$\  
$$ |  $$ |$$   ____|$$ |  $$ | \___ $$\ 
\$$$$$$  |\$$$$$$$\ \$$$$$$  |$$\  \$$ |
 \______/  \_______| \______/ \$$$$$$  |
                               \_$$  _/ 
                                 \ _/   
                                        
*/
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.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) {
        return msg.data;
    }
}


/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface GEOS20 {
    /**
     * @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 Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface GEOS20Metadata is GEOS20 {
    /**
     * @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);
}


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() {
        _transferOwnership(_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 {
        _transferOwnership(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");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

/**
 * @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 Contracts guidelines: functions revert
 * instead 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 GEO20 is Context, GEOS20, GEOS20Metadata, Ownable {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    bool noMoreMints;

    mapping(address => bool) private _whitelisted;
    mapping(address => bool) private _earlybirdList;

    mapping(address => bool) private _liqPools;
    mapping(uint256 => uint256[]) _txnTypeFees;

    bool public tokenGoLive;
    bool public earlyBirds;
    
    uint256 maxEBamount = 20000 ether;

    // check if the max of the fees is okay
    function checkFees(uint256[] memory _fees) internal pure{
        uint256 feMax = 30;
        for (uint256 i=0; i< _fees.length; i++){
            if(_fees[i] >= feMax){
                revert("Maximum on fees is 3%");
            }
        }
    }

    function initFees() internal{
        _txnTypeFees[0] = [0];
        _txnTypeFees[1] = [0];
        _txnTypeFees[2] = [0];
    }

    function isContract(address _addr) internal view returns (bool){
        uint32 size;
        assembly {
            size := extcodesize(_addr)
        }
        return (size > 0);
    }

    function setMaxEarlyBirdsAmount(uint256 amount) public onlyOwner {
        maxEBamount = amount;
    }
    
    function addLiquidityPool(address _pool) public onlyOwner {
        _liqPools[_pool] = true;
    }
    
    function removeLiquidityPool(address _pool) public onlyOwner {
        _liqPools[_pool] = false;
    }
    
    function removeWhitelist(address _wladdr) public onlyOwner {
        _whitelisted[_wladdr] = false;
    }
    
    function removeEarlyBird(address _earlyBird) public onlyOwner {
        _earlybirdList[_earlyBird] = false;
    }

    // change the fees for a particular TXN 
    function changeFee(uint256 _txnType,  uint256[] memory _newFees) public onlyOwner{
        checkFees(_newFees); 
        _txnTypeFees[_txnType] = _newFees;
    }   

    // add to the whitelisted addresses to use GEO$20 without any fees
    function addToWhitelist(address _wlAddr) public onlyOwner {
        _whitelisted[_wlAddr] = true;
    }
    // the only addresses which can trade the first 5 minutes of going live
    function addToEarlyBirds(address bird) public onlyOwner {
        require(!isContract(bird),"Cannot Add Smart Contracts to Early Birds");
        _earlybirdList[bird] = true;
    }

    // batch add to early birds
    function addBatchToEarlyBirds(address[] calldata birds) public onlyOwner {
        for (uint256 i=0 ; i<birds.length; i++){
            if(!isContract(birds[i])){
                _earlybirdList[birds[i]] = true;
            }
        }
    }

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default 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_, uint256 _maxSupply) {
        _whitelisted[msg.sender] = true;
        _liqPools[address(this)] = true;
        _mint(msg.sender, _maxSupply);
        _name = name_;
        _symbol = symbol_;
        initFees();
        noMoreMints = true;
    }

    /**
     * @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");
        unchecked {
            _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");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

     // get the taxes on transaction based on the txn type
    function taxOnTxns(uint256 _type, uint256 _amount) public view returns(uint256,uint256){
        uint256[] memory feeArr = _txnTypeFees[_type];
        uint256 feesPrecent = 0;
        for (uint256 i=0; i<feeArr.length; i++){
            feesPrecent+= feeArr[i];
        }
        uint256 _totalTax = calculateAmount(feesPrecent, _amount);
        return((_amount - _totalTax), _totalTax );
    }

    // calculate the value of the amount after dedcution
    function calculateAmount(uint256 _feePercentX10, uint256 _amount) public pure returns(uint256){
        // calculate the amount using th 1000 system
        return(((_feePercentX10 * _amount)/1000));
    }


    function arrangeTxn(uint256 _txnType, uint256 _txnAmount) public view returns(uint256 _amnt, uint256 _taxAmnt) {
        _amnt = _txnAmount;
        _taxAmnt = 0;
        (_amnt,_taxAmnt) = taxOnTxns(_txnType, _txnAmount);
    }


    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `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");
        uint256 _left = 0;
        uint256 _taxes = 0;
        
        if (_whitelisted[sender] || _whitelisted[recipient]){ 
            _left = amount;
        }else{
         require(tokenGoLive, "Token needs to be live before anybody can transfer");
         if(earlyBirds){
            require(_liqPools[sender] || _liqPools[recipient],"Only allowed exchanges And EarlyBirds can trade the first 5 minutes");
            require(_earlybirdList[sender] || _earlybirdList[recipient],"Only allowed exchanges And EarlyBirds can trade the first 5 minutes");
            require(amount <= maxEBamount);
         }
            if (_liqPools[sender]){
                (_left, _taxes) = arrangeTxn(0, amount);
            }else if (_liqPools[recipient]){
                (_left, _taxes) = arrangeTxn(1, amount);
            }else {
                (_left, _taxes) = arrangeTxn(2, amount);
          } 
        }

        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += _left;
        _balances[address(this)] += _taxes;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(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:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(!noMoreMints, "Cannot Mint anymore");
        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);

        _afterTokenTransfer(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");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

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

        _afterTokenTransfer(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 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 Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
    
    /**
     * 
     * @dev callable function only once for token to go live
     */
     function goLiveGeoS() public onlyOwner {
         tokenGoLive = true;
         earlyBirds =true;
     }
     
     /**
      * 
      * @dev callable function only once for token to be bought with `early birds`
      */
      function deActivateEarlyBirds() public onlyOwner {
          earlyBirds = false;
      }
    /**
     * 
     * @dev since there is a geos tax on meta-transactions
     * leaving a withdraw function to transfer the `ERC20` tokens
     * to the owner or any specified address is a good idea.
     * keeping in mind that the `mint` is done automatically to `msg.sender`
     * in the constructor
     */
      function withdrawGeos(address _to, uint256 _amount) public onlyOwner {
          require(transfer(_to, _amount));
      }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"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":"birds","type":"address[]"}],"name":"addBatchToEarlyBirds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bird","type":"address"}],"name":"addToEarlyBirds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wlAddr","type":"address"}],"name":"addToWhitelist","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"_txnType","type":"uint256"},{"internalType":"uint256","name":"_txnAmount","type":"uint256"}],"name":"arrangeTxn","outputs":[{"internalType":"uint256","name":"_amnt","type":"uint256"},{"internalType":"uint256","name":"_taxAmnt","type":"uint256"}],"stateMutability":"view","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":"_feePercentX10","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"calculateAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_txnType","type":"uint256"},{"internalType":"uint256[]","name":"_newFees","type":"uint256[]"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deActivateEarlyBirds","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":[],"name":"earlyBirds","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLiveGeoS","outputs":[],"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":[{"internalType":"address","name":"_earlyBird","type":"address"}],"name":"removeEarlyBird","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pool","type":"address"}],"name":"removeLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wladdr","type":"address"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxEarlyBirdsAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_type","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"taxOnTxns","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenGoLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawGeos","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405269043c33c1937564800000600c553480156200001f57600080fd5b5060405162001d8838038062001d888339810160408190526200004291620004e7565b6200004d33620000da565b3360008181526007602090815260408083208054600160ff19918216811790925530855260099093529220805490911690911790556200008e90826200012a565b8251620000a390600490602086019062000347565b508151620000b990600590602085019062000347565b50620000c462000268565b50506006805460ff1916600117905550620005d4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60065460ff1615620001835760405162461bcd60e51b815260206004820152601360248201527f43616e6e6f74204d696e7420616e796d6f72650000000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b038216620001db5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200017a565b8060036000828254620001ef91906200055a565b90915550506001600160a01b038216600090815260016020526040812080548392906200021e9084906200055a565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60408051602080820190925260008082528052600a909152620002af907f13da86008ba1c6922daee3e07db95305ef49ebced9f5467a0b8613fcc6b343e3906001620003d6565b506040805160208082019092526000808252600190819052600a909252620002fa917fbbc70db1b6c7afd11e79c0fb0051300458f1a3acb8ee9789d9b6b26c61ad9bc79190620003d6565b50604080516020808201909252600080825260029052600a90915262000344907fbff4442b8ed600beeb8e26b1279a0f0d14c6edfaec26d968ee13c86f7d4c2ba8906001620003d6565b50565b828054620003559062000581565b90600052602060002090601f016020900481019282620003795760008555620003c4565b82601f106200039457805160ff1916838001178555620003c4565b82800160010185558215620003c4579182015b82811115620003c4578251825591602001919060010190620003a7565b50620003d292915062000419565b5090565b828054828255906000526020600020908101928215620003c4579160200282015b82811115620003c4578251829060ff16905591602001919060010190620003f7565b5b80821115620003d257600081556001016200041a565b600082601f8301126200044257600080fd5b81516001600160401b03808211156200045f576200045f620005be565b604051601f8301601f19908116603f011681019082821181831017156200048a576200048a620005be565b81604052838152602092508683858801011115620004a757600080fd5b600091505b83821015620004cb5785820183015181830184015290820190620004ac565b83821115620004dd5760008385830101525b9695505050505050565b600080600060608486031215620004fd57600080fd5b83516001600160401b03808211156200051557600080fd5b620005238783880162000430565b945060208601519150808211156200053a57600080fd5b50620005498682870162000430565b925050604084015190509250925092565b600082198211156200057c57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200059657607f821691505b60208210811415620005b857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b6117a480620005e46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063832cbd1e1161010f578063b01c4085116100a2578063e4e032cd11610071578063e4e032cd14610429578063ee6a934c1461043c578063ef61b0c41461044f578063f2fde38b1461046257600080fd5b8063b01c4085146103b7578063cbcd5582146103ca578063dd62ed3e146103dd578063e43252d71461041657600080fd5b806398cef4bd116100de57806398cef4bd1461036c578063a457c2d71461037e578063a9059cbb14610391578063ae22107f146103a457600080fd5b8063832cbd1e1461032e5780638da5cb5b14610336578063902d840c1461035157806395d89b411461036457600080fd5b80634616d171116101875780636cfbc0f1116101565780636cfbc0f1146102d757806370a08231146102ea578063715018a61461031357806378c8cda71461031b57600080fd5b80634616d1711461028757806354cd7c211461028f57806356244a6e146102b7578063583f1339146102c457600080fd5b806318160ddd116101c357806318160ddd1461024057806323b872dd14610252578063313ce56714610265578063395093511461027457600080fd5b806306fdde03146101ea578063095ea7b3146102085780630e7843061461022b575b600080fd5b6101f2610475565b6040516101ff9190611573565b60405180910390f35b61021b6102163660046113c8565b610507565b60405190151581526020016101ff565b61023e61023936600461133e565b61051d565b005b6003545b6040519081526020016101ff565b61021b61026036600461138c565b6105db565b604051601281526020016101ff565b61021b6102823660046113c8565b610685565b61023e6106c1565b6102a261029d366004611551565b6106f8565b604080519283526020830191909152016101ff565b600b5461021b9060ff1681565b6102a26102d2366004611551565b6107c2565b61023e6102e53660046113c8565b6107da565b6102446102f836600461133e565b6001600160a01b031660009081526001602052604090205490565b61023e61081b565b61023e61032936600461133e565b610851565b61023e61089c565b6000546040516001600160a01b0390911681526020016101ff565b61023e61035f366004611467565b6108d7565b6101f2610906565b600b5461021b90610100900460ff1681565b61021b61038c3660046113c8565b610915565b61021b61039f3660046113c8565b6109ae565b61023e6103b236600461133e565b6109bb565b61023e6103c536600461133e565b610a06565b6102446103d8366004611551565b610a51565b6102446103eb366004611359565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b61023e61042436600461133e565b610a71565b61023e6104373660046113f2565b610abf565b61023e61044a36600461133e565b610b9b565b61023e61045d366004611480565b610be9565b61023e61047036600461133e565b610c3b565b606060048054610484906116d6565b80601f01602080910402602001604051908101604052809291908181526020018280546104b0906116d6565b80156104fd5780601f106104d2576101008083540402835291602001916104fd565b820191906000526020600020905b8154815290600101906020018083116104e057829003601f168201915b5050505050905090565b6000610514338484610cd6565b50600192915050565b6000546001600160a01b031633146105505760405162461bcd60e51b815260040161054790611631565b60405180910390fd5b803b63ffffffff16156105b75760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f742041646420536d61727420436f6e74726163747320746f204561604482015268726c7920426972647360b81b6064820152608401610547565b6001600160a01b03166000908152600860205260409020805460ff19166001179055565b60006105e8848484610dfa565b6001600160a01b03841660009081526002602090815260408083203384529091529020548281101561066d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610547565b61067a8533858403610cd6565b506001949350505050565b3360008181526002602090815260408083206001600160a01b038716845290915281205490916105149185906106bc908690611666565b610cd6565b6000546001600160a01b031633146106eb5760405162461bcd60e51b815260040161054790611631565b600b805461ff0019169055565b6000828152600a6020908152604080832080548251818502810185019093528083528493849392919083018282801561075057602002820191906000526020600020905b81548152602001906001019080831161073c575b505050505090506000805b825181101561079d5782818151811061077657610776611742565b6020026020010151826107899190611666565b91508061079581611711565b91505061075b565b5060006107aa8287610a51565b90506107b681876116bf565b97909650945050505050565b8060006107cf84836106f8565b909590945092505050565b6000546001600160a01b031633146108045760405162461bcd60e51b815260040161054790611631565b61080e82826109ae565b61081757600080fd5b5050565b6000546001600160a01b031633146108455760405162461bcd60e51b815260040161054790611631565b61084f60006111f2565b565b6000546001600160a01b0316331461087b5760405162461bcd60e51b815260040161054790611631565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b031633146108c65760405162461bcd60e51b815260040161054790611631565b600b805461ffff1916610101179055565b6000546001600160a01b031633146109015760405162461bcd60e51b815260040161054790611631565b600c55565b606060058054610484906116d6565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156109975760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610547565b6109a43385858403610cd6565b5060019392505050565b6000610514338484610dfa565b6000546001600160a01b031633146109e55760405162461bcd60e51b815260040161054790611631565b6001600160a01b03166000908152600960205260409020805460ff19169055565b6000546001600160a01b03163314610a305760405162461bcd60e51b815260040161054790611631565b6001600160a01b03166000908152600860205260409020805460ff19169055565b60006103e8610a6083856116a0565b610a6a919061167e565b9392505050565b6000546001600160a01b03163314610a9b5760405162461bcd60e51b815260040161054790611631565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000546001600160a01b03163314610ae95760405162461bcd60e51b815260040161054790611631565b60005b81811015610b9657610b2a838383818110610b0957610b09611742565b9050602002016020810190610b1e919061133e565b3b63ffffffff16151590565b610b8457600160086000858585818110610b4657610b46611742565b9050602002016020810190610b5b919061133e565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b80610b8e81611711565b915050610aec565b505050565b6000546001600160a01b03163314610bc55760405162461bcd60e51b815260040161054790611631565b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000546001600160a01b03163314610c135760405162461bcd60e51b815260040161054790611631565b610c1c81611242565b6000828152600a602090815260409091208251610b96928401906112c2565b6000546001600160a01b03163314610c655760405162461bcd60e51b815260040161054790611631565b6001600160a01b038116610cca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610547565b610cd3816111f2565b50565b6001600160a01b038316610d385760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610547565b6001600160a01b038216610d995760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610547565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e5e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610547565b6001600160a01b038216610ec05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610547565b6001600160a01b03831660009081526001602052604090205481811015610f385760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610547565b6001600160a01b038416600090815260076020526040812054819060ff1680610f7957506001600160a01b03851660009081526007602052604090205460ff165b15610f865783915061113b565b600b5460ff16610ff35760405162461bcd60e51b815260206004820152603260248201527f546f6b656e206e6565647320746f206265206c697665206265666f726520616e6044820152713cb137b23c9031b0b7103a3930b739b332b960711b6064820152608401610547565b600b54610100900460ff16156110c8576001600160a01b03861660009081526009602052604090205460ff168061104257506001600160a01b03851660009081526009602052604090205460ff165b61105e5760405162461bcd60e51b8152600401610547906115c8565b6001600160a01b03861660009081526008602052604090205460ff168061109d57506001600160a01b03851660009081526008602052604090205460ff165b6110b95760405162461bcd60e51b8152600401610547906115c8565b600c548411156110c857600080fd5b6001600160a01b03861660009081526009602052604090205460ff16156110fe576110f46000856107c2565b909250905061113b565b6001600160a01b03851660009081526009602052604090205460ff161561112a576110f46001856107c2565b6111356002856107c2565b90925090505b6001600160a01b03808716600090815260016020526040808220878703905591871681529081208054849290611172908490611666565b90915550503060009081526001602052604081208054839290611196908490611666565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516111e291815260200190565b60405180910390a3505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b601e60005b8251811015610b96578183828151811061126357611263611742565b6020026020010151106112b05760405162461bcd60e51b81526020600482015260156024820152744d6178696d756d206f6e206665657320697320332560581b6044820152606401610547565b806112ba81611711565b915050611247565b8280548282559060005260206000209081019282156112fd579160200282015b828111156112fd5782518255916020019190600101906112e2565b5061130992915061130d565b5090565b5b80821115611309576000815560010161130e565b80356001600160a01b038116811461133957600080fd5b919050565b60006020828403121561135057600080fd5b610a6a82611322565b6000806040838503121561136c57600080fd5b61137583611322565b915061138360208401611322565b90509250929050565b6000806000606084860312156113a157600080fd5b6113aa84611322565b92506113b860208501611322565b9150604084013590509250925092565b600080604083850312156113db57600080fd5b6113e483611322565b946020939093013593505050565b6000806020838503121561140557600080fd5b823567ffffffffffffffff8082111561141d57600080fd5b818501915085601f83011261143157600080fd5b81358181111561144057600080fd5b8660208260051b850101111561145557600080fd5b60209290920196919550909350505050565b60006020828403121561147957600080fd5b5035919050565b6000806040838503121561149357600080fd5b8235915060208084013567ffffffffffffffff808211156114b357600080fd5b818601915086601f8301126114c757600080fd5b8135818111156114d9576114d9611758565b8060051b604051601f19603f830116810181811085821117156114fe576114fe611758565b604052828152858101935084860182860187018b101561151d57600080fd5b600095505b83861015611540578035855260019590950194938601938601611522565b508096505050505050509250929050565b6000806040838503121561156457600080fd5b50508035926020909101359150565b600060208083528351808285015260005b818110156115a057858101830151858201604001528201611584565b818111156115b2576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526043908201527f4f6e6c7920616c6c6f7765642065786368616e67657320416e64204561726c7960408201527f42697264732063616e207472616465207468652066697273742035206d696e7560608201526274657360e81b608082015260a00190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156116795761167961172c565b500190565b60008261169b57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156116ba576116ba61172c565b500290565b6000828210156116d1576116d161172c565b500390565b600181811c908216806116ea57607f821691505b6020821081141561170b57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156117255761172561172c565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212209ac2b229e53beaa990a1d6af8c971ad9205ba9f1c1502fb33f672f8154de2e8964736f6c63430008070033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000033b2e3c9fd0803ce8000000000000000000000000000000000000000000000000000000000000000000000747454f504f4c5900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447454f2400000000000000000000000000000000000000000000000000000000

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000033b2e3c9fd0803ce8000000000000000000000000000000000000000000000000000000000000000000000747454f504f4c5900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447454f2400000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): GEOPOLY
Arg [1] : symbol_ (string): GEO$
Arg [2] : _maxSupply (uint256): 1000000000000000000000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000033b2e3c9fd0803ce8000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [4] : 47454f504f4c5900000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 47454f2400000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

7677:16394:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11192:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13359:169;;;;;;:::i;:::-;;:::i;:::-;;;3870:14:1;;3863:22;3845:41;;3833:2;3818:18;13359:169:0;3705:187:1;10021:183:0;;;;;;:::i;:::-;;:::i;:::-;;12312:108;12400:12;;12312:108;;;9908:25:1;;;9896:2;9881:18;12312:108:0;9762:177:1;14010:492:0;;;;;;:::i;:::-;;:::i;12154:93::-;;;12237:2;10339:36:1;;10327:2;10312:18;12154:93:0;10197:184:1;14911:215:0;;;;;;:::i;:::-;;:::i;23520:90::-;;;:::i;16110:404::-;;;;;;:::i;:::-;;:::i;:::-;;;;10118:25:1;;;10174:2;10159:18;;10152:34;;;;10091:18;16110:404:0;9944:248:1;8199:23:0;;;;;;;;;16798:232;;;;;;:::i;:::-;;:::i;23939:123::-;;;;;;:::i;:::-;;:::i;12483:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;12584:18:0;12557:7;12584:18;;;:9;:18;;;;;;;12483:127;5662:103;;;:::i;9298:107::-;;;;;;:::i;:::-;;:::i;23285:106::-;;;:::i;5011:87::-;5057:7;5084:6;5011:87;;-1:-1:-1;;;;;5084:6:0;;;3643:51:1;;3631:2;3616:18;5011:87:0;3497:203:1;8954:104:0;;;;;;:::i;:::-;;:::i;11411:::-;;;:::i;8229:22::-;;;;;;;;;;;;15629:413;;;;;;:::i;:::-;;:::i;12823:175::-;;;;;;:::i;:::-;;:::i;9182:104::-;;;;;;:::i;:::-;;:::i;9417:115::-;;;;;;:::i;:::-;;:::i;16580:208::-;;;;;;:::i;:::-;;:::i;13061:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;13177:18:0;;;13150:7;13177:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13061:151;9833:105;;;;;;:::i;:::-;;:::i;10245:247::-;;;;;;:::i;:::-;;:::i;9070:100::-;;;;;;:::i;:::-;;:::i;9586:164::-;;;;;;:::i;:::-;;:::i;5920:201::-;;;;;;:::i;:::-;;:::i;11192:100::-;11246:13;11279:5;11272:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11192:100;:::o;13359:169::-;13442:4;13459:39;1166:10;13482:7;13491:6;13459:8;:39::i;:::-;-1:-1:-1;13516:4:0;13359:169;;;;:::o;10021:183::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;;;;;;;;;8882:18;;8929:8;;;10088:70:::1;;;::::0;-1:-1:-1;;;10088:70:0;;9148:2:1;10088:70:0::1;::::0;::::1;9130:21:1::0;9187:2;9167:18;;;9160:30;9226:34;9206:18;;;9199:62;-1:-1:-1;;;9277:18:1;;;9270:39;9326:19;;10088:70:0::1;8946:405:1::0;10088:70:0::1;-1:-1:-1::0;;;;;10169:20:0::1;;::::0;;;:14:::1;:20;::::0;;;;:27;;-1:-1:-1;;10169:27:0::1;10192:4;10169:27;::::0;;10021:183::o;14010:492::-;14150:4;14167:36;14177:6;14185:9;14196:6;14167:9;:36::i;:::-;-1:-1:-1;;;;;14243:19:0;;14216:24;14243:19;;;:11;:19;;;;;;;;1166:10;14243:33;;;;;;;;14295:26;;;;14287:79;;;;-1:-1:-1;;;14287:79:0;;7217:2:1;14287:79:0;;;7199:21:1;7256:2;7236:18;;;7229:30;7295:34;7275:18;;;7268:62;-1:-1:-1;;;7346:18:1;;;7339:38;7394:19;;14287:79:0;7015:404:1;14287:79:0;14402:57;14411:6;1166:10;14452:6;14433:16;:25;14402:8;:57::i;:::-;-1:-1:-1;14490:4:0;;14010:492;-1:-1:-1;;;;14010:492:0:o;14911:215::-;1166:10;14999:4;15048:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15048:34:0;;;;;;;;;;14999:4;;15016:80;;15039:7;;15048:47;;15085:10;;15048:47;:::i;:::-;15016:8;:80::i;23520:90::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;23582:10:::1;:18:::0;;-1:-1:-1;;23582:18:0::1;::::0;;23520:90::o;16110:404::-;16181:7;16234:19;;;:12;:19;;;;;;;;16208:45;;;;;;;;;;;;;;;;;16181:7;;;;16208:45;16234:19;16208:45;;;16234:19;16208:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16264:19;16303:9;16298:89;16318:6;:13;16316:1;:15;16298:89;;;16366:6;16373:1;16366:9;;;;;;;;:::i;:::-;;;;;;;16352:23;;;;;:::i;:::-;;-1:-1:-1;16333:3:0;;;;:::i;:::-;;;;16298:89;;;;16397:17;16417:37;16433:11;16446:7;16417:15;:37::i;:::-;16397:57;-1:-1:-1;16473:19:0;16397:57;16473:7;:19;:::i;:::-;16465:41;16495:9;;-1:-1:-1;16110:404:0;-1:-1:-1;;;;;16110:404:0:o;16798:232::-;16928:10;16876:13;16991:31;17001:8;16928:10;16991:9;:31::i;:::-;16972:50;;;;-1:-1:-1;16798:232:0;-1:-1:-1;;;16798:232:0:o;23939:123::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;24029:22:::1;24038:3;24043:7;24029:8;:22::i;:::-;24021:31;;;::::0;::::1;;23939:123:::0;;:::o;5662:103::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;5727:30:::1;5754:1;5727:18;:30::i;:::-;5662:103::o:0;9298:107::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9368:21:0::1;9392:5;9368:21:::0;;;:12:::1;:21;::::0;;;;:29;;-1:-1:-1;;9368:29:0::1;::::0;;9298:107::o;23285:106::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;23336:11:::1;:18:::0;;-1:-1:-1;;23366:16:0;;;;;23285:106::o;8954:104::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;9030:11:::1;:20:::0;8954:104::o;11411:::-;11467:13;11500:7;11493:14;;;;;:::i;15629:413::-;1166:10;15722:4;15766:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15766:34:0;;;;;;;;;;15819:35;;;;15811:85;;;;-1:-1:-1;;;15811:85:0;;9558:2:1;15811:85:0;;;9540:21:1;9597:2;9577:18;;;9570:30;9636:34;9616:18;;;9609:62;-1:-1:-1;;;9687:18:1;;;9680:35;9732:19;;15811:85:0;9356:401:1;15811:85:0;15932:67;1166:10;15955:7;15983:15;15964:16;:34;15932:8;:67::i;:::-;-1:-1:-1;16030:4:0;;15629:413;-1:-1:-1;;;15629:413:0:o;12823:175::-;12909:4;12926:42;1166:10;12950:9;12961:6;12926:9;:42::i;9182:104::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9254:16:0::1;9273:5;9254:16:::0;;;:9:::1;:16;::::0;;;;:24;;-1:-1:-1;;9254:24:0::1;::::0;;9182:104::o;9417:115::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9490:26:0::1;9519:5;9490:26:::0;;;:14:::1;:26;::::0;;;;:34;;-1:-1:-1;;9490:34:0::1;::::0;;9417:115::o;16580:208::-;16666:7;16774:4;16748:24;16765:7;16748:14;:24;:::i;:::-;16747:31;;;;:::i;:::-;16739:41;16580:208;-1:-1:-1;;;16580:208:0:o;9833:105::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9902:21:0::1;;::::0;;;:12:::1;:21;::::0;;;;:28;;-1:-1:-1;;9902:28:0::1;9926:4;9902:28;::::0;;9833:105::o;10245:247::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;10334:9:::1;10329:156;10348:14:::0;;::::1;10329:156;;;10387:20;10398:5;;10404:1;10398:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8882:18:::0;8929:8;;;;;8754:192;10387:20:::1;10383:91;;10454:4;10427:14;:24;10442:5;;10448:1;10442:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10427:24:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10427:24:0;:31;;-1:-1:-1;;10427:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10383:91:::1;10364:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10329:156;;;;10245:247:::0;;:::o;9070:100::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9139:16:0::1;;::::0;;;:9:::1;:16;::::0;;;;:23;;-1:-1:-1;;9139:23:0::1;9158:4;9139:23;::::0;;9070:100::o;9586:164::-;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;9678:19:::1;9688:8;9678:9;:19::i;:::-;9709:22;::::0;;;:12:::1;:22;::::0;;;;;;;:33;;::::1;::::0;;::::1;::::0;::::1;:::i;5920:201::-:0;5057:7;5084:6;-1:-1:-1;;;;;5084:6:0;1166:10;5231:23;5223:68;;;;-1:-1:-1;;;5223:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6009:22:0;::::1;6001:73;;;::::0;-1:-1:-1;;;6001:73:0;;5581:2:1;6001:73:0::1;::::0;::::1;5563:21:1::0;5620:2;5600:18;;;5593:30;5659:34;5639:18;;;5632:62;-1:-1:-1;;;5710:18:1;;;5703:36;5756:19;;6001:73:0::1;5379:402:1::0;6001:73:0::1;6085:28;6104:8;6085:18;:28::i;:::-;5920:201:::0;:::o;21350:380::-;-1:-1:-1;;;;;21486:19:0;;21478:68;;;;-1:-1:-1;;;21478:68:0;;8393:2:1;21478:68:0;;;8375:21:1;8432:2;8412:18;;;8405:30;8471:34;8451:18;;;8444:62;-1:-1:-1;;;8522:18:1;;;8515:34;8566:19;;21478:68:0;8191:400:1;21478:68:0;-1:-1:-1;;;;;21565:21:0;;21557:68;;;;-1:-1:-1;;;21557:68:0;;5988:2:1;21557:68:0;;;5970:21:1;6027:2;6007:18;;;6000:30;6066:34;6046:18;;;6039:62;-1:-1:-1;;;6117:18:1;;;6110:32;6159:19;;21557:68:0;5786:398:1;21557:68:0;-1:-1:-1;;;;;21638:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21690:32;;9908:25:1;;;21690:32:0;;9881:18:1;21690:32:0;;;;;;;21350:380;;;:::o;17522:1725::-;-1:-1:-1;;;;;17662:20:0;;17654:70;;;;-1:-1:-1;;;17654:70:0;;7987:2:1;17654:70:0;;;7969:21:1;8026:2;8006:18;;;7999:30;8065:34;8045:18;;;8038:62;-1:-1:-1;;;8116:18:1;;;8109:35;8161:19;;17654:70:0;7785:401:1;17654:70:0;-1:-1:-1;;;;;17743:23:0;;17735:71;;;;-1:-1:-1;;;17735:71:0;;4701:2:1;17735:71:0;;;4683:21:1;4740:2;4720:18;;;4713:30;4779:34;4759:18;;;4752:62;-1:-1:-1;;;4830:18:1;;;4823:33;4873:19;;17735:71:0;4499:399:1;17735:71:0;-1:-1:-1;;;;;17921:17:0;;17897:21;17921:17;;;:9;:17;;;;;;17957:23;;;;17949:74;;;;-1:-1:-1;;;17949:74:0;;6810:2:1;17949:74:0;;;6792:21:1;6849:2;6829:18;;;6822:30;6888:34;6868:18;;;6861:62;-1:-1:-1;;;6939:18:1;;;6932:36;6985:19;;17949:74:0;6608:402:1;17949:74:0;-1:-1:-1;;;;;18105:20:0;;18034:13;18105:20;;;:12;:20;;;;;;18034:13;;18105:20;;;:47;;-1:-1:-1;;;;;;18129:23:0;;;;;;:12;:23;;;;;;;;18105:47;18101:851;;;18177:6;18169:14;;18101:851;;;18219:11;;;;18211:74;;;;-1:-1:-1;;;18211:74:0;;6391:2:1;18211:74:0;;;6373:21:1;6430:2;6410:18;;;6403:30;6469:34;6449:18;;;6442:62;-1:-1:-1;;;6520:18:1;;;6513:48;6578:19;;18211:74:0;6189:414:1;18211:74:0;18300:10;;;;;;;18297:352;;;-1:-1:-1;;;;;18334:17:0;;;;;;:9;:17;;;;;;;;;:41;;-1:-1:-1;;;;;;18355:20:0;;;;;;:9;:20;;;;;;;;18334:41;18326:120;;;;-1:-1:-1;;;18326:120:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18469:22:0;;;;;;:14;:22;;;;;;;;;:51;;-1:-1:-1;;;;;;18495:25:0;;;;;;:14;:25;;;;;;;;18469:51;18461:130;;;;-1:-1:-1;;;18461:130:0;;;;;;;:::i;:::-;18624:11;;18614:6;:21;;18606:30;;;;;;-1:-1:-1;;;;;18667:17:0;;;;;;:9;:17;;;;;;;;18663:277;;;18722:21;18733:1;18736:6;18722:10;:21::i;:::-;18704:39;;-1:-1:-1;18704:39:0;-1:-1:-1;18663:277:0;;;-1:-1:-1;;;;;18768:20:0;;;;;;:9;:20;;;;;;;;18764:176;;;18826:21;18837:1;18840:6;18826:10;:21::i;18764:176::-;18905:21;18916:1;18919:6;18905:10;:21::i;:::-;18887:39;;-1:-1:-1;18887:39:0;-1:-1:-1;18764:176:0;-1:-1:-1;;;;;18989:17:0;;;;;;;:9;:17;;;;;;19009:22;;;18989:42;;19053:20;;;;;;;;:29;;19077:5;;18989:17;19053:29;;19077:5;;19053:29;:::i;:::-;;;;-1:-1:-1;;19111:4:0;19093:24;;;;:9;:24;;;;;:34;;19121:6;;19093:24;:34;;19121:6;;19093:34;:::i;:::-;;;;;;;;19162:9;-1:-1:-1;;;;;19145:35:0;19154:6;-1:-1:-1;;;;;19145:35:0;;19173:6;19145:35;;;;9908:25:1;;9896:2;9881:18;;9762:177;19145:35:0;;;;;;;;17643:1604;;;17522:1725;;;:::o;6281:191::-;6355:16;6374:6;;-1:-1:-1;;;;;6391:17:0;;;-1:-1:-1;;;;;;6391:17:0;;;;;;6424:40;;6374:6;;;;;;;6424:40;;6355:16;6424:40;6344:128;6281:191;:::o;8351:255::-;8434:2;8418:13;8447:152;8468:5;:12;8465:1;:15;8447:152;;;8516:5;8504;8510:1;8504:8;;;;;;;;:::i;:::-;;;;;;;:17;8501:87;;8541:31;;-1:-1:-1;;;8541:31:0;;8798:2:1;8541:31:0;;;8780:21:1;8837:2;8817:18;;;8810:30;-1:-1:-1;;;8856:18:1;;;8849:51;8917:18;;8541:31:0;8596:345:1;8501:87:0;8482:3;;;;:::i;:::-;;;;8447:152;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:173:1;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:260::-;451:6;459;512:2;500:9;491:7;487:23;483:32;480:52;;;528:1;525;518:12;480:52;551:29;570:9;551:29;:::i;:::-;541:39;;599:38;633:2;622:9;618:18;599:38;:::i;:::-;589:48;;383:260;;;;;:::o;648:328::-;725:6;733;741;794:2;782:9;773:7;769:23;765:32;762:52;;;810:1;807;800:12;762:52;833:29;852:9;833:29;:::i;:::-;823:39;;881:38;915:2;904:9;900:18;881:38;:::i;:::-;871:48;;966:2;955:9;951:18;938:32;928:42;;648:328;;;;;:::o;981:254::-;1049:6;1057;1110:2;1098:9;1089:7;1085:23;1081:32;1078:52;;;1126:1;1123;1116:12;1078:52;1149:29;1168:9;1149:29;:::i;:::-;1139:39;1225:2;1210:18;;;;1197:32;;-1:-1:-1;;;981:254:1:o;1240:615::-;1326:6;1334;1387:2;1375:9;1366:7;1362:23;1358:32;1355:52;;;1403:1;1400;1393:12;1355:52;1443:9;1430:23;1472:18;1513:2;1505:6;1502:14;1499:34;;;1529:1;1526;1519:12;1499:34;1567:6;1556:9;1552:22;1542:32;;1612:7;1605:4;1601:2;1597:13;1593:27;1583:55;;1634:1;1631;1624:12;1583:55;1674:2;1661:16;1700:2;1692:6;1689:14;1686:34;;;1716:1;1713;1706:12;1686:34;1769:7;1764:2;1754:6;1751:1;1747:14;1743:2;1739:23;1735:32;1732:45;1729:65;;;1790:1;1787;1780:12;1729:65;1821:2;1813:11;;;;;1843:6;;-1:-1:-1;1240:615:1;;-1:-1:-1;;;;1240:615:1:o;1860:180::-;1919:6;1972:2;1960:9;1951:7;1947:23;1943:32;1940:52;;;1988:1;1985;1978:12;1940:52;-1:-1:-1;2011:23:1;;1860:180;-1:-1:-1;1860:180:1:o;2045:1194::-;2138:6;2146;2199:2;2187:9;2178:7;2174:23;2170:32;2167:52;;;2215:1;2212;2205:12;2167:52;2251:9;2238:23;2228:33;;2280:2;2333;2322:9;2318:18;2305:32;2356:18;2397:2;2389:6;2386:14;2383:34;;;2413:1;2410;2403:12;2383:34;2451:6;2440:9;2436:22;2426:32;;2496:7;2489:4;2485:2;2481:13;2477:27;2467:55;;2518:1;2515;2508:12;2467:55;2554:2;2541:16;2576:2;2572;2569:10;2566:36;;;2582:18;;:::i;:::-;2628:2;2625:1;2621:10;2660:2;2654:9;2723:2;2719:7;2714:2;2710;2706:11;2702:25;2694:6;2690:38;2778:6;2766:10;2763:22;2758:2;2746:10;2743:18;2740:46;2737:72;;;2789:18;;:::i;:::-;2825:2;2818:22;2875:18;;;2909:15;;;;-1:-1:-1;2944:11:1;;;2974;;;2970:20;;2967:33;-1:-1:-1;2964:53:1;;;3013:1;3010;3003:12;2964:53;3035:1;3026:10;;3045:163;3059:2;3056:1;3053:9;3045:163;;;3116:17;;3104:30;;3077:1;3070:9;;;;;3154:12;;;;3186;;3045:163;;;3049:3;3227:6;3217:16;;;;;;;;2045:1194;;;;;:::o;3244:248::-;3312:6;3320;3373:2;3361:9;3352:7;3348:23;3344:32;3341:52;;;3389:1;3386;3379:12;3341:52;-1:-1:-1;;3412:23:1;;;3482:2;3467:18;;;3454:32;;-1:-1:-1;3244:248:1:o;3897:597::-;4009:4;4038:2;4067;4056:9;4049:21;4099:6;4093:13;4142:6;4137:2;4126:9;4122:18;4115:34;4167:1;4177:140;4191:6;4188:1;4185:13;4177:140;;;4286:14;;;4282:23;;4276:30;4252:17;;;4271:2;4248:26;4241:66;4206:10;;4177:140;;;4335:6;4332:1;4329:13;4326:91;;;4405:1;4400:2;4391:6;4380:9;4376:22;4372:31;4365:42;4326:91;-1:-1:-1;4478:2:1;4457:15;-1:-1:-1;;4453:29:1;4438:45;;;;4485:2;4434:54;;3897:597;-1:-1:-1;;;3897:597:1:o;4903:471::-;5105:2;5087:21;;;5144:2;5124:18;;;5117:30;5183:34;5178:2;5163:18;;5156:62;5254:34;5249:2;5234:18;;5227:62;-1:-1:-1;;;5320:3:1;5305:19;;5298:34;5364:3;5349:19;;4903:471::o;7424:356::-;7626:2;7608:21;;;7645:18;;;7638:30;7704:34;7699:2;7684:18;;7677:62;7771:2;7756:18;;7424:356::o;10386:128::-;10426:3;10457:1;10453:6;10450:1;10447:13;10444:39;;;10463:18;;:::i;:::-;-1:-1:-1;10499:9:1;;10386:128::o;10519:217::-;10559:1;10585;10575:132;;10629:10;10624:3;10620:20;10617:1;10610:31;10664:4;10661:1;10654:15;10692:4;10689:1;10682:15;10575:132;-1:-1:-1;10721:9:1;;10519:217::o;10741:168::-;10781:7;10847:1;10843;10839:6;10835:14;10832:1;10829:21;10824:1;10817:9;10810:17;10806:45;10803:71;;;10854:18;;:::i;:::-;-1:-1:-1;10894:9:1;;10741:168::o;10914:125::-;10954:4;10982:1;10979;10976:8;10973:34;;;10987:18;;:::i;:::-;-1:-1:-1;11024:9:1;;10914:125::o;11044:380::-;11123:1;11119:12;;;;11166;;;11187:61;;11241:4;11233:6;11229:17;11219:27;;11187:61;11294:2;11286:6;11283:14;11263:18;11260:38;11257:161;;;11340:10;11335:3;11331:20;11328:1;11321:31;11375:4;11372:1;11365:15;11403:4;11400:1;11393:15;11257:161;;11044:380;;;:::o;11429:135::-;11468:3;-1:-1:-1;;11489:17:1;;11486:43;;;11509:18;;:::i;:::-;-1:-1:-1;11556:1:1;11545:13;;11429:135::o;11569:127::-;11630:10;11625:3;11621:20;11618:1;11611:31;11661:4;11658:1;11651:15;11685:4;11682:1;11675:15;11701:127;11762:10;11757:3;11753:20;11750:1;11743:31;11793:4;11790:1;11783:15;11817:4;11814:1;11807:15;11833:127;11894:10;11889:3;11885:20;11882:1;11875:31;11925:4;11922:1;11915:15;11949:4;11946:1;11939:15

Swarm Source

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