ETH Price: $3,626.22 (+0.13%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw180358512023-08-31 16:48:23492 days ago1693500503IN
0x799FFd29...647dB0c50
0 ETH0.0013024745.53459793
Withdraw180358472023-08-31 16:47:35492 days ago1693500455IN
0x799FFd29...647dB0c50
0 ETH0.001300945.47999947
Claim180313642023-08-31 1:46:23492 days ago1693446383IN
0x799FFd29...647dB0c50
0 ETH0.0022629214.07245768
Attack180168702023-08-29 0:59:47494 days ago1693270787IN
0x799FFd29...647dB0c50
0 ETH0.0017984318.56962762
Attack180100112023-08-28 1:58:23495 days ago1693187903IN
0x799FFd29...647dB0c50
0 ETH0.001079111.14225593
Attack180028492023-08-27 1:53:47496 days ago1693101227IN
0x799FFd29...647dB0c50
0 ETH0.0011790612.17433574
Attack179883102023-08-25 1:03:11498 days ago1692925391IN
0x799FFd29...647dB0c50
0 ETH0.0044769917.0989748
Attack179883072023-08-25 1:02:35498 days ago1692925355IN
0x799FFd29...647dB0c50
0 ETH0.0084405917.18270226
Attack179883052023-08-25 1:02:11498 days ago1692925331IN
0x799FFd29...647dB0c50
0 ETH0.0210458717.42490705
Attack179811432023-08-24 0:59:35499 days ago1692838775IN
0x799FFd29...647dB0c50
0 ETH0.0293144415.99005074
Attack179739892023-08-23 0:59:35500 days ago1692752375IN
0x799FFd29...647dB0c50
0 ETH0.0162105719.23402423
Attack179668342023-08-22 0:59:35501 days ago1692665975IN
0x799FFd29...647dB0c50
0 ETH0.0166062416.8207232
Attack179596852023-08-21 0:59:35502 days ago1692579575IN
0x799FFd29...647dB0c50
0 ETH0.0122429113.06228968
Attack179525422023-08-20 0:59:35503 days ago1692493175IN
0x799FFd29...647dB0c50
0 ETH0.0126564613.34882686
Attack179454042023-08-19 0:59:35504 days ago1692406775IN
0x799FFd29...647dB0c50
0 ETH0.0205890518.16721897
Attack179382622023-08-18 0:59:35505 days ago1692320375IN
0x799FFd29...647dB0c50
0 ETH0.0261739634.74292088
Attack179311212023-08-17 0:59:35506 days ago1692233975IN
0x799FFd29...647dB0c50
0 ETH0.0162782630.93703428
Attack179239722023-08-16 0:59:35507 days ago1692147575IN
0x799FFd29...647dB0c50
0 ETH0.0128747822.286675
Attack179168222023-08-15 0:59:35508 days ago1692061175IN
0x799FFd29...647dB0c50
0 ETH0.0113081516.57514164
Attack179096692023-08-14 0:59:35509 days ago1691974775IN
0x799FFd29...647dB0c50
0 ETH0.0081230612.92651548
Attack179025142023-08-13 0:59:35510 days ago1691888375IN
0x799FFd29...647dB0c50
0 ETH0.0105215612.91093045
Attack178953642023-08-12 0:59:35511 days ago1691801975IN
0x799FFd29...647dB0c50
0 ETH0.0109024315.00084186
Attack178882202023-08-11 0:59:35512 days ago1691715575IN
0x799FFd29...647dB0c50
0 ETH0.0090237215.5578817
Attack178810722023-08-10 0:59:35513 days ago1691629175IN
0x799FFd29...647dB0c50
0 ETH0.0130309918.74011532
Attack178739282023-08-09 0:59:35514 days ago1691542775IN
0x799FFd29...647dB0c50
0 ETH0.0113628317.99046507
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
180358512023-08-31 16:48:23492 days ago1693500503
0x799FFd29...647dB0c50
2.8509 ETH
180358472023-08-31 16:47:35492 days ago1693500455
0x799FFd29...647dB0c50
6.6521 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Game

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : Game.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

import "openzeppelin/token/ERC721/IERC721Receiver.sol";
import "openzeppelin/token/ERC1155/IERC1155.sol";

error MustOwnKey();
error JoinMustBeClosed();
error JoinMustBeOpen();
error OnlyFrogOwnerMayJoin();
error IncorrectPaymentAmount();
error OneFrogMustRemainLiving();
error AmountMustBeLessThan256();
error OnlyFrogOwnerOrOperatorMayClaim();
error NftMustBeKingFrog();
error OnlyOperatorMayPerformThisAction();
error FrogHasAlreadyJoined(uint256 id);
error TransferFailed();
error NoPendingWithdrawal();
error ExceededMaxBatchLimit();

contract Game is IERC721Receiver {
    // Associated contracts and addresses ///
    // The game operator (can control join state)
    address public operator;
    // The KingFrogs contract
    address public kingFrogAddress;
    // The DuckGod Clave contract
    address public keyAddress;

    /// Constants ///
    // @notice the item id also corresponds to the amount of lives it gives
    uint256 public constant WOOD = 1;
    uint256 public constant GOLD = 2;
    uint256 public constant JADE = 3;
    uint256 constant MAX_BATCH_SIZE = 25;

    /// Game state ///
    // Which item each frog has equipped
    mapping(uint256 => uint256) public frogsToItem;
    // Whether or not new players can join the game
    bool public joinAllowed = true;
    // The price (in wei) to join
    uint256 public joinPrice;
    // All frogs that have been staked
    mapping(uint256 => address) public frogsToOwner;
    // All frogs that have joined
    mapping(uint256 => bool) public frogsJoined;
    // All the frogs that are alive
    uint256[] public frogsAlive;
    // The lives reamining for each frog
    mapping(uint256 => uint256) public livesRemaining;
    // The amount of ETH the winner gets
    mapping(address => uint256) public pendingWithdrawals;

    /// Events ///
    event EquipmentPurchased(
        address indexed user,
        uint256 indexed item,
        uint256 indexed frogId
    );
    event FrogStaked(uint256 frogId, address indexed owner);
    event FrogJoined(uint256 frogId, address indexed owner);
    event Attack(uint256 amount, uint256 killed);

    // @param _operator The address of the operator
    // @param _kingFrogAddress The address of the KingFrogs contract
    // @param _joinPrice The price (in wei) to join the game
    // @param _keyAddress The address of the DuckGod Clave contract
    constructor(
        address _operator,
        address _kingFrogAddress,
        address _keyAddress,
        uint256 _joinPrice
    ) {
        operator = _operator;
        kingFrogAddress = _kingFrogAddress;
        keyAddress = _keyAddress;
        joinPrice = _joinPrice;
    }

    // @dev purchases equipment for the battel
    // @notice you must first transfer your KingFrog to this contract
    // @notice you must own a Duck God Clave to purchase equipment
    // @notice requires the purchaser to send the correct amount of ether
    // @notice requires join to be open
    // @param item the item id (see items above)
    // @param frogId the id of the KingFrog
    function purchaseEquipment(uint256 item, uint256 frogId) external payable {
        // check if the user owns a key
        if (IERC1155(keyAddress).balanceOf(msg.sender, 0) == 0) {
            revert MustOwnKey();
        }
        // check if join is open
        if (!joinAllowed) {
            revert JoinMustBeOpen();
        }
        // check if the user owns the frog
        if (frogsToOwner[frogId] != msg.sender) {
            revert OnlyFrogOwnerMayJoin();
        }

        // user can only upgrade items
        require(frogsToItem[frogId] < item, "you may only upgrade equipment");

        // charge the join price if the user hasn't joined yet
        uint256 joinFee;
        if (!frogsJoined[frogId]) {
            joinFee = joinPrice;
        }

        if (item == WOOD) {
            require(
                msg.value == joinFee + 0.01 ether,
                "wood equipment costs 0.01 ether"
            );
        } else if (item == GOLD) {
            require(
                msg.value == joinFee + 0.025 ether,
                "gold equipment costs 0.025 ether"
            );
        } else if (item == JADE) {
            require(
                msg.value == joinFee + 0.05 ether,
                "jade equipment costs 0.05 ether"
            );
        } else {
            revert("invalid item");
        }

        emit EquipmentPurchased(msg.sender, item, frogId);
        frogsToItem[frogId] = item;

        if (!frogsJoined[frogId]) {
            _join(frogId);
        }
    }

    // @param _joinAllowed Whether or not to allow new players to join
    function setJoinOpen(bool _joinAllowed) public onlyOperator {
        joinAllowed = _joinAllowed;
    }

    // @param _joinPrice The price (in wei) to join the game
    function setJoinPrice(uint256 _joinPrice) public onlyOperator {
        joinPrice = _joinPrice;
    }

    // @param frogId The id of the frog to join
    // @notice requires join to be open
    // @notice requires the frog to be owned by the sender
    // @notice requires the sender to send the correct amount of ether
    // @notice requires the sender to own a Duck God Clave
    function join(uint256 frogId) public payable {
        if (!joinAllowed) {
            revert JoinMustBeOpen();
        }
        if (frogsToOwner[frogId] != msg.sender) {
            revert OnlyFrogOwnerMayJoin();
        }
        if (msg.value != joinPrice) {
            revert IncorrectPaymentAmount();
        }
        if (IERC1155(keyAddress).balanceOf(msg.sender, 0) == 0) {
            revert MustOwnKey();
        }
        _join(frogId);
    }

    // @param frogIds The ids of the frogs to join
    // @notice requires join to be open
    // @notice requires the sender to own a Duck God Clave
    // @notice requires the number of frogs to be less than the max batch size
    // @notice requires the sender to send the correct amount of ether
    // @notice requires the sender to own all the frogs
    function batchJoin(uint256[] calldata frogIds) public payable {
        if (!joinAllowed) {
            revert JoinMustBeOpen();
        }
        if (IERC1155(keyAddress).balanceOf(msg.sender, 0) == 0) {
            revert MustOwnKey();
        }
        if (frogIds.length > MAX_BATCH_SIZE) {
            revert ExceededMaxBatchLimit();
        }
        if (msg.value / joinPrice != frogIds.length) {
            revert IncorrectPaymentAmount();
        }
        for (uint256 i; i < frogIds.length; ) {
            if (frogsToOwner[frogIds[i]] != msg.sender) {
                revert OnlyFrogOwnerMayJoin();
            }
            unchecked {
                ++i;
            }
        }
        for (uint256 i; i < frogIds.length; ) {
            _join(frogIds[i]);
            unchecked {
                ++i;
            }
        }
    }

    // @param frogId The id of the frog to get the lives remaining for
    function getLivesRemaining(uint256 frogId) public view returns (uint256) {
        return livesRemaining[frogId];
    }

    // @notice The operator can choose to attack the game while joining is
    //         closed, reducing the lives of random frogs until there is only
    //         one frog remaining
    // @notice Burns frogs that have no lives remaining
    // @param amount The number of frogs to attack (must be less than 256)
    function attack(uint256 amount) public onlyOperator {
        if (joinAllowed) {
            revert JoinMustBeClosed();
        }
        if (amount >= frogsAlive.length) {
            revert OneFrogMustRemainLiving();
        }
        if (amount >= 256) {
            revert AmountMustBeLessThan256();
        }

        uint256 killed;

        for (uint256 i; i < amount; ) {
            uint256 randomIndex = uint256(blockhash(block.number - i)) %
                frogsAlive.length;
            uint256 frogId = frogsAlive[randomIndex];
            uint256 newLivesRemaining = getLivesRemaining(frogId) - 1;

            if (newLivesRemaining == 0) {
                frogsAlive[randomIndex] = frogsAlive[frogsAlive.length - 1];
                frogsAlive.pop();

                // burn frog
                (bool success, ) = kingFrogAddress.call(
                    abi.encodeWithSignature("burn(uint256)", frogId)
                );

                killed += success ? 1 : 0;
            } else {
                livesRemaining[frogId] = newLivesRemaining;
            }

            unchecked {
                ++i;
            }
        }

        emit Attack(amount, killed);
    }

    // @notice 70% of the contract balance is sent to the winner, 30% is sent
    //         to the operator
    function claim() public {
        if (frogsAlive.length != 1) {
            revert OneFrogMustRemainLiving();
        }
        if (
            frogsToOwner[frogsAlive[0]] != msg.sender && msg.sender != operator
        ) {
            revert OnlyFrogOwnerOrOperatorMayClaim();
        }

        // allocate rewards
        uint256 prize = (address(this).balance * 7) / 10;
        uint256 operatorReward = address(this).balance - prize;

        pendingWithdrawals[msg.sender] += prize;
        pendingWithdrawals[operator] += operatorReward;

        // send nft back to winner
        (bool success, ) = kingFrogAddress.call(
            abi.encodeWithSignature(
                "safeTransferFrom(address,address,uint256)",
                address(this),
                msg.sender,
                frogsAlive[0]
            )
        );
        if (!success) {
            revert TransferFailed();
        }
    }

    // @notice Withdraws the sender's pending refund
    function withdraw() public {
        uint256 amount = pendingWithdrawals[msg.sender];
        if (amount == 0) {
            revert NoPendingWithdrawal();
        }

        // Zero the pending refund before sending
        pendingWithdrawals[msg.sender] = 0;
        payable(msg.sender).transfer(amount);
    }

    // @notice Sending a KingFrog to this contract will stake it
    function onERC721Received(
        address,
        address from,
        uint256 id,
        bytes calldata
    ) external override returns (bytes4) {
        if (msg.sender != kingFrogAddress) {
            revert NftMustBeKingFrog();
        }
        frogsToOwner[id] = from;
        emit FrogStaked(id, from);
        return this.onERC721Received.selector;
    }

    /// Internal functions ///

    modifier onlyOperator() {
        if (msg.sender != operator) {
            revert OnlyOperatorMayPerformThisAction();
        }
        _;
    }

    function _join(uint256 frogId) private {
        if (frogsJoined[frogId]) {
            revert FrogHasAlreadyJoined(frogId);
        }
        frogsJoined[frogId] = true;
        frogsAlive.push(frogId);
        livesRemaining[frogId] = frogsToItem[frogId] + 1;
        emit FrogJoined(frogId, frogsToOwner[frogId]);
    }
}

File 2 of 4 : IERC721Receiver.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol)

