// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import "@openzeppelin-contracts-upgradeable/access/OwnableUpgradeable.sol";
import {IERC20} from "@openzeppelin/token/ERC20/IERC20.sol";
import {SafeERC20} from "@openzeppelin/token/ERC20/utils/SafeERC20.sol";
import {Math} from "@openzeppelin/utils/math/Math.sol";
import {IDividend} from "../interfaces/Tax/IDividend.sol";
interface IWETH {
function withdraw(uint256) external;
}
/// @title Dividend Distribution Contract
/// @notice MasterChef-style dividend distribution based on share proportions
/// @dev Implements precise dividend calculation using magnified dividend per share
contract Dividend is IDividend, OwnableUpgradeable {
using SafeERC20 for IERC20;
// --- Constants ---
uint256 internal constant MAGNITUDE = 2 ** 128;
// --- Immutable Storage ---
/// @notice WETH address (if dividendToken == weth, we send native ETH)
address public immutable weth;
/// @notice FlapBlackHole address (excluded from dividends)
address public immutable flapBlackHole;
/// @custom:oz-upgrades-unsafe-allow constructor
constructor(address weth_, address flapBlackHole_) {
require(weth_ != address(0), "Dividend: zero WETH address");
weth = weth_;
flapBlackHole = flapBlackHole_;
_disableInitializers();
}
// --- Storage ---
/// @notice The token used for dividend distribution.
/// @dev This can be any ERC-20: the quote token, the tax token itself, or an unrelated token.
/// The front-end MUST read this field to determine which token is being distributed
/// rather than assuming a fixed token type.
/// This is never the zero address; when the dividend is the native gas token,
/// WETH is used instead and unwrapped to ETH upon withdrawal.
address public dividendToken;
/// @notice The FlapTaxToken contract that can call setShare
address public taxToken;
/// @notice User info structure combining share, debt, and pending balance
struct UserInfo {
uint256 share; // User's share amount
uint256 rewardDebt; // Reward debt (already claimed debt)
uint256 pendingBalance; // Pending balance (settled rewards before share changes)
}
/// @notice Magnified dividend per share for precise calculation
uint256 internal magnifiedDividendPerShare;
/// @notice Total shares across all users
uint256 public totalShares;
/// @notice Mapping of user address to their info
mapping(address => UserInfo) public userInfo;
/// @notice Total dividends withdrawn by each user
mapping(address => uint256) public withdrawnDividends;
/// @notice Total dividends distributed
uint256 public totalDividendsDistributed;
/// @notice Minimum share balance required for dividend distribution
uint256 public minimumShareBalance;
/// @notice Addresses excluded from receiving dividends
mapping(address => bool) public excludedFromDividends;
// --- Modifiers ---
modifier onlyTaxToken() {
require(msg.sender == taxToken, "Dividend: caller is not the tax token");
_;
}
function _isExcluded(address user) internal view returns (bool) {
return user == address(0) || user == address(0xdead) || user == address(this) || user == taxToken
|| user == flapBlackHole || excludedFromDividends[user];
}
// --- Initialization ---
function initialize(address dividendToken_, address taxToken_, uint256 minimumShareBalance_) external initializer {
require(dividendToken_ != address(0) && taxToken_ != address(0), "Dividend: zero init arg");
__Ownable_init();
dividendToken = dividendToken_;
taxToken = taxToken_;
minimumShareBalance = minimumShareBalance_;
// No need to exclude addresses during initialization
// Exclusion logic will be handled in setShare method or by the calling contract
}
// --- External Functions ---
/// @notice Set user's share (only callable by FlapTaxToken)
/// @param user The user address
/// @param share The new share amount for the user
function setShare(address user, uint256 share) external onlyTaxToken {
// Skip excluded addresses to save gas (hardcoded exclusions + mapping-based exclusions)
if (_isExcluded(user)) return;
// If share is below minimum threshold, set to 0
if (share < minimumShareBalance) {
share = 0;
}
_setShare(user, share);
}
/// @notice Deposit dividends to be distributed
/// @param amount The amount of dividend tokens to deposit
/// @return success Whether the deposit was successful
/// @dev Only accepts ERC20 tokens, returns false if no shares exist
function deposit(uint256 amount) external returns (bool success) {
if (amount == 0) {
return false;
}
if (totalShares == 0) {
return false; // No shareholders to distribute to
}
// Transfer dividend tokens (only ERC20).
// Use balance-diff pattern to correctly account for tokens with transfer taxes.
uint256 balanceBefore = IERC20(dividendToken).balanceOf(address(this));
IERC20(dividendToken).safeTransferFrom(msg.sender, address(this), amount);
uint256 actualReceived = IERC20(dividendToken).balanceOf(address(this)) - balanceBefore;
if (actualReceived == 0) {
return false;
}
// Update magnified dividend per share based on what was actually received
magnifiedDividendPerShare = magnifiedDividendPerShare + (actualReceived * MAGNITUDE / totalShares);
totalDividendsDistributed = totalDividendsDistributed + actualReceived;
emit FlapDividendDeposited(taxToken, actualReceived, magnifiedDividendPerShare);
return true;
}
/// @notice Batch distribute dividends to specified users
/// @param users Array of user addresses to distribute dividends to
function distributeDividend(address[] calldata users) external returns (uint256 successCount) {
successCount = 0;
for (uint256 i = 0; i < users.length; i++) {
if (_withdrawDividendOfUser(users[i], false)) {
// false = distributeDividend mode (send WETH directly)
successCount++;
}
}
return successCount;
}
/// @notice User can call this to withdraw their own dividends (unwraps WETH to ETH if applicable)
/// @return success Whether the withdrawal was successful
function withdrawDividends() external returns (bool success) {
return _withdrawDividendOfUser(msg.sender, true); // true = withdrawDividends mode (unwrap WETH if needed)
}
/// @notice Withdraw dividends for a specific user
/// @param user The user address to withdraw for
/// @return success Whether the withdrawal was successful
function withdrawDividendsFor(address user) external returns (bool success) {
return _withdrawDividendOfUser(user, true);
}
/// @notice Withdraw dividends for a specific user with option to unwrap WETH
/// @param user The user address to withdraw for
/// @param unwrapWETH Whether to unwrap WETH to ETH
/// @return success Whether the withdrawal was successful
function withdrawDividendsFor(address user, bool unwrapWETH) external returns (bool success) {
return _withdrawDividendOfUser(user, unwrapWETH);
}
/// @notice Get the withdrawable dividend amount for a user
/// @param user The user address
/// @return The amount of dividends the user can claim
function withdrawableDividends(address user) external view returns (uint256) {
return withdrawableDividendOf(user);
}
/// @notice Exclude an address from receiving dividends
/// @param addr The address to exclude
function excludeAddress(address addr) external onlyOwner {
require(!excludedFromDividends[addr], "Dividend: already excluded");
excludedFromDividends[addr] = true;
// Reset their share to 0
if (userInfo[addr].share > 0) {
_setShare(addr, 0);
}
emit FlapDividendAddressExcluded(taxToken, addr);
}
/// @notice Remove an address from the exclusion list so it can accumulate
/// shares again on future token transfers.
function unexcludeAddress(address addr) external onlyOwner {
require(excludedFromDividends[addr], "Dividend: address not excluded");
delete excludedFromDividends[addr];
emit FlapDividendAddressUnexcluded(taxToken, addr);
}
/// @notice Update the dividend token address
/// @dev Only callable by the owner (Portal). Any undistributed dividends accrued
/// under the previous token should be distributed (or recovered via emergencyWithdraw)
/// before calling this function, as the accounting will switch to the new token immediately.
/// @param newToken The new token to distribute as dividends (must be non-zero)
function setDividendToken(address newToken) external onlyOwner {
require(newToken != address(0), "Dividend: zero token address");
require(magnifiedDividendPerShare == 0, "magnifiedDividendPerShare must be 0");
address oldToken = dividendToken;
dividendToken = newToken;
emit FlapDividendTokenUpdated(taxToken, oldToken, newToken);
}
/// @notice Update the minimum share balance threshold
/// @param newMinimumShareBalance The new minimum share balance
function setMinimumShareBalance(uint256 newMinimumShareBalance) external onlyOwner {
minimumShareBalance = newMinimumShareBalance;
}
// --- Public View Functions ---
/// @notice Get the current magnified dividend per share accumulator
/// @return The current magnifiedDividendPerShare value
function getMagnifiedDividendPerShare() public view returns (uint256) {
return magnifiedDividendPerShare;
}
/// @notice Get the withdrawable dividend for a user
/// @param user The user address
/// @return The withdrawable dividend amount (currently claimable)
function withdrawableDividendOf(address user) public view returns (uint256) {
UserInfo storage info = userInfo[user];
// Part 1: (share * magnifiedDividendPerShare - rewardDebt) / MAGNITUDE
uint256 accumulatedDividend = info.share * magnifiedDividendPerShare / MAGNITUDE;
uint256 part1;
if (accumulatedDividend > info.rewardDebt) {
part1 = accumulatedDividend - info.rewardDebt;
} else {
part1 = 0;
}
// Part 2: pendingBalance (settled rewards from previous share changes)
uint256 part2 = info.pendingBalance;
// Total currently claimable = part1 + part2
return part1 + part2;
}
/// @notice Get the cumulative dividend for a user (total ever earned)
/// @param user The user address
/// @return The cumulative dividend amount (includes withdrawn + withdrawable)
function accumulativeDividendOf(address user) public view returns (uint256) {
// Total earned = currently withdrawable + already withdrawn
return withdrawableDividendOf(user) + withdrawnDividends[user];
}
// --- Internal Functions ---
/// @notice Internal function to set a user's share
/// @param user The user address
/// @param newShare The new share amount
/// @dev When share changes, settle current claimable amount into pendingBalance
function _setShare(address user, uint256 newShare) internal {
UserInfo storage info = userInfo[user];
uint256 currentShare = info.share;
if (newShare == currentShare) {
return;
}
// Settlement: calculate and store current claimable amount before changing share
// This simulates claiming and adds to pendingBalance
if (currentShare > 0) {
uint256 accumulatedDividend = currentShare * magnifiedDividendPerShare / MAGNITUDE;
if (accumulatedDividend > info.rewardDebt) {
uint256 claimable = accumulatedDividend - info.rewardDebt;
info.pendingBalance = info.pendingBalance + claimable;
emit FlapDividendPendingBalanceChanged(taxToken, user, info.pendingBalance);
}
}
// Update total shares
if (newShare > currentShare) {
totalShares = totalShares + (newShare - currentShare);
} else {
totalShares = totalShares - (currentShare - newShare);
}
// Update user's share
info.share = newShare;
// Update rewardDebt to current accumulated amount for new share
// This represents the "already claimed" debt for the new share amount
info.rewardDebt = Math.ceilDiv(newShare * magnifiedDividendPerShare, MAGNITUDE);
emit FlapDividendRewardDebtChanged(taxToken, user, info.rewardDebt);
emit FlapDividendShareChanged(taxToken, user, newShare, totalShares);
}
/// @notice Internal function to withdraw dividends for a user
/// @param user The user address
/// @param shouldUnwrapWETH Whether to unwrap WETH to ETH (true for withdrawDividends, false for distributeDividend)
/// @return success Whether the withdrawal was successful
function _withdrawDividendOfUser(address user, bool shouldUnwrapWETH) internal returns (bool success) {
if (_isExcluded(user)) return false; // excluded addresses cannot claim
uint256 withdrawableAmount = withdrawableDividendOf(user);
if (withdrawableAmount == 0) {
return false;
}
UserInfo storage info = userInfo[user];
// Update state: clear pendingBalance and update rewardDebt
// Round up to prevent users from accumulating claimable dust after each withdrawal
info.rewardDebt = Math.ceilDiv(info.share * magnifiedDividendPerShare, MAGNITUDE);
emit FlapDividendRewardDebtChanged(taxToken, user, info.rewardDebt);
info.pendingBalance = 0;
emit FlapDividendPendingBalanceChanged(taxToken, user, 0);
withdrawnDividends[user] = withdrawnDividends[user] + withdrawableAmount;
return _sendToken(user, withdrawableAmount, shouldUnwrapWETH);
}
/// @dev Transfer `amount` of dividendToken to `user`.
/// - If dividendToken == weth and unwrapWETH == true: unwrap WETH and send native ETH (reverts on failure)
/// - Otherwise: SafeERC20.safeTransfer (reverts atomically on failure, rolling back state changes)
function _sendToken(address user, uint256 amount, bool unwrapWETH) internal returns (bool) {
if (dividendToken == weth && weth != address(0) && unwrapWETH) {
IWETH(weth).withdraw(amount);
(bool sent,) = payable(user).call{value: amount}("");
require(sent, "Dividend: ETH transfer failed");
} else {
// SafeERC20.safeTransfer handles all non-standard ERC20 variants:
// • No return value (USDT / TetherToken) : returndata.length == 0 → ok
// • Returns true (standard ERC20) : decoded true → ok
// • Returns false (non-standard) : require fails → reverts
// • Reverts : functionCall bubbles revert
// Reverting on failure is intentional: _withdrawDividendOfUser updates state
// before calling _sendToken, so a revert here rolls back everything atomically,
// leaving the user's pending balance intact to retry later.
IERC20(dividendToken).safeTransfer(user, amount);
}
emit FlapDividendDistributed(taxToken, user, amount);
return true;
}
/// @notice Emergency withdraw function to recover tokens in case of emergency
/// @param token The token address to withdraw (use address(0) for native ETH)
/// @param amount The amount to withdraw (0 means withdraw all)
/// @param to The address to send the tokens to
/// @dev Only callable by owner in emergency situations
function emergencyWithdraw(address token, uint256 amount, address to) external onlyOwner {
require(to != address(0), "Dividend: invalid recipient");
if (token == address(0)) {
// Withdraw native ETH
uint256 balance = address(this).balance;
uint256 withdrawAmount = amount == 0 ? balance : amount;
require(withdrawAmount <= balance, "Dividend: insufficient ETH balance");
(bool success,) = payable(to).call{value: withdrawAmount}("");
require(success, "Dividend: ETH transfer failed");
} else {
// Withdraw ERC20 token
IERC20 tokenContract = IERC20(token);
uint256 balance = tokenContract.balanceOf(address(this));
uint256 withdrawAmount = amount == 0 ? balance : amount;
require(withdrawAmount <= balance, "Dividend: insufficient token balance");
tokenContract.safeTransfer(to, withdrawAmount);
}
}
// --- Fallback ---
/// @notice Allow contract to receive native ETH when unwrapping WETH
receive() external payable {}
}[
{
"type": "constructor",
"inputs": [
{
"name": "weth_",
"type": "address",
"internalType": "address"
},
{
"name": "flapBlackHole_",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "nonpayable"
},
{
"name": "FlapDividendAddressExcluded",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "addr",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "FlapDividendAddressUnexcluded",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "addr",
"type": "address",
"indexed": false,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "FlapDividendDeposited",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "magnifiedDividendPerShare",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FlapDividendDistributed",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "user",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FlapDividendPendingBalanceChanged",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "pendingBalance",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FlapDividendRewardDebtChanged",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "rewardDebt",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FlapDividendShareChanged",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "user",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newShare",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "totalShares",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "FlapDividendTokenUpdated",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "oldToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "newToken",
"type": "address",
"indexed": true,
"internalType": "address"
}
],
"anonymous": false
},
{
"name": "FlapDividendWithdrawalFailed",
"type": "event",
"inputs": [
{
"name": "taxToken",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "user",
"type": "address",
"indexed": false,
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "Initialized",
"type": "event",
"inputs": [
{
"name": "version",
"type": "uint8",
"indexed": false,
"internalType": "uint8"
}
],
"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": "accumulativeDividendOf",
"type": "function",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "deposit",
"type": "function",
"inputs": [
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "distributeDividend",
"type": "function",
"inputs": [
{
"name": "users",
"type": "address[]",
"internalType": "address[]"
}
],
"outputs": [
{
"name": "successCount",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "dividendToken",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "emergencyWithdraw",
"type": "function",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
},
{
"name": "amount",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "to",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "excludeAddress",
"type": "function",
"inputs": [
{
"name": "addr",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "excludedFromDividends",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "view"
},
{
"name": "flapBlackHole",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "getMagnifiedDividendPerShare",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "initialize",
"type": "function",
"inputs": [
{
"name": "dividendToken_",
"type": "address",
"internalType": "address"
},
{
"name": "taxToken_",
"type": "address",
"internalType": "address"
},
{
"name": "minimumShareBalance_",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "minimumShareBalance",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "owner",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "renounceOwnership",
"type": "function",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setDividendToken",
"type": "function",
"inputs": [
{
"name": "newToken",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setMinimumShareBalance",
"type": "function",
"inputs": [
{
"name": "newMinimumShareBalance",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "setShare",
"type": "function",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "share",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "taxToken",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "totalDividendsDistributed",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "totalShares",
"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"
},
{
"name": "unexcludeAddress",
"type": "function",
"inputs": [
{
"name": "addr",
"type": "address",
"internalType": "address"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"name": "userInfo",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "share",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "rewardDebt",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "pendingBalance",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "weth",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "withdrawDividends",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "withdrawDividendsFor",
"type": "function",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
},
{
"name": "unwrapWETH",
"type": "bool",
"internalType": "bool"
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "withdrawDividendsFor",
"type": "function",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "success",
"type": "bool",
"internalType": "bool"
}
],
"stateMutability": "nonpayable"
},
{
"name": "withdrawableDividendOf",
"type": "function",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "withdrawableDividends",
"type": "function",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"name": "withdrawnDividends",
"type": "function",
"inputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x60c060405234801561000f575f80fd5b5060405161285f38038061285f83398101604081905261002e9161017e565b6001600160a01b0382166100895760405162461bcd60e51b815260206004820152601b60248201527f4469766964656e643a207a65726f20574554482061646472657373000000000060448201526064015b60405180910390fd5b6001600160a01b03808316608052811660a0526100a46100ab565b50506101af565b5f54610100900460ff16156101125760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401610080565b5f5460ff90811614610161575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114610179575f80fd5b919050565b5f806040838503121561018f575f80fd5b61019883610163565b91506101a660208401610163565b90509250929050565b60805160a0516126736101ec5f395f8181610433015261174901525f81816103b301528181611cd201528181611d150152611d8a01526126735ff3fe6080604052600436106101bd575f3560e01c80634eeb0fed116100f2578063a8b9d24011610092578063de3aaf6111610062578063de3aaf6114610577578063e9ac0f48146105a2578063f2fde38b146105c1578063fd9574e4146105e0575f80fd5b8063a8b9d240146104fb578063ac04cc401461051a578063b6b55f2514610539578063db90127e14610558575f80fd5b80637eb0ac5f116100cd5780637eb0ac5f1461048857806385a6b3ae1461049d5780638da5cb5b146104b2578063a852dc6e146104dc575f80fd5b80634eeb0fed14610422578063551512de14610455578063715018a614610474575f80fd5b806327ce01471161015d5780633a98ef39116101385780633a98ef391461038d5780633fc8cef3146103a2578063413f18a8146103d55780634e7b827f146103f4575f80fd5b806327ce01471461032d5780632e92abdd1461035a5780633758e6ce1461036e575f80fd5b80631794bb3c116101985780631794bb3c1461026e5780631959a0021461028d5780631fc928ae146102e257806320ffe2fd1461030e575f80fd5b80630b9e8349146101c857806314b6ca96146101fc5780631582358e1461021d575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101e76101e2366004612324565b6105f4565b60405190151581526020015b60405180910390f35b348015610207575f80fd5b5061021b610216366004612359565b610608565b005b348015610228575f80fd5b506065546102499073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f3565b348015610279575f80fd5b5061021b610288366004612381565b6106dc565b348015610298575f80fd5b506102c76102a73660046123bb565b60696020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f3565b3480156102ed575f80fd5b506066546102499073ffffffffffffffffffffffffffffffffffffffff1681565b348015610319575f80fd5b5061021b6103283660046123bb565b610965565b348015610338575f80fd5b5061034c6103473660046123bb565b610af9565b6040519081526020016101f3565b348015610365575f80fd5b506101e7610b31565b348015610379575f80fd5b5061021b6103883660046123bb565b610b42565b348015610398575f80fd5b5061034c60685481565b3480156103ad575f80fd5b506102497f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e0575f80fd5b506101e76103ef3660046123bb565b610c95565b3480156103ff575f80fd5b506101e761040e3660046123bb565b606d6020525f908152604090205460ff1681565b34801561042d575f80fd5b506102497f000000000000000000000000000000000000000000000000000000000000000081565b348015610460575f80fd5b5061021b61046f3660046123d4565b610ca1565b34801561047f575f80fd5b5061021b611009565b348015610493575f80fd5b5061034c606c5481565b3480156104a8575f80fd5b5061034c606b5481565b3480156104bd575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610249565b3480156104e7575f80fd5b5061021b6104f63660046123bb565b61101c565b348015610506575f80fd5b5061034c6105153660046123bb565b611134565b348015610525575f80fd5b5061034c61053436600461240d565b6111c7565b348015610544575f80fd5b506101e761055336600461247e565b611224565b348015610563575f80fd5b5061034c6105723660046123bb565b611458565b348015610582575f80fd5b5061034c6105913660046123bb565b606a6020525f908152604090205481565b3480156105ad575f80fd5b5061021b6105bc36600461247e565b611462565b3480156105cc575f80fd5b5061021b6105db3660046123bb565b61146f565b3480156105eb575f80fd5b5060675461034c565b5f6105ff8383611526565b90505b92915050565b60665473ffffffffffffffffffffffffffffffffffffffff1633146106b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4469766964656e643a2063616c6c6572206973206e6f7420746865207461782060448201527f746f6b656e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106bd826116c1565b6106d857606c548110156106ce57505f5b6106d882826117c8565b5050565b5f54610100900460ff16158080156106fa57505f54600160ff909116105b806107135750303b15801561071357505f5460ff166001145b61079f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106ab565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107fb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff841615801590610835575073ffffffffffffffffffffffffffffffffffffffff831615155b61089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4469766964656e643a207a65726f20696e69742061726700000000000000000060448201526064016106ab565b6108a36119cf565b6065805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556066805492861692909116919091179055606c829055801561095f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b61096d611a6d565b73ffffffffffffffffffffffffffffffffffffffff81166109ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4469766964656e643a207a65726f20746f6b656e20616464726573730000000060448201526064016106ab565b60675415610a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6d61676e69666965644469766964656e645065725368617265206d757374206260448201527f652030000000000000000000000000000000000000000000000000000000000060648201526084016106ab565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556066546040519282169392849291909116907fe43cd29974da792fd1a282c55f3e01b016859604161a97bf00c239c09d42698b905f90a45050565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606a6020526040812054610b2783611134565b61060291906124c2565b5f610b3d336001611526565b905090565b610b4a611a6d565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606d602052604090205460ff1615610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4469766964656e643a20616c7265616479206578636c7564656400000000000060448201526064016106ab565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606d6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055606990915290205415610c4057610c40815f6117c8565b60665460405173ffffffffffffffffffffffffffffffffffffffff8381168252909116907f1b1ece61be89bca3a229e1640eeb448a3522571e1e3ef4f185f501221054336a906020015b60405180910390a250565b5f610602826001611526565b610ca9611a6d565b73ffffffffffffffffffffffffffffffffffffffff8116610d26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4469766964656e643a20696e76616c696420726563697069656e74000000000060448201526064016106ab565b73ffffffffffffffffffffffffffffffffffffffff8316610eb157475f8315610d4f5783610d51565b815b905081811115610de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4469766964656e643a20696e73756666696369656e74204554482062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ab565b5f8373ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114610e39576040519150601f19603f3d011682016040523d82523d5f602084013e610e3e565b606091505b5050905080610ea9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4469766964656e643a20455448207472616e73666572206661696c656400000060448201526064016106ab565b505050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015283905f9073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015610f1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4191906124d5565b90505f8415610f505784610f52565b815b905081811115610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4469766964656e643a20696e73756666696369656e7420746f6b656e2062616c60448201527f616e63650000000000000000000000000000000000000000000000000000000060648201526084016106ab565b610ea973ffffffffffffffffffffffffffffffffffffffff84168583611aee565b505050565b611011611a6d565b61101a5f611bc2565b565b611024611a6d565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606d602052604090205460ff166110b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4469766964656e643a2061646472657373206e6f74206578636c75646564000060448201526064016106ab565b73ffffffffffffffffffffffffffffffffffffffff8181165f818152606d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560665491519283529216917f23b1c092f9c92d2df1088d98a58f43dcc785bd1c6a7cd35bc6af182b97b0f8ba9101610c8a565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606960205260408120606754815483917001000000000000000000000000000000009161117c91906124ec565b6111869190612503565b90505f82600101548211156111ab5760018301546111a4908361253b565b90506111ae565b505f5b60028301546111bd81836124c2565b9695505050505050565b5f805b8281101561121d576112028484838181106111e7576111e761254e565b90506020020160208101906111fc91906123bb565b5f611526565b1561121557816112118161257b565b9250505b6001016111ca565b5092915050565b5f815f0361123357505f919050565b6068545f0361124357505f919050565b6065546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156112af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d391906124d5565b6065549091506112fb9073ffffffffffffffffffffffffffffffffffffffff16333086611c38565b6065546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f91839173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561136b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138f91906124d5565b611399919061253b565b9050805f036113ab57505f9392505050565b6068546113c9700100000000000000000000000000000000836124ec565b6113d39190612503565b6067546113e091906124c2565b606755606b546113f19082906124c2565b606b5560665460675460408051848152602081019290925273ffffffffffffffffffffffffffffffffffffffff909216917ff27ab1f08a81fd83c11906204a427fc8161b153ac4f9ec99dbfdd179770667dc91015b60405180910390a25060019392505050565b5f61060282611134565b61146a611a6d565b606c55565b611477611a6d565b73ffffffffffffffffffffffffffffffffffffffff811661151a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106ab565b61152381611bc2565b50565b5f611530836116c1565b1561153c57505f610602565b5f61154684611134565b9050805f03611558575f915050610602565b73ffffffffffffffffffffffffffffffffffffffff84165f90815260696020526040902060675481546115a59161158e916124ec565b700100000000000000000000000000000000611c96565b6001820181905560665460405191825273ffffffffffffffffffffffffffffffffffffffff878116929116907f958648f1075e43b4e661b739150bd66c627e356790e068b3d6ca6b179bd4faa49060200160405180910390a35f6002820181905560665460405191825273ffffffffffffffffffffffffffffffffffffffff878116929116907f9133664e0c1d4082b28d273cba8cbf8736b36d7908b2e7dd51cc2fed219bdfed9060200160405180910390a373ffffffffffffffffffffffffffffffffffffffff85165f908152606a60205260409020546116889083906124c2565b73ffffffffffffffffffffffffffffffffffffffff86165f908152606a60205260409020556116b8858386611ccb565b95945050505050565b5f73ffffffffffffffffffffffffffffffffffffffff821615806116fc575073ffffffffffffffffffffffffffffffffffffffff821661dead145b8061171c575073ffffffffffffffffffffffffffffffffffffffff821630145b80611741575060665473ffffffffffffffffffffffffffffffffffffffff8381169116145b8061179757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061060257505073ffffffffffffffffffffffffffffffffffffffff165f908152606d602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260696020526040902080548083036117fb5750505050565b80156118ba575f7001000000000000000000000000000000006067548361182291906124ec565b61182c9190612503565b905082600101548111156118b8575f83600101548261184b919061253b565b905080846002015461185d91906124c2565b6002850181905560665460405191825273ffffffffffffffffffffffffffffffffffffffff888116929116907f9133664e0c1d4082b28d273cba8cbf8736b36d7908b2e7dd51cc2fed219bdfed9060200160405180910390a3505b505b808311156118e1576118cc818461253b565b6068546118d991906124c2565b6068556118fc565b6118eb838261253b565b6068546118f8919061253b565b6068555b8282556067546119109061158e90856124ec565b6001830181905560665460405191825273ffffffffffffffffffffffffffffffffffffffff868116929116907f958648f1075e43b4e661b739150bd66c627e356790e068b3d6ca6b179bd4faa49060200160405180910390a360665460685460405173ffffffffffffffffffffffffffffffffffffffff8088169316917f2a9333f5f64b9c9d299faa0d6699b5db8d59d08388fea8ae78ca2303836a10f8916119c191888252602082015260400190565b60405180910390a350505050565b5f54610100900460ff16611a65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b61101a611f3a565b60335473ffffffffffffffffffffffffffffffffffffffff16331461101a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ab565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526110049084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611fd9565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261095f9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611b40565b5f8215611cc35781611ca960018561253b565b611cb39190612503565b611cbe9060016124c2565b6105ff565b505f92915050565b6065545f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff9081169116148015611d4d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1615155b8015611d565750815b15611ec2576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d906024015f604051808303815f87803b158015611de0575f80fd5b505af1158015611df2573d5f803e3d5ffd5b505050505f8473ffffffffffffffffffffffffffffffffffffffff16846040515f6040518083038185875af1925050503d805f8114611e4c576040519150601f19603f3d011682016040523d82523d5f602084013e611e51565b606091505b5050905080611ebc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4469766964656e643a20455448207472616e73666572206661696c656400000060448201526064016106ab565b50611ee6565b606554611ee69073ffffffffffffffffffffffffffffffffffffffff168585611aee565b6066546040805173ffffffffffffffffffffffffffffffffffffffff878116825260208201879052909216917fb4f84034f421f03a9c4364810c8787355d32df2e0d63d0f568bf54ea91736db89101611446565b5f54610100900460ff16611fd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b61101a33611bc2565b5f61203a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166120e69092919063ffffffff16565b905080515f148061205a57508080602001905181019061205a91906125b2565b611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106ab565b60606120f484845f856120fc565b949350505050565b60608247101561218e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106ab565b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516121b691906125d4565b5f6040518083038185875af1925050503d805f81146121f0576040519150601f19603f3d011682016040523d82523d5f602084013e6121f5565b606091505b509150915061220687838387612211565b979650505050505050565b606083156122a65782515f0361229f5773ffffffffffffffffffffffffffffffffffffffff85163b61229f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ab565b50816120f4565b6120f483838151156122bb5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab91906125ea565b803573ffffffffffffffffffffffffffffffffffffffff81168114612312575f80fd5b919050565b8015158114611523575f80fd5b5f8060408385031215612335575f80fd5b61233e836122ef565b9150602083013561234e81612317565b809150509250929050565b5f806040838503121561236a575f80fd5b612373836122ef565b946020939093013593505050565b5f805f60608486031215612393575f80fd5b61239c846122ef565b92506123aa602085016122ef565b929592945050506040919091013590565b5f602082840312156123cb575f80fd5b6105ff826122ef565b5f805f606084860312156123e6575f80fd5b6123ef846122ef565b925060208401359150612404604085016122ef565b90509250925092565b5f806020838503121561241e575f80fd5b823567ffffffffffffffff811115612434575f80fd5b8301601f81018513612444575f80fd5b803567ffffffffffffffff81111561245a575f80fd5b8560208260051b840101111561246e575f80fd5b6020919091019590945092505050565b5f6020828403121561248e575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561060257610602612495565b5f602082840312156124e5575f80fd5b5051919050565b808202811582820484141761060257610602612495565b5f82612536577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561060257610602612495565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125ab576125ab612495565b5060010190565b5f602082840312156125c2575f80fd5b81516125cd81612317565b9392505050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea2646970667358221220e813fa9c6960854ae3e5a8a2a8f25c7ef5ecf00d4a4dab5325a563f89df605d664736f6c634300081a00330000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7300000000000000000000000000576e4fb32296cd973a0d413d0379609400dead
0x6080604052600436106101bd575f3560e01c80634eeb0fed116100f2578063a8b9d24011610092578063de3aaf6111610062578063de3aaf6114610577578063e9ac0f48146105a2578063f2fde38b146105c1578063fd9574e4146105e0575f80fd5b8063a8b9d240146104fb578063ac04cc401461051a578063b6b55f2514610539578063db90127e14610558575f80fd5b80637eb0ac5f116100cd5780637eb0ac5f1461048857806385a6b3ae1461049d5780638da5cb5b146104b2578063a852dc6e146104dc575f80fd5b80634eeb0fed14610422578063551512de14610455578063715018a614610474575f80fd5b806327ce01471161015d5780633a98ef39116101385780633a98ef391461038d5780633fc8cef3146103a2578063413f18a8146103d55780634e7b827f146103f4575f80fd5b806327ce01471461032d5780632e92abdd1461035a5780633758e6ce1461036e575f80fd5b80631794bb3c116101985780631794bb3c1461026e5780631959a0021461028d5780631fc928ae146102e257806320ffe2fd1461030e575f80fd5b80630b9e8349146101c857806314b6ca96146101fc5780631582358e1461021d575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b506101e76101e2366004612324565b6105f4565b60405190151581526020015b60405180910390f35b348015610207575f80fd5b5061021b610216366004612359565b610608565b005b348015610228575f80fd5b506065546102499073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101f3565b348015610279575f80fd5b5061021b610288366004612381565b6106dc565b348015610298575f80fd5b506102c76102a73660046123bb565b60696020525f908152604090208054600182015460029092015490919083565b604080519384526020840192909252908201526060016101f3565b3480156102ed575f80fd5b506066546102499073ffffffffffffffffffffffffffffffffffffffff1681565b348015610319575f80fd5b5061021b6103283660046123bb565b610965565b348015610338575f80fd5b5061034c6103473660046123bb565b610af9565b6040519081526020016101f3565b348015610365575f80fd5b506101e7610b31565b348015610379575f80fd5b5061021b6103883660046123bb565b610b42565b348015610398575f80fd5b5061034c60685481565b3480156103ad575f80fd5b506102497f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7381565b3480156103e0575f80fd5b506101e76103ef3660046123bb565b610c95565b3480156103ff575f80fd5b506101e761040e3660046123bb565b606d6020525f908152604090205460ff1681565b34801561042d575f80fd5b506102497f00000000000000000000000000576e4fb32296cd973a0d413d0379609400dead81565b348015610460575f80fd5b5061021b61046f3660046123d4565b610ca1565b34801561047f575f80fd5b5061021b611009565b348015610493575f80fd5b5061034c606c5481565b3480156104a8575f80fd5b5061034c606b5481565b3480156104bd575f80fd5b5060335473ffffffffffffffffffffffffffffffffffffffff16610249565b3480156104e7575f80fd5b5061021b6104f63660046123bb565b61101c565b348015610506575f80fd5b5061034c6105153660046123bb565b611134565b348015610525575f80fd5b5061034c61053436600461240d565b6111c7565b348015610544575f80fd5b506101e761055336600461247e565b611224565b348015610563575f80fd5b5061034c6105723660046123bb565b611458565b348015610582575f80fd5b5061034c6105913660046123bb565b606a6020525f908152604090205481565b3480156105ad575f80fd5b5061021b6105bc36600461247e565b611462565b3480156105cc575f80fd5b5061021b6105db3660046123bb565b61146f565b3480156105eb575f80fd5b5060675461034c565b5f6105ff8383611526565b90505b92915050565b60665473ffffffffffffffffffffffffffffffffffffffff1633146106b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4469766964656e643a2063616c6c6572206973206e6f7420746865207461782060448201527f746f6b656e00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6106bd826116c1565b6106d857606c548110156106ce57505f5b6106d882826117c8565b5050565b5f54610100900460ff16158080156106fa57505f54600160ff909116105b806107135750303b15801561071357505f5460ff166001145b61079f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016106ab565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156107fb575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b73ffffffffffffffffffffffffffffffffffffffff841615801590610835575073ffffffffffffffffffffffffffffffffffffffff831615155b61089b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4469766964656e643a207a65726f20696e69742061726700000000000000000060448201526064016106ab565b6108a36119cf565b6065805473ffffffffffffffffffffffffffffffffffffffff8087167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316179092556066805492861692909116919091179055606c829055801561095f575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b61096d611a6d565b73ffffffffffffffffffffffffffffffffffffffff81166109ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4469766964656e643a207a65726f20746f6b656e20616464726573730000000060448201526064016106ab565b60675415610a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f6d61676e69666965644469766964656e645065725368617265206d757374206260448201527f652030000000000000000000000000000000000000000000000000000000000060648201526084016106ab565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556066546040519282169392849291909116907fe43cd29974da792fd1a282c55f3e01b016859604161a97bf00c239c09d42698b905f90a45050565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606a6020526040812054610b2783611134565b61060291906124c2565b5f610b3d336001611526565b905090565b610b4a611a6d565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606d602052604090205460ff1615610bd9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4469766964656e643a20616c7265616479206578636c7564656400000000000060448201526064016106ab565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606d6020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055606990915290205415610c4057610c40815f6117c8565b60665460405173ffffffffffffffffffffffffffffffffffffffff8381168252909116907f1b1ece61be89bca3a229e1640eeb448a3522571e1e3ef4f185f501221054336a906020015b60405180910390a250565b5f610602826001611526565b610ca9611a6d565b73ffffffffffffffffffffffffffffffffffffffff8116610d26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4469766964656e643a20696e76616c696420726563697069656e74000000000060448201526064016106ab565b73ffffffffffffffffffffffffffffffffffffffff8316610eb157475f8315610d4f5783610d51565b815b905081811115610de3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4469766964656e643a20696e73756666696369656e74204554482062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016106ab565b5f8373ffffffffffffffffffffffffffffffffffffffff16826040515f6040518083038185875af1925050503d805f8114610e39576040519150601f19603f3d011682016040523d82523d5f602084013e610e3e565b606091505b5050905080610ea9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4469766964656e643a20455448207472616e73666572206661696c656400000060448201526064016106ab565b505050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015283905f9073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015610f1d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4191906124d5565b90505f8415610f505784610f52565b815b905081811115610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4469766964656e643a20696e73756666696369656e7420746f6b656e2062616c60448201527f616e63650000000000000000000000000000000000000000000000000000000060648201526084016106ab565b610ea973ffffffffffffffffffffffffffffffffffffffff84168583611aee565b505050565b611011611a6d565b61101a5f611bc2565b565b611024611a6d565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606d602052604090205460ff166110b2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4469766964656e643a2061646472657373206e6f74206578636c75646564000060448201526064016106ab565b73ffffffffffffffffffffffffffffffffffffffff8181165f818152606d602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905560665491519283529216917f23b1c092f9c92d2df1088d98a58f43dcc785bd1c6a7cd35bc6af182b97b0f8ba9101610c8a565b73ffffffffffffffffffffffffffffffffffffffff81165f908152606960205260408120606754815483917001000000000000000000000000000000009161117c91906124ec565b6111869190612503565b90505f82600101548211156111ab5760018301546111a4908361253b565b90506111ae565b505f5b60028301546111bd81836124c2565b9695505050505050565b5f805b8281101561121d576112028484838181106111e7576111e761254e565b90506020020160208101906111fc91906123bb565b5f611526565b1561121557816112118161257b565b9250505b6001016111ca565b5092915050565b5f815f0361123357505f919050565b6068545f0361124357505f919050565b6065546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f9173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa1580156112af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112d391906124d5565b6065549091506112fb9073ffffffffffffffffffffffffffffffffffffffff16333086611c38565b6065546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201525f91839173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801561136b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061138f91906124d5565b611399919061253b565b9050805f036113ab57505f9392505050565b6068546113c9700100000000000000000000000000000000836124ec565b6113d39190612503565b6067546113e091906124c2565b606755606b546113f19082906124c2565b606b5560665460675460408051848152602081019290925273ffffffffffffffffffffffffffffffffffffffff909216917ff27ab1f08a81fd83c11906204a427fc8161b153ac4f9ec99dbfdd179770667dc91015b60405180910390a25060019392505050565b5f61060282611134565b61146a611a6d565b606c55565b611477611a6d565b73ffffffffffffffffffffffffffffffffffffffff811661151a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106ab565b61152381611bc2565b50565b5f611530836116c1565b1561153c57505f610602565b5f61154684611134565b9050805f03611558575f915050610602565b73ffffffffffffffffffffffffffffffffffffffff84165f90815260696020526040902060675481546115a59161158e916124ec565b700100000000000000000000000000000000611c96565b6001820181905560665460405191825273ffffffffffffffffffffffffffffffffffffffff878116929116907f958648f1075e43b4e661b739150bd66c627e356790e068b3d6ca6b179bd4faa49060200160405180910390a35f6002820181905560665460405191825273ffffffffffffffffffffffffffffffffffffffff878116929116907f9133664e0c1d4082b28d273cba8cbf8736b36d7908b2e7dd51cc2fed219bdfed9060200160405180910390a373ffffffffffffffffffffffffffffffffffffffff85165f908152606a60205260409020546116889083906124c2565b73ffffffffffffffffffffffffffffffffffffffff86165f908152606a60205260409020556116b8858386611ccb565b95945050505050565b5f73ffffffffffffffffffffffffffffffffffffffff821615806116fc575073ffffffffffffffffffffffffffffffffffffffff821661dead145b8061171c575073ffffffffffffffffffffffffffffffffffffffff821630145b80611741575060665473ffffffffffffffffffffffffffffffffffffffff8381169116145b8061179757507f00000000000000000000000000576e4fb32296cd973a0d413d0379609400dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8061060257505073ffffffffffffffffffffffffffffffffffffffff165f908152606d602052604090205460ff1690565b73ffffffffffffffffffffffffffffffffffffffff82165f90815260696020526040902080548083036117fb5750505050565b80156118ba575f7001000000000000000000000000000000006067548361182291906124ec565b61182c9190612503565b905082600101548111156118b8575f83600101548261184b919061253b565b905080846002015461185d91906124c2565b6002850181905560665460405191825273ffffffffffffffffffffffffffffffffffffffff888116929116907f9133664e0c1d4082b28d273cba8cbf8736b36d7908b2e7dd51cc2fed219bdfed9060200160405180910390a3505b505b808311156118e1576118cc818461253b565b6068546118d991906124c2565b6068556118fc565b6118eb838261253b565b6068546118f8919061253b565b6068555b8282556067546119109061158e90856124ec565b6001830181905560665460405191825273ffffffffffffffffffffffffffffffffffffffff868116929116907f958648f1075e43b4e661b739150bd66c627e356790e068b3d6ca6b179bd4faa49060200160405180910390a360665460685460405173ffffffffffffffffffffffffffffffffffffffff8088169316917f2a9333f5f64b9c9d299faa0d6699b5db8d59d08388fea8ae78ca2303836a10f8916119c191888252602082015260400190565b60405180910390a350505050565b5f54610100900460ff16611a65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b61101a611f3a565b60335473ffffffffffffffffffffffffffffffffffffffff16331461101a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106ab565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526110049084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611fd9565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261095f9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401611b40565b5f8215611cc35781611ca960018561253b565b611cb39190612503565b611cbe9060016124c2565b6105ff565b505f92915050565b6065545f907f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7373ffffffffffffffffffffffffffffffffffffffff9081169116148015611d4d57507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7373ffffffffffffffffffffffffffffffffffffffff1615155b8015611d565750815b15611ec2576040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490527f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7373ffffffffffffffffffffffffffffffffffffffff1690632e1a7d4d906024015f604051808303815f87803b158015611de0575f80fd5b505af1158015611df2573d5f803e3d5ffd5b505050505f8473ffffffffffffffffffffffffffffffffffffffff16846040515f6040518083038185875af1925050503d805f8114611e4c576040519150601f19603f3d011682016040523d82523d5f602084013e611e51565b606091505b5050905080611ebc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4469766964656e643a20455448207472616e73666572206661696c656400000060448201526064016106ab565b50611ee6565b606554611ee69073ffffffffffffffffffffffffffffffffffffffff168585611aee565b6066546040805173ffffffffffffffffffffffffffffffffffffffff878116825260208201879052909216917fb4f84034f421f03a9c4364810c8787355d32df2e0d63d0f568bf54ea91736db89101611446565b5f54610100900460ff16611fd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016106ab565b61101a33611bc2565b5f61203a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166120e69092919063ffffffff16565b905080515f148061205a57508080602001905181019061205a91906125b2565b611004576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016106ab565b60606120f484845f856120fc565b949350505050565b60608247101561218e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016106ab565b5f808673ffffffffffffffffffffffffffffffffffffffff1685876040516121b691906125d4565b5f6040518083038185875af1925050503d805f81146121f0576040519150601f19603f3d011682016040523d82523d5f602084013e6121f5565b606091505b509150915061220687838387612211565b979650505050505050565b606083156122a65782515f0361229f5773ffffffffffffffffffffffffffffffffffffffff85163b61229f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106ab565b50816120f4565b6120f483838151156122bb5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab91906125ea565b803573ffffffffffffffffffffffffffffffffffffffff81168114612312575f80fd5b919050565b8015158114611523575f80fd5b5f8060408385031215612335575f80fd5b61233e836122ef565b9150602083013561234e81612317565b809150509250929050565b5f806040838503121561236a575f80fd5b612373836122ef565b946020939093013593505050565b5f805f60608486031215612393575f80fd5b61239c846122ef565b92506123aa602085016122ef565b929592945050506040919091013590565b5f602082840312156123cb575f80fd5b6105ff826122ef565b5f805f606084860312156123e6575f80fd5b6123ef846122ef565b925060208401359150612404604085016122ef565b90509250925092565b5f806020838503121561241e575f80fd5b823567ffffffffffffffff811115612434575f80fd5b8301601f81018513612444575f80fd5b803567ffffffffffffffff81111561245a575f80fd5b8560208260051b840101111561246e575f80fd5b6020919091019590945092505050565b5f6020828403121561248e575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561060257610602612495565b5f602082840312156124e5575f80fd5b5051919050565b808202811582820484141761060257610602612495565b5f82612536577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b8181038181111561060257610602612495565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125ab576125ab612495565b5060010190565b5f602082840312156125c2575f80fd5b81516125cd81612317565b9392505050565b5f82518060208501845e5f920191825250919050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168401019150509291505056fea2646970667358221220e813fa9c6960854ae3e5a8a2a8f25c7ef5ecf00d4a4dab5325a563f89df605d664736f6c634300081a0033
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| no token holdings | ||||
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x51e6a0…fd5918 | 19 days agoWed, 29 Jul 2026 05:40:04 UTC | 0x7f26b8…2498 | data: 0x000000000000000000…000000ff |
| 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 | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| No direct transactions — this address is only ever reached via internal calls (common for a contract only invoked through a router or proxy). View Internal Transactions → | |||||||||
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 39,361,518 | 1 hr agoTue, 18 Aug 2026 03:05:15 UTC | 0x90142c…9902ca | DELEGATECALL | claimDividend | 0xe8b4…a6cd | IN | 0x95dd…afd7 | 0.00022 ETH |
| 39,020,830 | 10 hrs agoMon, 17 Aug 2026 17:35:57 UTC | 0xdbc394…b4382f | DELEGATECALL | claimDividend | 0xe8b4…a6cd | IN | 0x95dd…afd7 | 0.00034 ETH |
| 37,917,333 | 1 day agoSun, 16 Aug 2026 10:50:40 UTC | 0x9951dd…4fdfb2 | DELEGATECALL | claimDividend | 0x9cac…9ff9 | IN | 0x95dd…afd7 | 0.00160 ETH |
| 33,854,827 | 6 days agoTue, 11 Aug 2026 17:50:05 UTC | 0x4d72f6…8fb2b5 | DELEGATECALL | claimDividend | 0xb75b…7392 | IN | 0x95dd…afd7 | 0.00003 ETH |
| 33,286,443 | 7 days agoTue, 11 Aug 2026 02:02:29 UTC | 0xdcdf4b…9d3e3b | DELEGATECALL | claimDividend | 0x662a…374f | IN | 0x95dd…afd7 | 0.00007 ETH |
| 33,000,882 | 7 days agoMon, 10 Aug 2026 18:06:11 UTC | 0xc8e9c8…db5e95 | DELEGATECALL | claimDividend | 0x662a…374f | IN | 0x95dd…afd7 | 0.00015 ETH |
| 32,845,403 | 7 days agoMon, 10 Aug 2026 13:46:48 UTC | 0xe0ae2f…1e95e9 | DELEGATECALL | claimDividend | 0x662a…374f | IN | 0x95dd…afd7 | 0.00009 ETH |
| 32,821,054 | 7 days agoMon, 10 Aug 2026 13:06:09 UTC | 0xb09e8c…3084a9 | DELEGATECALL | claimDividend | 0x662a…374f | IN | 0x95dd…afd7 | 0.00042 ETH |
| 32,770,796 | 7 days agoMon, 10 Aug 2026 11:42:12 UTC | 0xd1cef8…ff6b1c | DELEGATECALL | claimDividend | 0x662a…374f | IN | 0x95dd…afd7 | 0.00010 ETH |
| 32,767,344 | 7 days agoMon, 10 Aug 2026 11:36:26 UTC | 0xd452d3…0dce83 | DELEGATECALL | claimDividend | 0x662a…374f | IN | 0x95dd…afd7 | 0.00017 ETH |
| 31,059,484 | 9 days agoSat, 08 Aug 2026 12:05:10 UTC | 0xc69744…f771e7 | DELEGATECALL | claimDividend | 0x5df5…1374 | IN | 0x95dd…afd7 | 0.00000 ETH |
| 30,566,282 | 10 days agoFri, 07 Aug 2026 22:21:21 UTC | 0xee259a…3d617e | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00049 ETH |
| 30,565,967 | 10 days agoFri, 07 Aug 2026 22:20:49 UTC | 0xc9c77e…12f9bc | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00093 ETH |
| 29,718,835 | 11 days agoThu, 06 Aug 2026 22:46:26 UTC | 0x6a87b8…ad2a00 | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00166 ETH |
| 29,718,507 | 11 days agoThu, 06 Aug 2026 22:45:53 UTC | 0xe6ca80…d47cc3 | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00099 ETH |
| 29,718,308 | 11 days agoThu, 06 Aug 2026 22:45:33 UTC | 0xcf559b…058467 | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00123 ETH |
| 29,716,476 | 11 days agoThu, 06 Aug 2026 22:42:29 UTC | 0xec63a9…12dafe | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00088 ETH |
| 29,712,425 | 11 days agoThu, 06 Aug 2026 22:35:42 UTC | 0x7b0508…4fa31a | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00155 ETH |
| 29,711,737 | 11 days agoThu, 06 Aug 2026 22:34:33 UTC | 0x672ad2…dcaaf6 | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00164 ETH |
| 29,709,558 | 11 days agoThu, 06 Aug 2026 22:30:56 UTC | 0x826c87…e04f5e | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00151 ETH |
| 29,708,955 | 11 days agoThu, 06 Aug 2026 22:29:55 UTC | 0x4ad33e…62efe7 | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00152 ETH |
| 29,706,232 | 11 days agoThu, 06 Aug 2026 22:25:22 UTC | 0xead46f…8ac7a6 | DELEGATECALL | claimDividend | 0xd800…d9ad | IN | 0x95dd…afd7 | 0.00165 ETH |
| 29,478,290 | 11 days agoThu, 06 Aug 2026 16:05:01 UTC | 0x624b9b…04367a | DELEGATECALL | 0x60808060 | 0x37fe…04fb | IN | 0x95dd…afd7 | 0.00004 ETH |
| 29,478,233 | 11 days agoThu, 06 Aug 2026 16:04:56 UTC | 0x2a3fc1…d7c35e | DELEGATECALL | 0x60808060 | 0x767c…0b42 | IN | 0x95dd…afd7 | 0.00020 ETH |
| 29,380,176 | 11 days agoThu, 06 Aug 2026 13:21:10 UTC | 0xf36cd7…3a6e00 | DELEGATECALL | 0x60808060 | 0x5556…b2c9 | IN | 0x95dd…afd7 | 0.00004 ETH |