// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import {SafeOwned} from "./access/SafeOwned.sol";
contract GameEntry is SafeOwned {
error AlreadyEntered();
error IncorrectFee();
error TreasuryTransferFailed();
error Reentrancy();
uint256 public constant ENTRY_FEE = 0.0075 ether;
address public treasury;
uint256 private _locked = 1;
mapping(address => bool) public entered;
event Entered(address indexed player, uint256 fee, bytes32 starterMinerType);
event TreasuryChanged(address indexed previousTreasury, address indexed newTreasury);
constructor(address initialOwner, address initialTreasury) SafeOwned(initialOwner) {
if (initialTreasury == address(0)) revert ZeroAddress();
treasury = initialTreasury;
}
function enter() external payable {
if (_locked != 1) revert Reentrancy();
if (entered[msg.sender]) revert AlreadyEntered();
if (msg.value != ENTRY_FEE) revert IncorrectFee();
_locked = 2;
entered[msg.sender] = true;
(bool ok,) = treasury.call{value: msg.value}("");
if (!ok) revert TreasuryTransferFailed();
_locked = 1;
emit Entered(msg.sender, msg.value, bytes32("DUSTY"));
}
function setTreasury(address nextTreasury) external onlyOwner {
if (nextTreasury == address(0)) revert ZeroAddress();
emit TreasuryChanged(treasury, nextTreasury);
treasury = nextTreasury;
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "initialOwner",
"type": "address",
"internalType": "address"
},
{
"name": "initialTreasury",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "AlreadyEntered",
"type": "error",
"inputs": []
},
{
"name": "IncorrectFee",
"type": "error",
"inputs": []
},
{
"name": "OnlyOwner",
"type": "error",
"inputs": []
},
{
"name": "Reentrancy",
"type": "error",
"inputs": []
},
{
"name": "TreasuryTransferFailed",
"type": "error",
"inputs": []
},
{
"name": "ZeroAddress",
"type": "error",
"inputs": []
},
{
"name": "Entered",
"type": "event",
"inputs": [
{
"name": "player",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "fee",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "starterMinerType",
"type": "bytes32",
"indexed": false,
"internalType": "bytes32"
}
],
"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": "TreasuryChanged",
"type": "event",
"inputs": [
{
"name": "previousTreasury",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newTreasury",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "ENTRY_FEE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "enter",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "entered",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "setTreasury",
"type": "function",
"inputs": [
{
"name": "nextTreasury",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "treasury",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
}
]0x6080346100e157601f6104ba38819003918201601f19168301916001600160401b038311848410176100e55780849260409485528339810103126100e157610052602061004b836100f9565b92016100f9565b6001600160a01b039091169081156100d2575f80546001600160a01b0319168317815560405192907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a360016002556001600160a01b031680156100d257600180546001600160a01b0319169190911790556103ac908161010e8239f35b63d92e233d60e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100e15756fe6080806040526004361015610012575f80fd5b5f3560e01c90816317b299aa146103385750806361d027b3146103105780638da5cb5b146102e9578063e97dcb62146101a0578063f0f4426014610121578063f2fde38b1461008e5763f6d361cc14610069575f80fd5b3461008a575f36600319011261008a576020604051661aa535d3d0c0008152f35b5f80fd5b3461008a57602036600319011261008a576004356001600160a01b0381169081900361008a575f546001600160a01b038116338190036101125782156101035782907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b031916175f55005b63d92e233d60e01b5f5260045ffd5b635fc483c560e01b5f5260045ffd5b3461008a57602036600319011261008a576004356001600160a01b0381169081900361008a575f546001600160a01b0316330361011257801561010357600154816001600160a01b0382167f8c3aa5f43a388513435861bf27dfad7829cd248696fed367c62d441f629544965f80a36001600160a01b03191617600155005b5f36600319011261008a576001600254036102da57335f52600360205260ff60405f2054166102cb57661aa535d3d0c00034036102bc5760028055335f52600360205260405f20600160ff198254161790555f8080803460018060a01b03600154165af13d156102b7573d67ffffffffffffffff81116102a35760405190601f8101601f19908116603f0116820167ffffffffffffffff8111838210176102a35760405281525f60203d92013e5b156102945760016002556040805134815264445553545960d81b602082015233917fa9d003cbf498d0c5da7e650d7c6ba0e668d6e96d7810593308e236f1624f726591a2005b6301c6e79f60e31b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b61024e565b63cd3cb2bb60e01b5f5260045ffd5b637863668360e01b5f5260045ffd5b63558a1e0360e11b5f5260045ffd5b3461008a575f36600319011261008a575f546040516001600160a01b039091168152602090f35b3461008a575f36600319011261008a576001546040516001600160a01b039091168152602090f35b3461008a57602036600319011261008a576004356001600160a01b038116919082900361008a576020915f526003825260ff60405f20541615158152f3fea2646970667358221220a26ed0b045b0741079c822e9fbe2adc6eaaa1b61e2afe3f432fa42187f5dbb3664736f6c634300081a0033000000000000000000000000c64885570881eaf137741a0aef349f8af55c8841000000000000000000000000f6ee51999f1aed287ead961d5b6e8ebcfcc26a7d
0x6080806040526004361015610012575f80fd5b5f3560e01c90816317b299aa146103385750806361d027b3146103105780638da5cb5b146102e9578063e97dcb62146101a0578063f0f4426014610121578063f2fde38b1461008e5763f6d361cc14610069575f80fd5b3461008a575f36600319011261008a576020604051661aa535d3d0c0008152f35b5f80fd5b3461008a57602036600319011261008a576004356001600160a01b0381169081900361008a575f546001600160a01b038116338190036101125782156101035782907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b031916175f55005b63d92e233d60e01b5f5260045ffd5b635fc483c560e01b5f5260045ffd5b3461008a57602036600319011261008a576004356001600160a01b0381169081900361008a575f546001600160a01b0316330361011257801561010357600154816001600160a01b0382167f8c3aa5f43a388513435861bf27dfad7829cd248696fed367c62d441f629544965f80a36001600160a01b03191617600155005b5f36600319011261008a576001600254036102da57335f52600360205260ff60405f2054166102cb57661aa535d3d0c00034036102bc5760028055335f52600360205260405f20600160ff198254161790555f8080803460018060a01b03600154165af13d156102b7573d67ffffffffffffffff81116102a35760405190601f8101601f19908116603f0116820167ffffffffffffffff8111838210176102a35760405281525f60203d92013e5b156102945760016002556040805134815264445553545960d81b602082015233917fa9d003cbf498d0c5da7e650d7c6ba0e668d6e96d7810593308e236f1624f726591a2005b6301c6e79f60e31b5f5260045ffd5b634e487b7160e01b5f52604160045260245ffd5b61024e565b63cd3cb2bb60e01b5f5260045ffd5b637863668360e01b5f5260045ffd5b63558a1e0360e11b5f5260045ffd5b3461008a575f36600319011261008a575f546040516001600160a01b039091168152602090f35b3461008a575f36600319011261008a576001546040516001600160a01b039091168152602090f35b3461008a57602036600319011261008a576004356001600160a01b038116919082900361008a576020915f526003825260ff60405f20541615158152f3fea2646970667358221220a26ed0b045b0741079c822e9fbe2adc6eaaa1b61e2afe3f432fa42187f5dbb3664736f6c634300081a0033
| 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 | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| no token transfers for this address yet | |||||||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x8d7d02…be039f | 3 days agoFri, 14 Aug 2026 16:38:55 UTC | 0xa9d003…7265 | [0] 0x000000000000…7ee0b238 data: 0x000000000000000000…00000000 |
| 0xfebbb4…7a5f85 | 3 days agoFri, 14 Aug 2026 15:52:47 UTC | 0xa9d003…7265 | [0] 0x000000000000…33be05d9 data: 0x000000000000000000…00000000 |
| 0x3ac86e…7f85dd | 3 days agoFri, 14 Aug 2026 12:30:26 UTC | 0xa9d003…7265 | [0] 0x000000000000…611368a1 data: 0x000000000000000000…00000000 |
| 0xdd4fba…00f403 | 3 days agoFri, 14 Aug 2026 12:28:45 UTC | 0xa9d003…7265 | [0] 0x000000000000…60ec1dcf data: 0x000000000000000000…00000000 |
| 0x30b8b8…23df7c | 3 days agoFri, 14 Aug 2026 11:12:41 UTC | 0x8be007…57e0 | [0] 0x000000000000…00000000 [1] 0x000000000000…f55c8841 |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x8d7d02…be039f | enter | 36,402,685 | 3 days agoFri, 14 Aug 2026 16:38:55 UTC | 0x992c…b238 | IN | GameEntry | $14.230.0075 ETH | 0.00000241 | |
| 0xfebbb4…7a5f85 | enter | 36,375,076 | 3 days agoFri, 14 Aug 2026 15:52:47 UTC | 0x287b…05d9 | IN | GameEntry | $14.230.0075 ETH | 0.00000243 | |
| 0x3ac86e…7f85dd | enter | 36,253,918 | 3 days agoFri, 14 Aug 2026 12:30:26 UTC | 0x1d0a…68a1 | IN | GameEntry | $14.230.0075 ETH | 0.00000246 | |
| 0xdd4fba…00f403 | enter | 36,252,915 | 3 days agoFri, 14 Aug 2026 12:28:45 UTC | 0xc81b…1dcf | IN | GameEntry | $14.230.0075 ETH | 0.00000246 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 36,402,685 | 3 days agoFri, 14 Aug 2026 16:38:55 UTC | 0x8d7d02…be039f | CALL | enter | 0xc9dc…b26c | OUT | 0xf6ee…6a7d | 0.0075 ETH |
| 36,375,076 | 3 days agoFri, 14 Aug 2026 15:52:47 UTC | 0xfebbb4…7a5f85 | CALL | enter | 0xc9dc…b26c | OUT | 0xf6ee…6a7d | 0.0075 ETH |
| 36,253,918 | 3 days agoFri, 14 Aug 2026 12:30:26 UTC | 0x3ac86e…7f85dd | CALL | enter | 0xc9dc…b26c | OUT | 0xf6ee…6a7d | 0.0075 ETH |
| 36,252,915 | 3 days agoFri, 14 Aug 2026 12:28:45 UTC | 0xdd4fba…00f403 | CALL | enter | 0xc9dc…b26c | OUT | 0xf6ee…6a7d | 0.0075 ETH |