pragma solidity ^0.8.0;

/**
 * @title ERC721 token receiver interface
 * @dev Interface for any contract that wants to support safeTransfers
 * from ERC721 asset contracts.
 */
interface IERC721Receiver {
    /**
     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
     * by `operator` from `from`, this function is called.
     *
     * It must return its Solidity selector to confirm the token transfer.
     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
     *
     * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.
     */
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

File 3 of 4 : IERC1155.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (token/ERC1155/IERC1155.sol)

pragma solidity ^0.8.0;

import "../../utils/introspection/IERC165.sol";

/**
 * @dev Required interface of an ERC1155 compliant contract, as defined in the
 * https://eips.ethereum.org/EIPS/eip-1155[EIP].
 *
 * _Available since v3.1._
 */
interface IERC1155 is IERC165 {
    /**
     * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.
     */
    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value);

    /**
     * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all
     * transfers.
     */
    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] values
    );

    /**
     * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to
     * `approved`.
     */
    event ApprovalForAll(address indexed account, address indexed operator, bool approved);

    /**
     * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI.
     *
     * If an {URI} event was emitted for `id`, the standard
     * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value
     * returned by {IERC1155MetadataURI-uri}.
     */
    event URI(string value, uint256 indexed id);

    /**
     * @dev Returns the amount of tokens of token type `id` owned by `account`.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function balanceOf(address account, uint256 id) external view returns (uint256);

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}.
     *
     * Requirements:
     *
     * - `accounts` and `ids` must have the same length.
     */
    function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids)
        external
        view
        returns (uint256[] memory);

    /**
     * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`,
     *
     * Emits an {ApprovalForAll} event.
     *
     * Requirements:
     *
     * - `operator` cannot be the caller.
     */
    function setApprovalForAll(address operator, bool approved) external;

    /**
     * @dev Returns true if `operator` is approved to transfer ``account``'s tokens.
     *
     * See {setApprovalForAll}.
     */
    function isApprovedForAll(address account, address operator) external view returns (bool);

    /**
     * @dev Transfers `amount` tokens of token type `id` from `from` to `to`.
     *
     * Emits a {TransferSingle} event.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     * - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}.
     * - `from` must have a balance of tokens of type `id` of at least `amount`.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the
     * acceptance magic value.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes calldata data
    ) external;

    /**
     * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}.
     *
     * Emits a {TransferBatch} event.
     *
     * Requirements:
     *
     * - `ids` and `amounts` must have the same length.
     * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the
     * acceptance magic value.
     */
    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) external;
}

