Overview
APE Balance
APE Value
$0.16 (@ $0.17/APE)Multichain Info
Latest 25 from a total of 363 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Pause | 24047706 | 129 days ago | IN | 0 APE | 0.00116342 | ||||
| Withdraw Reward ... | 24019044 | 129 days ago | IN | 0 APE | 0.00097877 | ||||
| Place Play | 23560934 | 136 days ago | IN | 100 APE | 0.00490421 | ||||
| Place Play | 21474848 | 162 days ago | IN | 5 APE | 0.00490451 | ||||
| Place Play | 19955494 | 184 days ago | IN | 10 APE | 0.00490423 | ||||
| Place Play | 19878981 | 186 days ago | IN | 5 APE | 0.00490451 | ||||
| Place Play | 19619778 | 191 days ago | IN | 5 APE | 0.00332802 | ||||
| Place Play | 19573756 | 192 days ago | IN | 3 APE | 0.00490454 | ||||
| Place Play | 19571643 | 192 days ago | IN | 5 APE | 0.00383389 | ||||
| Place Play | 19569689 | 192 days ago | IN | 100 APE | 0.00490421 | ||||
| Place Play | 19519330 | 194 days ago | IN | 0.01 APE | 0.00100991 | ||||
| Place Play | 19325218 | 199 days ago | IN | 1 APE | 0.00383389 | ||||
| Place Play | 19282114 | 200 days ago | IN | 1 APE | 0.00490421 | ||||
| Place Play | 19273883 | 200 days ago | IN | 1 APE | 0.00490421 | ||||
| Place Play | 19202531 | 203 days ago | IN | 10 APE | 0.00490451 | ||||
| Place Play | 19096473 | 206 days ago | IN | 3 APE | 0.00383389 | ||||
| Place Play | 19020664 | 208 days ago | IN | 10 APE | 0.00490451 | ||||
| Place Play | 19019771 | 208 days ago | IN | 3 APE | 0.00439833 | ||||
| Place Play | 18971901 | 209 days ago | IN | 10 APE | 0.00439803 | ||||
| Place Play | 18956672 | 209 days ago | IN | 0.44 APE | 0.00332772 | ||||
| Resolve Play And... | 18766307 | 214 days ago | IN | 0 APE | 0.00327967 | ||||
| Place Play | 18765994 | 214 days ago | IN | 5 APE | 0.00439833 | ||||
| Resolve Play And... | 18722291 | 214 days ago | IN | 0 APE | 0.00327906 | ||||
| Place Play | 18722246 | 214 days ago | IN | 1 APE | 0.00439833 | ||||
| Resolve Play And... | 18707957 | 215 days ago | IN | 0 APE | 0.00284561 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 24019044 | 129 days ago | 332 APE | ||||
| 18468906 | 221 days ago | 0.825 APE | ||||
| 18468844 | 221 days ago | 0.75 APE | ||||
| 18335650 | 225 days ago | 60 APE | ||||
| 18071797 | 230 days ago | 0.6 APE | ||||
| 17972454 | 232 days ago | 99 APE | ||||
| 17492389 | 235 days ago | 0.75 APE | ||||
| 17491917 | 235 days ago | 0.375 APE | ||||
| 16640401 | 243 days ago | 7.5 APE | ||||
| 16639772 | 243 days ago | 15 APE | ||||
| 16230720 | 247 days ago | 1.5 APE | ||||
| 16230418 | 247 days ago | 15 APE | ||||
| 16230008 | 247 days ago | 7.5 APE | ||||
| 16190967 | 248 days ago | 40 APE | ||||
| 16185787 | 248 days ago | 15 APE | ||||
| 16185554 | 248 days ago | 0.15 APE | ||||
| 16183307 | 248 days ago | 10 APE | ||||
| 16183117 | 248 days ago | 20 APE | ||||
| 16183090 | 248 days ago | 112 APE | ||||
| 16152815 | 249 days ago | 0.015 APE | ||||
| 16152125 | 249 days ago | 0.015 APE | ||||
| 16151986 | 249 days ago | 0.015 APE | ||||
| 16151873 | 249 days ago | 7.5 APE | ||||
| 16134682 | 249 days ago | 1.5 APE | ||||
| 16131556 | 249 days ago | 166 APE |
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import "@openzeppelin/contracts/token/ERC721/IERC721.sol";
/**
* @title Ape69 – price-prediction game that accepts the ApeChain native coin ($APE)
* @notice Players bet between 0.00001 APE and 100 APE on whether a market price
* will be higher or lower after exactly 3 minutes 33 seconds. ERC-20
* support has been removed; the contract deals exclusively with the
* chain’s native asset.
*/
contract APE69 is Ownable, ReentrancyGuard {
// ---------------------------------------------------------------------
// Types
// ---------------------------------------------------------------------
enum Market {
BTC,
ETH,
APE,
SOL
}
struct Play {
address player;
Market market;
uint256 amount;
bool isHigher;
uint256 startPrice;
uint256 endPrice;
uint256 endTime;
bool claimed;
bool won;
}
// ---------------------------------------------------------------------
// Constants & storage
// ---------------------------------------------------------------------
uint256 public constant PLAY_DURATION = 69 seconds;
uint256 public constant MIN_BET = 0.00001 ether; // 1 × 10¹³ wei
uint256 public constant MAX_BET = 100 ether;
uint256 public feePercentage = 2500;
uint256 public rewardPool;
mapping(address => Play[]) public playHistory;
mapping(Market => bool) public validMarkets;
mapping(address => uint256) public playerWins;
mapping(address => uint256) public playerLosses;
address public gameApprover;
IERC721 public nftContract;
address[] public players;
bool public paused;
// ---------------------------------------------------------------------
// Events
// ---------------------------------------------------------------------
event PlayPlaced(
address indexed player,
Market market,
uint256 amount,
bool isHigher,
uint256 endTime
);
event PlayOutcome(address indexed player, uint256 reward, bool won);
// ---------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------
constructor(
address _owner,
address _gameApprover,
address _nftContract
) Ownable(_owner) {
validMarkets[Market.BTC] = true;
validMarkets[Market.ETH] = true;
validMarkets[Market.APE] = true;
validMarkets[Market.SOL] = true;
nftContract = IERC721(_nftContract);
gameApprover = _gameApprover;
}
// ---------------------------------------------------------------------
// Modifiers
// ---------------------------------------------------------------------
modifier whenNotPaused() {
require(!paused, "Contract is paused");
_;
}
modifier onlyGameApprover() {
require(msg.sender == gameApprover, "Caller is not the game approver");
_;
}
// ---------------------------------------------------------------------
// Core game flow
// ---------------------------------------------------------------------
/**
* @dev Enter a prediction round by sending native $APE with the tx. The
* amount must be within the allowed range.
*/
function placePlay(
Market market,
bool isHigher
) external payable whenNotPaused nonReentrant {
uint256 amount = msg.value;
require(
nftContract.balanceOf(msg.sender) > 0,
"Must own NFT to place a prediction"
);
require(
amount >= MIN_BET && amount <= MAX_BET,
"Bet amount out of range"
);
require(
playHistory[msg.sender].length == 0 ||
block.timestamp >
playHistory[msg.sender][playHistory[msg.sender].length - 1]
.endTime,
"Active play in progress"
);
require(validMarkets[market], "Invalid market");
uint256 endTime = block.timestamp + PLAY_DURATION;
rewardPool += amount;
playHistory[msg.sender].push(
Play({
player: msg.sender,
market: market,
amount: amount,
isHigher: isHigher,
startPrice: 0,
endPrice: 0,
endTime: endTime,
claimed: false,
won: false
})
);
if (playHistory[msg.sender].length == 1) {
players.push(msg.sender);
}
emit PlayPlaced(msg.sender, market, amount, isHigher, endTime);
}
/**
* @dev Resolve the most recent play for a player; callable only by the
* contract owner acting as the price oracle. Pays out 2× stake minus
* protocol fee if the prediction is correct.
*/
function resolvePlayAndReward(
address player,
uint256 startPrice,
uint256 endPrice
) external onlyGameApprover whenNotPaused nonReentrant {
require(playHistory[player].length > 0, "No play found for player");
Play storage play = playHistory[player][playHistory[player].length - 1];
require(block.timestamp >= play.endTime, "Play duration not over");
require(play.endPrice == 0, "End price already posted");
play.startPrice = startPrice;
play.endPrice = endPrice;
bool won = (play.isHigher && endPrice > startPrice) ||
(!play.isHigher && endPrice < startPrice);
play.won = won;
uint256 reward = 0;
if (won) {
reward = play.amount * 2;
uint256 fee = (reward * feePercentage) / 10000;
uint256 netReward = reward - fee;
require(netReward <= rewardPool, "Reward pool depleted");
rewardPool -= netReward;
(bool ok, ) = play.player.call{value: netReward}("");
require(ok, "Native transfer failed");
playerWins[play.player]++;
} else {
playerLosses[play.player]++;
}
play.claimed = true;
emit PlayOutcome(player, reward, won);
}
// ---------------------------------------------------------------------
// Owner functions
// ---------------------------------------------------------------------
/** @dev Transfer native $APE out of the reward pool. */
function withdrawRewardPool(
uint256 amount
) external onlyOwner nonReentrant {
require(amount <= rewardPool, "Insufficient reward pool");
rewardPool -= amount;
(bool ok, ) = owner().call{value: amount}("");
require(ok, "Native transfer failed");
}
/** @dev Top-up the reward pool with native coin. */
function addToRewardPool() external payable onlyOwner {
rewardPool += msg.value;
}
function setMarketStatus(Market market, bool status) external onlyOwner {
validMarkets[market] = status;
}
function setFeePercentage(uint256 newFeePercentage) external onlyOwner {
require(newFeePercentage <= 10000, "Fee percentage too high");
feePercentage = newFeePercentage;
}
function pause() external onlyOwner {
paused = true;
}
function unpause() external onlyOwner {
paused = false;
}
// ---------------------------------------------------------------------
// View helpers (unchanged semantics)
// ---------------------------------------------------------------------
function getCurrentPlay(
address player
) external view returns (Play memory) {
require(
playHistory[player].length > 0,
"No plays found for this player"
);
return playHistory[player][playHistory[player].length - 1];
}
function getPlayHistory(
address player,
uint256 startIndex,
uint256 endIndex
) external view returns (Play[] memory) {
require(startIndex < playHistory[player].length, "Start index OOB");
require(endIndex < playHistory[player].length, "End index OOB");
require(startIndex <= endIndex, "Invalid indices");
Play[] memory history = new Play[](endIndex - startIndex + 1);
for (uint256 i = startIndex; i <= endIndex; i++) {
history[i - startIndex] = playHistory[player][i];
}
return history;
}
function getLeaderboardStats(
address player
) external view returns (uint256 wins, uint256 losses) {
wins = playerWins[player];
losses = playerLosses[player];
}
function getAllLeaderboardStats()
external
view
returns (
address[] memory playersList,
uint256[] memory wins,
uint256[] memory losses
)
{
uint256 playerCount = players.length;
playersList = new address[](playerCount);
wins = new uint256[](playerCount);
losses = new uint256[](playerCount);
for (uint256 i = 0; i < playerCount; i++) {
address p = players[i];
playersList[i] = p;
wins[i] = playerWins[p];
losses[i] = playerLosses[p];
}
}
function setGameApprover(address _approver) external onlyOwner {
require(_approver != address(0), "Invalid approver address");
gameApprover = _approver;
}
// ---------------------------------------------------------------------
// Fallback to receive unsolicited top-ups
// ---------------------------------------------------------------------
receive() external payable {
rewardPool += msg.value;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "../utils/Context.sol";
/**
* @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.
*
* The initial owner is set to the address provided by the deployer. 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;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling 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 {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_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);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)
pragma solidity ^0.8.20;
import {IERC165} from "../../utils/introspection/IERC165.sol";
/**
* @dev Required interface of an ERC721 compliant contract.
*/
interface IERC721 is IERC165 {
/**
* @dev Emitted when `tokenId` token is transferred from `from` to `to`.
*/
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
*/
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
*/
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
/**
* @dev Returns the number of tokens in ``owner``'s account.
*/
function balanceOf(address owner) external view returns (uint256 balance);
/**
* @dev Returns the owner of the `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function ownerOf(uint256 tokenId) external view returns (address owner);
/**
* @dev Safely transfers `tokenId` token from `from` to `to`.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon
* a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;
/**
* @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
* are aware of the ERC721 protocol to prevent tokens from being forever locked.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must exist and be owned by `from`.
* - If the caller is not `from`, it must have been allowed to move this token by either {approve} or
* {setApprovalForAll}.
* - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon
* a safe transfer.
*
* Emits a {Transfer} event.
*/
function safeTransferFrom(address from, address to, uint256 tokenId) external;
/**
* @dev Transfers `tokenId` token from `from` to `to`.
*
* WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721
* or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must
* understand this adds an external call which potentially creates a reentrancy vulnerability.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `tokenId` token must be owned by `from`.
* - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 tokenId) external;
/**
* @dev Gives permission to `to` to transfer `tokenId` token to another account.
* The approval is cleared when the token is transferred.
*
* Only a single account can be approved at a time, so approving the zero address clears previous approvals.
*
* Requirements:
*
* - The caller must own the token or be an approved operator.
* - `tokenId` must exist.
*
* Emits an {Approval} event.
*/
function approve(address to, uint256 tokenId) external;
/**
* @dev Approve or remove `operator` as an operator for the caller.
* Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
*
* Requirements:
*
* - The `operator` cannot be the address zero.
*
* Emits an {ApprovalForAll} event.
*/
function setApprovalForAll(address operator, bool approved) external;
/**
* @dev Returns the account approved for `tokenId` token.
*
* Requirements:
*
* - `tokenId` must exist.
*/
function getApproved(uint256 tokenId) external view returns (address operator);
/**
* @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
*
* See {setApprovalForAll}
*/
function isApprovedForAll(address owner, address operator) external view returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @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;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)
pragma solidity ^0.8.20;
/**
* @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);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/ReentrancyGuard.sol)
pragma solidity ^0.8.20;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant NOT_ENTERED = 1;
uint256 private constant ENTERED = 2;
uint256 private _status;
/**
* @dev Unauthorized reentrant call.
*/
error ReentrancyGuardReentrantCall();
constructor() {
_status = NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
_nonReentrantBefore();
_;
_nonReentrantAfter();
}
function _nonReentrantBefore() private {
// On the first call to nonReentrant, _status will be NOT_ENTERED
if (_status == ENTERED) {
revert ReentrancyGuardReentrantCall();
}
// Any calls to nonReentrant after this point will fail
_status = ENTERED;
}
function _nonReentrantAfter() private {
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = NOT_ENTERED;
}
/**
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
* `nonReentrant` function in the call stack.
*/
function _reentrancyGuardEntered() internal view returns (bool) {
return _status == ENTERED;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"viaIR": true,
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_gameApprover","type":"address"},{"internalType":"address","name":"_nftContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"},{"indexed":false,"internalType":"bool","name":"won","type":"bool"}],"name":"PlayOutcome","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"enum APE69.Market","name":"market","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isHigher","type":"bool"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"PlayPlaced","type":"event"},{"inputs":[],"name":"MAX_BET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_BET","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PLAY_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addToRewardPool","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"feePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameApprover","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllLeaderboardStats","outputs":[{"internalType":"address[]","name":"playersList","type":"address[]"},{"internalType":"uint256[]","name":"wins","type":"uint256[]"},{"internalType":"uint256[]","name":"losses","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"getCurrentPlay","outputs":[{"components":[{"internalType":"address","name":"player","type":"address"},{"internalType":"enum APE69.Market","name":"market","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"isHigher","type":"bool"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"endPrice","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"},{"internalType":"bool","name":"won","type":"bool"}],"internalType":"struct APE69.Play","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"}],"name":"getLeaderboardStats","outputs":[{"internalType":"uint256","name":"wins","type":"uint256"},{"internalType":"uint256","name":"losses","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"startIndex","type":"uint256"},{"internalType":"uint256","name":"endIndex","type":"uint256"}],"name":"getPlayHistory","outputs":[{"components":[{"internalType":"address","name":"player","type":"address"},{"internalType":"enum APE69.Market","name":"market","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"isHigher","type":"bool"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"endPrice","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"},{"internalType":"bool","name":"won","type":"bool"}],"internalType":"struct APE69.Play[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftContract","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum APE69.Market","name":"market","type":"uint8"},{"internalType":"bool","name":"isHigher","type":"bool"}],"name":"placePlay","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"playHistory","outputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"enum APE69.Market","name":"market","type":"uint8"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"isHigher","type":"bool"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"endPrice","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"},{"internalType":"bool","name":"won","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerLosses","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerWins","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"players","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"endPrice","type":"uint256"}],"name":"resolvePlayAndReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeePercentage","type":"uint256"}],"name":"setFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_approver","type":"address"}],"name":"setGameApprover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum APE69.Market","name":"market","type":"uint8"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setMarketStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum APE69.Market","name":"","type":"uint8"}],"name":"validMarkets","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawRewardPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
6080346200014657601f62001a6e38819003918201601f191683019291906001600160401b038411838510176200014b5781606092849260409687528339810103126200014657620000518162000161565b6200006c83620000646020850162000161565b930162000161565b6001600160a01b03918216929083156200012e57600080546001600160a01b031980821687178355958593929184167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a360018080556109c46002558180526005602052878083209260ff1993838582541617905582815281812083858254161790556002815281812083858254161790556003815220918254161790551683600954161760095516906008541617600855516118f79081620001778239f35b8451631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001465756fe608080604052600436101561002c575b50361561001b57600080fd5b610027346003546116a1565b600355005b600090813560e01c9081632c7c8ce71461140c575080633f3499aa14610f4f5780633f4ba83a14610f295780634cba149814610f035780635c975abb14610ee05780636540742f14610ebf57806366666aa914610ea157806367dccfed14610dcb578063715018a614610d7157806377eb1cf214610d395780637e95b52314610d15578063841ec58914610be25780638456cb5914610bb9578063847de93214610af75780638b31fb8914610abe5780638da5cb5b14610a97578063a001ecdd14610a79578063aa8e646c146109e8578063ae06c1b714610977578063c74cab49146108d1578063d56d229d146108a8578063ea16fb7814610862578063f28079691461082a578063f2e0e7c5146104a4578063f2fde38b1461041e578063f71d96cb146103da578063fa5db686146103be578063fedb848a146103855763ff87f29c0361000f57346103825761018236611587565b9160018060a01b03169283815260209260048452604082205483101561034b57848252600484526040822054811015610316578083116102df576101c6838261167e565b92600195600185018095116102cb576101f96101e3869896611780565b976101f1604051998a61165c565b808952611780565b601f1901845b8181106102af575050815b8381111561025e57505050506040519280840190808552855180925280604086019601925b82811061023c5785870386f35b909192938261012088610251849a895161149b565b019795019392910161022f565b6102a790828699979952600488526102a161027c8260408920611555565b5061029061028a878561167e565b916116ff565b61029a828b6117ca565b52886117ca565b50611863565b96949661020a565b87906102bc9997996116ba565b82828a010152019795976101ff565b634e487b7160e01b84526011600452602484fd5b60405162461bcd60e51b815260048101859052600f60248201526e496e76616c696420696e646963657360881b6044820152606490fd5b60405162461bcd60e51b815260048101859052600d60248201526c22b7321034b73232bc1027a7a160991b6044820152606490fd5b60405162461bcd60e51b815260048101859052600f60248201526e29ba30b93a1034b73232bc1027a7a160891b6044820152606490fd5b80fd5b5034610382576020366003190112610382576020906040906001600160a01b036103ad611462565b168152600783522054604051908152f35b5034610382578060031936011261038257602060405160458152f35b50346103825760203660031901126103825760043590600a54821015610382576020610405836115b1565b905460405160039290921b1c6001600160a01b03168152f35b503461038257602036600319011261038257610438611462565b610440611895565b6001600160a01b0390811690811561048b5782546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b604051631e4fbdf760e01b815260048101849052602490fd5b5034610382576104b336611587565b600854919290916001600160a01b039190821633036107e55781906104dd60ff600b5416156115e8565b6104e5611872565b1692838552602091600483526040862054156107a05784865260048352604086208054600019810191908211610698579061051f91611555565b5093600585015442106107625760048501805461071d5781908460038801555560ff600286015416928380610713575b84156106f1575b50505060068401805461ff00191683151560081b61ff0016178155908683156106ac57506001850154948560011b9580870460021490151715610698578560025480820290828204148215171561068457906127106105b692049061167e565b60035480821161064857916106128a808080866105fb7f9a9ea9923d330185819b1a2b05905c779b7f69b3602885f783d1090a9906d9369e9c9a9860409e9c9a61167e565b600355878754165af161060c6117de565b5061181e565b54168852600683528488206106278154611863565b90555b805460ff191660011790558351928352151590820152a26001805580f35b60405162461bcd60e51b815260048101889052601460248201527314995dd85c99081c1bdbdb0819195c1b195d195960621b6044820152606490fd5b634e487b7160e01b8a52601160045260248afd5b634e487b7160e01b88526011600452602488fd5b929091604094927f9a9ea9923d330185819b1a2b05905c779b7f69b3602885f783d1090a9906d9369654168852600783528488206106ea8154611863565b905561062a565b9091929350159182610709575b505090388080610556565b10905038806106fe565b818311945061054f565b60405162461bcd60e51b815260048101869052601860248201527f456e6420707269636520616c726561647920706f7374656400000000000000006044820152606490fd5b60405162461bcd60e51b8152600481018590526016602482015275283630bc90323ab930ba34b7b7103737ba1037bb32b960511b6044820152606490fd5b60405162461bcd60e51b815260048101849052601860248201527f4e6f20706c617920666f756e6420666f7220706c6179657200000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74207468652067616d6520617070726f766572006044820152606490fd5b50346103825761085f61084e61083f36611435565b9190610849611895565b611508565b9060ff801983541691151516179055565b80f35b5034610382576020366003190112610382576040906001600160a01b03610887611462565b16815260066020528180822054916007602052205482519182526020820152f35b50346103825780600319360112610382576009546040516001600160a01b039091168152602090f35b5034610382576020366003190112610382576004356108ee611895565b6108f6611872565b600354908181116109325782808083610913829561092b9761167e565b60035581546001600160a01b03165af161060c6117de565b6001805580f35b60405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e742072657761726420706f6f6c00000000000000006044820152606490fd5b503461038257602036600319011261038257600435610994611895565b61271081116109a35760025580f35b60405162461bcd60e51b815260206004820152601760248201527f4665652070657263656e7461676520746f6f20686967680000000000000000006044820152606490fd5b503461038257602036600319011261038257610a02611462565b610a0a611895565b6001600160a01b03168015610a34576bffffffffffffffffffffffff60a01b600854161760085580f35b60405162461bcd60e51b815260206004820152601860248201527f496e76616c696420617070726f766572206164647265737300000000000000006044820152606490fd5b50346103825780600319360112610382576020600254604051908152f35b5034610382578060031936011261038257546040516001600160a01b039091168152602090f35b5034610382576020366003190112610382576020906040906001600160a01b03610ae6611462565b168152600683522054604051908152f35b503461038257604036600319011261038257610b11611462565b6001600160a01b039081168252600460205260408220805460243593908410156103825750610b456101209360ff92611555565b50805490600181015483600283015416600383015490600484015492610b8660066005870154960154966040519981168a528860208b019160a01c16611478565b604088015215156060870152608086015260a085015260c0840152818116151560e084015260081c161515610100820152f35b5034610382578060031936011261038257610bd2611895565b600160ff19600b541617600b5580f35b5034610382578060031936011261038257600a54610bff81611780565b90610c0d604051928361165c565b808252610c1981611780565b602083810191601f1901368337610c2f83611798565b90610c3984611798565b93865b818110610cb0575050604051958695606087019060608852518091526080870194915b818110610c905750505084830390850152610c8c9291610c7e91611521565b908382036040850152611521565b0390f35b82516001600160a01b031686528897509483019491830191600101610c5f565b80610cc26001929894959697986115b1565b838060a01b0391549060031b1c1680610cdb83876117ca565b52808a526006865260408a2054610cf283896117ca565b528952600785526040892054610d08828a6117ca565b5201959493929195610c3c565b5034610382578060031936011261038257602060405168056bc75e2d631000008152f35b50346103825760203660031901126103825760043590600482101561038257602060ff610d6584611508565b54166040519015158152f35b5034610382578060031936011261038257610d8a611895565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461038257602036600319011261038257610de5611462565b610ded6116ba565b506001600160a01b03168082526004602052604082205415610e5c5781526004602052604081208054600019810192908311610e4857610120610e39610e338585611555565b506116ff565b610e46604051809261149b565bf35b634e487b7160e01b81526011600452602490fd5b60405162461bcd60e51b815260206004820152601e60248201527f4e6f20706c61797320666f756e6420666f72207468697320706c6179657200006044820152606490fd5b50346103825780600319360112610382576020600354604051908152f35b503461038257806003193601126103825760206040516509184e72a0008152f35b5034610382578060031936011261038257602060ff600b54166040519015158152f35b508060031936011261038257610f17611895565b610f23346003546116a1565b60035580f35b5034610382578060031936011261038257610f42611895565b60ff19600b5416600b5580f35b50610f5936611435565b610f6860ff600b5416156115e8565b610f70611872565b6009546040516370a0823160e01b815233600482015290602090829060249082906001600160a01b03165afa9081156114015784916113cb575b501561137b576509184e72a00034101580611368575b1561132357338352600460205260408320805480159182156112e9575b5050156112a45760ff610fef83611508565b54161561126e5760454201421161125a5761100c346003546116a1565b6003553383526004602052604083206040519061102882611629565b33825261103884602084016116ae565b34604083015282151560608301528460808301528460a08301526045420160c08301528460e083015284610100830152805490600160401b821015611246579061108791600182018155611555565b6112325760018060a01b03825116815490806bffffffffffffffffffffffff60a01b83161783556020840151600481101561121e579261010092600692611165969560ff60a01b9060a01b16916affffffffffffffffffffff60a81b16171781556040840151600182015561111160608501511515600283019060ff801983541691151516179055565b6080840151600382015560a0840151600482015560c08401516005820155019161114d60e08201511515849060ff801983541691151516179055565b0151815461ff00191690151560081b61ff0016179055565b338352600460205260016040842054146111ca575b6111876040518093611478565b346020830152151560408201526045420160608201527f10bee0678a84bfafde4fdf6bff5a8493151f4df67084db05644ae9e7ed67e22a60803392a26001805580f35b600a54600160401b81101561120a578060016111e99201600a556115b1565b81546001600160a01b0360039290921b91821b19163390911b17905561117a565b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b88526021600452602488fd5b634e487b7160e01b85526004859052602485fd5b634e487b7160e01b86526041600452602486fd5b634e487b7160e01b83526011600452602483fd5b60405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a59081b585c9ad95d60921b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527f41637469766520706c617920696e2070726f67726573730000000000000000006044820152606490fd5b6000198201925090821161130f5760059161130391611555565b50015442113880610fdd565b634e487b7160e01b85526011600452602485fd5b60405162461bcd60e51b815260206004820152601760248201527f42657420616d6f756e74206f7574206f662072616e67650000000000000000006044820152606490fd5b5068056bc75e2d63100000341115610fc0565b60405162461bcd60e51b815260206004820152602260248201527f4d757374206f776e204e465420746f20706c616365206120707265646963746960448201526137b760f11b6064820152608490fd5b90506020813d6020116113f9575b816113e66020938361165c565b810103126113f5575138610faa565b8380fd5b3d91506113d9565b6040513d86823e3d90fd5b9050346114315781600319360112611431576008546001600160a01b03168152602090f35b5080fd5b604090600319011261145d57600435600481101561145d5790602435801515810361145d5790565b600080fd5b600435906001600160a01b038216820361145d57565b9060048210156114855752565b634e487b7160e01b600052602160045260246000fd5b80516001600160a01b031682526020808201516114ba91840190611478565b604081015160408301526060810151151560608301526080810151608083015260a081015160a083015260c081015160c083015260e0810151151560e0830152610100809101511515910152565b6004811015611485576000526005602052604060002090565b90815180825260208080930193019160005b828110611541575050505090565b835185529381019392810192600101611533565b8054821015611571576000526007602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b606090600319011261145d576004356001600160a01b038116810361145d57906024359060443590565b600a5481101561157157600a6000527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80190600090565b156115ef57565b60405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b6044820152606490fd5b610120810190811067ffffffffffffffff82111761164657604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761164657604052565b9190820391821161168b57565b634e487b7160e01b600052601160045260246000fd5b9190820180921161168b57565b60048210156114855752565b604051906116c782611629565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b9060405161170c81611629565b61010060ff6006839561173383825460018060a01b038116885260a01c16602087016116ae565b60018101546040860152826002820154161515606086015260038101546080860152600481015460a0860152600581015460c08601520154818116151560e085015260081c161515910152565b67ffffffffffffffff81116116465760051b60200190565b906117a282611780565b6117af604051918261165c565b82815280926117c0601f1991611780565b0190602036910137565b80518210156115715760209160051b010190565b3d15611819573d9067ffffffffffffffff8211611646576040519161180d601f8201601f19166020018461165c565b82523d6000602084013e565b606090565b1561182557565b60405162461bcd60e51b815260206004820152601660248201527513985d1a5d99481d1c985b9cd9995c8819985a5b195960521b6044820152606490fd5b600019811461168b5760010190565b600260015414611883576002600155565b604051633ee5aeb560e01b8152600490fd5b6000546001600160a01b031633036118a957565b60405163118cdaa760e01b8152336004820152602490fdfea264697066735822122040825afb1178c51edf180b0bd8a6f68ff420125e3fad12a77a19cb7d8f207b5a64736f6c63430008180033000000000000000000000000d5d013cef20373839635fbce206a1cf0054ec565000000000000000000000000a595af99502fef6c879392777fa2fb04d68eccd50000000000000000000000001b16c0b69d4a30c42c92c873c4873787afcbec5c
Deployed Bytecode
0x608080604052600436101561002c575b50361561001b57600080fd5b610027346003546116a1565b600355005b600090813560e01c9081632c7c8ce71461140c575080633f3499aa14610f4f5780633f4ba83a14610f295780634cba149814610f035780635c975abb14610ee05780636540742f14610ebf57806366666aa914610ea157806367dccfed14610dcb578063715018a614610d7157806377eb1cf214610d395780637e95b52314610d15578063841ec58914610be25780638456cb5914610bb9578063847de93214610af75780638b31fb8914610abe5780638da5cb5b14610a97578063a001ecdd14610a79578063aa8e646c146109e8578063ae06c1b714610977578063c74cab49146108d1578063d56d229d146108a8578063ea16fb7814610862578063f28079691461082a578063f2e0e7c5146104a4578063f2fde38b1461041e578063f71d96cb146103da578063fa5db686146103be578063fedb848a146103855763ff87f29c0361000f57346103825761018236611587565b9160018060a01b03169283815260209260048452604082205483101561034b57848252600484526040822054811015610316578083116102df576101c6838261167e565b92600195600185018095116102cb576101f96101e3869896611780565b976101f1604051998a61165c565b808952611780565b601f1901845b8181106102af575050815b8381111561025e57505050506040519280840190808552855180925280604086019601925b82811061023c5785870386f35b909192938261012088610251849a895161149b565b019795019392910161022f565b6102a790828699979952600488526102a161027c8260408920611555565b5061029061028a878561167e565b916116ff565b61029a828b6117ca565b52886117ca565b50611863565b96949661020a565b87906102bc9997996116ba565b82828a010152019795976101ff565b634e487b7160e01b84526011600452602484fd5b60405162461bcd60e51b815260048101859052600f60248201526e496e76616c696420696e646963657360881b6044820152606490fd5b60405162461bcd60e51b815260048101859052600d60248201526c22b7321034b73232bc1027a7a160991b6044820152606490fd5b60405162461bcd60e51b815260048101859052600f60248201526e29ba30b93a1034b73232bc1027a7a160891b6044820152606490fd5b80fd5b5034610382576020366003190112610382576020906040906001600160a01b036103ad611462565b168152600783522054604051908152f35b5034610382578060031936011261038257602060405160458152f35b50346103825760203660031901126103825760043590600a54821015610382576020610405836115b1565b905460405160039290921b1c6001600160a01b03168152f35b503461038257602036600319011261038257610438611462565b610440611895565b6001600160a01b0390811690811561048b5782546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b604051631e4fbdf760e01b815260048101849052602490fd5b5034610382576104b336611587565b600854919290916001600160a01b039190821633036107e55781906104dd60ff600b5416156115e8565b6104e5611872565b1692838552602091600483526040862054156107a05784865260048352604086208054600019810191908211610698579061051f91611555565b5093600585015442106107625760048501805461071d5781908460038801555560ff600286015416928380610713575b84156106f1575b50505060068401805461ff00191683151560081b61ff0016178155908683156106ac57506001850154948560011b9580870460021490151715610698578560025480820290828204148215171561068457906127106105b692049061167e565b60035480821161064857916106128a808080866105fb7f9a9ea9923d330185819b1a2b05905c779b7f69b3602885f783d1090a9906d9369e9c9a9860409e9c9a61167e565b600355878754165af161060c6117de565b5061181e565b54168852600683528488206106278154611863565b90555b805460ff191660011790558351928352151590820152a26001805580f35b60405162461bcd60e51b815260048101889052601460248201527314995dd85c99081c1bdbdb0819195c1b195d195960621b6044820152606490fd5b634e487b7160e01b8a52601160045260248afd5b634e487b7160e01b88526011600452602488fd5b929091604094927f9a9ea9923d330185819b1a2b05905c779b7f69b3602885f783d1090a9906d9369654168852600783528488206106ea8154611863565b905561062a565b9091929350159182610709575b505090388080610556565b10905038806106fe565b818311945061054f565b60405162461bcd60e51b815260048101869052601860248201527f456e6420707269636520616c726561647920706f7374656400000000000000006044820152606490fd5b60405162461bcd60e51b8152600481018590526016602482015275283630bc90323ab930ba34b7b7103737ba1037bb32b960511b6044820152606490fd5b60405162461bcd60e51b815260048101849052601860248201527f4e6f20706c617920666f756e6420666f7220706c6179657200000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74207468652067616d6520617070726f766572006044820152606490fd5b50346103825761085f61084e61083f36611435565b9190610849611895565b611508565b9060ff801983541691151516179055565b80f35b5034610382576020366003190112610382576040906001600160a01b03610887611462565b16815260066020528180822054916007602052205482519182526020820152f35b50346103825780600319360112610382576009546040516001600160a01b039091168152602090f35b5034610382576020366003190112610382576004356108ee611895565b6108f6611872565b600354908181116109325782808083610913829561092b9761167e565b60035581546001600160a01b03165af161060c6117de565b6001805580f35b60405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e742072657761726420706f6f6c00000000000000006044820152606490fd5b503461038257602036600319011261038257600435610994611895565b61271081116109a35760025580f35b60405162461bcd60e51b815260206004820152601760248201527f4665652070657263656e7461676520746f6f20686967680000000000000000006044820152606490fd5b503461038257602036600319011261038257610a02611462565b610a0a611895565b6001600160a01b03168015610a34576bffffffffffffffffffffffff60a01b600854161760085580f35b60405162461bcd60e51b815260206004820152601860248201527f496e76616c696420617070726f766572206164647265737300000000000000006044820152606490fd5b50346103825780600319360112610382576020600254604051908152f35b5034610382578060031936011261038257546040516001600160a01b039091168152602090f35b5034610382576020366003190112610382576020906040906001600160a01b03610ae6611462565b168152600683522054604051908152f35b503461038257604036600319011261038257610b11611462565b6001600160a01b039081168252600460205260408220805460243593908410156103825750610b456101209360ff92611555565b50805490600181015483600283015416600383015490600484015492610b8660066005870154960154966040519981168a528860208b019160a01c16611478565b604088015215156060870152608086015260a085015260c0840152818116151560e084015260081c161515610100820152f35b5034610382578060031936011261038257610bd2611895565b600160ff19600b541617600b5580f35b5034610382578060031936011261038257600a54610bff81611780565b90610c0d604051928361165c565b808252610c1981611780565b602083810191601f1901368337610c2f83611798565b90610c3984611798565b93865b818110610cb0575050604051958695606087019060608852518091526080870194915b818110610c905750505084830390850152610c8c9291610c7e91611521565b908382036040850152611521565b0390f35b82516001600160a01b031686528897509483019491830191600101610c5f565b80610cc26001929894959697986115b1565b838060a01b0391549060031b1c1680610cdb83876117ca565b52808a526006865260408a2054610cf283896117ca565b528952600785526040892054610d08828a6117ca565b5201959493929195610c3c565b5034610382578060031936011261038257602060405168056bc75e2d631000008152f35b50346103825760203660031901126103825760043590600482101561038257602060ff610d6584611508565b54166040519015158152f35b5034610382578060031936011261038257610d8a611895565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461038257602036600319011261038257610de5611462565b610ded6116ba565b506001600160a01b03168082526004602052604082205415610e5c5781526004602052604081208054600019810192908311610e4857610120610e39610e338585611555565b506116ff565b610e46604051809261149b565bf35b634e487b7160e01b81526011600452602490fd5b60405162461bcd60e51b815260206004820152601e60248201527f4e6f20706c61797320666f756e6420666f72207468697320706c6179657200006044820152606490fd5b50346103825780600319360112610382576020600354604051908152f35b503461038257806003193601126103825760206040516509184e72a0008152f35b5034610382578060031936011261038257602060ff600b54166040519015158152f35b508060031936011261038257610f17611895565b610f23346003546116a1565b60035580f35b5034610382578060031936011261038257610f42611895565b60ff19600b5416600b5580f35b50610f5936611435565b610f6860ff600b5416156115e8565b610f70611872565b6009546040516370a0823160e01b815233600482015290602090829060249082906001600160a01b03165afa9081156114015784916113cb575b501561137b576509184e72a00034101580611368575b1561132357338352600460205260408320805480159182156112e9575b5050156112a45760ff610fef83611508565b54161561126e5760454201421161125a5761100c346003546116a1565b6003553383526004602052604083206040519061102882611629565b33825261103884602084016116ae565b34604083015282151560608301528460808301528460a08301526045420160c08301528460e083015284610100830152805490600160401b821015611246579061108791600182018155611555565b6112325760018060a01b03825116815490806bffffffffffffffffffffffff60a01b83161783556020840151600481101561121e579261010092600692611165969560ff60a01b9060a01b16916affffffffffffffffffffff60a81b16171781556040840151600182015561111160608501511515600283019060ff801983541691151516179055565b6080840151600382015560a0840151600482015560c08401516005820155019161114d60e08201511515849060ff801983541691151516179055565b0151815461ff00191690151560081b61ff0016179055565b338352600460205260016040842054146111ca575b6111876040518093611478565b346020830152151560408201526045420160608201527f10bee0678a84bfafde4fdf6bff5a8493151f4df67084db05644ae9e7ed67e22a60803392a26001805580f35b600a54600160401b81101561120a578060016111e99201600a556115b1565b81546001600160a01b0360039290921b91821b19163390911b17905561117a565b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b88526021600452602488fd5b634e487b7160e01b85526004859052602485fd5b634e487b7160e01b86526041600452602486fd5b634e487b7160e01b83526011600452602483fd5b60405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a59081b585c9ad95d60921b6044820152606490fd5b60405162461bcd60e51b815260206004820152601760248201527f41637469766520706c617920696e2070726f67726573730000000000000000006044820152606490fd5b6000198201925090821161130f5760059161130391611555565b50015442113880610fdd565b634e487b7160e01b85526011600452602485fd5b60405162461bcd60e51b815260206004820152601760248201527f42657420616d6f756e74206f7574206f662072616e67650000000000000000006044820152606490fd5b5068056bc75e2d63100000341115610fc0565b60405162461bcd60e51b815260206004820152602260248201527f4d757374206f776e204e465420746f20706c616365206120707265646963746960448201526137b760f11b6064820152608490fd5b90506020813d6020116113f9575b816113e66020938361165c565b810103126113f5575138610faa565b8380fd5b3d91506113d9565b6040513d86823e3d90fd5b9050346114315781600319360112611431576008546001600160a01b03168152602090f35b5080fd5b604090600319011261145d57600435600481101561145d5790602435801515810361145d5790565b600080fd5b600435906001600160a01b038216820361145d57565b9060048210156114855752565b634e487b7160e01b600052602160045260246000fd5b80516001600160a01b031682526020808201516114ba91840190611478565b604081015160408301526060810151151560608301526080810151608083015260a081015160a083015260c081015160c083015260e0810151151560e0830152610100809101511515910152565b6004811015611485576000526005602052604060002090565b90815180825260208080930193019160005b828110611541575050505090565b835185529381019392810192600101611533565b8054821015611571576000526007602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b606090600319011261145d576004356001600160a01b038116810361145d57906024359060443590565b600a5481101561157157600a6000527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80190600090565b156115ef57565b60405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b6044820152606490fd5b610120810190811067ffffffffffffffff82111761164657604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761164657604052565b9190820391821161168b57565b634e487b7160e01b600052601160045260246000fd5b9190820180921161168b57565b60048210156114855752565b604051906116c782611629565b816101006000918281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201520152565b9060405161170c81611629565b61010060ff6006839561173383825460018060a01b038116885260a01c16602087016116ae565b60018101546040860152826002820154161515606086015260038101546080860152600481015460a0860152600581015460c08601520154818116151560e085015260081c161515910152565b67ffffffffffffffff81116116465760051b60200190565b906117a282611780565b6117af604051918261165c565b82815280926117c0601f1991611780565b0190602036910137565b80518210156115715760209160051b010190565b3d15611819573d9067ffffffffffffffff8211611646576040519161180d601f8201601f19166020018461165c565b82523d6000602084013e565b606090565b1561182557565b60405162461bcd60e51b815260206004820152601660248201527513985d1a5d99481d1c985b9cd9995c8819985a5b195960521b6044820152606490fd5b600019811461168b5760010190565b600260015414611883576002600155565b604051633ee5aeb560e01b8152600490fd5b6000546001600160a01b031633036118a957565b60405163118cdaa760e01b8152336004820152602490fdfea264697066735822122040825afb1178c51edf180b0bd8a6f68ff420125e3fad12a77a19cb7d8f207b5a64736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d5d013cef20373839635fbce206a1cf0054ec565000000000000000000000000a595af99502fef6c879392777fa2fb04d68eccd50000000000000000000000001b16c0b69d4a30c42c92c873c4873787afcbec5c
-----Decoded View---------------
Arg [0] : _owner (address): 0xd5d013cef20373839635Fbce206A1cf0054EC565
Arg [1] : _gameApprover (address): 0xA595AF99502Fef6c879392777fa2Fb04d68eccD5
Arg [2] : _nftContract (address): 0x1B16c0B69D4a30c42c92C873C4873787AfCbEc5c
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000d5d013cef20373839635fbce206a1cf0054ec565
Arg [1] : 000000000000000000000000a595af99502fef6c879392777fa2fb04d68eccd5
Arg [2] : 0000000000000000000000001b16c0b69d4a30c42c92c873c4873787afcbec5c
Deployed Bytecode Sourcemap
598:9377:5:-:0;;;;;;;;;;-1:-1:-1;598:9377:5;;;;;;;;;7123:23;7137:9;7123:23;598:9377;7123:23;:::i;:::-;;598:9377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8277:39;;598:9377;;;;;;;;;;;;;8354:37;;598:9377;;;8427:22;;;598:9377;;8515:21;;;;:::i;:::-;8539:1;;598:9377;8539:1;598:9377;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;-1:-1:-1;;598:9377:5;;;;;;;;8556:22;;;8580:13;;;;;;;598:9377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;8595:3;;598:9377;;;;;;;;;;8614:48;8640:22;598:9377;;;;8640:22;:::i;:::-;8622:14;598:9377;8622:14;;;;:::i;:::-;598:9377;;:::i;:::-;8614:48;;;;:::i;:::-;;;;:::i;:::-;;8595:3;:::i;:::-;8556:22;;;;;598:9377;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;;;-1:-1:-1;;;;;598:9377:5;;:::i;:::-;;;;1717:47;598:9377;;;;;;;;;;;;;;;;;;;;;;;;;;1353:10;598:9377;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;;1837:24;598:9377;1837:24;;;;;598:9377;1837:24;;;:::i;:::-;598:9377;;;;;;;;;;-1:-1:-1;;;;;598:9377:5;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;-1:-1:-1;;;;;598:9377:5;;;;2627:22:0;;2623:91;;598:9377:5;;-1:-1:-1;;;;;;598:9377:5;;;;;;;3052:40:0;598:9377:5;;3052:40:0;598:9377:5;;2623:91:0;598:9377:5;;-1:-1:-1;;;2672:31:0;;598:9377:5;2672:31:0;;598:9377:5;;;;;2672:31:0;598:9377:5;;;;;;;;:::i;:::-;3176:12;598:9377;;;;;-1:-1:-1;;;;;598:9377:5;;;;3162:10;:26;598:9377;;;;3054:38;598:9377;3063:6;598:9377;;3062:7;3054:38;:::i;:::-;2322:103:3;;:::i;:::-;598:9377:5;;;;;;;;;;;;;;5347:30;598:9377;;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;;;5436:51;;;;:::i;:::-;5524:12;;;;;598:9377;5505:15;:31;598:9377;;;5581:13;;598:9377;;;;5639:15;;;;;;598:9377;;;5724:13;;;598:9377;;5724:38;;;;;598:9377;5723:97;;;;598:9377;-1:-1:-1;;;5830:8:5;;;598:9377;;-1:-1:-1;;598:9377:5;;;;;;;;;;;5830:8;5855:18;5883:488;;;;5915:11;5485:1;5915:11;;598:9377;;;5485:1;598:9377;;;;;5724:13;598:9377;;;;;;;5906:24;5724:13;598:9377;;;;;;;;;;;;;;;;5985:5;6024:12;598:9377;;6024:12;;:::i;:::-;5639:15;598:9377;6059:23;;;598:9377;;6121:23;6225:37;6121:23;;;;;;6415:32;6121:23;;;;598:9377;6121:23;;;;:::i;:::-;5639:15;598:9377;;;;;6173:38;;;;:::i;:::-;;6225:37;:::i;:::-;598:9377;;;;5830:8;598:9377;;;;;6277:25;598:9377;;6277:25;:::i;:::-;598:9377;;5883:488;598:9377;;-1:-1:-1;;598:9377:5;5485:1;598:9377;;;;;;;;;;;;;;6415:32;5485:1;598:9377;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;5883:488;598:9377;;;;;;6415:32;598:9377;;;;;6333:12;598:9377;;;;;6333:27;598:9377;;6333:27;:::i;:::-;598:9377;;5883:488;;5723:97;5780:14;;;;;;:39;;;;5723:97;;;;;;;;;5780:39;5798:21;;-1:-1:-1;5780:39:5;;;;5724:38;5741:21;;;;-1:-1:-1;5724:38:5;;598:9377;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;;7241:29;:20;598:9377;;;:::i;:::-;1500:62:0;;;;:::i;:::-;7241:20:5;:::i;:::-;598:9377;;;;;;;;;;;;;;;7241:29;598:9377;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;-1:-1:-1;;;;;598:9377:5;;:::i;:::-;;;;8838:10;598:9377;;;;;;;;8875:12;598:9377;;;;;;;;;;;;;;;;;;;;;;;;;;;1804:26;598:9377;;;-1:-1:-1;;;;;598:9377:5;;;;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;1500:62:0;;:::i;:::-;2322:103:3;;:::i;:::-;6818:10:5;598:9377;6808:20;;;;598:9377;;6867:20;;;;;;;6952:37;6867:20;;:::i;:::-;6818:10;598:9377;;;-1:-1:-1;;;;;598:9377:5;6911:31;;;;:::i;6952:37::-;598:9377;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;1500:62:0;;:::i;:::-;7392:5:5;7372:25;;598:9377;;7435:32;598:9377;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;-1:-1:-1;;;;;598:9377:5;9604:23;;598:9377;;;;;9666:24;598:9377;;;9666:24;598:9377;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1491:35;598:9377;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:9377:5;;;;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;;;-1:-1:-1;;;;;598:9377:5;;:::i;:::-;;;;1666:45;598:9377;;;;;;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;:::i;:::-;-1:-1:-1;;;;;598:9377:5;;;;;;;;;;;;;;;;;1565:45;;;;;;;598:9377;1565:45;598:9377;1565:45;;:::i;:::-;598:9377;;;1565:45;598:9377;1565:45;;598:9377;1565:45;;;;598:9377;;1565:45;;;598:9377;1565:45;598:9377;1565:45;;598:9377;1565:45;598:9377;1565:45;;;;598:9377;1565:45;;598:9377;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:62:0;;:::i;:::-;7535:4:5;598:9377;;7526:13;598:9377;;;7526:13;598:9377;;;;;;;;;;;;;;;;9149:7;598:9377;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;598:9377:5;;;;9230:26;;;:::i;:::-;9275;;;;:::i;:::-;9317:13;;9332:15;;;;;;598:9377;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;598:9377:5;;;;;-1:-1:-1;598:9377:5;;;;;;;;;;;;9349:3;9380:10;;598:9377;9380:10;;;;;;;;:::i;:::-;598:9377;;;;;;;;;;;;9404:18;;;;;:::i;:::-;598:9377;;;;9446:10;598:9377;;;;;;9436:23;;;;:::i;:::-;598:9377;;;9485:12;598:9377;;;;;;9473:27;;;;:::i;:::-;598:9377;;9317:13;;;;;;;;598:9377;;;;;;;;;;;;;;;;1475:9;598:9377;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;;;;;;;;;;1616:43;;;:::i;:::-;598:9377;;;;;;;;;;;;;;;;;;;;;;;1500:62:0;;:::i;:::-;598:9377:5;;-1:-1:-1;;;;;;598:9377:5;;;;;;-1:-1:-1;;;;;598:9377:5;3052:40:0;598:9377:5;;3052:40:0;598:9377:5;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;;598:9377:5;;;;;;;;;;;7946:30;598:9377;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;;;;;8049:51;;;;:::i;:::-;598:9377;;:::i;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1533:25;598:9377;;;;;;;;;;;;;;;;;;;;;;;1403:13;598:9377;;;;;;;;;;;;;;;;;;1867:18;598:9377;;;;;;;;;;;;;;;;;;;;1500:62:0;;:::i;:::-;7123:23:5;7137:9;7123:23;598:9377;7123:23;:::i;:::-;;598:9377;;;;;;;;;;;;;;;;1500:62:0;;:::i;:::-;598:9377:5;;7600:14;598:9377;;7600:14;598:9377;;;;;;;;:::i;:::-;3054:38;598:9377;3063:6;598:9377;;3062:7;3054:38;:::i;:::-;2322:103:3;;:::i;:::-;3755:11:5;598:9377;;;-1:-1:-1;;;3755:33:5;;3777:10;598:9377;3755:33;;598:9377;;3755:33;;598:9377;;;;;;-1:-1:-1;;;;;598:9377:5;3755:33;;;;;;;;;;;598:9377;3755:37;;598:9377;;1403:13;3715:9;3883:17;;:38;;;598:9377;;;;3777:10;598:9377;;;3755:33;598:9377;;;;;;4001:35;;:177;;;;;598:9377;;;;;;;4245:20;;;:::i;:::-;598:9377;;;;;1353:10;4313:15;598:9377;4313:15;598:9377;;;4355:20;3715:9;4355:20;598:9377;4355:20;:::i;:::-;;598:9377;3777:10;598:9377;;;3755:33;598:9377;;;;;;;;;;:::i;:::-;3777:10;598:9377;;4428:310;;3755:33;4428:310;;;:::i;:::-;3715:9;598:9377;4428:310;;598:9377;;;;4428:310;;;598:9377;4428:310;;;;598:9377;4428:310;;;;598:9377;1353:10;4313:15;598:9377;4428:310;;;598:9377;4428:310;598:9377;4428:310;;598:9377;4428:310;;;;598:9377;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3755:33;4428:310;;598:9377;;;;;;;;4428:310;598:9377;;;;;;;;;;4428:310;598:9377;;;;;;;;;;;;4428:310;;598:9377;;;;;;4428:310;;;598:9377;;;;;;;;;;;;;;;;;;;;;;4428:310;;;598:9377;4355:20;598:9377;;;4428:310;;;598:9377;;;;;4428:310;;;598:9377;4245:12;598:9377;;;;4428:310;598:9377;;4428:310;;598:9377;;;;;;;;;;;;;;;;;;;;4428:310;598:9377;;;-1:-1:-1;;598:9377:5;;;;;;;;;;;;;3777:10;598:9377;;;3755:33;598:9377;;;;;;4763:35;4759:90;;598:9377;;;;;;;:::i;:::-;3715:9;3755:33;598:9377;;;;;;;;;1353:10;4313:15;598:9377;4428:310;598:9377;;;4864:57;4428:310;3777:10;4864:57;;598:9377;;;;;4759:90;4814:7;598:9377;-1:-1:-1;;;598:9377:5;;;;;;;;;;4814:7;598:9377;;:::i;:::-;;;-1:-1:-1;;;;;4355:20:5;598:9377;;;;;;;;;3777:10;598:9377;;;;;;4759:90;;598:9377;-1:-1:-1;;;598:9377:5;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;3755:33;598:9377;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;-1:-1:-1;;;598:9377:5;;3755:33;598:9377;;;;;;;;;;;;;;;;;4001:177;-1:-1:-1;;598:9377:5;;;-1:-1:-1;598:9377:5;;;;;4090:88;:59;;;;:::i;:::-;:88;;598:9377;4056:15;:122;4001:177;;;;598:9377;-1:-1:-1;;;598:9377:5;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;3755:33;598:9377;;;;;;;;;;;;;;;;;3883:38;3715:9;1475;3715;3904:17;;3883:38;;598:9377;;;-1:-1:-1;;;598:9377:5;;3755:33;598:9377;;;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;3755:33;;;;;;;;;;;;;;;;;:::i;:::-;;;598:9377;;;;;3755:33;;;598:9377;;;;3755:33;;;-1:-1:-1;3755:33:5;;;598:9377;;;;;;;;;;;;;;;;;;;;;;;1771:27;598:9377;-1:-1:-1;;;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;598:9377:5;;;;;;-1:-1:-1;;;;;598:9377:5;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;-1:-1:-1;598:9377:5;;;;;-1:-1:-1;598:9377:5;;;;-1:-1:-1;;;;;598:9377:5;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;598:9377:5;4245:12;598:9377;;;-1:-1:-1;598:9377:5;;:::o;:::-;;;;;;;;;;;;;;;-1:-1:-1;598:9377:5;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;598:9377:5;;;-1:-1:-1;598:9377:5;;;;;-1:-1:-1;598:9377:5;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:9377:5;;;;;;;;;;;;;:::o;:::-;4814:7;598:9377;;;;;;4814:7;-1:-1:-1;598:9377:5;;;;-1:-1:-1;598:9377:5;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;598:9377:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;598:9377:5;;;;;:::i;:::-;;;;-1:-1:-1;598:9377:5;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;598:9377:5;;;;;;;;;;;;-1:-1:-1;;;598:9377:5;;;;;;;;-1:-1:-1;;598:9377:5;;;;;;;:::o;2431:307:3:-;1755:1;2558:7;598:9377:5;2558:18:3;2554:86;;1755:1;2558:7;598:9377:5;2431:307:3:o;2554:86::-;598:9377:5;;-1:-1:-1;;;2599:30:3;;;;;1796:162:0;1710:6;598:9377:5;-1:-1:-1;;;;;598:9377:5;735:10:2;1855:23:0;1851:101;;1796:162::o;1851:101::-;598:9377:5;;-1:-1:-1;;;1901:40:0;;735:10:2;1901:40:0;;;598:9377:5;;;1901:40:0
Swarm Source
ipfs://40825afb1178c51edf180b0bd8a6f68ff420125e3fad12a77a19cb7d8f207b5a
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.