ETH Price: $3,313.66 (-3.50%)
Gas: 21 Gwei

Contract

0x59822e3206b793cF2d305bF2F7A0A89fFD6D9fA5
 

Overview

ETH Balance

0.00146871446347714 ETH

Eth Value

$4.87 (@ $3,313.66/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Claim150665712022-07-03 1:26:16731 days ago1656811576IN
0x59822e32...fFD6D9fA5
0 ETH0.000389635.68970044
Claim148673132022-05-29 15:47:04765 days ago1653839224IN
0x59822e32...fFD6D9fA5
0 ETH0.0010042414.66353988
Claim148632752022-05-28 23:59:34766 days ago1653782374IN
0x59822e32...fFD6D9fA5
0 ETH0.000259229
Claim147855292022-05-16 9:48:16779 days ago1652694496IN
0x59822e32...fFD6D9fA5
0 ETH0.0006824613.27750371
Claim147493842022-05-10 15:32:29784 days ago1652196749IN
0x59822e32...fFD6D9fA5
0 ETH0.0042992962.28789094
Claim147429612022-05-09 14:35:22785 days ago1652106922IN
0x59822e32...fFD6D9fA5
0 ETH0.0022552743.87873356
Claim147398682022-05-09 2:45:54786 days ago1652064354IN
0x59822e32...fFD6D9fA5
0 ETH0.0010241535.55719919
Claim147398682022-05-09 2:45:54786 days ago1652064354IN
0x59822e32...fFD6D9fA5
0 ETH0.0018025735.05719919
Claim147363082022-05-08 13:16:47787 days ago1652015807IN
0x59822e32...fFD6D9fA5
0 ETH0.0025195836.49303508
Claim147329502022-05-08 0:27:08787 days ago1651969628IN
0x59822e32...fFD6D9fA5
0 ETH0.0012551118.18720328
Claim147314382022-05-07 18:40:21787 days ago1651948821IN
0x59822e32...fFD6D9fA5
0 ETH0.0021382930.97947782
Claim147292152022-05-07 10:15:15788 days ago1651918515IN
0x59822e32...fFD6D9fA5
0 ETH0.0011683422.72257996
Claim147280652022-05-07 5:57:32788 days ago1651903052IN
0x59822e32...fFD6D9fA5
0 ETH0.0020178129.22553543
Claim147206952022-05-06 1:44:35789 days ago1651801475IN
0x59822e32...fFD6D9fA5
0 ETH0.002162731.32409226
Claim147203232022-05-06 0:15:53789 days ago1651796153IN
0x59822e32...fFD6D9fA5
0 ETH0.0023415533.92432053
Claim147196492022-05-05 21:42:20789 days ago1651786940IN
0x59822e32...fFD6D9fA5
0 ETH0.0045225365.52219603
Claim147187652022-05-05 18:21:51789 days ago1651774911IN
0x59822e32...fFD6D9fA5
0 ETH0.0047929869.44038813
Claim147163622022-05-05 9:06:29790 days ago1651741589IN
0x59822e32...fFD6D9fA5
0 ETH0.0017252725
Claim147144712022-05-05 1:54:06790 days ago1651715646IN
0x59822e32...fFD6D9fA5
0 ETH0.0019213427.8281743
Claim147107162022-05-04 11:37:59791 days ago1651664279IN
0x59822e32...fFD6D9fA5
0 ETH0.0021614131.31085102
Claim147103022022-05-04 10:11:10791 days ago1651659070IN
0x59822e32...fFD6D9fA5
0 ETH0.0016069231.25218175
Claim147090012022-05-04 5:06:54791 days ago1651640814IN
0x59822e32...fFD6D9fA5
0 ETH0.0029846343.23621096
Claim147066072022-05-03 19:45:53791 days ago1651607153IN
0x59822e32...fFD6D9fA5
0 ETH0.0031817146.09648678
Claim147065962022-05-03 19:43:56791 days ago1651607036IN
0x59822e32...fFD6D9fA5
0 ETH0.0028239854.94346553
Claim147059612022-05-03 17:24:22791 days ago1651598662IN
0x59822e32...fFD6D9fA5
0 ETH0.005305576.85245261
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
148673132022-05-29 15:47:04765 days ago1653839224
0x59822e32...fFD6D9fA5
0.00057626 ETH
147493842022-05-10 15:32:29784 days ago1652196749
0x59822e32...fFD6D9fA5
0.01338562 ETH
147429612022-05-09 14:35:22785 days ago1652106922
0x59822e32...fFD6D9fA5
0.02333033 ETH
147398682022-05-09 2:45:54786 days ago1652064354
0x59822e32...fFD6D9fA5
0.00388838 ETH
147363082022-05-08 13:16:47787 days ago1652015807
0x59822e32...fFD6D9fA5
0.01338562 ETH
147329502022-05-08 0:27:08787 days ago1651969628
0x59822e32...fFD6D9fA5
0.03706657 ETH
147314382022-05-07 18:40:21787 days ago1651948821
0x59822e32...fFD6D9fA5
0.03954106 ETH
147292152022-05-07 10:15:15788 days ago1651918515
0x59822e32...fFD6D9fA5
0.00388838 ETH
147280652022-05-07 5:57:32788 days ago1651903052
0x59822e32...fFD6D9fA5
0.03036902 ETH
147206952022-05-06 1:44:35789 days ago1651801475
0x59822e32...fFD6D9fA5
0.01338562 ETH
147203232022-05-06 0:15:53789 days ago1651796153
0x59822e32...fFD6D9fA5
0.01338562 ETH
147196492022-05-05 21:42:20789 days ago1651786940
0x59822e32...fFD6D9fA5
0.04015687 ETH
147187652022-05-05 18:21:51789 days ago1651774911
0x59822e32...fFD6D9fA5
0.02677124 ETH
147163622022-05-05 9:06:29790 days ago1651741589
0x59822e32...fFD6D9fA5
0.05354249 ETH
147144712022-05-05 1:54:06790 days ago1651715646
0x59822e32...fFD6D9fA5
0.01338562 ETH
147107162022-05-04 11:37:59791 days ago1651664279
0x59822e32...fFD6D9fA5
0.01338562 ETH
147103022022-05-04 10:11:10791 days ago1651659070
0x59822e32...fFD6D9fA5
0.01166516 ETH
147090012022-05-04 5:06:54791 days ago1651640814
0x59822e32...fFD6D9fA5
0.02677124 ETH
147066072022-05-03 19:45:53791 days ago1651607153
0x59822e32...fFD6D9fA5
0.02354187 ETH
147065962022-05-03 19:43:56791 days ago1651607036
0x59822e32...fFD6D9fA5
0.02721872 ETH
147059612022-05-03 17:24:22791 days ago1651598662
0x59822e32...fFD6D9fA5
0.20005845 ETH
147003592022-05-02 20:17:00792 days ago1651522620
0x59822e32...fFD6D9fA5
0.14724186 ETH
146989932022-05-02 15:02:33792 days ago1651503753
0x59822e32...fFD6D9fA5
0.00731645 ETH
146972062022-05-02 8:13:59793 days ago1651479239
0x59822e32...fFD6D9fA5
0.01573644 ETH
146963162022-05-02 4:53:33793 days ago1651467213
0x59822e32...fFD6D9fA5
0.01944194 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GapesClaiming

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-02-07
*/

// File: @openzeppelin/contracts/utils/Context.sol


// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

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

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

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


// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;


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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _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);
    }
}