File 4 of 4 : IERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

Settings
{
  "remappings": [
    "@chainlink/=lib/contracts/node_modules/@chainlink/contracts/src/v0.8/dev/vendor/@arbitrum/nitro-contracts/src/",
    "@chainlink/contracts/src/=lib/contracts/node_modules/@chainlink/contracts/src/",
    "@ds-test/=lib/contracts/lib/ds-test/src/",
    "@openzeppelin/=lib/contracts/node_modules/@openzeppelin/",
    "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
    "@std/=lib/contracts/lib/forge-std/src/",
    "@thirdweb/=lib/contracts/contracts/",
    "contracts/=lib/contracts/contracts/",
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "dynamic-contracts/=lib/contracts/lib/dynamic-contracts/src/",
    "erc721a-upgradeable/=lib/contracts/node_modules/erc721a-upgradeable/",
    "erc721a/=lib/contracts/node_modules/erc721a/",
    "forge-std/=lib/forge-std/src/",
    "hardhat/=lib/contracts/node_modules/hardhat/",
    "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/",
    "openzeppelin/=lib/openzeppelin-contracts/contracts/",
    "supducks/=lib/Sup-Ducks-Upgradable/contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_kingFrogAddress","type":"address"},{"internalType":"address","name":"_keyAddress","type":"address"},{"internalType":"uint256","name":"_joinPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AmountMustBeLessThan256","type":"error"},{"inputs":[],"name":"ExceededMaxBatchLimit","type":"error"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"FrogHasAlreadyJoined","type":"error"},{"inputs":[],"name":"IncorrectPaymentAmount","type":"error"},{"inputs":[],"name":"JoinMustBeClosed","type":"error"},{"inputs":[],"name":"JoinMustBeOpen","type":"error"},{"inputs":[],"name":"MustOwnKey","type":"error"},{"inputs":[],"name":"NftMustBeKingFrog","type":"error"},{"inputs":[],"name":"NoPendingWithdrawal","type":"error"},{"inputs":[],"name":"OneFrogMustRemainLiving","type":"error"},{"inputs":[],"name":"OnlyFrogOwnerMayJoin","type":"error"},{"inputs":[],"name":"OnlyFrogOwnerOrOperatorMayClaim","type":"error"},{"inputs":[],"name":"OnlyOperatorMayPerformThisAction","type":"error"},{"inputs":[],"name":"TransferFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"killed","type":"uint256"}],"name":"Attack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"item","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"frogId","type":"uint256"}],"name":"EquipmentPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"frogId","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"FrogJoined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"frogId","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"FrogStaked","type":"event"},{"inputs":[],"name":"GOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"JADE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WOOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"attack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"frogIds","type":"uint256[]"}],"name":"batchJoin","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"frogsAlive","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"frogsJoined","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"frogsToItem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"frogsToOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"frogId","type":"uint256"}],"name":"getLivesRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"frogId","type":"uint256"}],"name":"join","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"joinAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"joinPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keyAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kingFrogAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"livesRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingWithdrawals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"item","type":"uint256"},{"internalType":"uint256","name":"frogId","type":"uint256"}],"name":"purchaseEquipment","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"_joinAllowed","type":"bool"}],"name":"setJoinOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_joinPrice","type":"uint256"}],"name":"setJoinPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526004805460ff191660011790553480156200001e57600080fd5b50604051620015ae380380620015ae8339810160408190526200004191620000a4565b600080546001600160a01b03199081166001600160a01b0396871617909155600180548216948616949094179093556002805490931691909316179055600555620000f6565b80516001600160a01b03811681146200009f57600080fd5b919050565b60008060008060808587031215620000bb57600080fd5b620000c68562000087565b9350620000d66020860162000087565b9250620000e66040860162000087565b6060959095015193969295505050565b6114a880620001066000396000f3fe60806040526004361061014b5760003560e01c80635f169144116100b6578063b90b7c2b1161006f578063b90b7c2b146103ad578063df0b52c8146103cd578063e94e599b146103ed578063e9ab1b9614610402578063f3f4370314610438578063fdb079d91461046557600080fd5b80635f169144146102ed5780636143e3551461030d57806364dd891a1461033a57806384bf9cb91461035a578063899dac3c1461037a578063af96dbdc1461039a57600080fd5b80633d7ee23b116101085780633d7ee23b1461024d5780633e4bee38146102635780634e71d92d146102785780635653e3ac1461028d578063570ca735146102a25780635c29cec7146102da57600080fd5b8063049878f314610150578063150b7a02146101655780631a2783f9146101a3578063269f4e99146101de578063288e3d2a146102085780633ccfd60b14610238575b600080fd5b61016361015e3660046111bc565b610492565b005b34801561017157600080fd5b506101856101803660046111f1565b6105ab565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156101af57600080fd5b506101d06101be3660046111bc565b60096020526000908152604090205481565b60405190815260200161019a565b3480156101ea57600080fd5b506004546101f89060ff1681565b604051901515815260200161019a565b34801561021457600080fd5b506101f86102233660046111bc565b60076020526000908152604090205460ff1681565b34801561024457600080fd5b50610163610649565b34801561025957600080fd5b506101d060055481565b34801561026f57600080fd5b506101d0600281565b34801561028457600080fd5b506101636106b9565b34801561029957600080fd5b506101d0600181565b3480156102ae57600080fd5b506000546102c2906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b6101636102e836600461128c565b6108cc565b3480156102f957600080fd5b506101636103083660046111bc565b610c00565b34801561031957600080fd5b506101d06103283660046111bc565b60009081526009602052604090205490565b34801561034657600080fd5b506101636103553660046111bc565b610c30565b34801561036657600080fd5b506101636103753660046112ae565b610eca565b34801561038657600080fd5b506101d06103953660046111bc565b610f08565b6101636103a83660046112d7565b610f29565b3480156103b957600080fd5b506001546102c2906001600160a01b031681565b3480156103d957600080fd5b506002546102c2906001600160a01b031681565b3480156103f957600080fd5b506101d0600381565b34801561040e57600080fd5b506102c261041d3660046111bc565b6006602052600090815260409020546001600160a01b031681565b34801561044457600080fd5b506101d061045336600461134c565b600a6020526000908152604090205481565b34801561047157600080fd5b506101d06104803660046111bc565b60036020526000908152604090205481565b60045460ff166104b5576040516333500f2160e01b815260040160405180910390fd5b6000818152600660205260409020546001600160a01b031633146104ec576040516356b091e760e01b815260040160405180910390fd5b600554341461050e57604051636992e1ff60e01b815260040160405180910390fd5b600254604051627eeac760e11b8152336004820152600060248201526001600160a01b039091169062fdd58e90604401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190611367565b60000361059f57604051632d65ec2d60e11b815260040160405180910390fd5b6105a8816110cc565b50565b6001546000906001600160a01b031633146105d957604051634fa8712160e01b815260040160405180910390fd5b60008481526006602090815260409182902080546001600160a01b0319166001600160a01b03891690811790915591518681527f6f4af6a9df07aac63134b3d907e2c2520dd9d30d78fb5293fb6b16012d096b22910160405180910390a250630a85bd0160e11b95945050505050565b336000908152600a60205260408120549081900361067a57604051639121b84f60e01b815260040160405180910390fd5b336000818152600a60205260408082208290555183156108fc0291849190818181858888f193505050501580156106b5573d6000803e3d6000fd5b5050565b6008546001146106dc5760405163aede4aa560e01b815260040160405180910390fd5b336001600160a01b03166006600060086000815481106106fe576106fe611380565b600091825260208083209091015483528201929092526040019020546001600160a01b03161480159061073c57506000546001600160a01b03163314155b1561075a57604051632325376360e21b815260040160405180910390fd5b6000600a6107694760076113ac565b61077391906113df565b9050600061078182476113f3565b336000908152600a60205260408120805492935084929091906107a5908490611406565b9091555050600080546001600160a01b03168152600a6020526040812080548392906107d2908490611406565b9091555050600154600880546000926001600160a01b031691309133919085906107fe576107fe611380565b6000918252602090912001546040516001600160a01b039384166024820152929091166044830152606482015260840160408051601f198184030181529181526020820180516001600160e01b0316632142170760e11b179052516108639190611419565b6000604051808303816000865af19150503d80600081146108a0576040519150601f19603f3d011682016040523d82523d6000602084013e6108a5565b606091505b50509050806108c7576040516312171d8360e31b815260040160405180910390fd5b505050565b600254604051627eeac760e11b8152336004820152600060248201526001600160a01b039091169062fdd58e90604401602060405180830381865afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d9190611367565b60000361095d57604051632d65ec2d60e11b815260040160405180910390fd5b60045460ff16610980576040516333500f2160e01b815260040160405180910390fd5b6000818152600660205260409020546001600160a01b031633146109b7576040516356b091e760e01b815260040160405180910390fd5b6000818152600360205260409020548211610a195760405162461bcd60e51b815260206004820152601e60248201527f796f75206d6179206f6e6c7920757067726164652065717569706d656e74000060448201526064015b60405180910390fd5b60008181526007602052604081205460ff16610a3457506005545b60018303610aa057610a4d81662386f26fc10000611406565b3414610a9b5760405162461bcd60e51b815260206004820152601f60248201527f776f6f642065717569706d656e7420636f73747320302e3031206574686572006044820152606401610a10565b610ba5565b60028303610b0757610ab9816658d15e17628000611406565b3414610a9b5760405162461bcd60e51b815260206004820181905260248201527f676f6c642065717569706d656e7420636f73747320302e3032352065746865726044820152606401610a10565b60038303610b6e57610b208166b1a2bc2ec50000611406565b3414610a9b5760405162461bcd60e51b815260206004820152601f60248201527f6a6164652065717569706d656e7420636f73747320302e3035206574686572006044820152606401610a10565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964206974656d60a01b6044820152606401610a10565b6040518290849033907f255ebe396183cf347872f659e868f6b7ccfd3582ed19cb2a97b0a6e3dcb00bec90600090a46000828152600360209081526040808320869055600790915290205460ff166108c7576108c7826110cc565b6000546001600160a01b03163314610c2b5760405163b644735760e01b815260040160405180910390fd5b600555565b6000546001600160a01b03163314610c5b5760405163b644735760e01b815260040160405180910390fd5b60045460ff1615610c7f57604051632f3cbe1560e11b815260040160405180910390fd5b6008548110610ca15760405163aede4aa560e01b815260040160405180910390fd5b6101008110610cc357604051630b27b31b60e31b815260040160405180910390fd5b6000805b82811015610e8c57600854600090610cdf83436113f3565b610cea919040611448565b9050600060088281548110610d0157610d01611380565b9060005260206000200154905060006001610d288360009081526009602052604090205490565b610d3291906113f3565b905080600003610e6c5760088054610d4c906001906113f3565b81548110610d5c57610d5c611380565b906000526020600020015460088481548110610d7a57610d7a611380565b6000918252602090912001556008805480610d9757610d9761145c565b6000828152602081206000199083018101829055909101909155600154604051602481018590526001600160a01b039091169060440160408051601f198184030181529181526020820180516001600160e01b0316630852cd8d60e31b17905251610e029190611419565b6000604051808303816000865af19150503d8060008114610e3f576040519150601f19603f3d011682016040523d82523d6000602084013e610e44565b606091505b5050905080610e54576000610e57565b60015b610e649060ff1687611406565b955050610e7e565b60008281526009602052604090208190555b836001019350505050610cc7565b5060408051838152602081018390527f722bf2499704ddf6a39d5d4255ae6b6ed3dab17d2fb7155f877f86d53b838246910160405180910390a15050565b6000546001600160a01b03163314610ef55760405163b644735760e01b815260040160405180910390fd5b6004805460ff1916911515919091179055565b60088181548110610f1857600080fd5b600091825260209091200154905081565b60045460ff16610f4c576040516333500f2160e01b815260040160405180910390fd5b600254604051627eeac760e11b8152336004820152600060248201526001600160a01b039091169062fdd58e90604401602060405180830381865afa158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbd9190611367565b600003610fdd57604051632d65ec2d60e11b815260040160405180910390fd5b6019811115610fff5760405163c8ed84dd60e01b815260040160405180910390fd5b600554819061100e90346113df565b1461102c57604051636992e1ff60e01b815260040160405180910390fd5b60005b8181101561109757336006600085858581811061104e5761104e611380565b60209081029290920135835250810191909152604001600020546001600160a01b03161461108f576040516356b091e760e01b815260040160405180910390fd5b60010161102f565b5060005b818110156108c7576110c48383838181106110b8576110b8611380565b905060200201356110cc565b60010161109b565b60008181526007602052604090205460ff16156110ff5760405163bf539ea160e01b815260048101829052602401610a10565b6000818152600760209081526040808320805460ff19166001908117909155600880548083019091557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30185905560039092529091205461115f91611406565b60008281526009602090815260408083209390935560068152908290205491518381526001600160a01b03909216917f17e5dcb37bdb3edefa40d163ba48eaf6fea0131716258954b7ac44a79eea685a910160405180910390a250565b6000602082840312156111ce57600080fd5b5035919050565b80356001600160a01b03811681146111ec57600080fd5b919050565b60008060008060006080868803121561120957600080fd5b611212866111d5565b9450611220602087016111d5565b935060408601359250606086013567ffffffffffffffff8082111561124457600080fd5b818801915088601f83011261125857600080fd5b81358181111561126757600080fd5b89602082850101111561127957600080fd5b9699959850939650602001949392505050565b6000806040838503121561129f57600080fd5b50508035926020909101359150565b6000602082840312156112c057600080fd5b813580151581146112d057600080fd5b9392505050565b600080602083850312156112ea57600080fd5b823567ffffffffffffffff8082111561130257600080fd5b818501915085601f83011261131657600080fd5b81358181111561132557600080fd5b8660208260051b850101111561133a57600080fd5b60209290920196919550909350505050565b60006020828403121561135e57600080fd5b6112d0826111d5565b60006020828403121561137957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176113c3576113c3611396565b92915050565b634e487b7160e01b600052601260045260246000fd5b6000826113ee576113ee6113c9565b500490565b818103818111156113c3576113c3611396565b808201808211156113c3576113c3611396565b6000825160005b8181101561143a5760208186018101518583015201611420565b506000920191825250919050565b600082611457576114576113c9565b500690565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220eacd23de5dd6f192011d5df1ec3bf429bcac46e112920d5580cd3274d25e97e464736f6c63430008110033000000000000000000000000a02b39d3d2098781fccdda407d342b1b9a837ec6000000000000000000000000d668a2e001f3385b8bbc5a8682ac3c0d83c19122000000000000000000000000760831b9a344bf28a7f0e99b3b5fb660451d6c41000000000000000000000000000000000000000000000000002386f26fc10000

