// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {ISlvrHub} from "./interfaces/ISlvrHub.sol";
import {ISlvrGameRegistry} from "./interfaces/ISlvrGameRegistry.sol";
import {ISlvrVoteEscrowStaking} from "./interfaces/ISlvrVoteEscrowStaking.sol";
import {ISlvrJackpot} from "./interfaces/ISlvrJackpot.sol";
/// @dev Minimal view of SlvrToken the hub needs. The hub holds the sole MINTER_ROLE.
interface ISlvrMintable {
function mint(address to, uint256 amount) external;
function MAX_SUPPLY() external view returns (uint256);
function totalSupply() external view returns (uint256);
}
/// @title SlvrHub
/// @notice The protocol core that lets many games plug into shared SLVR tokenomics.
/// @dev Responsibilities:
/// 1. Emission governor — holds the sole MINTER_ROLE. SLVR is emitted as one protocol-wide
/// stream (`emissionRatePerSec`) split across Active games by registry weight, so adding
/// a game splits the pie instead of growing it. Per-game token buckets, a max-weight
/// guardrail, and idle-forfeiture keep any one game bounded.
/// 2. Circular economy — emission stops at `targetSupply` (a soft cap <= token MAX_SUPPLY);
/// because burns reduce totalSupply(), headroom reopens as SLVR is burned, so emission is
/// perpetual and self-balancing against the burn rate rather than draining to the cap.
/// 3. Reward router — fans N games into ONE veNFT staker stream (owning the sequential
/// counter the staking contract requires) and ONE shared jackpot (assigning a global
/// epoch id so per-game round numbers can't collide in the pot).
contract SlvrHub is ISlvrHub, Ownable, ReentrancyGuard {
using SafeERC20 for IERC20;
uint16 public constant BPS = 10_000;
// SLVR inflation allocations applied centrally by the token on every mint (must match
// SlvrToken: 8% team + 4% growth => a mint of `base` increases totalSupply by base*1.12).
uint16 public constant TEAM_BPS = 800;
uint16 public constant GROWTH_BPS = 400;
ISlvrMintable public immutable SLVR_MINT;
IERC20 public immutable SLVR;
ISlvrGameRegistry public immutable REGISTRY;
// Shared sinks (swappable by governance; their authorized caller is this hub).
ISlvrVoteEscrowStaking public staking;
ISlvrJackpot public jackpot;
// Emission policy (monetary policy — independent of game count).
uint256 public emissionRatePerSec; // base SLVR/sec across the whole active set
uint256 public targetSupply; // soft cap; 0 => use token MAX_SUPPLY
uint256 public maxAccrualSeconds = 1 hours; // idle-forfeiture: cap dt per accrual
// Per-game emission accounting.
mapping(uint256 => uint256) public lastAccrual; // gameId => last accrual timestamp
mapping(uint256 => uint256) public bucket; // gameId => accrued-but-unminted base SLVR
// Shared staker stream: hub owns the monotonic sequence the staking contract requires.
uint256 public stakerSeq;
// Native staker rewards that could not be delivered (staking unset or reverting). Held in the
// hub, retryable via flushStakers(), so a broken staking sink never bricks round resolution.
uint256 public pendingStakerRewards;
// Shared jackpot: hub-assigned global epoch ids prevent cross-game round collisions.
uint256 public jackpotEpoch;
mapping(uint256 => uint256) public epochOwner; // globalEpoch => owning gameId
event EmissionRateChanged(uint256 ratePerSec);
event TargetSupplyChanged(uint256 targetSupply);
event MaxAccrualSecondsChanged(uint256 maxAccrualSeconds);
event StakingChanged(address staking);
event JackpotChanged(address jackpot);
event GamePrimed(uint256 indexed gameId, uint256 timestamp);
event RewardMinted(uint256 indexed gameId, address indexed to, uint256 amount);
event EmissionSkipped(uint256 indexed gameId, uint256 requested);
event StakersPaid(uint256 indexed gameId, uint256 seq, uint256 amount);
event StakersDeferred(uint256 seq, uint256 pendingTotal);
event Rescued(address indexed token, address indexed to, uint256 amount);
event JackpotFed(uint256 indexed gameId, uint256 amount);
event JackpotRolled(uint256 indexed gameId, uint256 indexed globalEpoch, bool hit, uint256 ethBonus, uint256 slvrBonus);
error NotRegisteredGame();
error NotActiveGame();
error NotCoreGame();
error NoJackpot();
error NotEpochOwner();
error BonusTransferFailed();
error NothingPending();
constructor(address slvr_, address registry_, address owner_) Ownable(owner_) {
require(slvr_ != address(0) && registry_ != address(0), "zero addr");
SLVR_MINT = ISlvrMintable(slvr_);
SLVR = IERC20(slvr_);
REGISTRY = ISlvrGameRegistry(registry_);
}
/// @dev Accept native bonus routed back from the jackpot on a hit.
receive() external payable {}
// ------------------------------------------------------------------
// Admin
// ------------------------------------------------------------------
function setEmissionRate(uint256 ratePerSec) external onlyOwner {
emissionRatePerSec = ratePerSec;
emit EmissionRateChanged(ratePerSec);
}
/// @notice Set the soft supply cap that makes emission circular. 0 => token MAX_SUPPLY.
function setTargetSupply(uint256 targetSupply_) external onlyOwner {
require(targetSupply_ == 0 || targetSupply_ <= SLVR_MINT.MAX_SUPPLY(), "over max");
targetSupply = targetSupply_;
emit TargetSupplyChanged(targetSupply_);
}
function setMaxAccrualSeconds(uint256 secs) external onlyOwner {
require(secs > 0, "zero");
maxAccrualSeconds = secs;
emit MaxAccrualSecondsChanged(secs);
}
function setStaking(address staking_) external onlyOwner {
staking = ISlvrVoteEscrowStaking(staking_);
emit StakingChanged(staking_);
}
function setJackpot(address jackpot_) external onlyOwner {
jackpot = ISlvrJackpot(jackpot_);
emit JackpotChanged(jackpot_);
}
/// @notice Start a game's emission clock at now, so its first epoch accrues correctly.
/// @dev Call at wiring time after activating a game in the registry.
function primeGame(uint256 gameId) external onlyOwner {
lastAccrual[gameId] = block.timestamp;
emit GamePrimed(gameId, block.timestamp);
}
// ------------------------------------------------------------------
// Emission (games call mintReward)
// ------------------------------------------------------------------
function mintReward(address to, uint256 requested) external nonReentrant returns (uint256 minted) {
uint256 gameId = _activeGameId(msg.sender);
_accrue(gameId);
uint256 available = bucket[gameId];
if (available == 0 || requested == 0) {
emit EmissionSkipped(gameId, requested);
return 0;
}
minted = requested < available ? requested : available;
// Circular soft cap: only emit while supply (net of burns) is below target.
uint256 softCap = targetSupply == 0 ? SLVR_MINT.MAX_SUPPLY() : targetSupply;
uint256 supply = SLVR_MINT.totalSupply();
if (supply >= softCap) {
emit EmissionSkipped(gameId, requested);
return 0;
}
// A base mint of `b` raises totalSupply by b*(BPS+TEAM+GROWTH)/BPS. Bound b to the headroom.
uint256 headroom = softCap - supply;
uint256 baseThatFits = (headroom * BPS) / (BPS + TEAM_BPS + GROWTH_BPS);
if (minted > baseThatFits) minted = baseThatFits;
if (minted == 0) {
emit EmissionSkipped(gameId, requested);
return 0;
}
bucket[gameId] = available - minted;
SLVR_MINT.mint(to, minted);
emit RewardMinted(gameId, to, minted);
}
/// @notice Emission a game could mint right now (bucket + pending accrual, bucket-capped),
/// before the supply soft-cap is applied.
function pendingEmission(uint256 gameId) external view returns (uint256) {
uint256 rate = _effectiveRatePerSec(gameId);
uint256 last = lastAccrual[gameId];
uint256 dt = (last == 0 || block.timestamp <= last) ? 0 : block.timestamp - last;
if (dt > maxAccrualSeconds) dt = maxAccrualSeconds;
uint256 acc = bucket[gameId] + rate * dt;
uint256 cap = rate * maxAccrualSeconds; // max the bucket may ever hold
// rate == 0 is a pause, not a wipe: preserve the already-accrued bucket.
return (rate != 0 && acc > cap) ? cap : acc;
}
/// @dev The game's effective emission rate (SLVR/sec): its weighted share of the global
/// stream, never exceeding its maxWeightBps ceiling.
function _effectiveRatePerSec(uint256 gameId) private view returns (uint256) {
uint256 totalW = REGISTRY.totalActiveWeight();
if (totalW == 0) return 0;
uint256 weight = REGISTRY.weightOf(gameId);
if (weight == 0) return 0;
uint256 rate = (emissionRatePerSec * weight) / totalW;
uint256 capRate = (emissionRatePerSec * REGISTRY.maxWeightBpsOf(gameId)) / BPS;
return rate > capRate ? capRate : rate;
}
/// @dev Accrue streamed emission into the bucket, HARD-CAPPING the bucket at one
/// `maxAccrualSeconds` window of the game's rate. This bounds how much can be minted in a
/// single round after headroom reopens (no post-burn windfall), keeps the burn-neutral
/// steady state smooth, and forfeits emission a game sat on beyond the window.
function _accrue(uint256 gameId) private {
uint256 rate = _effectiveRatePerSec(gameId);
uint256 last = lastAccrual[gameId];
lastAccrual[gameId] = block.timestamp;
uint256 cap = rate * maxAccrualSeconds;
uint256 b = bucket[gameId];
if (rate != 0 && last != 0 && block.timestamp > last) {
uint256 dt = block.timestamp - last;
if (dt > maxAccrualSeconds) dt = maxAccrualSeconds;
b += rate * dt;
}
// Clamp to one window ("capped accrual bucket"). rate == 0 is a pause, not a wipe —
// preserve the already-accrued bucket rather than clamping it to 0.
if (rate != 0 && b > cap) b = cap;
bucket[gameId] = b;
}
// ------------------------------------------------------------------
// Shared staker stream (games call payStakers)
// ------------------------------------------------------------------
function payStakers() external payable nonReentrant {
uint256 gameId = _activeGameId(msg.sender);
emit StakersPaid(gameId, stakerSeq, msg.value);
_pushStakers(msg.value);
}
/// @notice Retry delivering any deferred staker rewards once the staking sink is healthy again.
/// @dev Permissionless: it only forwards already-held funds to the configured staking contract.
function flushStakers() external nonReentrant {
if (pendingStakerRewards == 0) revert NothingPending();
_pushStakers(0);
}
/// @dev Delivers `newAmount` plus any previously-deferred rewards to staking as one tranche.
/// On failure (sink unset or reverting) funds are parked in the hub and the sequence is
/// NOT advanced, preserving the staking contract's strict-sequential invariant. This
/// isolates a broken staking sink so it can never brick round resolution for any game.
function _pushStakers(uint256 newAmount) private {
uint256 amount = pendingStakerRewards + newAmount;
if (address(staking) == address(0)) {
pendingStakerRewards = amount; // no sink yet; hold the funds
return;
}
uint256 seq = stakerSeq;
uint256 snapshot = 0;
try staking.getTotalWeight() returns (uint256 w) {
snapshot = w;
} catch {}
try staking.distributeRoundRewards{value: amount}(seq, snapshot) {
stakerSeq = seq + 1;
pendingStakerRewards = 0;
} catch {
// Funds remain in the hub (the reverted call returned the value); retry via flushStakers.
pendingStakerRewards = amount;
emit StakersDeferred(seq, amount);
}
}
// ------------------------------------------------------------------
// Shared jackpot (games call feedJackpot / rollJackpot / distributeBribes*)
// ------------------------------------------------------------------
function feedJackpot() external payable nonReentrant {
uint256 gameId = _activeGameId(msg.sender);
if (address(jackpot) == address(0)) revert NoJackpot();
jackpot.addEth{value: msg.value}();
emit JackpotFed(gameId, msg.value);
}
/// @notice Roll the shared jackpot for the caller-game.
/// @dev SECURITY: the jackpot hit is a pure function of `randomness`, so a caller that can
/// choose `randomness` freely could grind a guaranteed hit and drain the shared pool.
/// Therefore this is restricted to Core-tier (audited, first-party) games, which are
/// trusted to pass ONLY oracle-settled, unbiasable randomness (exactly as the grid lottery
/// does with its randomness provider). Community/Experimental games may fund the pot
/// (feedJackpot) and earn emissions/staker rewards, but may not trigger it.
function rollJackpot(uint256 winnerTotal, uint256 randomness)
external
nonReentrant
returns (uint256 globalEpoch, bool hit, uint256 ethBonus, uint256 slvrBonus)
{
uint256 gameId = _coreActiveGameId(msg.sender);
if (address(jackpot) == address(0)) revert NoJackpot();
globalEpoch = ++jackpotEpoch;
(hit, ethBonus, slvrBonus) = jackpot.checkAndApply(randomness, globalEpoch, winnerTotal);
// Only a hit epoch has bribes to distribute; only then does ownership matter.
if (hit) {
epochOwner[globalEpoch] = gameId;
// The jackpot forwards any bonus to its authorized caller (this hub); pass it to the game.
if (ethBonus > 0) {
(bool ok,) = msg.sender.call{value: ethBonus}("");
if (!ok) revert BonusTransferFailed();
}
if (slvrBonus > 0) {
SLVR.safeTransfer(msg.sender, slvrBonus);
}
}
emit JackpotRolled(gameId, globalEpoch, hit, ethBonus, slvrBonus);
}
function distributeBribes(uint256 globalEpoch) external nonReentrant {
_requireCoreEpochOwner(globalEpoch);
jackpot.distributeBribes(globalEpoch);
}
function distributeBribesToWinner(uint256 globalEpoch, address winner, uint256 userBet, uint256 winnerTotal)
external
nonReentrant
{
_requireCoreEpochOwner(globalEpoch);
jackpot.distributeBribesToWinner(globalEpoch, winner, userBet, winnerTotal);
}
// ------------------------------------------------------------------
// Rescue (operational safety; owner-only)
// ------------------------------------------------------------------
/// @notice Recover stray funds. `token == address(0)` rescues native; otherwise ERC20.
/// @dev Cannot touch funds owed to stakers: native rescue leaves `pendingStakerRewards` behind.
function rescue(address token, address to, uint256 amount) external onlyOwner nonReentrant {
require(to != address(0), "zero recipient");
if (token == address(0)) {
uint256 free = address(this).balance;
require(free >= pendingStakerRewards + amount, "would touch staker funds");
(bool ok,) = payable(to).call{value: amount}("");
require(ok, "native rescue failed");
} else {
IERC20(token).safeTransfer(to, amount);
}
emit Rescued(token, to, amount);
}
// ------------------------------------------------------------------
// Internal auth helpers
// ------------------------------------------------------------------
function _activeGameId(address caller) private view returns (uint256 gameId) {
gameId = REGISTRY.gameIdOf(caller);
if (gameId == 0) revert NotRegisteredGame();
if (REGISTRY.statusOf(gameId) != ISlvrGameRegistry.Status.Active) revert NotActiveGame();
}
/// @dev Active AND Core-tier: gates the shared-jackpot trigger and bribe distribution to
/// trusted first-party games (see rollJackpot for the rationale).
function _coreActiveGameId(address caller) private view returns (uint256 gameId) {
gameId = _activeGameId(caller);
if (REGISTRY.tierOf(gameId) != ISlvrGameRegistry.Tier.Core) revert NotCoreGame();
}
function _requireCoreEpochOwner(uint256 globalEpoch) private view {
if (address(jackpot) == address(0)) revert NoJackpot();
uint256 gameId = _coreActiveGameId(msg.sender);
if (epochOwner[globalEpoch] != gameId) revert NotEpochOwner();
}
}[
{
"type": "constructor",
"inputs": [
{
"name": "slvr_",
"type": "address",
"internalType": "address"
},
{
"name": "registry_",
"type": "address",
"internalType": "address"
},
{
"name": "owner_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "BonusTransferFailed",
"type": "error",
"inputs": []
},
{
"name": "NoJackpot",
"type": "error",
"inputs": []
},
{
"name": "NotActiveGame",
"type": "error",
"inputs": []
},
{
"name": "NotCoreGame",
"type": "error",
"inputs": []
},
{
"name": "NotEpochOwner",
"type": "error",
"inputs": []
},
{
"name": "NotRegisteredGame",
"type": "error",
"inputs": []
},
{
"name": "NothingPending",
"type": "error",
"inputs": []
},
{
"name": "OwnableInvalidOwner",
"type": "error",
"inputs": [
{
"name": "owner",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "OwnableUnauthorizedAccount",
"type": "error",
"inputs": [
{
"name": "account",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "EmissionRateChanged",
"type": "event",
"inputs": [
{
"name": "ratePerSec",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "EmissionSkipped",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "requested",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "GamePrimed",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "timestamp",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "JackpotChanged",
"type": "event",
"inputs": [
{
"name": "jackpot",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "JackpotFed",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "JackpotRolled",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "globalEpoch",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "hit",
"type": "bool",
"indexed": false,
"internalType": "bool"
},
{
"name": "ethBonus",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "slvrBonus",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "MaxAccrualSecondsChanged",
"type": "event",
"inputs": [
{
"name": "maxAccrualSeconds",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"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": "Rescued",
"type": "event",
"inputs": [
{
"name": "token",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "RewardMinted",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "to",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "StakersDeferred",
"type": "event",
"inputs": [
{
"name": "seq",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "pendingTotal",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "StakersPaid",
"type": "event",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"indexed": true,
"internalType": "uint256"
},
{
"name": "seq",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "StakingChanged",
"type": "event",
"inputs": [
{
"name": "staking",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "TargetSupplyChanged",
"type": "event",
"inputs": [
{
"name": "targetSupply",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "GROWTH_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "REGISTRY",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract ISlvrGameRegistry"
}
],
"stateMutability": "view"
},
{
"name": "SLVR",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IERC20"
}
],
"stateMutability": "view"
},
{
"name": "SLVR_MINT",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract ISlvrMintable"
}
],
"stateMutability": "view"
},
{
"name": "TEAM_BPS",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint16",
"internalType": "uint16"
}
],
"stateMutability": "view"
},
{
"name": "bucket",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "distributeBribes",
"type": "function",
"inputs": [
{
"name": "globalEpoch",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "distributeBribesToWinner",
"type": "function",
"inputs": [
{
"name": "globalEpoch",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "winner",
"type": "address",
"internalType": "address"
},
{
"name": "userBet",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "winnerTotal",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "emissionRatePerSec",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "epochOwner",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "feedJackpot",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "flushStakers",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "jackpot",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract ISlvrJackpot"
}
],
"stateMutability": "view"
},
{
"name": "jackpotEpoch",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "lastAccrual",
"type": "function",
"inputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "maxAccrualSeconds",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "mintReward",
"type": "function",
"inputs": [
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "requested",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "minted",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "payStakers",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "payable"
},
{
"name": "pendingEmission",
"type": "function",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "pendingStakerRewards",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "primeGame",
"type": "function",
"inputs": [
{
"name": "gameId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rescue",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "to",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "rollJackpot",
"type": "function",
"inputs": [
{
"name": "winnerTotal",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "randomness",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "globalEpoch",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "hit",
"type": "bool",
"internalType": "bool"
},
{
"name": "ethBonus",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "slvrBonus",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "setEmissionRate",
"type": "function",
"inputs": [
{
"name": "ratePerSec",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setJackpot",
"type": "function",
"inputs": [
{
"name": "jackpot_",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setMaxAccrualSeconds",
"type": "function",
"inputs": [
{
"name": "secs",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setStaking",
"type": "function",
"inputs": [
{
"name": "staking_",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setTargetSupply",
"type": "function",
"inputs": [
{
"name": "targetSupply_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "stakerSeq",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "staking",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract ISlvrVoteEscrowStaking"
}
],
"stateMutability": "view"
},
{
"name": "targetSupply",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "transferOwnership",
"type": "function",
"inputs": [
{
"name": "newOwner",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60e0346101bd57601f611e0a38819003918201601f19168301916001600160401b038311848410176101c1578084926060946040528339810103126101bd57610047816101d5565b610053602083016101d5565b916001600160a01b0390610069906040016101d5565b169081156101aa575f80546001600160a01b031981168417825560405193916001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055610e106005556001600160a01b03169081151580610198575b1561016a5750608081905260a0526001600160a01b031660c052604051611c2090816101ea823960805181818161020501528181610bd00152818161125801526112a2015260a05181818161046401526107be015260c051818181611071015281816115e3015281816117f201526118b90152f35b62461bcd60e51b81526020600482015260096024820152683d32b9379030b2323960b91b6044820152606490fd5b506001600160a01b03831615156100f5565b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101bd5756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c90816306433b1b1461105f57508063182c319e146110425780631ab2356d14610fc45780631b93f5bb14610f6e57806320ff430b14610dcc578063249d39e914610db057806327056a2114610d865780632a1eafd914610d695780633042e68a14610ca65780633750609914610c7c5780633b994dea14610c5f57806341cfe8ab14610c4357806346db8a7c14610b2f5780634cf088d914610b075780636426cbc11461098c5780636b31ee0114610964578063715018a61461090d5780637e95385c146108a15780638da5cb5b1461087a5780638fd866d91461069d5780638ff39099146106315780639a49090e146105e9578063a1bdb15e1461059d578063a7217ede14610553578063ab41d41714610493578063c7b60dcf1461044e578063d54f310a14610430578063d5861d9114610413578063e4229dbc146103a7578063eaa4472114610389578063f2f7cf9c146102ba578063f2fde38b14610234578063f788233e146101ef578063f8c412fb146101d15763fc7069df0361000f57346101ce5760203660031901126101ce5760406020916004358152600b83522054604051908152f35b80fd5b50346101ce57806003193601126101ce576020600354604051908152f35b50346101ce57806003193601126101ce576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101ce5760203660031901126101ce5761024e6110a0565b6102566114f5565b6001600160a01b031680156102a65781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b50806003193601126101ce576102ce61151b565b6102d733611898565b6002546001600160a01b0316801561037a578083913b1561036b57816004916040519283809263c2ac3aff60e01b825234905af1801561036f57610356575b50507fb129e7a08f37321c1661ffe61ea95d4824286c45ab6f0ab5d855eb4db6798c626020604051348152a260015f516020611bab5f395f51905f525580f35b81610360916110d9565b61036b57815f610316565b5080fd5b6040513d84823e3d90fd5b630856276f60e31b8352600483fd5b50346101ce57806003193601126101ce576020600854604051908152f35b50806003193601126101ce576103bb61151b565b6103c433611898565b7ff7b9b7959a4f9870bee810c94a2d9d5488755d1f408478fb2bd55e7e04e9607b60406008548151908152346020820152a26103ff34611af3565b60015f516020611bab5f395f51905f525580f35b50346101ce57806003193601126101ce5760206040516103208152f35b50346101ce57806003193601126101ce576020600a54604051908152f35b50346101ce57806003193601126101ce576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461054f57608036600319011261054f576004356104b06110b6565b906104b961151b565b6104c28161178d565b6002546001600160a01b031691823b1561054f5760845f9283604051958694859363ab41d41760e01b8552600485015260018060a01b03166024840152604435604484015260643560648401525af1801561054457610531575b5060015f516020611bab5f395f51905f525580f35b61053d91505f906110d9565b5f5f61051c565b6040513d5f823e3d90fd5b5f80fd5b3461054f575f36600319011261054f5761056b61151b565b6009541561058e5761057b6119c3565b60015f516020611bab5f395f51905f5255005b630bae0d7560e11b5f5260045ffd5b3461054f57602036600319011261054f577f4599b999878c4bf50471224bfb3eba260226641b501577af32f4ff1e2a3d704960206004356105dc6114f5565b80600355604051908152a1005b3461054f57604036600319011261054f5760206106186106076110a0565b61060f61151b565b602435906111a4565b60015f516020611bab5f395f51905f5255604051908152f35b3461054f57602036600319011261054f577f087f751a71b744109129bddeab60629bc40b8598909ecbd03668a4d424913ce5602061066d6110a0565b6106756114f5565b600180546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b3461054f57604036600319011261054f576106b661151b565b6106bf336117ca565b6002546001600160a01b0316801561086b57600a545f19811461085757606060015f92019283600a55606460405180948193632bc19b4d60e21b8352602435600484015287602484015260043560448401525af1908115610544575f5f915f9361080b575b5080610791575b836080957fe3c6aba309d2dc69d301b22883e263af9409475091b0f98d8489e2a2896cb208606060405194151594858152866020820152876040820152a360015f516020611bab5f395f51905f5255604051938452602084015260408301526060820152f35b835f52600b6020528460405f2055816107e7575b83608095846107b7575b95505061072b565b6107e285337f0000000000000000000000000000000000000000000000000000000000000000611553565b6107af565b5f80808085335af16107f761110f565b506107a557633ca7f03b60e11b5f5260045ffd5b925050506060813d60601161084f575b81610828606093836110d9565b8101031261054f578051801515810361054f57604060208301519201519080929192610724565b3d915061081b565b634e487b7160e01b5f52601160045260245ffd5b630856276f60e31b5f5260045ffd5b3461054f575f36600319011261054f575f546040516001600160a01b039091168152602090f35b3461054f57602036600319011261054f577fc94a7f9a7a689866db2e4a5f7d8d769bbcd4bab6018cf62a21e5e3741104583260206108dd6110a0565b6108e56114f5565b600280546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b3461054f575f36600319011261054f576109256114f5565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461054f575f36600319011261054f576002546040516001600160a01b039091168152602090f35b3461054f57602036600319011261054f575f806004356109aa61151b565b6109b38161178d565b600254604051636426cbc160e01b815260048101929092529092839160249183916001600160a01b03165af18015610544576109fc5760015f516020611bab5f395f51905f5255005b3d805f833e610a0b81836110d9565b81019060408183031261054f57805167ffffffffffffffff811161054f57810182601f8201121561054f57805190602080610a458461116e565b610a5260405191826110d9565b848152019260051b8201019084821161054f57602001915b818310610ae75750505060208101519067ffffffffffffffff821161054f57019080601f8301121561054f57815191602080610aa58561116e565b610ab260405191826110d9565b858152019360051b82010191821161054f57602001915b818310610ad757505061057b565b8251815260209283019201610ac9565b82516001600160a01b038116810361054f57815260209283019201610a6a565b3461054f575f36600319011261054f576001546040516001600160a01b039091168152602090f35b3461054f57602036600319011261054f57600435610b4b6114f5565b80158015610bba575b15610b8a576020817f3ff10a7c5431e70ff380e42d89229b492e198ae8fdfa68e5c414bd503f4bd68e92600455604051908152a1005b60405162461bcd60e51b81526020600482015260086024820152670deeccae440dac2f60c31b6044820152606490fd5b50604051630cb2dac360e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544575f91610c11575b50811115610b54565b90506020813d602011610c3b575b81610c2c602093836110d9565b8101031261054f575182610c08565b3d9150610c1f565b3461054f575f36600319011261054f5760206040516101908152f35b3461054f575f36600319011261054f576020600954604051908152f35b3461054f57602036600319011261054f576004355f526007602052602060405f2054604051908152f35b3461054f57602036600319011261054f576020600435610cc5816115d4565b90805f526006835260405f205480158015610d5f575b15610d495750610d19610d125f925b8390600554809511610d41575b5f5260078652610d0c60405f2054918661115b565b906110cc565b918361115b565b91151580610d38575b15610d3157505b604051908152f35b9050610d29565b50818111610d22565b849150610cf7565b610d12610d59610d19924261114e565b92610cea565b5080421115610cdb565b3461054f575f36600319011261054f576020600454604051908152f35b3461054f57602036600319011261054f576004355f526006602052602060405f2054604051908152f35b3461054f575f36600319011261054f5760206040516127108152f35b3461054f57606036600319011261054f57610de56110a0565b610ded6110b6565b604435610df86114f5565b610e0061151b565b6001600160a01b038216928315610f38576001600160a01b03169182610f04575047610e2e826009546110cc565b11610ec4575f80808084875af1610e4361110f565b5015610e885760207f3af790fafda720819b2fc6e15090606e81154e0ac9a92d38ecad006d99d20ecc915b604051908152a360015f516020611bab5f395f51905f5255005b60405162461bcd60e51b81526020600482015260146024820152731b985d1a5d99481c995cd8dd594819985a5b195960621b6044820152606490fd5b60405162461bcd60e51b8152602060048201526018602482015277776f756c6420746f756368207374616b65722066756e647360401b6044820152606490fd5b81610f337f3af790fafda720819b2fc6e15090606e81154e0ac9a92d38ecad006d99d20ecc9360209386611553565b610e6e565b60405162461bcd60e51b815260206004820152600e60248201526d1e995c9bc81c9958da5c1a595b9d60921b6044820152606490fd5b3461054f57602036600319011261054f57600435610f8a6114f5565b805f5260066020524260405f20557f1752fa1b82a69b9e0751bbb5678fbc6a346419abf4ea40a49a1eced5c3d2475d6020604051428152a2005b3461054f57602036600319011261054f57600435610fe06114f5565b8015611017576020817f0bb675805b5ffa4e7ea0d3a5007852652d47b28adbe07d562f6e2161fdb6a1d192600555604051908152a1005b606460405162461bcd60e51b81526020600482015260046024820152637a65726f60e01b6044820152fd5b3461054f575f36600319011261054f576020600554604051908152f35b3461054f575f36600319011261054f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b600435906001600160a01b038216820361054f57565b602435906001600160a01b038216820361054f57565b9190820180921161085757565b90601f8019910116810190811067ffffffffffffffff8211176110fb57604052565b634e487b7160e01b5f52604160045260245ffd5b3d15611149573d9067ffffffffffffffff82116110fb576040519161113e601f8201601f1916602001846110d9565b82523d5f602084013e565b606090565b9190820391821161085757565b8181029291811591840414171561085757565b67ffffffffffffffff81116110fb5760051b60200190565b8115611190570490565b634e487b7160e01b5f52601260045260245ffd5b91906111af33611898565b6111b8816115d4565b5f828152600660205260409020805442909155600554906111d9828461115b565b91845f52600760205260405f205493801515928380946114ec575b806114e3575b6114af575b505050806114a6575b61149e575b505f8281526007602052604090208190559384158015611496575b611476578483101561147057825b9460045480155f1461146a5750604051630cb2dac360e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544575f91611438575b50935b6040516318160ddd60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316956020826004818a5afa918215610544575f92611404575b50808210156113de57906112f59161114e565b612710810290808204612710149015171561085757612bc090048088116113d6575b5086156113b25750856113299161114e565b825f52600760205260405f2055823b1561054f575f80916044604051809481936340c10f1960e01b835260018060a01b0316978860048401528a60248401525af18015610544576113a2575b507fe76a187449690f0071359da58a84f8930b26908aae428c6dad96c632d97e93496020604051868152a3565b5f6113ac916110d9565b5f611375565b9150506020919394505f516020611bcb5f395f51905f529250604051908152a25f90565b96505f611317565b50509150506020919394505f516020611bcb5f395f51905f529250604051908152a25f90565b9091506020813d602011611430575b81611420602093836110d9565b8101031261054f5751905f6112e2565b3d9150611413565b90506020813d602011611462575b81611453602093836110d9565b8101031261054f57515f611290565b3d9150611446565b93611293565b84611236565b5091925060205f516020611bcb5f395f51905f5291604051908152a25f90565b508215611228565b90505f61120d565b50808211611208565b91610d0c916114c36114d29597944261114e565b918083116114db575b5061115b565b915f80806111ff565b91505f6114cc565b508042116111fa565b508015156111f4565b5f546001600160a01b0316330361150857565b63118cdaa760e01b5f523360045260245ffd5b60025f516020611bab5f395f51905f5254146115445760025f516020611bab5f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f51148216156115b3575b604052156115935750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b9060018115166115cb57823b15153d15161690611588565b503d5f823e3d90fd5b6040516345ace92560e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082600481845afa918215610544575f92611759575b5081156117525760405162ecfa2f60e31b815260048101849052602081602481855afa8015610544575f9061170f575b63ffffffff91501691821561170757611679602091611674600354958661115b565b611186565b93602460405180948193630eef8c0760e41b835260048301525afa908115610544575f916116c8575b506127109161ffff6116b592169061115b565b0490818111156116c3575090565b905090565b90506020813d6020116116ff575b816116e3602093836110d9565b8101031261054f575161ffff8116810361054f576127106116a2565b3d91506116d6565b505050505f90565b506020813d60201161174a575b81611729602093836110d9565b8101031261054f575163ffffffff8116810361054f5763ffffffff90611652565b3d915061171c565b5050505f90565b9091506020813d602011611785575b81611775602093836110d9565b8101031261054f5751905f611622565b3d9150611768565b6002546001600160a01b03161561086b576117a7336117ca565b905f52600b60205260405f2054036117bb57565b63ffc22d2f60e01b5f5260045ffd5b6117d390611898565b6040516329fcb6f960e11b8152600481018290529091906020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610544575f9161185d575b5060038110156118495761183a57565b63068b3df560e51b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b90506020813d602011611890575b81611878602093836110d9565b8101031261054f5751600381101561054f575f61182a565b3d915061186b565b604051634f4a72b360e01b81526001600160a01b03918216600482015291907f000000000000000000000000000000000000000000000000000000000000000016602083602481845afa928315610544575f9361198f575b5082801561198057602090602460405180948193632b4d7bf560e21b835260048301525afa908115610544575f91611945575b5060048110156118495760010361193657565b6304a5da9160e41b5f5260045ffd5b90506020813d602011611978575b81611960602093836110d9565b8101031261054f5751600481101561054f575f611923565b3d9150611953565b631e01075760e01b5f5260045ffd5b9092506020813d6020116119bb575b816119ab602093836110d9565b8101031261054f5751915f6118f0565b3d915061199e565b6009546001546001600160a01b03165f8115611aec57600854915f6040516306aba0e160e01b8152602081600481865afa5f9181611ab8575b50611ab0575b50813b1561054f57849160445f926040519485938492631df1f23d60e01b845289600485015260248401525af19081611a9b575b50611a725750604090827fbae79ada6ed5fa8f73bff0049674a95899e50449bf8dbf8351bf4e59f56702249360095582519182526020820152a1565b915060018101809111611a8757600855600955565b634e487b7160e01b82526011600452602482fd5b611aa89192505f906110d9565b5f905f611a36565b90505f611a02565b9091506020813d602011611ae4575b81611ad4602093836110d9565b8101031261054f5751905f6119fc565b3d9150611ac7565b5050600955565b611b01600954915f926110cc565b9060018060a01b0360015416908115611aec57600854915f6040516306aba0e160e01b8152602081600481865afa5f9181611ab85750611ab05750813b1561054f57849160445f926040519485938492631df1f23d60e01b845289600485015260248401525af19081611a9b5750611a725750604090827fbae79ada6ed5fa8f73bff0049674a95899e50449bf8dbf8351bf4e59f56702249360095582519182526020820152a156fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f008d6fe78644bb65e29640f7b32e9f03fa7aebfc3704fd729de5f7830c33c001caa26469706673582212200fe1d9554e4ec0d940360ccff8a3315a6f439f98533bf5e31f79fe166670522f64736f6c63430008210033000000000000000000000000791229e3ebd6cfdc3d8157f48722684173c29ad90000000000000000000000003942cda122ef303f47d4509a6be57736e323cee400000000000000000000000011111972fe1b7e52d36609bcaf8702c65b025b46
0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c90816306433b1b1461105f57508063182c319e146110425780631ab2356d14610fc45780631b93f5bb14610f6e57806320ff430b14610dcc578063249d39e914610db057806327056a2114610d865780632a1eafd914610d695780633042e68a14610ca65780633750609914610c7c5780633b994dea14610c5f57806341cfe8ab14610c4357806346db8a7c14610b2f5780634cf088d914610b075780636426cbc11461098c5780636b31ee0114610964578063715018a61461090d5780637e95385c146108a15780638da5cb5b1461087a5780638fd866d91461069d5780638ff39099146106315780639a49090e146105e9578063a1bdb15e1461059d578063a7217ede14610553578063ab41d41714610493578063c7b60dcf1461044e578063d54f310a14610430578063d5861d9114610413578063e4229dbc146103a7578063eaa4472114610389578063f2f7cf9c146102ba578063f2fde38b14610234578063f788233e146101ef578063f8c412fb146101d15763fc7069df0361000f57346101ce5760203660031901126101ce5760406020916004358152600b83522054604051908152f35b80fd5b50346101ce57806003193601126101ce576020600354604051908152f35b50346101ce57806003193601126101ce576040517f000000000000000000000000791229e3ebd6cfdc3d8157f48722684173c29ad96001600160a01b03168152602090f35b50346101ce5760203660031901126101ce5761024e6110a0565b6102566114f5565b6001600160a01b031680156102a65781546001600160a01b03198116821783556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b631e4fbdf760e01b82526004829052602482fd5b50806003193601126101ce576102ce61151b565b6102d733611898565b6002546001600160a01b0316801561037a578083913b1561036b57816004916040519283809263c2ac3aff60e01b825234905af1801561036f57610356575b50507fb129e7a08f37321c1661ffe61ea95d4824286c45ab6f0ab5d855eb4db6798c626020604051348152a260015f516020611bab5f395f51905f525580f35b81610360916110d9565b61036b57815f610316565b5080fd5b6040513d84823e3d90fd5b630856276f60e31b8352600483fd5b50346101ce57806003193601126101ce576020600854604051908152f35b50806003193601126101ce576103bb61151b565b6103c433611898565b7ff7b9b7959a4f9870bee810c94a2d9d5488755d1f408478fb2bd55e7e04e9607b60406008548151908152346020820152a26103ff34611af3565b60015f516020611bab5f395f51905f525580f35b50346101ce57806003193601126101ce5760206040516103208152f35b50346101ce57806003193601126101ce576020600a54604051908152f35b50346101ce57806003193601126101ce576040517f000000000000000000000000791229e3ebd6cfdc3d8157f48722684173c29ad96001600160a01b03168152602090f35b503461054f57608036600319011261054f576004356104b06110b6565b906104b961151b565b6104c28161178d565b6002546001600160a01b031691823b1561054f5760845f9283604051958694859363ab41d41760e01b8552600485015260018060a01b03166024840152604435604484015260643560648401525af1801561054457610531575b5060015f516020611bab5f395f51905f525580f35b61053d91505f906110d9565b5f5f61051c565b6040513d5f823e3d90fd5b5f80fd5b3461054f575f36600319011261054f5761056b61151b565b6009541561058e5761057b6119c3565b60015f516020611bab5f395f51905f5255005b630bae0d7560e11b5f5260045ffd5b3461054f57602036600319011261054f577f4599b999878c4bf50471224bfb3eba260226641b501577af32f4ff1e2a3d704960206004356105dc6114f5565b80600355604051908152a1005b3461054f57604036600319011261054f5760206106186106076110a0565b61060f61151b565b602435906111a4565b60015f516020611bab5f395f51905f5255604051908152f35b3461054f57602036600319011261054f577f087f751a71b744109129bddeab60629bc40b8598909ecbd03668a4d424913ce5602061066d6110a0565b6106756114f5565b600180546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b3461054f57604036600319011261054f576106b661151b565b6106bf336117ca565b6002546001600160a01b0316801561086b57600a545f19811461085757606060015f92019283600a55606460405180948193632bc19b4d60e21b8352602435600484015287602484015260043560448401525af1908115610544575f5f915f9361080b575b5080610791575b836080957fe3c6aba309d2dc69d301b22883e263af9409475091b0f98d8489e2a2896cb208606060405194151594858152866020820152876040820152a360015f516020611bab5f395f51905f5255604051938452602084015260408301526060820152f35b835f52600b6020528460405f2055816107e7575b83608095846107b7575b95505061072b565b6107e285337f000000000000000000000000791229e3ebd6cfdc3d8157f48722684173c29ad9611553565b6107af565b5f80808085335af16107f761110f565b506107a557633ca7f03b60e11b5f5260045ffd5b925050506060813d60601161084f575b81610828606093836110d9565b8101031261054f578051801515810361054f57604060208301519201519080929192610724565b3d915061081b565b634e487b7160e01b5f52601160045260245ffd5b630856276f60e31b5f5260045ffd5b3461054f575f36600319011261054f575f546040516001600160a01b039091168152602090f35b3461054f57602036600319011261054f577fc94a7f9a7a689866db2e4a5f7d8d769bbcd4bab6018cf62a21e5e3741104583260206108dd6110a0565b6108e56114f5565b600280546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b3461054f575f36600319011261054f576109256114f5565b5f80546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461054f575f36600319011261054f576002546040516001600160a01b039091168152602090f35b3461054f57602036600319011261054f575f806004356109aa61151b565b6109b38161178d565b600254604051636426cbc160e01b815260048101929092529092839160249183916001600160a01b03165af18015610544576109fc5760015f516020611bab5f395f51905f5255005b3d805f833e610a0b81836110d9565b81019060408183031261054f57805167ffffffffffffffff811161054f57810182601f8201121561054f57805190602080610a458461116e565b610a5260405191826110d9565b848152019260051b8201019084821161054f57602001915b818310610ae75750505060208101519067ffffffffffffffff821161054f57019080601f8301121561054f57815191602080610aa58561116e565b610ab260405191826110d9565b858152019360051b82010191821161054f57602001915b818310610ad757505061057b565b8251815260209283019201610ac9565b82516001600160a01b038116810361054f57815260209283019201610a6a565b3461054f575f36600319011261054f576001546040516001600160a01b039091168152602090f35b3461054f57602036600319011261054f57600435610b4b6114f5565b80158015610bba575b15610b8a576020817f3ff10a7c5431e70ff380e42d89229b492e198ae8fdfa68e5c414bd503f4bd68e92600455604051908152a1005b60405162461bcd60e51b81526020600482015260086024820152670deeccae440dac2f60c31b6044820152606490fd5b50604051630cb2dac360e21b81526020816004817f000000000000000000000000791229e3ebd6cfdc3d8157f48722684173c29ad96001600160a01b03165afa908115610544575f91610c11575b50811115610b54565b90506020813d602011610c3b575b81610c2c602093836110d9565b8101031261054f575182610c08565b3d9150610c1f565b3461054f575f36600319011261054f5760206040516101908152f35b3461054f575f36600319011261054f576020600954604051908152f35b3461054f57602036600319011261054f576004355f526007602052602060405f2054604051908152f35b3461054f57602036600319011261054f576020600435610cc5816115d4565b90805f526006835260405f205480158015610d5f575b15610d495750610d19610d125f925b8390600554809511610d41575b5f5260078652610d0c60405f2054918661115b565b906110cc565b918361115b565b91151580610d38575b15610d3157505b604051908152f35b9050610d29565b50818111610d22565b849150610cf7565b610d12610d59610d19924261114e565b92610cea565b5080421115610cdb565b3461054f575f36600319011261054f576020600454604051908152f35b3461054f57602036600319011261054f576004355f526006602052602060405f2054604051908152f35b3461054f575f36600319011261054f5760206040516127108152f35b3461054f57606036600319011261054f57610de56110a0565b610ded6110b6565b604435610df86114f5565b610e0061151b565b6001600160a01b038216928315610f38576001600160a01b03169182610f04575047610e2e826009546110cc565b11610ec4575f80808084875af1610e4361110f565b5015610e885760207f3af790fafda720819b2fc6e15090606e81154e0ac9a92d38ecad006d99d20ecc915b604051908152a360015f516020611bab5f395f51905f5255005b60405162461bcd60e51b81526020600482015260146024820152731b985d1a5d99481c995cd8dd594819985a5b195960621b6044820152606490fd5b60405162461bcd60e51b8152602060048201526018602482015277776f756c6420746f756368207374616b65722066756e647360401b6044820152606490fd5b81610f337f3af790fafda720819b2fc6e15090606e81154e0ac9a92d38ecad006d99d20ecc9360209386611553565b610e6e565b60405162461bcd60e51b815260206004820152600e60248201526d1e995c9bc81c9958da5c1a595b9d60921b6044820152606490fd5b3461054f57602036600319011261054f57600435610f8a6114f5565b805f5260066020524260405f20557f1752fa1b82a69b9e0751bbb5678fbc6a346419abf4ea40a49a1eced5c3d2475d6020604051428152a2005b3461054f57602036600319011261054f57600435610fe06114f5565b8015611017576020817f0bb675805b5ffa4e7ea0d3a5007852652d47b28adbe07d562f6e2161fdb6a1d192600555604051908152a1005b606460405162461bcd60e51b81526020600482015260046024820152637a65726f60e01b6044820152fd5b3461054f575f36600319011261054f576020600554604051908152f35b3461054f575f36600319011261054f577f0000000000000000000000003942cda122ef303f47d4509a6be57736e323cee46001600160a01b03168152602090f35b600435906001600160a01b038216820361054f57565b602435906001600160a01b038216820361054f57565b9190820180921161085757565b90601f8019910116810190811067ffffffffffffffff8211176110fb57604052565b634e487b7160e01b5f52604160045260245ffd5b3d15611149573d9067ffffffffffffffff82116110fb576040519161113e601f8201601f1916602001846110d9565b82523d5f602084013e565b606090565b9190820391821161085757565b8181029291811591840414171561085757565b67ffffffffffffffff81116110fb5760051b60200190565b8115611190570490565b634e487b7160e01b5f52601260045260245ffd5b91906111af33611898565b6111b8816115d4565b5f828152600660205260409020805442909155600554906111d9828461115b565b91845f52600760205260405f205493801515928380946114ec575b806114e3575b6114af575b505050806114a6575b61149e575b505f8281526007602052604090208190559384158015611496575b611476578483101561147057825b9460045480155f1461146a5750604051630cb2dac360e21b81526020816004817f000000000000000000000000791229e3ebd6cfdc3d8157f48722684173c29ad96001600160a01b03165afa908115610544575f91611438575b50935b6040516318160ddd60e01b81527f000000000000000000000000791229e3ebd6cfdc3d8157f48722684173c29ad96001600160a01b0316956020826004818a5afa918215610544575f92611404575b50808210156113de57906112f59161114e565b612710810290808204612710149015171561085757612bc090048088116113d6575b5086156113b25750856113299161114e565b825f52600760205260405f2055823b1561054f575f80916044604051809481936340c10f1960e01b835260018060a01b0316978860048401528a60248401525af18015610544576113a2575b507fe76a187449690f0071359da58a84f8930b26908aae428c6dad96c632d97e93496020604051868152a3565b5f6113ac916110d9565b5f611375565b9150506020919394505f516020611bcb5f395f51905f529250604051908152a25f90565b96505f611317565b50509150506020919394505f516020611bcb5f395f51905f529250604051908152a25f90565b9091506020813d602011611430575b81611420602093836110d9565b8101031261054f5751905f6112e2565b3d9150611413565b90506020813d602011611462575b81611453602093836110d9565b8101031261054f57515f611290565b3d9150611446565b93611293565b84611236565b5091925060205f516020611bcb5f395f51905f5291604051908152a25f90565b508215611228565b90505f61120d565b50808211611208565b91610d0c916114c36114d29597944261114e565b918083116114db575b5061115b565b915f80806111ff565b91505f6114cc565b508042116111fa565b508015156111f4565b5f546001600160a01b0316330361150857565b63118cdaa760e01b5f523360045260245ffd5b60025f516020611bab5f395f51905f5254146115445760025f516020611bab5f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f51148216156115b3575b604052156115935750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b9060018115166115cb57823b15153d15161690611588565b503d5f823e3d90fd5b6040516345ace92560e01b81527f0000000000000000000000003942cda122ef303f47d4509a6be57736e323cee46001600160a01b0316602082600481845afa918215610544575f92611759575b5081156117525760405162ecfa2f60e31b815260048101849052602081602481855afa8015610544575f9061170f575b63ffffffff91501691821561170757611679602091611674600354958661115b565b611186565b93602460405180948193630eef8c0760e41b835260048301525afa908115610544575f916116c8575b506127109161ffff6116b592169061115b565b0490818111156116c3575090565b905090565b90506020813d6020116116ff575b816116e3602093836110d9565b8101031261054f575161ffff8116810361054f576127106116a2565b3d91506116d6565b505050505f90565b506020813d60201161174a575b81611729602093836110d9565b8101031261054f575163ffffffff8116810361054f5763ffffffff90611652565b3d915061171c565b5050505f90565b9091506020813d602011611785575b81611775602093836110d9565b8101031261054f5751905f611622565b3d9150611768565b6002546001600160a01b03161561086b576117a7336117ca565b905f52600b60205260405f2054036117bb57565b63ffc22d2f60e01b5f5260045ffd5b6117d390611898565b6040516329fcb6f960e11b8152600481018290529091906020816024817f0000000000000000000000003942cda122ef303f47d4509a6be57736e323cee46001600160a01b03165afa908115610544575f9161185d575b5060038110156118495761183a57565b63068b3df560e51b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b90506020813d602011611890575b81611878602093836110d9565b8101031261054f5751600381101561054f575f61182a565b3d915061186b565b604051634f4a72b360e01b81526001600160a01b03918216600482015291907f0000000000000000000000003942cda122ef303f47d4509a6be57736e323cee416602083602481845afa928315610544575f9361198f575b5082801561198057602090602460405180948193632b4d7bf560e21b835260048301525afa908115610544575f91611945575b5060048110156118495760010361193657565b6304a5da9160e41b5f5260045ffd5b90506020813d602011611978575b81611960602093836110d9565b8101031261054f5751600481101561054f575f611923565b3d9150611953565b631e01075760e01b5f5260045ffd5b9092506020813d6020116119bb575b816119ab602093836110d9565b8101031261054f5751915f6118f0565b3d915061199e565b6009546001546001600160a01b03165f8115611aec57600854915f6040516306aba0e160e01b8152602081600481865afa5f9181611ab8575b50611ab0575b50813b1561054f57849160445f926040519485938492631df1f23d60e01b845289600485015260248401525af19081611a9b575b50611a725750604090827fbae79ada6ed5fa8f73bff0049674a95899e50449bf8dbf8351bf4e59f56702249360095582519182526020820152a1565b915060018101809111611a8757600855600955565b634e487b7160e01b82526011600452602482fd5b611aa89192505f906110d9565b5f905f611a36565b90505f611a02565b9091506020813d602011611ae4575b81611ad4602093836110d9565b8101031261054f5751905f6119fc565b3d9150611ac7565b5050600955565b611b01600954915f926110cc565b9060018060a01b0360015416908115611aec57600854915f6040516306aba0e160e01b8152602081600481865afa5f9181611ab85750611ab05750813b1561054f57849160445f926040519485938492631df1f23d60e01b845289600485015260248401525af19081611a9b5750611a725750604090827fbae79ada6ed5fa8f73bff0049674a95899e50449bf8dbf8351bf4e59f56702249360095582519182526020820152a156fe9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f008d6fe78644bb65e29640f7b32e9f03fa7aebfc3704fd729de5f7830c33c001caa26469706673582212200fe1d9554e4ec0d940360ccff8a3315a6f439f98533bf5e31f79fe166670522f64736f6c63430008210033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| DIH | 1 | $0.0000102 | $0 |
| 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 | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xfa8f55c3…d035e3 | Transfer | 18,565,540 | 23 days agoSat, 25 Jul 2026 00:04:26 UTC | 0xcaf7…5d11 | IN | 0x55fc…d57f | $0.001 DIH |
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0xc0b434…1c3298 | primeGame | 35,738,364 | 4 days agoThu, 13 Aug 2026 22:09:31 UTC | 0x1111…5b46 | IN | SlvrHub | $0.000 ETH | 0.00000205 | |
| 0xabb17f…e5d278 | primeGame | 16,881,175 | 25 days agoThu, 23 Jul 2026 01:09:30 UTC | 0x1111…5b46 | IN | SlvrHub | $0.000 ETH | 0.00000440 | |
| 0x4531bd…b7f9ab | primeGame | 5,649,292 | 38 days agoFri, 10 Jul 2026 00:29:50 UTC | 0x1111…5b46 | IN | SlvrHub | $0.000 ETH | 0.00000228 | |
| 0x4068d2…31cffa | setEmissionRate | 5,574,866 | 39 days agoThu, 09 Jul 2026 22:25:32 UTC | 0x1111…5b46 | IN | SlvrHub | $0.000 ETH | 0.00000238 | |
| 0xe14c7e…af5dd5 | primeGame | 5,574,866 | 39 days agoThu, 09 Jul 2026 22:25:32 UTC | 0x1111…5b46 | IN | SlvrHub | $0.000 ETH | 0.00000237 | |
| 0xae46ea…b46686 | setStaking | 5,574,866 | 39 days agoThu, 09 Jul 2026 22:25:32 UTC | 0x1111…5b46 | IN | SlvrHub | $0.000 ETH | 0.00000239 |
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x916284…c5268f | 1 min agoMon, 17 Aug 2026 23:18:01 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x916284…c5268f | 1 min agoMon, 17 Aug 2026 23:18:01 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…bf722000 |
| 0x2f2870…50004d | 3 mins agoMon, 17 Aug 2026 23:16:31 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x2f2870…50004d | 3 mins agoMon, 17 Aug 2026 23:16:31 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…9e7da000 |
| 0x131507…06b953 | 4 mins agoMon, 17 Aug 2026 23:15:01 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x131507…06b953 | 4 mins agoMon, 17 Aug 2026 23:15:01 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…802cfafc |
| 0xd0d958…b2f8a2 | 5 mins agoMon, 17 Aug 2026 23:13:32 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0xd0d958…b2f8a2 | 5 mins agoMon, 17 Aug 2026 23:13:32 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…680a2d10 |
| 0x6f8530…a00087 | 7 mins agoMon, 17 Aug 2026 23:12:01 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x6f8530…a00087 | 7 mins agoMon, 17 Aug 2026 23:12:01 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…e9f3459b |
| 0x0c4ffe…2142d3 | 9 mins agoMon, 17 Aug 2026 23:10:31 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x0c4ffe…2142d3 | 9 mins agoMon, 17 Aug 2026 23:10:31 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…c5e042c4 |
| 0x19bbb3…4feef2 | 10 mins agoMon, 17 Aug 2026 23:09:02 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x19bbb3…4feef2 | 10 mins agoMon, 17 Aug 2026 23:09:02 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…e7a5f8f4 |
| 0x1659df…ee66cf | 12 mins agoMon, 17 Aug 2026 23:07:31 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x1659df…ee66cf | 12 mins agoMon, 17 Aug 2026 23:07:31 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…088ea604 |
| 0x396f9f…54b516 | 13 mins agoMon, 17 Aug 2026 23:06:01 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x396f9f…54b516 | 13 mins agoMon, 17 Aug 2026 23:06:01 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…ddd8e6d7 |
| 0x3257b7…db8445 | 15 mins agoMon, 17 Aug 2026 23:04:31 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x3257b7…db8445 | 15 mins agoMon, 17 Aug 2026 23:04:31 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…c380bf4c |
| 0xeebe2a…80af3e | 16 mins agoMon, 17 Aug 2026 23:03:01 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0xeebe2a…80af3e | 16 mins agoMon, 17 Aug 2026 23:03:01 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…1a00f28b |
| 0x0d0486…616e97 | 18 mins agoMon, 17 Aug 2026 23:01:31 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| 0x0d0486…616e97 | 18 mins agoMon, 17 Aug 2026 23:01:31 UTC | 0xf7b9b7…607b | [0] 0x000000000000…00000006 data: 0x000000000000000000…30198920 |
| 0x2688d2…402620 | 19 mins agoMon, 17 Aug 2026 23:00:01 UTC | 0xe76a18…9349 | [0] 0x000000000000…00000006 [1] 0x000000000000…8cf72a3d data: 0x000000000000000000…a7640000 |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 39,225,489 | 1 min agoMon, 17 Aug 2026 23:18:01 UTC | 0x8bcecd…98e3ed | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |
| 39,225,486 | 1 min agoMon, 17 Aug 2026 23:18:01 UTC | 0x916284…c5268f | CALL | resolveRound | 0x55fc…d57f | OUT | 0xaf68…7200 | 0.00678 ETH |
| 39,225,486 | 1 min agoMon, 17 Aug 2026 23:18:01 UTC | 0x916284…c5268f | CALL | resolveRound | 0xa1e5…2a3d | IN | 0x55fc…d57f | 0.00678 ETH |
| 39,224,627 | 2 mins agoMon, 17 Aug 2026 23:16:35 UTC | 0x77a4bb…acb595 | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |
| 39,224,590 | 3 mins agoMon, 17 Aug 2026 23:16:31 UTC | 0x2f2870…50004d | CALL | resolveRound | 0x55fc…d57f | OUT | 0xaf68…7200 | 0.00658 ETH |
| 39,224,590 | 3 mins agoMon, 17 Aug 2026 23:16:31 UTC | 0x2f2870…50004d | CALL | resolveRound | 0xa1e5…2a3d | IN | 0x55fc…d57f | 0.00658 ETH |
| 39,223,699 | 4 mins agoMon, 17 Aug 2026 23:15:01 UTC | 0x131507…06b953 | CALL | resolveRound | 0x55fc…d57f | OUT | 0xaf68…7200 | 0.00685 ETH |
| 39,223,699 | 4 mins agoMon, 17 Aug 2026 23:15:01 UTC | 0x131507…06b953 | CALL | resolveRound | 0xa1e5…2a3d | IN | 0x55fc…d57f | 0.00685 ETH |
| 39,223,696 | 4 mins agoMon, 17 Aug 2026 23:15:01 UTC | 0x2f2a68…2c6899 | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |
| 39,222,866 | 5 mins agoMon, 17 Aug 2026 23:13:38 UTC | 0x22cc89…b14ff8 | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |
| 39,222,813 | 5 mins agoMon, 17 Aug 2026 23:13:32 UTC | 0xd0d958…b2f8a2 | CALL | resolveRound | 0x55fc…d57f | OUT | 0xaf68…7200 | 0.00682 ETH |
| 39,222,813 | 5 mins agoMon, 17 Aug 2026 23:13:32 UTC | 0xd0d958…b2f8a2 | CALL | resolveRound | 0xa1e5…2a3d | IN | 0x55fc…d57f | 0.00682 ETH |
| 39,221,943 | 7 mins agoMon, 17 Aug 2026 23:12:07 UTC | 0xab1d23…1e3780 | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |
| 39,221,889 | 7 mins agoMon, 17 Aug 2026 23:12:01 UTC | 0x6f8530…a00087 | CALL | resolveRound | 0x55fc…d57f | OUT | 0xaf68…7200 | 0.00776 ETH |
| 39,221,889 | 7 mins agoMon, 17 Aug 2026 23:12:01 UTC | 0x6f8530…a00087 | CALL | resolveRound | 0xa1e5…2a3d | IN | 0x55fc…d57f | 0.00776 ETH |
| 39,221,052 | 8 mins agoMon, 17 Aug 2026 23:10:37 UTC | 0x8a6693…dc785f | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |
| 39,220,992 | 9 mins agoMon, 17 Aug 2026 23:10:31 UTC | 0x0c4ffe…2142d3 | CALL | resolveRound | 0x55fc…d57f | OUT | 0xaf68…7200 | 0.00780 ETH |
| 39,220,992 | 9 mins agoMon, 17 Aug 2026 23:10:31 UTC | 0x0c4ffe…2142d3 | CALL | resolveRound | 0xa1e5…2a3d | IN | 0x55fc…d57f | 0.00780 ETH |
| 39,220,112 | 10 mins agoMon, 17 Aug 2026 23:09:02 UTC | 0x19bbb3…4feef2 | CALL | resolveRound | 0x55fc…d57f | OUT | 0xaf68…7200 | 0.00780 ETH |
| 39,220,112 | 10 mins agoMon, 17 Aug 2026 23:09:02 UTC | 0x19bbb3…4feef2 | CALL | resolveRound | 0xa1e5…2a3d | IN | 0x55fc…d57f | 0.00780 ETH |
| 39,220,100 | 10 mins agoMon, 17 Aug 2026 23:09:01 UTC | 0xeb55ee…262ed1 | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |
| 39,219,223 | 11 mins agoMon, 17 Aug 2026 23:07:33 UTC | 0x5d5041…ff5851 | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |
| 39,219,206 | 12 mins agoMon, 17 Aug 2026 23:07:31 UTC | 0x1659df…ee66cf | CALL | resolveRound | 0x55fc…d57f | OUT | 0xaf68…7200 | 0.00781 ETH |
| 39,219,206 | 12 mins agoMon, 17 Aug 2026 23:07:31 UTC | 0x1659df…ee66cf | CALL | resolveRound | 0xa1e5…2a3d | IN | 0x55fc…d57f | 0.00781 ETH |
| 39,218,297 | 13 mins agoMon, 17 Aug 2026 23:06:01 UTC | 0xafcf8b…33d3d7 | CALL | resolveRound | 0xb0cc…0c71 | IN | 0x55fc…d57f | 0.03444 ETH |