// File: @openzeppelin/contracts/utils/Strings.sol


// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

// File: @openzeppelin/contracts/utils/cryptography/ECDSA.sol


// OpenZeppelin Contracts v4.4.1 (utils/cryptography/ECDSA.sol)

pragma solidity ^0.8.0;


/**
 * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.
 *
 * These functions can be used to verify that a message was signed by the holder
 * of the private keys of a given address.
 */
library ECDSA {
    enum RecoverError {
        NoError,
        InvalidSignature,
        InvalidSignatureLength,
        InvalidSignatureS,
        InvalidSignatureV
    }

    function _throwError(RecoverError error) private pure {
        if (error == RecoverError.NoError) {
            return; // no error: do nothing
        } else if (error == RecoverError.InvalidSignature) {
            revert("ECDSA: invalid signature");
        } else if (error == RecoverError.InvalidSignatureLength) {
            revert("ECDSA: invalid signature length");
        } else if (error == RecoverError.InvalidSignatureS) {
            revert("ECDSA: invalid signature 's' value");
        } else if (error == RecoverError.InvalidSignatureV) {
            revert("ECDSA: invalid signature 'v' value");
        }
    }

    /**
     * @dev Returns the address that signed a hashed message (`hash`) with
     * `signature` or error string. This address can then be used for verification purposes.
     *
     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
     * this function rejects them by requiring the `s` value to be in the lower
     * half order, and the `v` value to be either 27 or 28.
     *
     * IMPORTANT: `hash` _must_ be the result of a hash operation for the
     * verification to be secure: it is possible to craft signatures that
     * recover to arbitrary addresses for non-hashed data. A safe way to ensure
     * this is by receiving a hash of the original message (which may otherwise
     * be too long), and then calling {toEthSignedMessageHash} on it.
     *
     * Documentation for signature generation:
     * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]
     * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]
     *
     * _Available since v4.3._
     */
    function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) {
        // Check the signature length
        // - case 65: r,s,v signature (standard)
        // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._
        if (signature.length == 65) {
            bytes32 r;
            bytes32 s;
            uint8 v;
            // ecrecover takes the signature parameters, and the only way to get them
            // currently is to use assembly.
            assembly {
                r := mload(add(signature, 0x20))
                s := mload(add(signature, 0x40))
                v := byte(0, mload(add(signature, 0x60)))
            }
            return tryRecover(hash, v, r, s);
        } else if (signature.length == 64) {
            bytes32 r;
            bytes32 vs;
            // ecrecover takes the signature parameters, and the only way to get them
            // currently is to use assembly.
            assembly {
                r := mload(add(signature, 0x20))
                vs := mload(add(signature, 0x40))
            }
            return tryRecover(hash, r, vs);
        } else {
            return (address(0), RecoverError.InvalidSignatureLength);
        }
    }

    /**
     * @dev Returns the address that signed a hashed message (`hash`) with
     * `signature`. This address can then be used for verification purposes.
     *
     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
     * this function rejects them by requiring the `s` value to be in the lower
     * half order, and the `v` value to be either 27 or 28.
     *
     * IMPORTANT: `hash` _must_ be the result of a hash operation for the
     * verification to be secure: it is possible to craft signatures that
     * recover to arbitrary addresses for non-hashed data. A safe way to ensure
     * this is by receiving a hash of the original message (which may otherwise
     * be too long), and then calling {toEthSignedMessageHash} on it.
     */
    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
        (address recovered, RecoverError error) = tryRecover(hash, signature);
        _throwError(error);
        return recovered;
    }

    /**
     * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.
     *
     * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]
     *
     * _Available since v4.3._
     */
    function tryRecover(
        bytes32 hash,
        bytes32 r,
        bytes32 vs
    ) internal pure returns (address, RecoverError) {
        bytes32 s;
        uint8 v;
        assembly {
            s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
            v := add(shr(255, vs), 27)
        }
        return tryRecover(hash, v, r, s);
    }

    /**
     * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.
     *
     * _Available since v4.2._
     */
    function recover(
        bytes32 hash,
        bytes32 r,
        bytes32 vs
    ) internal pure returns (address) {
        (address recovered, RecoverError error) = tryRecover(hash, r, vs);
        _throwError(error);
        return recovered;
    }

    /**
     * @dev Overload of {ECDSA-tryRecover} that receives the `v`,
     * `r` and `s` signature fields separately.
     *
     * _Available since v4.3._
     */
    function tryRecover(
        bytes32 hash,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal pure returns (address, RecoverError) {
        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature
        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
        // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most
        // signatures from current libraries generate a unique signature with an s-value in the lower half order.
        //
        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value
        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or
        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept
        // these malleable signatures as well.
        if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {
            return (address(0), RecoverError.InvalidSignatureS);
        }
        if (v != 27 && v != 28) {
            return (address(0), RecoverError.InvalidSignatureV);
        }

        // If the signature is valid (and not malleable), return the signer address
        address signer = ecrecover(hash, v, r, s);
        if (signer == address(0)) {
            return (address(0), RecoverError.InvalidSignature);
        }

        return (signer, RecoverError.NoError);
    }

    /**
     * @dev Overload of {ECDSA-recover} that receives the `v`,
     * `r` and `s` signature fields separately.
     */
    function recover(
        bytes32 hash,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal pure returns (address) {
        (address recovered, RecoverError error) = tryRecover(hash, v, r, s);
        _throwError(error);
        return recovered;
    }

    /**
     * @dev Returns an Ethereum Signed Message, created from a `hash`. This
     * produces hash corresponding to the one signed with the
     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
     * JSON-RPC method as part of EIP-191.
     *
     * See {recover}.
     */
    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {
        // 32 is the length in bytes of hash,
        // enforced by the type signature above
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }

    /**
     * @dev Returns an Ethereum Signed Message, created from `s`. This
     * produces hash corresponding to the one signed with the
     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
     * JSON-RPC method as part of EIP-191.
     *
     * See {recover}.
     */
    function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n", Strings.toString(s.length), s));
    }

    /**
     * @dev Returns an Ethereum Signed Typed Data, created from a
     * `domainSeparator` and a `structHash`. This produces hash corresponding
     * to the one signed with the
     * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]
     * JSON-RPC method as part of EIP-712.
     *
     * See {recover}.
     */
    function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
    }
}