Deployed Bytecode

0x60806040526004361061014b5760003560e01c80635f169144116100b6578063b90b7c2b1161006f578063b90b7c2b146103ad578063df0b52c8146103cd578063e94e599b146103ed578063e9ab1b9614610402578063f3f4370314610438578063fdb079d91461046557600080fd5b80635f169144146102ed5780636143e3551461030d57806364dd891a1461033a57806384bf9cb91461035a578063899dac3c1461037a578063af96dbdc1461039a57600080fd5b80633d7ee23b116101085780633d7ee23b1461024d5780633e4bee38146102635780634e71d92d146102785780635653e3ac1461028d578063570ca735146102a25780635c29cec7146102da57600080fd5b8063049878f314610150578063150b7a02146101655780631a2783f9146101a3578063269f4e99146101de578063288e3d2a146102085780633ccfd60b14610238575b600080fd5b61016361015e3660046111bc565b610492565b005b34801561017157600080fd5b506101856101803660046111f1565b6105ab565b6040516001600160e01b031990911681526020015b60405180910390f35b3480156101af57600080fd5b506101d06101be3660046111bc565b60096020526000908152604090205481565b60405190815260200161019a565b3480156101ea57600080fd5b506004546101f89060ff1681565b604051901515815260200161019a565b34801561021457600080fd5b506101f86102233660046111bc565b60076020526000908152604090205460ff1681565b34801561024457600080fd5b50610163610649565b34801561025957600080fd5b506101d060055481565b34801561026f57600080fd5b506101d0600281565b34801561028457600080fd5b506101636106b9565b34801561029957600080fd5b506101d0600181565b3480156102ae57600080fd5b506000546102c2906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b6101636102e836600461128c565b6108cc565b3480156102f957600080fd5b506101636103083660046111bc565b610c00565b34801561031957600080fd5b506101d06103283660046111bc565b60009081526009602052604090205490565b34801561034657600080fd5b506101636103553660046111bc565b610c30565b34801561036657600080fd5b506101636103753660046112ae565b610eca565b34801561038657600080fd5b506101d06103953660046111bc565b610f08565b6101636103a83660046112d7565b610f29565b3480156103b957600080fd5b506001546102c2906001600160a01b031681565b3480156103d957600080fd5b506002546102c2906001600160a01b031681565b3480156103f957600080fd5b506101d0600381565b34801561040e57600080fd5b506102c261041d3660046111bc565b6006602052600090815260409020546001600160a01b031681565b34801561044457600080fd5b506101d061045336600461134c565b600a6020526000908152604090205481565b34801561047157600080fd5b506101d06104803660046111bc565b60036020526000908152604090205481565b60045460ff166104b5576040516333500f2160e01b815260040160405180910390fd5b6000818152600660205260409020546001600160a01b031633146104ec576040516356b091e760e01b815260040160405180910390fd5b600554341461050e57604051636992e1ff60e01b815260040160405180910390fd5b600254604051627eeac760e11b8152336004820152600060248201526001600160a01b039091169062fdd58e90604401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190611367565b60000361059f57604051632d65ec2d60e11b815260040160405180910390fd5b6105a8816110cc565b50565b6001546000906001600160a01b031633146105d957604051634fa8712160e01b815260040160405180910390fd5b60008481526006602090815260409182902080546001600160a01b0319166001600160a01b03891690811790915591518681527f6f4af6a9df07aac63134b3d907e2c2520dd9d30d78fb5293fb6b16012d096b22910160405180910390a250630a85bd0160e11b95945050505050565b336000908152600a60205260408120549081900361067a57604051639121b84f60e01b815260040160405180910390fd5b336000818152600a60205260408082208290555183156108fc0291849190818181858888f193505050501580156106b5573d6000803e3d6000fd5b5050565b6008546001146106dc5760405163aede4aa560e01b815260040160405180910390fd5b336001600160a01b03166006600060086000815481106106fe576106fe611380565b600091825260208083209091015483528201929092526040019020546001600160a01b03161480159061073c57506000546001600160a01b03163314155b1561075a57604051632325376360e21b815260040160405180910390fd5b6000600a6107694760076113ac565b61077391906113df565b9050600061078182476113f3565b336000908152600a60205260408120805492935084929091906107a5908490611406565b9091555050600080546001600160a01b03168152600a6020526040812080548392906107d2908490611406565b9091555050600154600880546000926001600160a01b031691309133919085906107fe576107fe611380565b6000918252602090912001546040516001600160a01b039384166024820152929091166044830152606482015260840160408051601f198184030181529181526020820180516001600160e01b0316632142170760e11b179052516108639190611419565b6000604051808303816000865af19150503d80600081146108a0576040519150601f19603f3d011682016040523d82523d6000602084013e6108a5565b606091505b50509050806108c7576040516312171d8360e31b815260040160405180910390fd5b505050565b600254604051627eeac760e11b8152336004820152600060248201526001600160a01b039091169062fdd58e90604401602060405180830381865afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d9190611367565b60000361095d57604051632d65ec2d60e11b815260040160405180910390fd5b60045460ff16610980576040516333500f2160e01b815260040160405180910390fd5b6000818152600660205260409020546001600160a01b031633146109b7576040516356b091e760e01b815260040160405180910390fd5b6000818152600360205260409020548211610a195760405162461bcd60e51b815260206004820152601e60248201527f796f75206d6179206f6e6c7920757067726164652065717569706d656e74000060448201526064015b60405180910390fd5b60008181526007602052604081205460ff16610a3457506005545b60018303610aa057610a4d81662386f26fc10000611406565b3414610a9b5760405162461bcd60e51b815260206004820152601f60248201527f776f6f642065717569706d656e7420636f73747320302e3031206574686572006044820152606401610a10565b610ba5565b60028303610b0757610ab9816658d15e17628000611406565b3414610a9b5760405162461bcd60e51b815260206004820181905260248201527f676f6c642065717569706d656e7420636f73747320302e3032352065746865726044820152606401610a10565b60038303610b6e57610b208166b1a2bc2ec50000611406565b3414610a9b5760405162461bcd60e51b815260206004820152601f60248201527f6a6164652065717569706d656e7420636f73747320302e3035206574686572006044820152606401610a10565b60405162461bcd60e51b815260206004820152600c60248201526b696e76616c6964206974656d60a01b6044820152606401610a10565b6040518290849033907f255ebe396183cf347872f659e868f6b7ccfd3582ed19cb2a97b0a6e3dcb00bec90600090a46000828152600360209081526040808320869055600790915290205460ff166108c7576108c7826110cc565b6000546001600160a01b03163314610c2b5760405163b644735760e01b815260040160405180910390fd5b600555565b6000546001600160a01b03163314610c5b5760405163b644735760e01b815260040160405180910390fd5b60045460ff1615610c7f57604051632f3cbe1560e11b815260040160405180910390fd5b6008548110610ca15760405163aede4aa560e01b815260040160405180910390fd5b6101008110610cc357604051630b27b31b60e31b815260040160405180910390fd5b6000805b82811015610e8c57600854600090610cdf83436113f3565b610cea919040611448565b9050600060088281548110610d0157610d01611380565b9060005260206000200154905060006001610d288360009081526009602052604090205490565b610d3291906113f3565b905080600003610e6c5760088054610d4c906001906113f3565b81548110610d5c57610d5c611380565b906000526020600020015460088481548110610d7a57610d7a611380565b6000918252602090912001556008805480610d9757610d9761145c565b6000828152602081206000199083018101829055909101909155600154604051602481018590526001600160a01b039091169060440160408051601f198184030181529181526020820180516001600160e01b0316630852cd8d60e31b17905251610e029190611419565b6000604051808303816000865af19150503d8060008114610e3f576040519150601f19603f3d011682016040523d82523d6000602084013e610e44565b606091505b5050905080610e54576000610e57565b60015b610e649060ff1687611406565b955050610e7e565b60008281526009602052604090208190555b836001019350505050610cc7565b5060408051838152602081018390527f722bf2499704ddf6a39d5d4255ae6b6ed3dab17d2fb7155f877f86d53b838246910160405180910390a15050565b6000546001600160a01b03163314610ef55760405163b644735760e01b815260040160405180910390fd5b6004805460ff1916911515919091179055565b60088181548110610f1857600080fd5b600091825260209091200154905081565b60045460ff16610f4c576040516333500f2160e01b815260040160405180910390fd5b600254604051627eeac760e11b8152336004820152600060248201526001600160a01b039091169062fdd58e90604401602060405180830381865afa158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbd9190611367565b600003610fdd57604051632d65ec2d60e11b815260040160405180910390fd5b6019811115610fff5760405163c8ed84dd60e01b815260040160405180910390fd5b600554819061100e90346113df565b1461102c57604051636992e1ff60e01b815260040160405180910390fd5b60005b8181101561109757336006600085858581811061104e5761104e611380565b60209081029290920135835250810191909152604001600020546001600160a01b03161461108f576040516356b091e760e01b815260040160405180910390fd5b60010161102f565b5060005b818110156108c7576110c48383838181106110b8576110b8611380565b905060200201356110cc565b60010161109b565b60008181526007602052604090205460ff16156110ff5760405163bf539ea160e01b815260048101829052602401610a10565b6000818152600760209081526040808320805460ff19166001908117909155600880548083019091557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30185905560039092529091205461115f91611406565b60008281526009602090815260408083209390935560068152908290205491518381526001600160a01b03909216917f17e5dcb37bdb3edefa40d163ba48eaf6fea0131716258954b7ac44a79eea685a910160405180910390a250565b6000602082840312156111ce57600080fd5b5035919050565b80356001600160a01b03811681146111ec57600080fd5b919050565b60008060008060006080868803121561120957600080fd5b611212866111d5565b9450611220602087016111d5565b935060408601359250606086013567ffffffffffffffff8082111561124457600080fd5b818801915088601f83011261125857600080fd5b81358181111561126757600080fd5b89602082850101111561127957600080fd5b9699959850939650602001949392505050565b6000806040838503121561129f57600080fd5b50508035926020909101359150565b6000602082840312156112c057600080fd5b813580151581146112d057600080fd5b9392505050565b600080602083850312156112ea57600080fd5b823567ffffffffffffffff8082111561130257600080fd5b818501915085601f83011261131657600080fd5b81358181111561132557600080fd5b8660208260051b850101111561133a57600080fd5b60209290920196919550909350505050565b60006020828403121561135e57600080fd5b6112d0826111d5565b60006020828403121561137957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176113c3576113c3611396565b92915050565b634e487b7160e01b600052601260045260246000fd5b6000826113ee576113ee6113c9565b500490565b818103818111156113c3576113c3611396565b808201808211156113c3576113c3611396565b6000825160005b8181101561143a5760208186018101518583015201611420565b506000920191825250919050565b600082611457576114576113c9565b500690565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220eacd23de5dd6f192011d5df1ec3bf429bcac46e112920d5580cd3274d25e97e464736f6c63430008110033

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

000000000000000000000000a02b39d3d2098781fccdda407d342b1b9a837ec6000000000000000000000000d668a2e001f3385b8bbc5a8682ac3c0d83c19122000000000000000000000000760831b9a344bf28a7f0e99b3b5fb660451d6c41000000000000000000000000000000000000000000000000002386f26fc10000

-----Decoded View---------------
Arg [0] : _operator (address): 0xA02B39d3d2098781fCcddA407D342b1B9A837eC6
Arg [1] : _kingFrogAddress (address): 0xd668A2E001f3385B8BBC5a8682AC3C0D83C19122
Arg [2] : _keyAddress (address): 0x760831B9A344Bf28A7F0e99b3b5Fb660451D6c41
Arg [3] : _joinPrice (uint256): 10000000000000000

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000a02b39d3d2098781fccdda407d342b1b9a837ec6
Arg [1] : 000000000000000000000000d668a2e001f3385b8bbc5a8682ac3c0d83c19122
Arg [2] : 000000000000000000000000760831b9a344bf28a7f0e99b3b5fb660451d6c41
Arg [3] : 000000000000000000000000000000000000000000000000002386f26fc10000


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.