// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.22;
import "@openzeppelin/contracts/access/Ownable.sol";
import "../CentralGameBase.sol";
import "../GameVRF.sol";
import "../IRakeDistributor.sol";
import "../PvpGameBet.sol";
/// Player vs Player coin flip.
/// No treasury required, funds stay in contract.
contract PvpFlip is CentralGameBase, PvpGameBet, GameVRF {
/// Game input provided by user.
enum RoundChoice {
HEADS, // 0
TAILS // 1
}
/// Standardized game complete info.
struct RoundInfo {
/// The resulting flip value.
RoundChoice selected;
/// From the point of view of the game creator.
RoundState state;
/// To the winner, not just the game creator.
uint256 sent;
}
/// Emitted when game is started (one player has joined).
event GameStarted(
address indexed creator,
uint256 indexed gameId,
uint8 subgame,
uint8 numRounds,
RoundChoice choice,
uint256 betPerRound,
uint256 rakePerRound,
FulfillmentMethod method
);
event GameCanceled(uint256 indexed gameId);
event OpponentAccepted(uint256 indexed gameId, address indexed opponent);
event WinnerPicked(uint256 indexed gameId, RoundInfo result);
/// Per-game user choices, by gameId.
mapping(uint256 => RoundChoice) public choicesByGameId;
/// Per-game opponents, by gameId.
mapping(uint256 => address) public opponentsByGameId;
/// Per-game fulfilFulfillmentMethody gameId
mapping(uint256 => FulfillmentMethod) public fulfillmentMethodsByGameId;
/// Contract can be funded.
receive() external payable {}
/// Constructor populates generic Chainlink values.
constructor() GameVRF() {}
/// Create a new 1-round game.
function playGame(
RoundChoice choice,
string memory referralCode,
FulfillmentMethod method
) external payable isNotPaused returns (uint256) {
IRakeDistributor rakeDistributor = IRakeDistributor(rakeDistributorAddress);
BetDetails memory details = validateBet(rakeDistributor.getTotalRake(), 1);
currentGameId++;
GameInfo memory gi;
gi.creator = msg.sender;
gi.gameId = currentGameId;
gi.subgame = 8;
gi.state = GameState.WAITING_FOR_PLAYER;
gi.betPerRound = details.betPerRound;
gi.rakePerRound = details.rakePerRound;
gi.referrer = rakeDistributor.getReferrerFromGamerAndCode(msg.sender, referralCode);
// Bet never gets collected to treasury since this is pvp flip.
// Rake only gets collected if the game is not canceled.
gameById[gi.gameId] = gi;
choicesByGameId[gi.gameId] = choice;
fulfillmentMethodsByGameId[gi.gameId] = method;
emit GameStarted(
msg.sender,
gi.gameId,
gi.subgame,
1,
choice,
gi.betPerRound,
gi.rakePerRound,
method
);
return gi.gameId;
}
function cancelGame(uint256 gameId) external isNotPaused {
GameInfo storage gi = gameById[gameId];
require(gi.state == GameState.WAITING_FOR_PLAYER, "Game not in closable state");
require(gi.creator == msg.sender, "Can only cancel your own game");
gi.state = GameState.CANCELED;
(bool success,) = payable(gi.creator).call{value: gi.betPerRound + gi.rakePerRound}("");
require(success);
emit GameCanceled(gameId);
}
function takeGame(uint256 gameId, string memory referralCode) external payable isNotPaused {
GameInfo storage gi = gameById[gameId];
require(gi.state == GameState.WAITING_FOR_PLAYER, "Game not in takeable state");
require(gi.creator != msg.sender, "Can't take your own game");
IRakeDistributor rakeDistributor = IRakeDistributor(rakeDistributorAddress);
BetDetails memory details = validateBet(rakeDistributor.getTotalRake(), 1);
require(gi.betPerRound == details.betPerRound, "Wrong bet amount");
require(gi.rakePerRound == details.rakePerRound, "Wrong rake amount");
opponentsByGameId[gameId] = msg.sender;
gi.state = GameState.CALCULATING;
emit OpponentAccepted(gameId, msg.sender);
_requestGameFulfillment(gi.gameId, fulfillmentMethodsByGameId[gi.gameId]);
address referrer = rakeDistributor.getReferrerFromGamerAndCode(msg.sender, referralCode);
// Distribute rake for the taker and the creator at this point, since the game is finalizing.
rakeDistributor.distributeReferredRake{value: details.rake}(gi.gameId, msg.sender, referrer);
rakeDistributor.distributeReferredRake{value: details.rake}(gi.gameId, gi.creator, gi.referrer);
}
/// Receives the random number from VRF and sees if the flip was won.
/// Transfers AVAX to the winner and collects rake.
function fulfillRandomWords(uint256 requestId, uint256[] memory randomWords) internal override {
uint256 gameId = gameIdByRequestId[requestId];
require(gameId != 0, "Request already fulfilled");
GameInfo storage gi = gameById[gameId];
require(gi.state == GameState.CALCULATING, "Game not waiting for results");
RoundInfo memory result;
result.selected = randomWords[0] % 2 == 0 ? RoundChoice.HEADS : RoundChoice.TAILS;
result.sent = gi.betPerRound * 2;
address winner;
if (choicesByGameId[gameId] == result.selected) {
result.state = RoundState.WON;
winner = gi.creator;
} else {
result.state = RoundState.LOST;
winner = opponentsByGameId[gameId];
}
emit WinnerPicked(gameId, result);
delete gameById[gameId];
delete gameIdByRequestId[requestId];
(bool success,) = payable(winner).call{value: result.sent}("");
require(success);
}
/// Triggers VRF process for a given flip in case of emergency
function forceRequestWinner(uint256 gameId, FulfillmentMethod method) external onlyOwner {
GameInfo storage gi = gameById[gameId];
require(gi.state == GameState.CALCULATING, "incorrect state");
_requestGameFulfillment(gi.gameId, method);
}
/// Admin refund of user who opened a flip.
function forceCancel(uint256 gameId) external onlyOwner {
GameInfo storage gi = gameById[gameId];
require(gi.state == GameState.WAITING_FOR_PLAYER, "incorrect state");
gi.state = GameState.CANCELED;
(bool success,) = payable(gi.creator).call{value: gi.betPerRound + gi.rakePerRound}("");
require(success);
emit GameCanceled(gameId);
}
}[
{
"type": "constructor",
"inputs": [],
"stateMutability": "nonpayable"
},
{
"name": "OnlyCoordinatorCanFulfill",
"type": "error",
"inputs": [
{
"name": "have",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "GameCanceled",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "GameStarted",
"type": "event",
"inputs": [
{
"name": "creator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "subgame",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
},
{
"name": "numRounds",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
},
{
"name": "choice",
"type": "uint8",
"indexed": false,
"internalType": "enum PvpFlip.RoundChoice"
},
{
"name": "betPerRound",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "rakePerRound",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "method",
"type": "uint8",
"indexed": false,
"internalType": "enum GameVRF.FulfillmentMethod"
}
],
"anonymous": false
},
{
"name": "OpponentAccepted",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "opponent",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferStarted",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "OwnershipTransferred",
"type": "event",
"inputs": [
{
"name": "previousOwner",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newOwner",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "RequestedGameWinner",
"type": "event",
"inputs": [
{
"name": "requestId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "vrfCoordinator",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "WinnerPicked",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "result",
"type": "tuple",
"indexed": false,
"components": [
{
"name": "selected",
"type": "uint8",
"internalType": "enum PvpFlip.RoundChoice"
},
{
"name": "state",
"type": "uint8",
"internalType": "enum CentralGameBase.RoundState"
},
{
"name": "sent",
"type": "uint256",
"internalType": "uint256"
}
],
"internalType": "struct PvpFlip.RoundInfo"
}
],
"anonymous": false
},
{
"name": "acceptOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "betMultiplePerRound",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "cancelGame",
"type": "function",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "choicesByGameId",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "enum PvpFlip.RoundChoice"
}
],
"stateMutability": "view"
},
{
"name": "currentGameId",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "forceCancel",
"type": "function",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "forceRequestWinner",
"type": "function",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "method",
"type": "uint8",
"internalType": "enum GameVRF.FulfillmentMethod"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "fulfillmentMethodsByGameId",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint8",
"internalType": "enum GameVRF.FulfillmentMethod"
}
],
"stateMutability": "view"
},
{
"name": "gameById",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "betPerRound",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rakePerRound",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "numRounds",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "creator",
"type": "address",
"internalType": "address"
},
{
"name": "referrer",
"type": "address",
"internalType": "address"
},
{
"name": "subgame",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "state",
"type": "uint8",
"internalType": "enum CentralGameBase.GameState"
}
],
"stateMutability": "view"
},
{
"name": "gameIdByRequestId",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "getGameInfo",
"type": "function",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "tuple",
"components": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "betPerRound",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rakePerRound",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "numRounds",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "creator",
"type": "address",
"internalType": "address"
},
{
"name": "referrer",
"type": "address",
"internalType": "address"
},
{
"name": "subgame",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "state",
"type": "uint8",
"internalType": "enum CentralGameBase.GameState"
}
],
"internalType": "struct CentralGameBase.GameInfo"
}
],
"stateMutability": "view"
},
{
"name": "getManyGameInfo",
"type": "function",
"inputs": [
{
"name": "gameIds",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [
{
"name": "",
"type": "tuple[]",
"components": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "betPerRound",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rakePerRound",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "numRounds",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "creator",
"type": "address",
"internalType": "address"
},
{
"name": "referrer",
"type": "address",
"internalType": "address"
},
{
"name": "subgame",
"type": "uint8",
"internalType": "uint8"
},
{
"name": "state",
"type": "uint8",
"internalType": "enum CentralGameBase.GameState"
}
],
"internalType": "struct CentralGameBase.GameInfo[]"
}
],
"stateMutability": "view"
},
{
"name": "getNumWords",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "pure"
},
{
"name": "getRequestConfirmations",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "minBet",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "opponentsByGameId",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "paused",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "pendingOwner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "playGame",
"type": "function",
"inputs": [
{
"name": "choice",
"type": "uint8",
"internalType": "enum PvpFlip.RoundChoice"
},
{
"name": "referralCode",
"type": "string",
"internalType": "string"
},
{
"name": "method",
"type": "uint8",
"internalType": "enum GameVRF.FulfillmentMethod"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "rakeDistributorAddress",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "rawFulfillRandomWords",
"type": "function",
"inputs": [
{
"name": "requestId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "randomWords",
"type": "uint256[]",
"internalType": "uint256[]"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "referralTrackerAddress",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rescueERC20",
"type": "function",
"inputs": [
{
"name": "tokenAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rescueERC721",
"type": "function",
"inputs": [
{
"name": "tokenAddress",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rescueNative",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setBetMultiplePerRound",
"type": "function",
"inputs": [
{
"name": "betMultiplePerRound_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setCurrentGameId",
"type": "function",
"inputs": [
{
"name": "gameId_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setMinBet",
"type": "function",
"inputs": [
{
"name": "minBet_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setPaused",
"type": "function",
"inputs": [
{
"name": "paused_",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRakeDistributorAddress",
"type": "function",
"inputs": [
{
"name": "rakeAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setReferralTrackerAddress",
"type": "function",
"inputs": [
{
"name": "_referralTrackerAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setRequestConfirmations",
"type": "function",
"inputs": [
{
"name": "requestConfirmations",
"type": "uint16",
"internalType": "uint16"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTreasuryAddress",
"type": "function",
"inputs": [
{
"name": "_treasuryAddress",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setVRFCoordinator",
"type": "function",
"inputs": [
{
"name": "coordinator",
"type": "address",
"internalType": "address"
},
{
"name": "active",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setVRFCoordinatorInfoByMethod",
"type": "function",
"inputs": [
{
"name": "method",
"type": "uint8",
"internalType": "enum GameVRF.FulfillmentMethod"
},
{
"name": "gasLane",
"type": "bytes32",
"internalType": "bytes32"
},
{
"name": "coordAddress",
"type": "address",
"internalType": "address"
},
{
"name": "subscriptionId",
"type": "uint64",
"internalType": "uint64"
},
{
"name": "callbackGasLimit",
"type": "uint32",
"internalType": "uint32"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "takeGame",
"type": "function",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "referralCode",
"type": "string",
"internalType": "string"
}
],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "treasuryAddress",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x6080604052670de0b6b3a7640000600755662386f26fc10000600855600b805461ffff1916600217905534801562000035575f80fd5b50620000413362000047565b620000b4565b600180546001600160a01b0319169055620000628162000065565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61282680620000c25f395ff3fe608060405260043610610236575f3560e01c806379ba509711610129578063c20ee3fb116100a8578063d79818341161006d578063d798183414610742578063d9b61f6814610761578063e30c397814610780578063f2fde38b1461079d578063f438f019146107bc575f80fd5b8063c20ee3fb146106ac578063c5f956af146106cb578063ccec3716146106ea578063ccf1719f14610709578063d39b5cbb1461071e575f80fd5b8063999bc83e116100ee578063999bc83e146105f55780639d4b950c14610608578063a7f3606114610627578063ad912e3e14610646578063b4a91e1e14610681575f80fd5b806379ba5097146105725780638824f5a71461058657806388ea41b9146105a55780638da5cb5b146105c45780639619367d146105e0575f80fd5b8063536a3ddc116101b55780636605bfda1161017a5780636605bfda1461044c57806369958ab91461046b578063715018a61461048a578063766230221461049e5780637893953514610526575f80fd5b8063536a3ddc1461039f57806353a2c19a146103c25780635a3e2e8b146103d55780635c975abb146104015780635f1b0fd81461042a575f80fd5b80631fa33a2a116101fb5780631fa33a2a146102f75780631fe543e3146103165780632e35a30214610335578063454aa6691461035457806347e1d55014610373575f80fd5b806305287f0c146102415780630b8533531461026257806316c38b3c146102a6578063178588ff146102c55780631bdb2d99146102d8575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061026061025b36600461208e565b6107db565b005b34801561026d575f80fd5b5061029061027c36600461208e565b600d6020525f908152604090205460ff1681565b60405161029d91906120cd565b60405180910390f35b3480156102b1575f80fd5b506102606102c03660046120e8565b6107e8565b6102606102d33660046121b9565b610803565b3480156102e3575f80fd5b506102606102f2366004612223565b610bfe565b348015610302575f80fd5b50610260610311366004612298565b610cf1565b348015610321575f80fd5b5061026061033036600461234b565b610d23565b348015610340575f80fd5b5061026061034f366004612384565b610d67565b34801561035f575f80fd5b5061026061036e36600461208e565b610d97565b34801561037e575f80fd5b5061039261038d36600461208e565b610df0565b60405161029d9190612419565b3480156103aa575f80fd5b506103b460025481565b60405190815260200161029d565b3480156103cd575f80fd5b5060016103b4565b3480156103e0575f80fd5b506103f46103ef366004612428565b610ea6565b60405161029d9190612461565b34801561040c575f80fd5b5060045461041a9060ff1681565b604051901515815260200161029d565b348015610435575f80fd5b50600b5460405161ffff909116815260200161029d565b348015610457575f80fd5b50610260610466366004612384565b610ffd565b348015610476575f80fd5b5061026061048536600461208e565b611027565b348015610495575f80fd5b506102606111d5565b3480156104a9575f80fd5b506105126104b836600461208e565b600360208190525f918252604090912080546001820154600283015493830154600484015460059094015492949193919290916001600160a01b03908116919081169060ff600160a01b8204811691600160a81b90041688565b60405161029d9897969594939291906124af565b348015610531575f80fd5b5061055a61054036600461208e565b600e6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161029d565b34801561057d575f80fd5b506102606111e8565b348015610591575f80fd5b506102606105a0366004612508565b611262565b3480156105b0575f80fd5b506102606105bf36600461208e565b611282565b3480156105cf575f80fd5b505f546001600160a01b031661055a565b3480156105eb575f80fd5b506103b460075481565b6103b4610603366004612529565b61128f565b348015610613575f80fd5b50610260610622366004612384565b611548565b348015610632575f80fd5b50610260610641366004612587565b611572565b348015610651575f80fd5b5061067461066036600461208e565b600f6020525f908152604090205460ff1681565b60405161029d91906125c1565b34801561068c575f80fd5b506103b461069b36600461208e565b600c6020525f908152604090205481565b3480156106b7575f80fd5b506102606106c636600461208e565b6115f9565b3480156106d6575f80fd5b5060065461055a906001600160a01b031681565b3480156106f5575f80fd5b50610260610704366004612384565b611606565b348015610714575f80fd5b506103b460085481565b348015610729575f80fd5b5060045461055a9061010090046001600160a01b031681565b34801561074d575f80fd5b5061026061075c3660046125cf565b6116f1565b34801561076c575f80fd5b5060055461055a906001600160a01b031681565b34801561078b575f80fd5b506001546001600160a01b031661055a565b3480156107a8575f80fd5b506102606107b7366004612384565b611761565b3480156107c7575f80fd5b506102606107d636600461208e565b6117d1565b6107e3611847565b600255565b6107f0611847565b6004805460ff1916911515919091179055565b60045460ff161561082f5760405162461bcd60e51b8152600401610826906125f9565b60405180910390fd5b5f82815260036020526040902060026005820154600160a81b900460ff16600381111561085e5761085e6120a5565b146108ab5760405162461bcd60e51b815260206004820152601a60248201527f47616d65206e6f7420696e2074616b6561626c652073746174650000000000006044820152606401610826565b6004810154336001600160a01b03909116036109095760405162461bcd60e51b815260206004820152601860248201527f43616e27742074616b6520796f7572206f776e2067616d6500000000000000006044820152606401610826565b5f600460019054906101000a90046001600160a01b031690505f61098d826001600160a01b031663e54c9f6b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610962573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109869190612621565b60016118a0565b905080604001518360010154146109d95760405162461bcd60e51b815260206004820152601060248201526f15dc9bdb99c818995d08185b5bdd5b9d60821b6044820152606401610826565b8060600151836002015414610a245760405162461bcd60e51b815260206004820152601160248201527015dc9bdb99c81c985ad948185b5bdd5b9d607a1b6044820152606401610826565b5f858152600e602052604080822080546001600160a01b0319163390811790915560058601805460ff60a81b191690559051909187917faf9672a379f8bcd850a4f1e804eb4f246873c10a996070bf13816e11206ac32b9190a382545f818152600f6020526040902054610a9b919060ff16611b05565b50604051636431085f60e11b81525f906001600160a01b0384169063c86210be90610acc9033908990600401612638565b602060405180830381865afa158015610ae7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0b9190612694565b6020830151855460405163919ac7ff60e01b815260048101919091523360248201526001600160a01b0380841660448301529293509185169163919ac7ff91906064015f604051808303818588803b158015610b65575f80fd5b505af1158015610b77573d5f803e3d5ffd5b5050505060208301518554600480880154600589015460405163919ac7ff60e01b8152928301939093526001600160a01b0390811660248301529182166044820152908616925063919ac7ff91906064015f604051808303818588803b158015610bdf575f80fd5b505af1158015610bf1573d5f803e3d5ffd5b5050505050505050505050565b610c06611847565b6040518060800160405280858152602001846001600160a01b03168152602001836001600160401b031681526020018263ffffffff16815250600a5f876002811115610c5457610c546120a5565b6002811115610c6557610c656120a5565b815260208082019290925260409081015f208351815591830151600192830180549285015160609095015163ffffffff16600160e01b026001600160e01b036001600160401b03909616600160a01b026001600160e01b03199094166001600160a01b0390931692909217929092179390931692909217909155610cea908490610cf1565b5050505050565b610cf9611847565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b335f9081526009602052604090205460ff161515600114610d5957604051637885129b60e01b8152336004820152602401610826565b610d638282611d18565b5050565b610d6f611847565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b610d9f611847565b6040515f90339083908381818185875af1925050503d805f8114610dde576040519150601f19603f3d011682016040523d82523d5f602084013e610de3565b606091505b5050905080610d63575f80fd5b610df861204d565b5f828152600360208181526040928390208351610100810185528154815260018201549281019290925260028101549382019390935282820154606082015260048301546001600160a01b039081166080830152600584015490811660a083015260ff600160a01b8204811660c084015291939260e0850192600160a81b90920490911690811115610e8c57610e8c6120a5565b6003811115610e9d57610e9d6120a5565b90525092915050565b80516060905f816001600160401b03811115610ec457610ec461210a565b604051908082528060200260200182016040528015610efd57816020015b610eea61204d565b815260200190600190039081610ee25790505b5090505f5b82811015610ff55760035f868381518110610f1f57610f1f6126af565b60209081029190910181015182528181019290925260409081015f2081516101008101835281548152600182015493810193909352600281015491830191909152600380820154606084015260048201546001600160a01b039081166080850152600583015490811660a085015260ff600160a01b8204811660c086015260e0850192600160a81b9092041690811115610fbb57610fbb6120a5565b6003811115610fcc57610fcc6120a5565b81525050828281518110610fe257610fe26126af565b6020908102919091010152600101610f02565b509392505050565b611005611847565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60045460ff161561104a5760405162461bcd60e51b8152600401610826906125f9565b5f81815260036020526040902060026005820154600160a81b900460ff166003811115611079576110796120a5565b146110c65760405162461bcd60e51b815260206004820152601a60248201527f47616d65206e6f7420696e20636c6f7361626c652073746174650000000000006044820152606401610826565b60048101546001600160a01b031633146111225760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c792063616e63656c20796f7572206f776e2067616d650000006044820152606401610826565b60058101805460ff60a81b1916600360a81b1790556004810154600282015460018301545f926001600160a01b03169161115b916126d7565b6040515f81818185875af1925050503d805f8114611194576040519150601f19603f3d011682016040523d82523d5f602084013e611199565b606091505b50509050806111a6575f80fd5b60405183907f8f1ffb72cf9e5acc4eddafab2be9e2951d12377b9e1e4bdc7bd686b19c91fd89905f90a2505050565b6111dd611847565b6111e65f611fea565b565b60015433906001600160a01b031681146112565760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610826565b61125f81611fea565b50565b61126a611847565b600b805461ffff191661ffff92909216919091179055565b61128a611847565b600755565b6004545f9060ff16156112b45760405162461bcd60e51b8152600401610826906125f9565b5f600460019054906101000a90046001600160a01b031690505f61130d826001600160a01b031663e54c9f6b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610962573d5f803e3d5ffd5b600280549192505f61131e836126ea565b919050555061132b61204d565b3360808201819052600280548352600860c084015260e0830152604083810151602084015260608401518184015251636431085f60e11b81526001600160a01b0385169163c86210be9161138491908a90600401612638565b602060405180830381865afa15801561139f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c39190612694565b6001600160a01b0390811660a0830190815282515f908152600360208181526040928390208651815590860151600182015591850151600283015560608501518282015560808501516004830180549186166001600160a01b0319909216919091179055915160058201805460c087015160ff16600160a01b026001600160a81b031990911692909516919091179390931780845560e08501518594929390929160ff60a81b191690600160a81b908490811115611483576114836120a5565b02179055505081515f908152600d60205260409020805489925060ff1916600183818111156114b4576114b46120a5565b021790555080515f908152600f60205260409020805486919060ff191660018360028111156114e5576114e56120a5565b0217905550805160c08201516020830151604080850151905133937f0dce891e8a5a16c26f2761c454556cc8b0743f33f2714ce2761b0ef390ce2088936115359391926001928f92918e90612702565b60405180910390a3519695505050505050565b611550611847565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61157a611847565b5f828152600360205260408120906005820154600160a81b900460ff1660038111156115a8576115a86120a5565b146115e75760405162461bcd60e51b815260206004820152600f60248201526e696e636f727265637420737461746560881b6044820152606401610826565b80546115f39083611b05565b50505050565b611601611847565b600855565b61160e611847565b6040516370a0823160e01b815230600482015281906001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa15801561165c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116809190612621565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156116c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ec919061273a565b505050565b6116f9611847565b6040516323b872dd60e01b81523060048201523360248201526044810182905282906001600160a01b038216906323b872dd906064015f604051808303815f87803b158015611746575f80fd5b505af1158015611758573d5f803e3d5ffd5b50505050505050565b611769611847565b600180546001600160a01b0383166001600160a01b031990911681179091556117995f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6117d9611847565b5f81815260036020526040902060026005820154600160a81b900460ff166003811115611808576118086120a5565b146111225760405162461bcd60e51b815260206004820152600f60248201526e696e636f727265637420737461746560881b6044820152606401610826565b5f546001600160a01b031633146111e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610826565b6118c760405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f6118d4846127106126d7565b6118e034612710612755565b6118ea9190612780565b90505f6118f78234612793565b905060075482101561193f5760405162461bcd60e51b815260206004820152601160248201527023b0b6b136329036b7b9329610383632b160791b6044820152606401610826565b5f841161198e5760405162461bcd60e51b815260206004820152601a60248201527f47616d626c65206174206c65617374206f6e63652c20706c65620000000000006044820152606401610826565b5f6119998584612780565b90506119a585846127a6565b15611a085760405162461bcd60e51b815260206004820152602d60248201527f47616d626c6520616e20616d6f756e7420646976697369626c6520627920796f60448201526c3ab9103132ba399610383632b160991b6064820152608401610826565b600854611a1590826127a6565b15611a705760405162461bcd60e51b815260206004820152602560248201527f47616d626c652074686520726967687420616d6f756e7420706572206265742c60448201526410383632b160d91b6064820152608401610826565b5f611a7b8684612780565b9050611a8786846127a6565b15611ade5760405162461bcd60e51b815260206004820152602160248201527f496e7465726e616c206572726f723b2077726f6e672072616b6520616d6f756e6044820152601d60fa1b6064820152608401610826565b60408051608081018252948552602085019390935291830152606082015290505b92915050565b5f80600a5f846002811115611b1c57611b1c6120a5565b6002811115611b2d57611b2d6120a5565b815260208101919091526040015f20600101546001600160a01b0316905080611b8e5760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420565246206164647265737360681b6044820152606401610826565b805f6001600160a01b038216635d3b1d30600a83886002811115611bb457611bb46120a5565b6002811115611bc557611bc56120a5565b81526020019081526020015f205f0154600a5f896002811115611bea57611bea6120a5565b6002811115611bfb57611bfb6120a5565b81526020019081526020015f2060010160149054906101000a90046001600160401b0316600b5f9054906101000a900461ffff16600a5f8b6002811115611c4457611c446120a5565b6002811115611c5557611c556120a5565b8152602081019190915260409081015f2060019081015491516001600160e01b031960e088901b16815260048101959095526001600160401b03909316602485015261ffff909116604484015263ffffffff600160e01b909104166064830152608482015260a4016020604051808303815f875af1158015611cd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cfd9190612621565b5f818152600c60205260409020879055935050505092915050565b5f828152600c602052604081205490819003611d765760405162461bcd60e51b815260206004820152601960248201527f5265717565737420616c72656164792066756c66696c6c6564000000000000006044820152606401610826565b5f818152600360205260408120906005820154600160a81b900460ff166003811115611da457611da46120a5565b14611df15760405162461bcd60e51b815260206004820152601c60248201527f47616d65206e6f742077616974696e6720666f7220726573756c7473000000006044820152606401610826565b611e136040805160608101909152805f81526020015f81526020015f81525090565b6002845f81518110611e2757611e276126af565b6020026020010151611e3991906127a6565b15611e45576001611e47565b5f5b81906001811115611e5a57611e5a6120a5565b90816001811115611e6d57611e6d6120a5565b9052506001820154611e80906002612755565b604082015280515f906001811115611e9a57611e9a6120a5565b5f858152600d602052604090205460ff166001811115611ebc57611ebc6120a5565b03611edc57506003602082015260048201546001600160a01b0316611eff565b60016020830181905250505f838152600e60205260409020546001600160a01b03165b837f5d0af5eeffc494b6e58d5c0a10307fd34ca4bcb46eb967ccf31bb9d481b9593d83604051611f2f91906127b9565b60405180910390a25f84815260036020818152604080842084815560018101859055600281018590559283018490556004830180546001600160a01b0319169055600590920180546001600160b01b0319169055888352600c90528082208290558381015190516001600160a01b03841691908381818185875af1925050503d805f8114611fd8576040519150601f19603f3d011682016040523d82523d5f602084013e611fdd565b606091505b5050905080611758575f80fd5b600180546001600160a01b031916905561125f815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c081018290529060e082015290565b5f6020828403121561209e575f80fd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b600281106120c9576120c96120a5565b9052565b60208101611aff82846120b9565b801515811461125f575f80fd5b5f602082840312156120f8575f80fd5b8135612103816120db565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156121465761214661210a565b604052919050565b5f82601f83011261215d575f80fd5b81356001600160401b038111156121765761217661210a565b612189601f8201601f191660200161211e565b81815284602083860101111561219d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156121ca575f80fd5b8235915060208301356001600160401b038111156121e6575f80fd5b6121f28582860161214e565b9150509250929050565b80356003811061220a575f80fd5b919050565b6001600160a01b038116811461125f575f80fd5b5f805f805f60a08688031215612237575f80fd5b612240866121fc565b94506020860135935060408601356122578161220f565b925060608601356001600160401b0381168114612272575f80fd5b9150608086013563ffffffff8116811461228a575f80fd5b809150509295509295909350565b5f80604083850312156122a9575f80fd5b82356122b48161220f565b915060208301356122c4816120db565b809150509250929050565b5f82601f8301126122de575f80fd5b813560206001600160401b038211156122f9576122f961210a565b8160051b61230882820161211e565b9283528481018201928281019087851115612321575f80fd5b83870192505b8483101561234057823582529183019190830190612327565b979650505050505050565b5f806040838503121561235c575f80fd5b8235915060208301356001600160401b03811115612378575f80fd5b6121f2858286016122cf565b5f60208284031215612394575f80fd5b81356121038161220f565b6004811061125f5761125f6120a5565b80518252602081015160208301526040810151604083015260608101516060830152608081015160018060a01b0380821660808501528060a08401511660a0850152505060ff60c08201511660c083015260e081015161240e8161239f565b8060e0840152505050565b6101008101611aff82846123af565b5f60208284031215612438575f80fd5b81356001600160401b0381111561244d575f80fd5b612459848285016122cf565b949350505050565b602080825282518282018190525f9190848201906040850190845b818110156124a35761248f8385516123af565b92840192610100929092019160010161247c565b50909695505050505050565b8881526020810188905260408101879052606081018690526001600160a01b038581166080830152841660a082015260ff831660c082015261010081016124f58361239f565b8260e08301529998505050505050505050565b5f60208284031215612518575f80fd5b813561ffff81168114612103575f80fd5b5f805f6060848603121561253b575f80fd5b833560028110612549575f80fd5b925060208401356001600160401b03811115612563575f80fd5b61256f8682870161214e565b92505061257e604085016121fc565b90509250925092565b5f8060408385031215612598575f80fd5b823591506125a8602084016121fc565b90509250929050565b600381106120c9576120c96120a5565b60208101611aff82846125b1565b5f80604083850312156125e0575f80fd5b82356125eb8161220f565b946020939093013593505050565b6020808252600e908201526d11d85b59481a5cc81c185d5cd95960921b604082015260600190565b5f60208284031215612631575f80fd5b5051919050565b60018060a01b03831681525f60206040602084015283518060408501525f5b8181101561267357858101830151858201606001528201612657565b505f606082860101526060601f19601f830116850101925050509392505050565b5f602082840312156126a4575f80fd5b81516121038161220f565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611aff57611aff6126c3565b5f600182016126fb576126fb6126c3565b5060010190565b60ff87811682528616602082015260c0810161272160408301876120b9565b84606083015283608083015261234060a08301846125b1565b5f6020828403121561274a575f80fd5b8151612103816120db565b8082028115828204841417611aff57611aff6126c3565b634e487b7160e01b5f52601260045260245ffd5b5f8261278e5761278e61276c565b500490565b81810381811115611aff57611aff6126c3565b5f826127b4576127b461276c565b500690565b5f6060820190506127cb8284516120b9565b60208301516127d98161239f565b80602084015250604083015160408301529291505056fea2646970667358221220dd9e230aaad14baf91ca9700b7f9170d53f22a06479c2d6d41b575c08bd16a8b64736f6c63430008160033
0x608060405260043610610236575f3560e01c806379ba509711610129578063c20ee3fb116100a8578063d79818341161006d578063d798183414610742578063d9b61f6814610761578063e30c397814610780578063f2fde38b1461079d578063f438f019146107bc575f80fd5b8063c20ee3fb146106ac578063c5f956af146106cb578063ccec3716146106ea578063ccf1719f14610709578063d39b5cbb1461071e575f80fd5b8063999bc83e116100ee578063999bc83e146105f55780639d4b950c14610608578063a7f3606114610627578063ad912e3e14610646578063b4a91e1e14610681575f80fd5b806379ba5097146105725780638824f5a71461058657806388ea41b9146105a55780638da5cb5b146105c45780639619367d146105e0575f80fd5b8063536a3ddc116101b55780636605bfda1161017a5780636605bfda1461044c57806369958ab91461046b578063715018a61461048a578063766230221461049e5780637893953514610526575f80fd5b8063536a3ddc1461039f57806353a2c19a146103c25780635a3e2e8b146103d55780635c975abb146104015780635f1b0fd81461042a575f80fd5b80631fa33a2a116101fb5780631fa33a2a146102f75780631fe543e3146103165780632e35a30214610335578063454aa6691461035457806347e1d55014610373575f80fd5b806305287f0c146102415780630b8533531461026257806316c38b3c146102a6578063178588ff146102c55780631bdb2d99146102d8575f80fd5b3661023d57005b5f80fd5b34801561024c575f80fd5b5061026061025b36600461208e565b6107db565b005b34801561026d575f80fd5b5061029061027c36600461208e565b600d6020525f908152604090205460ff1681565b60405161029d91906120cd565b60405180910390f35b3480156102b1575f80fd5b506102606102c03660046120e8565b6107e8565b6102606102d33660046121b9565b610803565b3480156102e3575f80fd5b506102606102f2366004612223565b610bfe565b348015610302575f80fd5b50610260610311366004612298565b610cf1565b348015610321575f80fd5b5061026061033036600461234b565b610d23565b348015610340575f80fd5b5061026061034f366004612384565b610d67565b34801561035f575f80fd5b5061026061036e36600461208e565b610d97565b34801561037e575f80fd5b5061039261038d36600461208e565b610df0565b60405161029d9190612419565b3480156103aa575f80fd5b506103b460025481565b60405190815260200161029d565b3480156103cd575f80fd5b5060016103b4565b3480156103e0575f80fd5b506103f46103ef366004612428565b610ea6565b60405161029d9190612461565b34801561040c575f80fd5b5060045461041a9060ff1681565b604051901515815260200161029d565b348015610435575f80fd5b50600b5460405161ffff909116815260200161029d565b348015610457575f80fd5b50610260610466366004612384565b610ffd565b348015610476575f80fd5b5061026061048536600461208e565b611027565b348015610495575f80fd5b506102606111d5565b3480156104a9575f80fd5b506105126104b836600461208e565b600360208190525f918252604090912080546001820154600283015493830154600484015460059094015492949193919290916001600160a01b03908116919081169060ff600160a01b8204811691600160a81b90041688565b60405161029d9897969594939291906124af565b348015610531575f80fd5b5061055a61054036600461208e565b600e6020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161029d565b34801561057d575f80fd5b506102606111e8565b348015610591575f80fd5b506102606105a0366004612508565b611262565b3480156105b0575f80fd5b506102606105bf36600461208e565b611282565b3480156105cf575f80fd5b505f546001600160a01b031661055a565b3480156105eb575f80fd5b506103b460075481565b6103b4610603366004612529565b61128f565b348015610613575f80fd5b50610260610622366004612384565b611548565b348015610632575f80fd5b50610260610641366004612587565b611572565b348015610651575f80fd5b5061067461066036600461208e565b600f6020525f908152604090205460ff1681565b60405161029d91906125c1565b34801561068c575f80fd5b506103b461069b36600461208e565b600c6020525f908152604090205481565b3480156106b7575f80fd5b506102606106c636600461208e565b6115f9565b3480156106d6575f80fd5b5060065461055a906001600160a01b031681565b3480156106f5575f80fd5b50610260610704366004612384565b611606565b348015610714575f80fd5b506103b460085481565b348015610729575f80fd5b5060045461055a9061010090046001600160a01b031681565b34801561074d575f80fd5b5061026061075c3660046125cf565b6116f1565b34801561076c575f80fd5b5060055461055a906001600160a01b031681565b34801561078b575f80fd5b506001546001600160a01b031661055a565b3480156107a8575f80fd5b506102606107b7366004612384565b611761565b3480156107c7575f80fd5b506102606107d636600461208e565b6117d1565b6107e3611847565b600255565b6107f0611847565b6004805460ff1916911515919091179055565b60045460ff161561082f5760405162461bcd60e51b8152600401610826906125f9565b60405180910390fd5b5f82815260036020526040902060026005820154600160a81b900460ff16600381111561085e5761085e6120a5565b146108ab5760405162461bcd60e51b815260206004820152601a60248201527f47616d65206e6f7420696e2074616b6561626c652073746174650000000000006044820152606401610826565b6004810154336001600160a01b03909116036109095760405162461bcd60e51b815260206004820152601860248201527f43616e27742074616b6520796f7572206f776e2067616d6500000000000000006044820152606401610826565b5f600460019054906101000a90046001600160a01b031690505f61098d826001600160a01b031663e54c9f6b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610962573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109869190612621565b60016118a0565b905080604001518360010154146109d95760405162461bcd60e51b815260206004820152601060248201526f15dc9bdb99c818995d08185b5bdd5b9d60821b6044820152606401610826565b8060600151836002015414610a245760405162461bcd60e51b815260206004820152601160248201527015dc9bdb99c81c985ad948185b5bdd5b9d607a1b6044820152606401610826565b5f858152600e602052604080822080546001600160a01b0319163390811790915560058601805460ff60a81b191690559051909187917faf9672a379f8bcd850a4f1e804eb4f246873c10a996070bf13816e11206ac32b9190a382545f818152600f6020526040902054610a9b919060ff16611b05565b50604051636431085f60e11b81525f906001600160a01b0384169063c86210be90610acc9033908990600401612638565b602060405180830381865afa158015610ae7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0b9190612694565b6020830151855460405163919ac7ff60e01b815260048101919091523360248201526001600160a01b0380841660448301529293509185169163919ac7ff91906064015f604051808303818588803b158015610b65575f80fd5b505af1158015610b77573d5f803e3d5ffd5b5050505060208301518554600480880154600589015460405163919ac7ff60e01b8152928301939093526001600160a01b0390811660248301529182166044820152908616925063919ac7ff91906064015f604051808303818588803b158015610bdf575f80fd5b505af1158015610bf1573d5f803e3d5ffd5b5050505050505050505050565b610c06611847565b6040518060800160405280858152602001846001600160a01b03168152602001836001600160401b031681526020018263ffffffff16815250600a5f876002811115610c5457610c546120a5565b6002811115610c6557610c656120a5565b815260208082019290925260409081015f208351815591830151600192830180549285015160609095015163ffffffff16600160e01b026001600160e01b036001600160401b03909616600160a01b026001600160e01b03199094166001600160a01b0390931692909217929092179390931692909217909155610cea908490610cf1565b5050505050565b610cf9611847565b6001600160a01b03919091165f908152600960205260409020805460ff1916911515919091179055565b335f9081526009602052604090205460ff161515600114610d5957604051637885129b60e01b8152336004820152602401610826565b610d638282611d18565b5050565b610d6f611847565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b610d9f611847565b6040515f90339083908381818185875af1925050503d805f8114610dde576040519150601f19603f3d011682016040523d82523d5f602084013e610de3565b606091505b5050905080610d63575f80fd5b610df861204d565b5f828152600360208181526040928390208351610100810185528154815260018201549281019290925260028101549382019390935282820154606082015260048301546001600160a01b039081166080830152600584015490811660a083015260ff600160a01b8204811660c084015291939260e0850192600160a81b90920490911690811115610e8c57610e8c6120a5565b6003811115610e9d57610e9d6120a5565b90525092915050565b80516060905f816001600160401b03811115610ec457610ec461210a565b604051908082528060200260200182016040528015610efd57816020015b610eea61204d565b815260200190600190039081610ee25790505b5090505f5b82811015610ff55760035f868381518110610f1f57610f1f6126af565b60209081029190910181015182528181019290925260409081015f2081516101008101835281548152600182015493810193909352600281015491830191909152600380820154606084015260048201546001600160a01b039081166080850152600583015490811660a085015260ff600160a01b8204811660c086015260e0850192600160a81b9092041690811115610fbb57610fbb6120a5565b6003811115610fcc57610fcc6120a5565b81525050828281518110610fe257610fe26126af565b6020908102919091010152600101610f02565b509392505050565b611005611847565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60045460ff161561104a5760405162461bcd60e51b8152600401610826906125f9565b5f81815260036020526040902060026005820154600160a81b900460ff166003811115611079576110796120a5565b146110c65760405162461bcd60e51b815260206004820152601a60248201527f47616d65206e6f7420696e20636c6f7361626c652073746174650000000000006044820152606401610826565b60048101546001600160a01b031633146111225760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c792063616e63656c20796f7572206f776e2067616d650000006044820152606401610826565b60058101805460ff60a81b1916600360a81b1790556004810154600282015460018301545f926001600160a01b03169161115b916126d7565b6040515f81818185875af1925050503d805f8114611194576040519150601f19603f3d011682016040523d82523d5f602084013e611199565b606091505b50509050806111a6575f80fd5b60405183907f8f1ffb72cf9e5acc4eddafab2be9e2951d12377b9e1e4bdc7bd686b19c91fd89905f90a2505050565b6111dd611847565b6111e65f611fea565b565b60015433906001600160a01b031681146112565760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206044820152683732bb9037bbb732b960b91b6064820152608401610826565b61125f81611fea565b50565b61126a611847565b600b805461ffff191661ffff92909216919091179055565b61128a611847565b600755565b6004545f9060ff16156112b45760405162461bcd60e51b8152600401610826906125f9565b5f600460019054906101000a90046001600160a01b031690505f61130d826001600160a01b031663e54c9f6b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610962573d5f803e3d5ffd5b600280549192505f61131e836126ea565b919050555061132b61204d565b3360808201819052600280548352600860c084015260e0830152604083810151602084015260608401518184015251636431085f60e11b81526001600160a01b0385169163c86210be9161138491908a90600401612638565b602060405180830381865afa15801561139f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c39190612694565b6001600160a01b0390811660a0830190815282515f908152600360208181526040928390208651815590860151600182015591850151600283015560608501518282015560808501516004830180549186166001600160a01b0319909216919091179055915160058201805460c087015160ff16600160a01b026001600160a81b031990911692909516919091179390931780845560e08501518594929390929160ff60a81b191690600160a81b908490811115611483576114836120a5565b02179055505081515f908152600d60205260409020805489925060ff1916600183818111156114b4576114b46120a5565b021790555080515f908152600f60205260409020805486919060ff191660018360028111156114e5576114e56120a5565b0217905550805160c08201516020830151604080850151905133937f0dce891e8a5a16c26f2761c454556cc8b0743f33f2714ce2761b0ef390ce2088936115359391926001928f92918e90612702565b60405180910390a3519695505050505050565b611550611847565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b61157a611847565b5f828152600360205260408120906005820154600160a81b900460ff1660038111156115a8576115a86120a5565b146115e75760405162461bcd60e51b815260206004820152600f60248201526e696e636f727265637420737461746560881b6044820152606401610826565b80546115f39083611b05565b50505050565b611601611847565b600855565b61160e611847565b6040516370a0823160e01b815230600482015281906001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa15801561165c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116809190612621565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156116c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116ec919061273a565b505050565b6116f9611847565b6040516323b872dd60e01b81523060048201523360248201526044810182905282906001600160a01b038216906323b872dd906064015f604051808303815f87803b158015611746575f80fd5b505af1158015611758573d5f803e3d5ffd5b50505050505050565b611769611847565b600180546001600160a01b0383166001600160a01b031990911681179091556117995f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6117d9611847565b5f81815260036020526040902060026005820154600160a81b900460ff166003811115611808576118086120a5565b146111225760405162461bcd60e51b815260206004820152600f60248201526e696e636f727265637420737461746560881b6044820152606401610826565b5f546001600160a01b031633146111e65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610826565b6118c760405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f6118d4846127106126d7565b6118e034612710612755565b6118ea9190612780565b90505f6118f78234612793565b905060075482101561193f5760405162461bcd60e51b815260206004820152601160248201527023b0b6b136329036b7b9329610383632b160791b6044820152606401610826565b5f841161198e5760405162461bcd60e51b815260206004820152601a60248201527f47616d626c65206174206c65617374206f6e63652c20706c65620000000000006044820152606401610826565b5f6119998584612780565b90506119a585846127a6565b15611a085760405162461bcd60e51b815260206004820152602d60248201527f47616d626c6520616e20616d6f756e7420646976697369626c6520627920796f60448201526c3ab9103132ba399610383632b160991b6064820152608401610826565b600854611a1590826127a6565b15611a705760405162461bcd60e51b815260206004820152602560248201527f47616d626c652074686520726967687420616d6f756e7420706572206265742c60448201526410383632b160d91b6064820152608401610826565b5f611a7b8684612780565b9050611a8786846127a6565b15611ade5760405162461bcd60e51b815260206004820152602160248201527f496e7465726e616c206572726f723b2077726f6e672072616b6520616d6f756e6044820152601d60fa1b6064820152608401610826565b60408051608081018252948552602085019390935291830152606082015290505b92915050565b5f80600a5f846002811115611b1c57611b1c6120a5565b6002811115611b2d57611b2d6120a5565b815260208101919091526040015f20600101546001600160a01b0316905080611b8e5760405162461bcd60e51b8152602060048201526013602482015272496e76616c696420565246206164647265737360681b6044820152606401610826565b805f6001600160a01b038216635d3b1d30600a83886002811115611bb457611bb46120a5565b6002811115611bc557611bc56120a5565b81526020019081526020015f205f0154600a5f896002811115611bea57611bea6120a5565b6002811115611bfb57611bfb6120a5565b81526020019081526020015f2060010160149054906101000a90046001600160401b0316600b5f9054906101000a900461ffff16600a5f8b6002811115611c4457611c446120a5565b6002811115611c5557611c556120a5565b8152602081019190915260409081015f2060019081015491516001600160e01b031960e088901b16815260048101959095526001600160401b03909316602485015261ffff909116604484015263ffffffff600160e01b909104166064830152608482015260a4016020604051808303815f875af1158015611cd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cfd9190612621565b5f818152600c60205260409020879055935050505092915050565b5f828152600c602052604081205490819003611d765760405162461bcd60e51b815260206004820152601960248201527f5265717565737420616c72656164792066756c66696c6c6564000000000000006044820152606401610826565b5f818152600360205260408120906005820154600160a81b900460ff166003811115611da457611da46120a5565b14611df15760405162461bcd60e51b815260206004820152601c60248201527f47616d65206e6f742077616974696e6720666f7220726573756c7473000000006044820152606401610826565b611e136040805160608101909152805f81526020015f81526020015f81525090565b6002845f81518110611e2757611e276126af565b6020026020010151611e3991906127a6565b15611e45576001611e47565b5f5b81906001811115611e5a57611e5a6120a5565b90816001811115611e6d57611e6d6120a5565b9052506001820154611e80906002612755565b604082015280515f906001811115611e9a57611e9a6120a5565b5f858152600d602052604090205460ff166001811115611ebc57611ebc6120a5565b03611edc57506003602082015260048201546001600160a01b0316611eff565b60016020830181905250505f838152600e60205260409020546001600160a01b03165b837f5d0af5eeffc494b6e58d5c0a10307fd34ca4bcb46eb967ccf31bb9d481b9593d83604051611f2f91906127b9565b60405180910390a25f84815260036020818152604080842084815560018101859055600281018590559283018490556004830180546001600160a01b0319169055600590920180546001600160b01b0319169055888352600c90528082208290558381015190516001600160a01b03841691908381818185875af1925050503d805f8114611fd8576040519150601f19603f3d011682016040523d82523d5f602084013e611fdd565b606091505b5050905080611758575f80fd5b600180546001600160a01b031916905561125f815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051610100810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c081018290529060e082015290565b5f6020828403121561209e575f80fd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b600281106120c9576120c96120a5565b9052565b60208101611aff82846120b9565b801515811461125f575f80fd5b5f602082840312156120f8575f80fd5b8135612103816120db565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156121465761214661210a565b604052919050565b5f82601f83011261215d575f80fd5b81356001600160401b038111156121765761217661210a565b612189601f8201601f191660200161211e565b81815284602083860101111561219d575f80fd5b816020850160208301375f918101602001919091529392505050565b5f80604083850312156121ca575f80fd5b8235915060208301356001600160401b038111156121e6575f80fd5b6121f28582860161214e565b9150509250929050565b80356003811061220a575f80fd5b919050565b6001600160a01b038116811461125f575f80fd5b5f805f805f60a08688031215612237575f80fd5b612240866121fc565b94506020860135935060408601356122578161220f565b925060608601356001600160401b0381168114612272575f80fd5b9150608086013563ffffffff8116811461228a575f80fd5b809150509295509295909350565b5f80604083850312156122a9575f80fd5b82356122b48161220f565b915060208301356122c4816120db565b809150509250929050565b5f82601f8301126122de575f80fd5b813560206001600160401b038211156122f9576122f961210a565b8160051b61230882820161211e565b9283528481018201928281019087851115612321575f80fd5b83870192505b8483101561234057823582529183019190830190612327565b979650505050505050565b5f806040838503121561235c575f80fd5b8235915060208301356001600160401b03811115612378575f80fd5b6121f2858286016122cf565b5f60208284031215612394575f80fd5b81356121038161220f565b6004811061125f5761125f6120a5565b80518252602081015160208301526040810151604083015260608101516060830152608081015160018060a01b0380821660808501528060a08401511660a0850152505060ff60c08201511660c083015260e081015161240e8161239f565b8060e0840152505050565b6101008101611aff82846123af565b5f60208284031215612438575f80fd5b81356001600160401b0381111561244d575f80fd5b612459848285016122cf565b949350505050565b602080825282518282018190525f9190848201906040850190845b818110156124a35761248f8385516123af565b92840192610100929092019160010161247c565b50909695505050505050565b8881526020810188905260408101879052606081018690526001600160a01b038581166080830152841660a082015260ff831660c082015261010081016124f58361239f565b8260e08301529998505050505050505050565b5f60208284031215612518575f80fd5b813561ffff81168114612103575f80fd5b5f805f6060848603121561253b575f80fd5b833560028110612549575f80fd5b925060208401356001600160401b03811115612563575f80fd5b61256f8682870161214e565b92505061257e604085016121fc565b90509250925092565b5f8060408385031215612598575f80fd5b823591506125a8602084016121fc565b90509250929050565b600381106120c9576120c96120a5565b60208101611aff82846125b1565b5f80604083850312156125e0575f80fd5b82356125eb8161220f565b946020939093013593505050565b6020808252600e908201526d11d85b59481a5cc81c185d5cd95960921b604082015260600190565b5f60208284031215612631575f80fd5b5051919050565b60018060a01b03831681525f60206040602084015283518060408501525f5b8181101561267357858101830151858201606001528201612657565b505f606082860101526060601f19601f830116850101925050509392505050565b5f602082840312156126a4575f80fd5b81516121038161220f565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611aff57611aff6126c3565b5f600182016126fb576126fb6126c3565b5060010190565b60ff87811682528616602082015260c0810161272160408301876120b9565b84606083015283608083015261234060a08301846125b1565b5f6020828403121561274a575f80fd5b8151612103816120db565b8082028115828204841417611aff57611aff6126c3565b634e487b7160e01b5f52601260045260245ffd5b5f8261278e5761278e61276c565b500490565b81810381811115611aff57611aff6126c3565b5f826127b4576127b461276c565b500690565b5f6060820190506127cb8284516120b9565b60208301516127d98161239f565b80602084015250604083015160408301529291505056fea2646970667358221220dd9e230aaad14baf91ca9700b7f9170d53f22a06479c2d6d41b575c08bd16a8b64736f6c63430008160033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x7c40ca…7c5776 | 3 hrs agoMon, 17 Aug 2026 23:00:33 UTC | 0x0dce89…2088 | [0] 0x000000000000…455377cb [1] 0x000000000000…00000039 data: 0x000000000000000000…00000001 |
| 0x44ce6b…68ada7 | 3 hrs agoMon, 17 Aug 2026 22:59:42 UTC | 0x5d0af5…593d | [0] 0x000000000000…00000038 data: 0x000000000000000000…498d0000 |
| 0x2b811b…862197 | 3 hrs agoMon, 17 Aug 2026 22:59:38 UTC | 0xaf9672…c32b | [0] 0x000000000000…00000038 [1] 0x000000000000…455377cb |
| 0xab2e73…fe0c59 | 3 hrs agoMon, 17 Aug 2026 22:12:44 UTC | 0x0dce89…2088 | [0] 0x000000000000…8915e9f0 [1] 0x000000000000…00000038 data: 0x000000000000000000…00000001 |
| 0xa5187c…aa5f1f | 4 hrs agoMon, 17 Aug 2026 21:25:03 UTC | 0x5d0af5…593d | [0] 0x000000000000…00000037 data: 0x000000000000000000…b94e0000 |
| 0x0d9b9b…2e89ba | 4 hrs agoMon, 17 Aug 2026 21:25:03 UTC | 0xaf9672…c32b | [0] 0x000000000000…00000037 [1] 0x000000000000…e3d4ee50 |
| 0x208630…11e22e | 4 hrs agoMon, 17 Aug 2026 21:19:08 UTC | 0x0dce89…2088 | [0] 0x000000000000…455377cb [1] 0x000000000000…00000037 data: 0x000000000000000000…00000001 |
| 0x202d81…4d50f6 | 5 hrs agoMon, 17 Aug 2026 20:48:25 UTC | 0x5d0af5…593d | [0] 0x000000000000…00000036 data: 0x000000000000000000…931a0000 |
| 0x715798…32ceb0 | 5 hrs agoMon, 17 Aug 2026 20:48:25 UTC | 0xaf9672…c32b | [0] 0x000000000000…00000036 [1] 0x000000000000…e3d4ee50 |
| 0x949c1d…551626 | 5 hrs agoMon, 17 Aug 2026 20:48:22 UTC | 0x5d0af5…593d | [0] 0x000000000000…00000035 data: 0x000000000000000000…931a0000 |
| 0x460af4…9ee56b | 5 hrs agoMon, 17 Aug 2026 20:48:22 UTC | 0xaf9672…c32b | [0] 0x000000000000…00000035 [1] 0x000000000000…e3d4ee50 |
| 0x097009…9adf9f | 5 hrs agoMon, 17 Aug 2026 20:15:33 UTC | 0x0dce89…2088 | [0] 0x000000000000…5acbbb24 [1] 0x000000000000…00000036 data: 0x000000000000000000…00000001 |
| 0x707787…896b16 | 5 hrs agoMon, 17 Aug 2026 20:15:20 UTC | 0x0dce89…2088 | [0] 0x000000000000…5acbbb24 [1] 0x000000000000…00000035 data: 0x000000000000000000…00000001 |
| 0x9e0cb7…cda6a7 | 5 hrs agoMon, 17 Aug 2026 20:14:46 UTC | 0x5d0af5…593d | [0] 0x000000000000…00000033 data: 0x000000000000000000…931a0000 |
| 0xafe2ee…cab777 | 5 hrs agoMon, 17 Aug 2026 20:14:45 UTC | 0xaf9672…c32b | [0] 0x000000000000…00000033 [1] 0x000000000000…c229b50b |
| 0x5d9a52…d7ec88 | 5 hrs agoMon, 17 Aug 2026 20:14:25 UTC | 0x5d0af5…593d | [0] 0x000000000000…00000034 data: 0x000000000000000000…931a0000 |
| 0x7e75da…727457 | 5 hrs agoMon, 17 Aug 2026 20:14:25 UTC | 0xaf9672…c32b | [0] 0x000000000000…00000034 [1] 0x000000000000…c229b50b |
| 0xbe4da9…86d974 | 6 hrs agoMon, 17 Aug 2026 20:10:10 UTC | 0x0dce89…2088 | [0] 0x000000000000…5acbbb24 [1] 0x000000000000…00000034 data: 0x000000000000000000…00000001 |
| 0x0f6048…5363a9 | 6 hrs agoMon, 17 Aug 2026 20:08:27 UTC | 0x0dce89…2088 | [0] 0x000000000000…5acbbb24 [1] 0x000000000000…00000033 data: 0x000000000000000000…00000001 |
| 0x40227b…7bb47c | 6 hrs agoMon, 17 Aug 2026 20:08:04 UTC | 0x5d0af5…593d | [0] 0x000000000000…00000031 data: 0x000000000000000000…931a0000 |
| 0x0abf6e…22bee7 | 6 hrs agoMon, 17 Aug 2026 20:08:04 UTC | 0xaf9672…c32b | [0] 0x000000000000…00000031 [1] 0x000000000000…5acbbb24 |
| 0xf809d3…df2c3a | 6 hrs agoMon, 17 Aug 2026 20:07:54 UTC | 0x5d0af5…593d | [0] 0x000000000000…00000032 data: 0x000000000000000000…931a0000 |
| 0x9dc8d2…48b5f1 | 6 hrs agoMon, 17 Aug 2026 20:07:53 UTC | 0xaf9672…c32b | [0] 0x000000000000…00000032 [1] 0x000000000000…5acbbb24 |
| 0x123aa5…0db001 | 6 hrs agoMon, 17 Aug 2026 20:06:28 UTC | 0x0dce89…2088 | [0] 0x000000000000…c229b50b [1] 0x000000000000…00000032 data: 0x000000000000000000…00000001 |
| 0xe88b80…cffdcc | 6 hrs agoMon, 17 Aug 2026 20:06:13 UTC | 0x0dce89…2088 | [0] 0x000000000000…c229b50b [1] 0x000000000000…00000031 data: 0x000000000000000000…00000001 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x7c40ca…7c5776 | playGame | 39,215,027 | 3 hrs agoMon, 17 Aug 2026 23:00:33 UTC | 0x5e8d…77cb | IN | PvpFlip | $9.980.00525 ETH | 0.00000391 | |
| 0x2b811b…862197 | takeGame | 39,214,473 | 3 hrs agoMon, 17 Aug 2026 22:59:38 UTC | 0x5e8d…77cb | IN | PvpFlip | $2.000.00105 ETH | 0.00000481 | |
| 0xab2e73…fe0c59 | playGame | 39,186,396 | 3 hrs agoMon, 17 Aug 2026 22:12:44 UTC | 0xf4ee…e9f0 | IN | PvpFlip | $2.000.00105 ETH | 0.00000387 | |
| 0x0d9b9b…2e89ba | takeGame | 39,157,865 | 4 hrs agoMon, 17 Aug 2026 21:25:03 UTC | 0x5374…ee50 | IN | PvpFlip | $11.970.0063 ETH | 0.00000473 | |
| 0x208630…11e22e | playGame | 39,154,330 | 4 hrs agoMon, 17 Aug 2026 21:19:08 UTC | 0x5e8d…77cb | IN | PvpFlip | $11.970.0063 ETH | 0.00000394 | |
| 0x715798…32ceb0 | takeGame | 39,135,950 | 5 hrs agoMon, 17 Aug 2026 20:48:25 UTC | 0x5374…ee50 | IN | PvpFlip | $3.990.0021 ETH | 0.00000469 | |
| 0x460af4…9ee56b | takeGame | 39,135,920 | 5 hrs agoMon, 17 Aug 2026 20:48:22 UTC | 0x5374…ee50 | IN | PvpFlip | $3.990.0021 ETH | 0.00000469 | |
| 0x097009…9adf9f | playGame | 39,116,279 | 5 hrs agoMon, 17 Aug 2026 20:15:33 UTC | 0xe322…bb24 | IN | PvpFlip | $3.990.0021 ETH | 0.00000386 | |
| 0x707787…896b16 | playGame | 39,116,150 | 5 hrs agoMon, 17 Aug 2026 20:15:20 UTC | 0xe322…bb24 | IN | PvpFlip | $3.990.0021 ETH | 0.00000386 | |
| 0xafe2ee…cab777 | takeGame | 39,115,810 | 5 hrs agoMon, 17 Aug 2026 20:14:45 UTC | 0x57ae…b50b | IN | PvpFlip | $3.990.0021 ETH | 0.00000475 | |
| 0x7e75da…727457 | takeGame | 39,115,604 | 5 hrs agoMon, 17 Aug 2026 20:14:25 UTC | 0x57ae…b50b | IN | PvpFlip | $3.990.0021 ETH | 0.00000471 | |
| 0xbe4da9…86d974 | playGame | 39,113,062 | 6 hrs agoMon, 17 Aug 2026 20:10:10 UTC | 0xe322…bb24 | IN | PvpFlip | $3.990.0021 ETH | 0.00000385 | |
| 0x0f6048…5363a9 | playGame | 39,112,033 | 6 hrs agoMon, 17 Aug 2026 20:08:27 UTC | 0xe322…bb24 | IN | PvpFlip | $3.990.0021 ETH | 0.00000386 | |
| 0x0abf6e…22bee7 | takeGame | 39,111,804 | 6 hrs agoMon, 17 Aug 2026 20:08:04 UTC | 0xe322…bb24 | IN | PvpFlip | $3.990.0021 ETH | 0.00000472 | |
| 0x9dc8d2…48b5f1 | takeGame | 39,111,702 | 6 hrs agoMon, 17 Aug 2026 20:07:53 UTC | 0xe322…bb24 | IN | PvpFlip | $3.990.0021 ETH | 0.00000472 | |
| 0x123aa5…0db001 | playGame | 39,110,840 | 6 hrs agoMon, 17 Aug 2026 20:06:28 UTC | 0x57ae…b50b | IN | PvpFlip | $3.990.0021 ETH | 0.00000384 | |
| 0xe88b80…cffdcc | playGame | 39,110,697 | 6 hrs agoMon, 17 Aug 2026 20:06:13 UTC | 0x57ae…b50b | IN | PvpFlip | $3.990.0021 ETH | 0.00000387 | |
| 0x03e151…f56295 | takeGame | 39,093,172 | 6 hrs agoMon, 17 Aug 2026 19:36:52 UTC | 0xd427…1b00 | IN | PvpFlip | $3.990.0021 ETH | 0.00000513 | |
| 0x05941d…f53639 | playGame | 39,092,557 | 6 hrs agoMon, 17 Aug 2026 19:35:50 UTC | 0x57ae…b50b | IN | PvpFlip | $3.990.0021 ETH | 0.00000384 | |
| 0x6d6b1d…70b849 | takeGame | 39,056,210 | 7 hrs agoMon, 17 Aug 2026 18:35:05 UTC | 0xe322…bb24 | IN | PvpFlip | $0.160.00008 ETH | 0.00000472 | |
| 0xbdb200…16b688 | playGame | 39,054,972 | 7 hrs agoMon, 17 Aug 2026 18:33:01 UTC | 0xd72d…234e | IN | PvpFlip | $0.160.00008 ETH | 0.00000386 | |
| 0x01723a…4bf0a8 | takeGame | 39,036,689 | 8 hrs agoMon, 17 Aug 2026 18:02:28 UTC | 0x5374…ee50 | IN | PvpFlip | $0.020.00001 ETH | 0.00000469 | |
| 0x7394e8…333107 | playGame | 39,032,131 | 8 hrs agoMon, 17 Aug 2026 17:54:50 UTC | 0x508e…861c | IN | PvpFlip | $0.020.00001 ETH | 0.00000391 | |
| 0x1dade4…5531af | takeGame | 39,013,066 | 8 hrs agoMon, 17 Aug 2026 17:22:59 UTC | 0xe322…bb24 | IN | PvpFlip | $0.320.00016 ETH | 0.00000467 | |
| 0x74df4a…813ef9 | takeGame | 38,998,482 | 9 hrs agoMon, 17 Aug 2026 16:58:37 UTC | 0x5374…ee50 | IN | PvpFlip | $0.200.00010 ETH | 0.00000471 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 39,214,505 | 3 hrs agoMon, 17 Aug 2026 22:59:42 UTC | 0x44ce6b…68ada7 | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0xf4ee…e9f0 | 0.002 ETH |
| 39,214,473 | 3 hrs agoMon, 17 Aug 2026 22:59:38 UTC | 0x2b811b…862197 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.00005 ETH |
| 39,214,473 | 3 hrs agoMon, 17 Aug 2026 22:59:38 UTC | 0x2b811b…862197 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.00005 ETH |
| 39,157,871 | 4 hrs agoMon, 17 Aug 2026 21:25:03 UTC | 0xa5187c…aa5f1f | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0x5374…ee50 | 0.012 ETH |
| 39,157,865 | 4 hrs agoMon, 17 Aug 2026 21:25:03 UTC | 0x0d9b9b…2e89ba | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0003 ETH |
| 39,157,865 | 4 hrs agoMon, 17 Aug 2026 21:25:03 UTC | 0x0d9b9b…2e89ba | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0003 ETH |
| 39,135,954 | 5 hrs agoMon, 17 Aug 2026 20:48:25 UTC | 0x202d81…4d50f6 | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0x5374…ee50 | 0.004 ETH |
| 39,135,950 | 5 hrs agoMon, 17 Aug 2026 20:48:25 UTC | 0x715798…32ceb0 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,135,950 | 5 hrs agoMon, 17 Aug 2026 20:48:25 UTC | 0x715798…32ceb0 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,135,924 | 5 hrs agoMon, 17 Aug 2026 20:48:22 UTC | 0x949c1d…551626 | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0x5374…ee50 | 0.004 ETH |
| 39,135,920 | 5 hrs agoMon, 17 Aug 2026 20:48:22 UTC | 0x460af4…9ee56b | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,135,920 | 5 hrs agoMon, 17 Aug 2026 20:48:22 UTC | 0x460af4…9ee56b | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,115,814 | 5 hrs agoMon, 17 Aug 2026 20:14:46 UTC | 0x9e0cb7…cda6a7 | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0x57ae…b50b | 0.004 ETH |
| 39,115,810 | 5 hrs agoMon, 17 Aug 2026 20:14:45 UTC | 0xafe2ee…cab777 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,115,810 | 5 hrs agoMon, 17 Aug 2026 20:14:45 UTC | 0xafe2ee…cab777 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,115,608 | 5 hrs agoMon, 17 Aug 2026 20:14:25 UTC | 0x5d9a52…d7ec88 | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0xe322…bb24 | 0.004 ETH |
| 39,115,604 | 5 hrs agoMon, 17 Aug 2026 20:14:25 UTC | 0x7e75da…727457 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,115,604 | 5 hrs agoMon, 17 Aug 2026 20:14:25 UTC | 0x7e75da…727457 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,111,808 | 6 hrs agoMon, 17 Aug 2026 20:08:04 UTC | 0x40227b…7bb47c | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0xe322…bb24 | 0.004 ETH |
| 39,111,804 | 6 hrs agoMon, 17 Aug 2026 20:08:04 UTC | 0x0abf6e…22bee7 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,111,804 | 6 hrs agoMon, 17 Aug 2026 20:08:04 UTC | 0x0abf6e…22bee7 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,111,705 | 6 hrs agoMon, 17 Aug 2026 20:07:54 UTC | 0xf809d3…df2c3a | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0xe322…bb24 | 0.004 ETH |
| 39,111,702 | 6 hrs agoMon, 17 Aug 2026 20:07:53 UTC | 0x9dc8d2…48b5f1 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,111,702 | 6 hrs agoMon, 17 Aug 2026 20:07:53 UTC | 0x9dc8d2…48b5f1 | CALL | takeGame | 0xbed4…ba6b | OUT | 0x3b60…b99c | 0.0001 ETH |
| 39,093,178 | 6 hrs agoMon, 17 Aug 2026 19:36:52 UTC | 0x9872bd…d2317a | CALL | fulfillRandomWords | 0xbed4…ba6b | OUT | 0xd427…1b00 | 0.004 ETH |