// File: In Progress/Gambling Apes Claiming.sol


pragma solidity ^0.8.7;




interface GAInterface {
    function balanceOf(address) external view returns(uint);
}

contract GapesClaiming is Ownable {
    using ECDSA for bytes32;

    string constant ERROR_INVALID_DATA = "Invalid data provided";
    string constant ERROR_INVALID_DATA_LENGTH = "Invalid data length";
    string constant ERROR_INVALID_SIGNATURE = "Invalid signature provided";
    string constant ERROR_NOT_HOLDER = "You must own atleast one Gambling Ape to claim!";

    modifier directOnly {
        require(msg.sender == tx.origin, "Only direct transactions are allowed");
        _;
    }

    modifier notLocked {
        require(!_locked, "You may not claim right now!");
        _;
    }

    constructor(address signer_, GAInterface GA_) {
        _signer = signer_; // 0x288367E1E520A02e5E5d70906a7b0c6f5fD9EF90
        _GA = GA_;         // 0x90cA8a3eb2574F937F514749ce619fDCCa187d45
        _b1 = 0x0408CFcde646bbADa944BF4312e6a2EF61ce8e7b;
        _b2 = 0xA61932ae8589664E9aaB312886775a617775E940;
    }

    GAInterface immutable _GA;
    address immutable _b1;
    address immutable _b2;

    bool _locked;
    address _signer;
    mapping(address => uint) public addressToLastMonthClaimed;

    modifier verifyInputData(address to, uint[] calldata months, uint amount, bytes calldata signature) {
        require(months.length > 0, ERROR_INVALID_DATA_LENGTH);
        for(uint i = 1; i < months.length; i++)
            require(months[i - 1] < months[i], ERROR_INVALID_DATA); /* Verify order smallest > largest **no duplicates**, gaps allowed eg:[1,2,4,7,9] */
        
        require(months[0] > addressToLastMonthClaimed[to], ERROR_INVALID_DATA); /* Smallest value will be first, must be larger than the previously saved largest value */
        addressToLastMonthClaimed[to] = months[months.length - 1]; /* Largest value will be last, save it to be used in the above check in the future */

        require(keccak256(abi.encode(to, months, amount)).toEthSignedMessageHash().recover(signature) == _signer, ERROR_INVALID_SIGNATURE); /* Verify the backend signature */

        require(_GA.balanceOf(to) > 0, ERROR_NOT_HOLDER); /* Users must own at least 1 Gambling Ape to be able to claim */
        _;
    }

    // External/Public

    function claim(uint[] calldata months, uint amount, bytes calldata signature) external directOnly notLocked verifyInputData(msg.sender, months, amount, signature) {
        payable(msg.sender).transfer(amount);
    }

    // Owner Only

    function flipLock() external {
        require(msg.sender == owner() || msg.sender == _b1 || msg.sender == _b2);
        _locked = !_locked;
    }

    function changeSigner(address signer_) external onlyOwner {
        _signer = signer_;
    }

    function withdraw(uint amount) external onlyOwner {
        payable(msg.sender).transfer(amount);
    }

    receive() payable external {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"signer_","type":"address"},{"internalType":"contract GAInterface","name":"GA_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressToLastMonthClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"signer_","type":"address"}],"name":"changeSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"months","type":"uint256[]"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flipLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e060405234801561001057600080fd5b506040516110b53803806110b583398101604081905261002f91610106565b610038336100b6565b600180546001600160a01b0319166001600160a01b03939093169290921790915560601b6001600160601b0319166080527f0408cfcde646bbada944bf4312e6a2ef61ce8e7b00000000000000000000000060a0527fa61932ae8589664e9aab312886775a617775e94000000000000000000000000060c052610158565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806040838503121561011957600080fd5b825161012481610140565b602084015190925061013581610140565b809150509250929050565b6001600160a01b038116811461015557600080fd5b50565b60805160601c60a05160601c60c05160601c610f25610190600039600061025501526000610222015260006106d90152610f256000f3fe60806040526004361061007f5760003560e01c80638da5cb5b1161004e5780638da5cb5b14610117578063aad2b7231461013f578063c7f086491461015f578063f2fde38b1461017f57600080fd5b80632e1a7d4d1461008b57806349562aea146100ad5780636718161e146100ed578063715018a61461010257600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004610d39565b61019f565b005b3480156100b957600080fd5b506100da6100c8366004610c61565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156100f957600080fd5b506100ab610203565b34801561010e57600080fd5b506100ab6102a1565b34801561012357600080fd5b506000546040516001600160a01b0390911681526020016100e4565b34801561014b57600080fd5b506100ab61015a366004610c61565b6102d7565b34801561016b57600080fd5b506100ab61017a366004610c91565b610323565b34801561018b57600080fd5b506100ab61019a366004610c61565b6107c9565b6000546001600160a01b031633146101d25760405162461bcd60e51b81526004016101c990610e17565b60405180910390fd5b604051339082156108fc029083906000818181858888f193505050501580156101ff573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314806102445750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b806102775750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b61028057600080fd5b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b031633146102cb5760405162461bcd60e51b81526004016101c990610e17565b6102d56000610864565b565b6000546001600160a01b031633146103015760405162461bcd60e51b81526004016101c990610e17565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b33321461037e5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920646972656374207472616e73616374696f6e732061726520616c6c6044820152631bddd95960e21b60648201526084016101c9565b600054600160a01b900460ff16156103d85760405162461bcd60e51b815260206004820152601c60248201527f596f75206d6179206e6f7420636c61696d207269676874206e6f77210000000060448201526064016101c9565b3385858585856000858590501160405180604001604052806013815260200172092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b8152509061042f5760405162461bcd60e51b81526004016101c99190610dc2565b5060015b848110156104d95785858281811061044d5761044d610eaa565b9050602002013586866001846104639190610e4c565b81811061047257610472610eaa565b905060200201351060405180604001604052806015815260200174125b9d985b1a590819185d18481c1c9bdd9a591959605a1b815250906104c65760405162461bcd60e51b81526004016101c99190610dc2565b50806104d181610e63565b915050610433565b506001600160a01b03861660009081526002602052604081205490869086908161050557610505610eaa565b905060200201351160405180604001604052806015815260200174125b9d985b1a590819185d18481c1c9bdd9a591959605a1b815250906105595760405162461bcd60e51b81526004016101c99190610dc2565b508484610567600182610e4c565b81811061057657610576610eaa565b6001600160a01b03808a1660009081526002602090815260409182902093810295909501359092556001548251601f87018690048602810186019093528583521692610658925085908590819084018382808284376000920191909152505060405161065292506105f291508b908b908b908b90602001610d6b565b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b906108b4565b6001600160a01b0316146040518060400160405280601a81526020017f496e76616c6964207369676e61747572652070726f7669646564000000000000815250906106b65760405162461bcd60e51b81526004016101c99190610dc2565b506040516370a0823160e01b81526001600160a01b0387811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a082319060240160206040518083038186803b15801561071d57600080fd5b505afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107559190610d52565b116040518060600160405280602f8152602001610ec1602f91399061078d5760405162461bcd60e51b81526004016101c99190610dc2565b5060405133908a156108fc02908b906000818181858888f193505050501580156107bb573d6000803e3d6000fd5b505050505050505050505050565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016101c990610e17565b6001600160a01b0381166108585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c9565b61086181610864565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060006108c385856108d8565b915091506108d081610948565b509392505050565b60008082516041141561090f5760208301516040840151606085015160001a61090387828585610b03565b94509450505050610941565b825160401415610939576020830151604084015161092e868383610bf0565b935093505050610941565b506000905060025b9250929050565b600081600481111561095c5761095c610e94565b14156109655750565b600181600481111561097957610979610e94565b14156109c75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016101c9565b60028160048111156109db576109db610e94565b1415610a295760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016101c9565b6003816004811115610a3d57610a3d610e94565b1415610a965760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016101c9565b6004816004811115610aaa57610aaa610e94565b14156108615760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016101c9565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b3a5750600090506003610be7565b8460ff16601b14158015610b5257508460ff16601c14155b15610b635750600090506004610be7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610bb7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610be057600060019250925050610be7565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01610c1187828885610b03565b935093505050935093915050565b60008083601f840112610c3157600080fd5b50813567ffffffffffffffff811115610c4957600080fd5b60208301915083602082850101111561094157600080fd5b600060208284031215610c7357600080fd5b81356001600160a01b0381168114610c8a57600080fd5b9392505050565b600080600080600060608688031215610ca957600080fd5b853567ffffffffffffffff80821115610cc157600080fd5b818801915088601f830112610cd557600080fd5b813581811115610ce457600080fd5b8960208260051b8501011115610cf957600080fd5b60209283019750955090870135935060408701359080821115610d1b57600080fd5b50610d2888828901610c1f565b969995985093965092949392505050565b600060208284031215610d4b57600080fd5b5035919050565b600060208284031215610d6457600080fd5b5051919050565b6001600160a01b0385168152606060208201819052810183905260006001600160fb1b03841115610d9b57600080fd5b8360051b808660808501376000908301608001908152604090920192909252949350505050565b600060208083528351808285015260005b81811015610def57858101830151858201604001528201610dd3565b81811115610e01576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015610e5e57610e5e610e7e565b500390565b6000600019821415610e7757610e77610e7e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe596f75206d757374206f776e2061746c65617374206f6e652047616d626c696e672041706520746f20636c61696d21a264697066735822122045fdfdede12aceb9665675510e98079b6e3c85d5ae27195bb261990bbbf2a29264736f6c63430008070033000000000000000000000000288367e1e520a02e5e5d70906a7b0c6f5fd9ef9000000000000000000000000090ca8a3eb2574f937f514749ce619fdcca187d45

Deployed Bytecode

0x60806040526004361061007f5760003560e01c80638da5cb5b1161004e5780638da5cb5b14610117578063aad2b7231461013f578063c7f086491461015f578063f2fde38b1461017f57600080fd5b80632e1a7d4d1461008b57806349562aea146100ad5780636718161e146100ed578063715018a61461010257600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004610d39565b61019f565b005b3480156100b957600080fd5b506100da6100c8366004610c61565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b3480156100f957600080fd5b506100ab610203565b34801561010e57600080fd5b506100ab6102a1565b34801561012357600080fd5b506000546040516001600160a01b0390911681526020016100e4565b34801561014b57600080fd5b506100ab61015a366004610c61565b6102d7565b34801561016b57600080fd5b506100ab61017a366004610c91565b610323565b34801561018b57600080fd5b506100ab61019a366004610c61565b6107c9565b6000546001600160a01b031633146101d25760405162461bcd60e51b81526004016101c990610e17565b60405180910390fd5b604051339082156108fc029083906000818181858888f193505050501580156101ff573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314806102445750336001600160a01b037f0000000000000000000000000408cfcde646bbada944bf4312e6a2ef61ce8e7b16145b806102775750336001600160a01b037f000000000000000000000000a61932ae8589664e9aab312886775a617775e94016145b61028057600080fd5b6000805460ff60a01b198116600160a01b9182900460ff1615909102179055565b6000546001600160a01b031633146102cb5760405162461bcd60e51b81526004016101c990610e17565b6102d56000610864565b565b6000546001600160a01b031633146103015760405162461bcd60e51b81526004016101c990610e17565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b33321461037e5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c7920646972656374207472616e73616374696f6e732061726520616c6c6044820152631bddd95960e21b60648201526084016101c9565b600054600160a01b900460ff16156103d85760405162461bcd60e51b815260206004820152601c60248201527f596f75206d6179206e6f7420636c61696d207269676874206e6f77210000000060448201526064016101c9565b3385858585856000858590501160405180604001604052806013815260200172092dcecc2d8d2c840c8c2e8c240d8cadccee8d606b1b8152509061042f5760405162461bcd60e51b81526004016101c99190610dc2565b5060015b848110156104d95785858281811061044d5761044d610eaa565b9050602002013586866001846104639190610e4c565b81811061047257610472610eaa565b905060200201351060405180604001604052806015815260200174125b9d985b1a590819185d18481c1c9bdd9a591959605a1b815250906104c65760405162461bcd60e51b81526004016101c99190610dc2565b50806104d181610e63565b915050610433565b506001600160a01b03861660009081526002602052604081205490869086908161050557610505610eaa565b905060200201351160405180604001604052806015815260200174125b9d985b1a590819185d18481c1c9bdd9a591959605a1b815250906105595760405162461bcd60e51b81526004016101c99190610dc2565b508484610567600182610e4c565b81811061057657610576610eaa565b6001600160a01b03808a1660009081526002602090815260409182902093810295909501359092556001548251601f87018690048602810186019093528583521692610658925085908590819084018382808284376000920191909152505060405161065292506105f291508b908b908b908b90602001610d6b565b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b906108b4565b6001600160a01b0316146040518060400160405280601a81526020017f496e76616c6964207369676e61747572652070726f7669646564000000000000815250906106b65760405162461bcd60e51b81526004016101c99190610dc2565b506040516370a0823160e01b81526001600160a01b0387811660048301526000917f00000000000000000000000090ca8a3eb2574f937f514749ce619fdcca187d45909116906370a082319060240160206040518083038186803b15801561071d57600080fd5b505afa158015610731573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107559190610d52565b116040518060600160405280602f8152602001610ec1602f91399061078d5760405162461bcd60e51b81526004016101c99190610dc2565b5060405133908a156108fc02908b906000818181858888f193505050501580156107bb573d6000803e3d6000fd5b505050505050505050505050565b6000546001600160a01b031633146107f35760405162461bcd60e51b81526004016101c990610e17565b6001600160a01b0381166108585760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101c9565b61086181610864565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060006108c385856108d8565b915091506108d081610948565b509392505050565b60008082516041141561090f5760208301516040840151606085015160001a61090387828585610b03565b94509450505050610941565b825160401415610939576020830151604084015161092e868383610bf0565b935093505050610941565b506000905060025b9250929050565b600081600481111561095c5761095c610e94565b14156109655750565b600181600481111561097957610979610e94565b14156109c75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016101c9565b60028160048111156109db576109db610e94565b1415610a295760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016101c9565b6003816004811115610a3d57610a3d610e94565b1415610a965760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016101c9565b6004816004811115610aaa57610aaa610e94565b14156108615760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016101c9565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610b3a5750600090506003610be7565b8460ff16601b14158015610b5257508460ff16601c14155b15610b635750600090506004610be7565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610bb7573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610be057600060019250925050610be7565b9150600090505b94509492505050565b6000806001600160ff1b03831660ff84901c601b01610c1187828885610b03565b935093505050935093915050565b60008083601f840112610c3157600080fd5b50813567ffffffffffffffff811115610c4957600080fd5b60208301915083602082850101111561094157600080fd5b600060208284031215610c7357600080fd5b81356001600160a01b0381168114610c8a57600080fd5b9392505050565b600080600080600060608688031215610ca957600080fd5b853567ffffffffffffffff80821115610cc157600080fd5b818801915088601f830112610cd557600080fd5b813581811115610ce457600080fd5b8960208260051b8501011115610cf957600080fd5b60209283019750955090870135935060408701359080821115610d1b57600080fd5b50610d2888828901610c1f565b969995985093965092949392505050565b600060208284031215610d4b57600080fd5b5035919050565b600060208284031215610d6457600080fd5b5051919050565b6001600160a01b0385168152606060208201819052810183905260006001600160fb1b03841115610d9b57600080fd5b8360051b808660808501376000908301608001908152604090920192909252949350505050565b600060208083528351808285015260005b81811015610def57858101830151858201604001528201610dd3565b81811115610e01576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082821015610e5e57610e5e610e7e565b500390565b6000600019821415610e7757610e77610e7e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fdfe596f75206d757374206f776e2061746c65617374206f6e652047616d626c696e672041706520746f20636c61696d21a264697066735822122045fdfdede12aceb9665675510e98079b6e3c85d5ae27195bb261990bbbf2a29264736f6c63430008070033

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

000000000000000000000000288367e1e520a02e5e5d70906a7b0c6f5fd9ef9000000000000000000000000090ca8a3eb2574f937f514749ce619fdcca187d45

-----Decoded View---------------
Arg [0] : signer_ (address): 0x288367E1E520A02e5E5d70906a7b0c6f5fD9EF90
Arg [1] : GA_ (address): 0x90cA8a3eb2574F937F514749ce619fDCCa187d45

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000288367e1e520a02e5e5d70906a7b0c6f5fd9ef90
Arg [1] : 00000000000000000000000090ca8a3eb2574f937f514749ce619fdcca187d45


Deployed Bytecode Sourcemap

15291:2857:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18003:105;;;;;;;;;;-1:-1:-1;18003:105:0;;;;;:::i;:::-;;:::i;:::-;;16370:57;;;;;;;;;;-1:-1:-1;16370:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7466:25:1;;;7454:2;7439:18;16370:57:0;;;;;;;;17744:149;;;;;;;;;;;;;:::i;2606:103::-;;;;;;;;;;;;;:::i;1955:87::-;;;;;;;;;;-1:-1:-1;2001:7:0;2028:6;1955:87;;-1:-1:-1;;;;;2028:6:0;;;2543:51:1;;2531:2;2516:18;1955:87:0;2397:203:1;17901:94:0;;;;;;;;;;-1:-1:-1;17901:94:0;;;;;:::i;:::-;;:::i;17497:218::-;;;;;;;;;;-1:-1:-1;17497:218:0;;;;;:::i;:::-;;:::i;2864:201::-;;;;;;;;;;-1:-1:-1;2864:201:0;;;;;:::i;:::-;;:::i;18003:105::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;;;;;;;;;18064:36:::1;::::0;18072:10:::1;::::0;18064:36;::::1;;;::::0;18093:6;;18064:36:::1;::::0;;;18093:6;18072:10;18064:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;18003:105:::0;:::o;17744:149::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;17792:10;:21;;:42;;-1:-1:-1;17817:10:0;-1:-1:-1;;;;;17831:3:0;17817:17;;17792:42;:63;;;-1:-1:-1;17838:10:0;-1:-1:-1;;;;;17852:3:0;17838:17;;17792:63;17784:72;;;;;;17878:7;;;-1:-1:-1;;;;17867:18:0;;-1:-1:-1;;;17878:7:0;;;;;;17877:8;17867:18;;;;;;17744:149::o;2606:103::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;2671:30:::1;2698:1;2671:18;:30::i;:::-;2606:103::o:0;17901:94::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;17970:7:::1;:17:::0;;-1:-1:-1;;;;;;17970:17:0::1;-1:-1:-1::0;;;;;17970:17:0;;;::::1;::::0;;;::::1;::::0;;17901:94::o;17497:218::-;15712:10;15726:9;15712:23;15704:72;;;;-1:-1:-1;;;15704:72:0;;5593:2:1;15704:72:0;;;5575:21:1;5632:2;5612:18;;;5605:30;5671:34;5651:18;;;5644:62;-1:-1:-1;;;5722:18:1;;;5715:34;5766:19;;15704:72:0;5391:400:1;15704:72:0;15843:7:::1;::::0;-1:-1:-1;;;15843:7:0;::::1;;;15842:8;15834:49;;;::::0;-1:-1:-1;;;15834:49:0;;5998:2:1;15834:49:0::1;::::0;::::1;5980:21:1::0;6037:2;6017:18;;;6010:30;6076;6056:18;;;6049:58;6124:18;;15834:49:0::1;5796:352:1::0;15834:49:0::1;17621:10:::2;17633:6;;17641;17649:9;;16571:1;16555:6;;:13;;:17;16574:25;;;;;;;;;;;;;-1:-1:-1::0;;;16574:25:0::2;;::::0;16547:53:::2;;;;;-1:-1:-1::0;;;16547:53:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;16624:1:0::2;16611:107;16627:17:::0;;::::2;16611:107;;;16688:6;;16695:1;16688:9;;;;;;;:::i;:::-;;;;;;;16672:6;;16683:1;16679;:5;;;;:::i;:::-;16672:13;;;;;;;:::i;:::-;;;;;;;:25;16699:18;;;;;;;;;;;;;-1:-1:-1::0;;;16699:18:0::2;;::::0;16664:54:::2;;;;;-1:-1:-1::0;;;16664:54:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;16646:3:0;::::2;::::0;::::2;:::i;:::-;;;;16611:107;;;-1:-1:-1::0;;;;;;16844:29:0;::::2;;::::0;;;:25:::2;:29;::::0;;;;;;16832:6;;;;:9;::::2;;;;:::i;:::-;;;;;;;:41;16875:18;;;;;;;;;;;;;-1:-1:-1::0;;;16875:18:0::2;;::::0;16824:70:::2;;;;;-1:-1:-1::0;;;16824:70:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;17028:6:0;;17035:17:::2;17051:1;17028:6:::0;17035:17:::2;:::i;:::-;17028:25;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16996:29:0;;::::2;;::::0;;;:25:::2;17028;16996:29:::0;;;;;;;;17028:25;;::::2;::::0;;;::::2;;16996:57:::0;;;17249:7:::2;::::0;17160:85;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;::::0;;;;;;;;;;17249:7:::2;::::0;17160:85:::2;::::0;-1:-1:-1;17235:9:0;;;;;;17160:85;::::2;17235:9:::0;;;;17160:85;::::2;;::::0;::::2;::::0;;;;-1:-1:-1;;17170:30:0::2;::::0;17160:66:::2;::::0;-1:-1:-1;17170:30:0::2;::::0;-1:-1:-1;17181:2:0;;17185:6;;;;17193;;17170:30:::2;;;:::i;:::-;;::::0;;-1:-1:-1;;17170:30:0;;::::2;::::0;;;;;;17160:41;;17170:30:::2;17160:41:::0;;::::2;::::0;2254:66:1;14000:58:0;;;2242:79:1;2337:12;;;;2330:28;;;;14000:58:0;;;;;;;;;;2374:12:1;;;;14000:58:0;;;13990:69;;;;;;13798:269;17160:66:::2;:74:::0;::::2;:85::i;:::-;-1:-1:-1::0;;;;;17160:96:0::2;;17258:23;;;;;;;;;;;;;;;;::::0;17152:130:::2;;;;;-1:-1:-1::0;;;17152:130:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;17338:17:0::2;::::0;-1:-1:-1;;;17338:17:0;;-1:-1:-1;;;;;2561:32:1;;;17338:17:0::2;::::0;::::2;2543:51:1::0;17358:1:0::2;::::0;17338:3:::2;:13:::0;;::::2;::::0;::::2;::::0;2516:18:1;;17338:17:0::2;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:21;17361:16;;;;;;;;;;;;;;;;;17330:48;;;;;-1:-1:-1::0;;;17330:48:0::2;;;;;;;;:::i;:::-;-1:-1:-1::0;17671:36:0::3;::::0;17679:10:::3;::::0;17671:36;::::3;;;::::0;17700:6;;17671:36:::3;::::0;;;17700:6;17679:10;17671:36;::::3;;;;;;;;;;;;;::::0;::::3;;;;;;15894:1:::2;;;;;;17497:218:::0;;;;;:::o;2864:201::-;2001:7;2028:6;-1:-1:-1;;;;;2028:6:0;759:10;2175:23;2167:68;;;;-1:-1:-1;;;2167:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2953:22:0;::::1;2945:73;;;::::0;-1:-1:-1;;;2945:73:0;;5186:2:1;2945:73:0::1;::::0;::::1;5168:21:1::0;5225:2;5205:18;;;5198:30;5264:34;5244:18;;;5237:62;-1:-1:-1;;;5315:18:1;;;5308:36;5361:19;;2945:73:0::1;4984:402:1::0;2945:73:0::1;3029:28;3048:8;3029:18;:28::i;:::-;2864:201:::0;:::o;3225:191::-;3299:16;3318:6;;-1:-1:-1;;;;;3335:17:0;;;-1:-1:-1;;;;;;3335:17:0;;;;;;3368:40;;3318:6;;;;;;;3368:40;;3299:16;3368:40;3288:128;3225:191;:::o;9949:231::-;10027:7;10048:17;10067:18;10089:27;10100:4;10106:9;10089:10;:27::i;:::-;10047:69;;;;10127:18;10139:5;10127:11;:18::i;:::-;-1:-1:-1;10163:9:0;9949:231;-1:-1:-1;;;9949:231:0:o;7839:1308::-;7920:7;7929:12;8154:9;:16;8174:2;8154:22;8150:990;;;8450:4;8435:20;;8429:27;8500:4;8485:20;;8479:27;8558:4;8543:20;;8537:27;8193:9;8529:36;8601:25;8612:4;8529:36;8429:27;8479;8601:10;:25::i;:::-;8594:32;;;;;;;;;8150:990;8648:9;:16;8668:2;8648:22;8644:496;;;8923:4;8908:20;;8902:27;8974:4;8959:20;;8953:27;9016:23;9027:4;8902:27;8953;9016:10;:23::i;:::-;9009:30;;;;;;;;8644:496;-1:-1:-1;9088:1:0;;-1:-1:-1;9092:35:0;8644:496;7839:1308;;;;;:::o;6110:643::-;6188:20;6179:5;:29;;;;;;;;:::i;:::-;;6175:571;;;6110:643;:::o;6175:571::-;6286:29;6277:5;:38;;;;;;;;:::i;:::-;;6273:473;;;6332:34;;-1:-1:-1;;;6332:34:0;;4473:2:1;6332:34:0;;;4455:21:1;4512:2;4492:18;;;4485:30;4551:26;4531:18;;;4524:54;4595:18;;6332:34:0;4271:348:1;6273:473:0;6397:35;6388:5;:44;;;;;;;;:::i;:::-;;6384:362;;;6449:41;;-1:-1:-1;;;6449:41:0;;4826:2:1;6449:41:0;;;4808:21:1;4865:2;4845:18;;;4838:30;4904:33;4884:18;;;4877:61;4955:18;;6449:41:0;4624:355:1;6384:362:0;6521:30;6512:5;:39;;;;;;;;:::i;:::-;;6508:238;;;6568:44;;-1:-1:-1;;;6568:44:0;;6355:2:1;6568:44:0;;;6337:21:1;6394:2;6374:18;;;6367:30;6433:34;6413:18;;;6406:62;-1:-1:-1;;;6484:18:1;;;6477:32;6526:19;;6568:44:0;6153:398:1;6508:238:0;6643:30;6634:5;:39;;;;;;;;:::i;:::-;;6630:116;;;6690:44;;-1:-1:-1;;;6690:44:0;;6758:2:1;6690:44:0;;;6740:21:1;6797:2;6777:18;;;6770:30;6836:34;6816:18;;;6809:62;-1:-1:-1;;;6887:18:1;;;6880:32;6929:19;;6690:44:0;6556:398:1;11448:1632:0;11579:7;;12513:66;12500:79;;12496:163;;;-1:-1:-1;12612:1:0;;-1:-1:-1;12616:30:0;12596:51;;12496:163;12673:1;:7;;12678:2;12673:7;;:18;;;;;12684:1;:7;;12689:2;12684:7;;12673:18;12669:102;;;-1:-1:-1;12724:1:0;;-1:-1:-1;12728:30:0;12708:51;;12669:102;12885:24;;;12868:14;12885:24;;;;;;;;;3493:25:1;;;3566:4;3554:17;;3534:18;;;3527:45;;;;3588:18;;;3581:34;;;3631:18;;;3624:34;;;12885:24:0;;3465:19:1;;12885:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12885:24:0;;-1:-1:-1;;12885:24:0;;;-1:-1:-1;;;;;;;12924:20:0;;12920:103;;12977:1;12981:29;12961:50;;;;;;;12920:103;13043:6;-1:-1:-1;13051:20:0;;-1:-1:-1;11448:1632:0;;;;;;;;:::o;10443:391::-;10557:7;;-1:-1:-1;;;;;10658:75:0;;10760:3;10756:12;;;10770:2;10752:21;10801:25;10812:4;10752:21;10821:1;10658:75;10801:10;:25::i;:::-;10794:32;;;;;;10443:391;;;;;;:::o;14:347:1:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:1;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;366:286;425:6;478:2;466:9;457:7;453:23;449:32;446:52;;;494:1;491;484:12;446:52;520:23;;-1:-1:-1;;;;;572:31:1;;562:42;;552:70;;618:1;615;608:12;552:70;641:5;366:286;-1:-1:-1;;;366:286:1:o;657:976::-;772:6;780;788;796;804;857:2;845:9;836:7;832:23;828:32;825:52;;;873:1;870;863:12;825:52;913:9;900:23;942:18;983:2;975:6;972:14;969:34;;;999:1;996;989:12;969:34;1037:6;1026:9;1022:22;1012:32;;1082:7;1075:4;1071:2;1067:13;1063:27;1053:55;;1104:1;1101;1094:12;1053:55;1144:2;1131:16;1170:2;1162:6;1159:14;1156:34;;;1186:1;1183;1176:12;1156:34;1241:7;1234:4;1224:6;1221:1;1217:14;1213:2;1209:23;1205:34;1202:47;1199:67;;;1262:1;1259;1252:12;1199:67;1293:4;1285:13;;;;-1:-1:-1;1317:6:1;-1:-1:-1;1355:20:1;;;1342:34;;-1:-1:-1;1429:2:1;1414:18;;1401:32;;1445:16;;;1442:36;;;1474:1;1471;1464:12;1442:36;;1513:60;1565:7;1554:8;1543:9;1539:24;1513:60;:::i;:::-;657:976;;;;-1:-1:-1;657:976:1;;-1:-1:-1;1592:8:1;;1487:86;657:976;-1:-1:-1;;;657:976:1:o;1638:180::-;1697:6;1750:2;1738:9;1729:7;1725:23;1721:32;1718:52;;;1766:1;1763;1756:12;1718:52;-1:-1:-1;1789:23:1;;1638:180;-1:-1:-1;1638:180:1:o;1823:184::-;1893:6;1946:2;1934:9;1925:7;1921:23;1917:32;1914:52;;;1962:1;1959;1952:12;1914:52;-1:-1:-1;1985:16:1;;1823:184;-1:-1:-1;1823:184:1:o;2605:656::-;-1:-1:-1;;;;;2850:32:1;;2832:51;;2919:2;2914;2899:18;;2892:30;;;2938:18;;2931:34;;;-1:-1:-1;;;;;;2977:31:1;;2974:51;;;3021:1;3018;3011:12;2974:51;3055:6;3052:1;3048:14;3113:6;3105;3099:3;3088:9;3084:19;3071:49;3191:1;3143:22;;;3167:3;3139:32;3180:13;;;3243:2;3228:18;;;3221:34;;;;3139:32;2605:656;-1:-1:-1;;;;2605:656:1:o;3669:597::-;3781:4;3810:2;3839;3828:9;3821:21;3871:6;3865:13;3914:6;3909:2;3898:9;3894:18;3887:34;3939:1;3949:140;3963:6;3960:1;3957:13;3949:140;;;4058:14;;;4054:23;;4048:30;4024:17;;;4043:2;4020:26;4013:66;3978:10;;3949:140;;;4107:6;4104:1;4101:13;4098:91;;;4177:1;4172:2;4163:6;4152:9;4148:22;4144:31;4137:42;4098:91;-1:-1:-1;4250:2:1;4229:15;-1:-1:-1;;4225:29:1;4210:45;;;;4257:2;4206:54;;3669:597;-1:-1:-1;;;3669:597:1:o;6959:356::-;7161:2;7143:21;;;7180:18;;;7173:30;7239:34;7234:2;7219:18;;7212:62;7306:2;7291:18;;6959:356::o;7502:125::-;7542:4;7570:1;7567;7564:8;7561:34;;;7575:18;;:::i;:::-;-1:-1:-1;7612:9:1;;7502:125::o;7632:135::-;7671:3;-1:-1:-1;;7692:17:1;;7689:43;;;7712:18;;:::i;:::-;-1:-1:-1;7759:1:1;7748:13;;7632:135::o;7772:127::-;7833:10;7828:3;7824:20;7821:1;7814:31;7864:4;7861:1;7854:15;7888:4;7885:1;7878:15;7904:127;7965:10;7960:3;7956:20;7953:1;7946:31;7996:4;7993:1;7986:15;8020:4;8017:1;8010:15;8036:127;8097:10;8092:3;8088:20;8085:1;8078:31;8128:4;8125:1;8118:15;8152:4;8149:1;8142:15

Swarm Source

ipfs://45fdfdede12aceb9665675510e98079b6e3c85d5ae27195bb261990bbbf2a292

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.