Transaction Hash:
Block:
21311817 at Dec-02-2024 02:22:59 AM +UTC
Transaction Fee:
0.000533029816989285 ETH
$0.97
Gas Used:
32,109 Gas / 16.600635865 Gwei
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 14.98618859185046517 Eth | 14.98622349777298125 Eth | 0.00003490592251608 | |
0xcF8A4Ff0...E0aA51A9D | |||||
0xeCAB3064...F8f51fE8D | (OnChainDynamics: Deployer) |
0.552505920519485843 Eth
Nonce: 273
|
0.551972890702496558 Eth
Nonce: 274
| 0.000533029816989285 |
Execution Trace
ClaimContract.addWalletsData( wallet=[0x571813C3cD7FC81b450a08FeC26a6816a090a6b5], amount=[95470936385019400] )
addWalletsData[ClaimContract (ln:27)]
//SPDX-License-Identifier: MIT Licensed pragma solidity ^0.8.18; contract ClaimContract { address public owner; uint256 public totalAddedReward; uint256 public totalClaimedReward; uint256 public totalUsersClaimed; bool public enableClaim; mapping(address => uint256) public userBalance; mapping(address => uint256) public claimedBalance; mapping(address => bool) public alreadyClaimed; modifier onlyOwner() { require(msg.sender == owner, " Not an owner"); _; } receive() external payable { totalAddedReward += msg.value; } constructor(address _owner) { owner = _owner; } function addWalletsData( address[] memory wallet, uint256[] memory amount ) public onlyOwner { require( wallet.length == amount.length, "wallet and amount length mismatch" ); for (uint256 i = 0; i < wallet.length; i++) { userBalance[wallet[i]] += amount[i]; } } function claim() public { require(enableClaim, "wait for owner to start claim"); uint256 availableBalance = userBalance[msg.sender] - claimedBalance[msg.sender]; require(availableBalance > 0, "already claimed"); claimedBalance[msg.sender] += availableBalance; totalClaimedReward += availableBalance; if (!alreadyClaimed[msg.sender]) { totalUsersClaimed++; alreadyClaimed[msg.sender] = true; } payable(msg.sender).transfer(availableBalance); } function enableClaimState(bool _state) external onlyOwner { enableClaim = _state; } // transfer ownership function changeOwner(address payable _newOwner) external onlyOwner { owner = _newOwner; } // to draw out tokens function transferStuckFunds( address _receiver, uint256 _value ) external onlyOwner { payable(_receiver).transfer(_value); } }