ETH Price: $2,666.78 (-1.37%)

Contract

0x6fB2aa2443564d9430b9483B1A5eeA13a522dF45
 

Overview

ETH Balance

0.048417935143612193 ETH

Eth Value

$129.12 (@ $2,666.78/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer213067552024-12-01 9:26:3577 days ago1733045195IN
0x6fB2aa24...3a522dF45
0.0468566 ETH0.000200039.50049602
Transfer212219302024-11-19 12:58:5989 days ago1732021139IN
0x6fB2aa24...3a522dF45
0.04600204 ETH0.0005062524.04442372
Transfer211915862024-11-15 7:25:1193 days ago1731655511IN
0x6fB2aa24...3a522dF45
0.0446025 ETH0.0002636412.52192324
Transfer211897462024-11-15 1:15:2394 days ago1731633323IN
0x6fB2aa24...3a522dF45
0.05416629 ETH0.0003546316.84331784
Transfer211265362024-11-06 5:30:59102 days ago1730871059IN
0x6fB2aa24...3a522dF45
0.28057568 ETH0.0004784722.72516528
Transfer211265362024-11-06 5:30:59102 days ago1730871059IN
0x6fB2aa24...3a522dF45
1 wei0.024339581,156
Transfer210407252024-10-25 6:05:59114 days ago1729836359IN
0x6fB2aa24...3a522dF45
0.02270364 ETH0.000089174.23519967
Transfer210218672024-10-22 14:58:23117 days ago1729609103IN
0x6fB2aa24...3a522dF45
0.04864182 ETH0.0002795713.27836952
Transfer210097922024-10-20 22:32:11119 days ago1729463531IN
0x6fB2aa24...3a522dF45
0.02633504 ETH0.000148317.0439567
Transfer210043442024-10-20 4:17:11120 days ago1729397831IN
0x6fB2aa24...3a522dF45
0.01734391 ETH0.00012425.89914391
Transfer210030772024-10-20 0:02:47120 days ago1729382567IN
0x6fB2aa24...3a522dF45
0.04088851 ETH0.000120115.70501581
Transfer209511922024-10-12 18:04:35127 days ago1728756275IN
0x6fB2aa24...3a522dF45
0.09827578 ETH0.0013363163.46790752
Transfer207907592024-09-20 8:58:59149 days ago1726822739IN
0x6fB2aa24...3a522dF45
0.06831403 ETH0.0003413416.21217794
Transfer207829602024-09-19 6:50:59150 days ago1726728659IN
0x6fB2aa24...3a522dF45
0.11128477 ETH0.000182148.65072446
Transfer207782822024-09-18 15:09:59151 days ago1726672199IN
0x6fB2aa24...3a522dF45
0.04932163 ETH0.0002381411.31082256
Transfer206920202024-09-06 14:02:11163 days ago1725631331IN
0x6fB2aa24...3a522dF45
0.1035576 ETH0.0006304329.94238471
Transfer206805402024-09-04 23:35:23165 days ago1725492923IN
0x6fB2aa24...3a522dF45
0.09768236 ETH0.000044492.11325471
Transfer205867262024-08-22 21:06:35178 days ago1724360795IN
0x6fB2aa24...3a522dF45
0.02774768 ETH0.000023521.11741066
Transfer204678562024-08-06 6:52:11194 days ago1722927131IN
0x6fB2aa24...3a522dF45
0.04985717 ETH0.000066813.17350665
Transfer204670252024-08-06 4:04:59195 days ago1722917099IN
0x6fB2aa24...3a522dF45
0.32747475 ETH0.000035531.6877479
Transfer204591652024-08-05 1:45:59196 days ago1722822359IN
0x6fB2aa24...3a522dF45
0.9148704 ETH0.00615795292.46989156
Transfer204053912024-07-28 13:37:35203 days ago1722173855IN
0x6fB2aa24...3a522dF45
0.15927656 ETH0.000040081.90377951
Transfer203753332024-07-24 8:53:47207 days ago1721811227IN
0x6fB2aa24...3a522dF45
0.0187722 ETH0.000052082.47368742
Transfer201165472024-06-18 5:24:47243 days ago1718688287IN
0x6fB2aa24...3a522dF45
0.03649452 ETH0.000114095.4187426
Transfer200436772024-06-08 0:57:59254 days ago1717808279IN
0x6fB2aa24...3a522dF45
0.22686898 ETH0.000149267.08911861
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
213687212024-12-10 1:06:5969 days ago1733792819
0x6fB2aa24...3a522dF45
0.0468566 ETH
212288812024-11-20 12:14:2388 days ago1732104863
0x6fB2aa24...3a522dF45
0.04600204 ETH
211930272024-11-15 12:14:2393 days ago1731672863
0x6fB2aa24...3a522dF45
0.0987688 ETH
211285412024-11-06 12:14:35102 days ago1730895275
0x6fB2aa24...3a522dF45
0.28057568 ETH
210425602024-10-25 12:13:59114 days ago1729858439
0x6fB2aa24...3a522dF45
0.02270364 ETH
210282162024-10-23 12:14:11116 days ago1729685651
0x6fB2aa24...3a522dF45
0.04864182 ETH
210138832024-10-21 12:14:23118 days ago1729512863
0x6fB2aa24...3a522dF45
0.02633504 ETH
210067222024-10-20 12:14:23119 days ago1729426463
0x6fB2aa24...3a522dF45
0.05823243 ETH
209565792024-10-13 12:14:11126 days ago1728821651
0x6fB2aa24...3a522dF45
0.09827578 ETH
207917302024-09-20 12:14:23149 days ago1726834463
0x6fB2aa24...3a522dF45
0.06831403 ETH
207845722024-09-19 12:14:35150 days ago1726748075
0x6fB2aa24...3a522dF45
0.1606064 ETH
206986522024-09-07 12:14:11162 days ago1725711251
0x6fB2aa24...3a522dF45
0.1035576 ETH
206843132024-09-05 12:13:59164 days ago1725538439
0x6fB2aa24...3a522dF45
0.09768236 ETH
206341682024-08-29 12:13:59171 days ago1724933639
0x6fB2aa24...3a522dF45
0.00420876 ETH
205912282024-08-23 12:13:59177 days ago1724415239
0x6fB2aa24...3a522dF45
0.02774768 ETH
204694632024-08-06 12:14:47194 days ago1722946487
0x6fB2aa24...3a522dF45
0.37733193 ETH
204629482024-08-05 14:25:35195 days ago1722867935
0x6fB2aa24...3a522dF45
0.9148704 ETH
204121492024-07-29 12:14:23202 days ago1722255263
0x6fB2aa24...3a522dF45
0.15927656 ETH
203763342024-07-24 12:14:23207 days ago1721823263
0x6fB2aa24...3a522dF45
0.0187722 ETH
201185702024-06-18 12:13:59243 days ago1718712839
0x6fB2aa24...3a522dF45
0.03649452 ETH
200470412024-06-08 12:14:11253 days ago1717848851
0x6fB2aa24...3a522dF45
0.22686898 ETH
199908642024-05-31 16:00:11261 days ago1717171211
0x6fB2aa24...3a522dF45
0.02229851 ETH
198824692024-05-16 12:14:35276 days ago1715861675
0x6fB2aa24...3a522dF45
0.02986828 ETH
198252722024-05-08 12:14:11284 days ago1715170451
0x6fB2aa24...3a522dF45
0.06132597 ETH
198109752024-05-06 12:14:35286 days ago1714997675
0x6fB2aa24...3a522dF45
0.01857236 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StafiFeePool

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-27
*/

pragma solidity 0.7.6;

// SPDX-License-Identifier: GPL-3.0-only


library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) return 0;
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}

interface IStafiFeePool {
    function withdrawEther(address _to, uint256 _amount) external;
}

interface IStafiStorage {

    // Getters
    function getAddress(bytes32 _key) external view returns (address);
    function getUint(bytes32 _key) external view returns (uint);
    function getString(bytes32 _key) external view returns (string memory);
    function getBytes(bytes32 _key) external view returns (bytes memory);
    function getBool(bytes32 _key) external view returns (bool);
    function getInt(bytes32 _key) external view returns (int);
    function getBytes32(bytes32 _key) external view returns (bytes32);

    // Setters
    function setAddress(bytes32 _key, address _value) external;
    function setUint(bytes32 _key, uint _value) external;
    function setString(bytes32 _key, string calldata _value) external;
    function setBytes(bytes32 _key, bytes calldata _value) external;
    function setBool(bytes32 _key, bool _value) external;
    function setInt(bytes32 _key, int _value) external;
    function setBytes32(bytes32 _key, bytes32 _value) external;

    // Deleters
    function deleteAddress(bytes32 _key) external;
    function deleteUint(bytes32 _key) external;
    function deleteString(bytes32 _key) external;
    function deleteBytes(bytes32 _key) external;
    function deleteBool(bytes32 _key) external;
    function deleteInt(bytes32 _key) external;
    function deleteBytes32(bytes32 _key) external;

}


abstract contract StafiBase {

    // Version of the contract
    uint8 public version;

    // The main storage contract where primary persistant storage is maintained
    IStafiStorage stafiStorage = IStafiStorage(0);


    /**
    * @dev Throws if called by any sender that doesn't match a network contract
    */
    modifier onlyLatestNetworkContract() {
        require(getBool(keccak256(abi.encodePacked("contract.exists", msg.sender))), "Invalid or outdated network contract");
        _;
    }


    /**
    * @dev Throws if called by any sender that doesn't match one of the supplied contract or is the latest version of that contract
    */
    modifier onlyLatestContract(string memory _contractName, address _contractAddress) {
        require(_contractAddress == getAddress(keccak256(abi.encodePacked("contract.address", _contractName))), "Invalid or outdated contract");
        _;
    }


    /**
    * @dev Throws if called by any sender that isn't a trusted node
    */
    modifier onlyTrustedNode(address _nodeAddress) {
        require(getBool(keccak256(abi.encodePacked("node.trusted", _nodeAddress))), "Invalid trusted node");
        _;
    }
    
    /**
    * @dev Throws if called by any sender that isn't a super node
    */
    modifier onlySuperNode(address _nodeAddress) {
        require(getBool(keccak256(abi.encodePacked("node.super", _nodeAddress))), "Invalid super node");
        _;
    }


    /**
    * @dev Throws if called by any sender that isn't a registered staking pool
    */
    modifier onlyRegisteredStakingPool(address _stakingPoolAddress) {
        require(getBool(keccak256(abi.encodePacked("stakingpool.exists", _stakingPoolAddress))), "Invalid staking pool");
        _;
    }


    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyOwner() {
        require(roleHas("owner", msg.sender), "Account is not the owner");
        _;
    }


    /**
    * @dev Modifier to scope access to admins
    */
    modifier onlyAdmin() {
        require(roleHas("admin", msg.sender), "Account is not an admin");
        _;
    }


    /**
    * @dev Modifier to scope access to admins
    */
    modifier onlySuperUser() {
        require(roleHas("owner", msg.sender) || roleHas("admin", msg.sender), "Account is not a super user");
        _;
    }


    /**
    * @dev Reverts if the address doesn't have this role
    */
    modifier onlyRole(string memory _role) {
        require(roleHas(_role, msg.sender), "Account does not match the specified role");
        _;
    }


    /// @dev Set the main Storage address
    constructor(address _stafiStorageAddress) {
        // Update the contract address
        stafiStorage = IStafiStorage(_stafiStorageAddress);
    }


    /// @dev Get the address of a network contract by name
    function getContractAddress(string memory _contractName) internal view returns (address) {
        // Get the current contract address
        address contractAddress = getAddress(keccak256(abi.encodePacked("contract.address", _contractName)));
        // Check it
        require(contractAddress != address(0x0), "Contract not found");
        // Return
        return contractAddress;
    }


    /// @dev Get the name of a network contract by address
    function getContractName(address _contractAddress) internal view returns (string memory) {
        // Get the contract name
        string memory contractName = getString(keccak256(abi.encodePacked("contract.name", _contractAddress)));
        // Check it
        require(keccak256(abi.encodePacked(contractName)) != keccak256(abi.encodePacked("")), "Contract not found");
        // Return
        return contractName;
    }


    /// @dev Storage get methods
    function getAddress(bytes32 _key) internal view returns (address) { return stafiStorage.getAddress(_key); }
    function getUint(bytes32 _key) internal view returns (uint256) { return stafiStorage.getUint(_key); }
    function getString(bytes32 _key) internal view returns (string memory) { return stafiStorage.getString(_key); }
    function getBytes(bytes32 _key) internal view returns (bytes memory) { return stafiStorage.getBytes(_key); }
    function getBool(bytes32 _key) internal view returns (bool) { return stafiStorage.getBool(_key); }
    function getInt(bytes32 _key) internal view returns (int256) { return stafiStorage.getInt(_key); }
    function getBytes32(bytes32 _key) internal view returns (bytes32) { return stafiStorage.getBytes32(_key); }
    function getAddressS(string memory _key) internal view returns (address) { return stafiStorage.getAddress(keccak256(abi.encodePacked(_key))); }
    function getUintS(string memory _key) internal view returns (uint256) { return stafiStorage.getUint(keccak256(abi.encodePacked(_key))); }
    function getStringS(string memory _key) internal view returns (string memory) { return stafiStorage.getString(keccak256(abi.encodePacked(_key))); }
    function getBytesS(string memory _key) internal view returns (bytes memory) { return stafiStorage.getBytes(keccak256(abi.encodePacked(_key))); }
    function getBoolS(string memory _key) internal view returns (bool) { return stafiStorage.getBool(keccak256(abi.encodePacked(_key))); }
    function getIntS(string memory _key) internal view returns (int256) { return stafiStorage.getInt(keccak256(abi.encodePacked(_key))); }
    function getBytes32S(string memory _key) internal view returns (bytes32) { return stafiStorage.getBytes32(keccak256(abi.encodePacked(_key))); }

    /// @dev Storage set methods
    function setAddress(bytes32 _key, address _value) internal { stafiStorage.setAddress(_key, _value); }
    function setUint(bytes32 _key, uint256 _value) internal { stafiStorage.setUint(_key, _value); }
    function setString(bytes32 _key, string memory _value) internal { stafiStorage.setString(_key, _value); }
    function setBytes(bytes32 _key, bytes memory _value) internal { stafiStorage.setBytes(_key, _value); }
    function setBool(bytes32 _key, bool _value) internal { stafiStorage.setBool(_key, _value); }
    function setInt(bytes32 _key, int256 _value) internal { stafiStorage.setInt(_key, _value); }
    function setBytes32(bytes32 _key, bytes32 _value) internal { stafiStorage.setBytes32(_key, _value); }
    function setAddressS(string memory _key, address _value) internal { stafiStorage.setAddress(keccak256(abi.encodePacked(_key)), _value); }
    function setUintS(string memory _key, uint256 _value) internal { stafiStorage.setUint(keccak256(abi.encodePacked(_key)), _value); }
    function setStringS(string memory _key, string memory _value) internal { stafiStorage.setString(keccak256(abi.encodePacked(_key)), _value); }
    function setBytesS(string memory _key, bytes memory _value) internal { stafiStorage.setBytes(keccak256(abi.encodePacked(_key)), _value); }
    function setBoolS(string memory _key, bool _value) internal { stafiStorage.setBool(keccak256(abi.encodePacked(_key)), _value); }
    function setIntS(string memory _key, int256 _value) internal { stafiStorage.setInt(keccak256(abi.encodePacked(_key)), _value); }
    function setBytes32S(string memory _key, bytes32 _value) internal { stafiStorage.setBytes32(keccak256(abi.encodePacked(_key)), _value); }

    /// @dev Storage delete methods
    function deleteAddress(bytes32 _key) internal { stafiStorage.deleteAddress(_key); }
    function deleteUint(bytes32 _key) internal { stafiStorage.deleteUint(_key); }
    function deleteString(bytes32 _key) internal { stafiStorage.deleteString(_key); }
    function deleteBytes(bytes32 _key) internal { stafiStorage.deleteBytes(_key); }
    function deleteBool(bytes32 _key) internal { stafiStorage.deleteBool(_key); }
    function deleteInt(bytes32 _key) internal { stafiStorage.deleteInt(_key); }
    function deleteBytes32(bytes32 _key) internal { stafiStorage.deleteBytes32(_key); }
    function deleteAddressS(string memory _key) internal { stafiStorage.deleteAddress(keccak256(abi.encodePacked(_key))); }
    function deleteUintS(string memory _key) internal { stafiStorage.deleteUint(keccak256(abi.encodePacked(_key))); }
    function deleteStringS(string memory _key) internal { stafiStorage.deleteString(keccak256(abi.encodePacked(_key))); }
    function deleteBytesS(string memory _key) internal { stafiStorage.deleteBytes(keccak256(abi.encodePacked(_key))); }
    function deleteBoolS(string memory _key) internal { stafiStorage.deleteBool(keccak256(abi.encodePacked(_key))); }
    function deleteIntS(string memory _key) internal { stafiStorage.deleteInt(keccak256(abi.encodePacked(_key))); }
    function deleteBytes32S(string memory _key) internal { stafiStorage.deleteBytes32(keccak256(abi.encodePacked(_key))); }


    /**
    * @dev Check if an address has this role
    */
    function roleHas(string memory _role, address _address) internal view returns (bool) {
        return getBool(keccak256(abi.encodePacked("access.role", _role, _address)));
    }

}


// receive priority fee
contract StafiFeePool is StafiBase, IStafiFeePool {

    // Libs
    using SafeMath for uint256;

    // Events
    event EtherWithdrawn(string indexed by, address indexed to, uint256 amount, uint256 time);

    // Construct
    constructor(address _stafiStorageAddress) StafiBase(_stafiStorageAddress) {
        // Version
        version = 1;
    }

    // Allow receiving ETH
    receive() payable external {}

    // Withdraws ETH to given address
    // Only accepts calls from network contracts
    function withdrawEther(address _to, uint256 _amount) override external onlyLatestNetworkContract {
        // Valid amount?
        require(_amount > 0, "No valid amount of ETH given to withdraw");
        // Get contract name
        string memory contractName = getContractName(msg.sender);
        // Send the ETH
        (bool result,) = _to.call{value: _amount}("");
        require(result, "Failed to withdraw ETH");
        // Emit ether withdrawn event
        emit EtherWithdrawn(contractName, _to, _amount, block.timestamp);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_stafiStorageAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"by","type":"string"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"EtherWithdrawn","type":"event"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260008060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005157600080fd5b506040516108be3803806108be8339818101604052602081101561007457600080fd5b81019080805190602001909291905050508080600060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060016000806101000a81548160ff021916908360ff160217905550506107cb806100f36000396000f3fe60806040526004361061002d5760003560e01c8063522f68151461003957806354fd4d501461009457610034565b3661003457005b600080fd5b34801561004557600080fd5b506100926004803603604081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506100c2565b005b3480156100a057600080fd5b506100a9610386565b604051808260ff16815260200191505060405180910390f35b6101323360405160200180807f636f6e74726163742e6578697374730000000000000000000000000000000000815250600f018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120610397565b610187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061074a6024913960400191505060405180910390fd5b600081116101e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061076e6028913960400191505060405180910390fd5b60006101eb3361044d565b905060008373ffffffffffffffffffffffffffffffffffffffff168360405180600001905060006040518083038185875af1925050503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b50509050806102c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4661696c656420746f207769746864726177204554480000000000000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b6020831061031457805182526020820191506020810190506020830392506102f1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207fff381a086696de98df05e634263390296dd1d097ef34a1be9a91daead07fb01d8542604051808381526020018281526020019250505060405180910390a350505050565b60008054906101000a900460ff1681565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561040b57600080fd5b505afa15801561041f573d6000803e3d6000fd5b505050506040513d602081101561043557600080fd5b81019080805190602001909291905050509050919050565b606060006104c18360405160200180807f636f6e74726163742e6e616d6500000000000000000000000000000000000000815250600d018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206105d4565b905060405160200180600001905060405160208183030381529060405280519060200120816040516020018082805190602001908083835b6020831061051c57805182526020820191506020810190506020830392506104f9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014156105cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e7472616374206e6f7420666f756e64000000000000000000000000000081525060200191505060405180910390fd5b80915050919050565b6060600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663986e791a836040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561064957600080fd5b505afa15801561065d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561068757600080fd5b81019080805160405193929190846401000000008211156106a757600080fd5b838201915060208201858111156106bd57600080fd5b82518660018202830111640100000000821117156106da57600080fd5b8083526020830192505050908051906020019080838360005b8381101561070e5780820151818401526020810190506106f3565b50505050905090810190601f16801561073b5780820380516001836020036101000a031916815260200191505b50604052505050905091905056fe496e76616c6964206f72206f75746461746564206e6574776f726b20636f6e74726163744e6f2076616c696420616d6f756e74206f662045544820676976656e20746f207769746864726177a26469706673582212200f03519e3f86d2342b531cb3eca12b251ac7dc92f4e25244aff0bc8cfb6cafba64736f6c634300070600330000000000000000000000006c2f7b6110a37b3b0fbdd811876be368df02e8b0

Deployed Bytecode

0x60806040526004361061002d5760003560e01c8063522f68151461003957806354fd4d501461009457610034565b3661003457005b600080fd5b34801561004557600080fd5b506100926004803603604081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506100c2565b005b3480156100a057600080fd5b506100a9610386565b604051808260ff16815260200191505060405180910390f35b6101323360405160200180807f636f6e74726163742e6578697374730000000000000000000000000000000000815250600f018273ffffffffffffffffffffffffffffffffffffffff1660601b815260140191505060405160208183030381529060405280519060200120610397565b610187576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061074a6024913960400191505060405180910390fd5b600081116101e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061076e6028913960400191505060405180910390fd5b60006101eb3361044d565b905060008373ffffffffffffffffffffffffffffffffffffffff168360405180600001905060006040518083038185875af1925050503d806000811461024d576040519150601f19603f3d011682016040523d82523d6000602084013e610252565b606091505b50509050806102c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4661696c656420746f207769746864726177204554480000000000000000000081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b6020831061031457805182526020820191506020810190506020830392506102f1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207fff381a086696de98df05e634263390296dd1d097ef34a1be9a91daead07fb01d8542604051808381526020018281526020019250505060405180910390a350505050565b60008054906101000a900460ff1681565b60008060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ae1cfca836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561040b57600080fd5b505afa15801561041f573d6000803e3d6000fd5b505050506040513d602081101561043557600080fd5b81019080805190602001909291905050509050919050565b606060006104c18360405160200180807f636f6e74726163742e6e616d6500000000000000000000000000000000000000815250600d018273ffffffffffffffffffffffffffffffffffffffff1660601b8152601401915050604051602081830303815290604052805190602001206105d4565b905060405160200180600001905060405160208183030381529060405280519060200120816040516020018082805190602001908083835b6020831061051c57805182526020820191506020810190506020830392506104f9565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040528051906020012014156105cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e7472616374206e6f7420666f756e64000000000000000000000000000081525060200191505060405180910390fd5b80915050919050565b6060600060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663986e791a836040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801561064957600080fd5b505afa15801561065d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561068757600080fd5b81019080805160405193929190846401000000008211156106a757600080fd5b838201915060208201858111156106bd57600080fd5b82518660018202830111640100000000821117156106da57600080fd5b8083526020830192505050908051906020019080838360005b8381101561070e5780820151818401526020810190506106f3565b50505050905090810190601f16801561073b5780820380516001836020036101000a031916815260200191505b50604052505050905091905056fe496e76616c6964206f72206f75746461746564206e6574776f726b20636f6e74726163744e6f2076616c696420616d6f756e74206f662045544820676976656e20746f207769746864726177a26469706673582212200f03519e3f86d2342b531cb3eca12b251ac7dc92f4e25244aff0bc8cfb6cafba64736f6c63430007060033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006c2f7b6110a37b3b0fbdd811876be368df02e8b0

-----Decoded View---------------
Arg [0] : _stafiStorageAddress (address): 0x6c2f7b6110a37b3B0fbdd811876be368df02E8B0

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006c2f7b6110a37b3b0fbdd811876be368df02e8b0


Deployed Bytecode Sourcemap

17522:1077:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18046:550;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8416:20;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18046:550;8736:67;8790:10;8754:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8744:58;;;;;;8736:7;:67::i;:::-;8728:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18198:1:::1;18188:7;:11;18180:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18285:26;18314:27;18330:10;18314:15;:27::i;:::-;18285:56;;18378:11;18394:3;:8;;18410:7;18394:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18377:45;;;18441:6;18433:41;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;18558:3;18529:59;;18544:12;18529:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18563:7;18572:15;18529:59;;;;;;;;;;;;;;;;;;;;;;;;8855:1;;18046:550:::0;;:::o;8416:20::-;;;;;;;;;;;;:::o;12662:98::-;12716:4;12731:12;;;;;;;;;;;:20;;;12752:4;12731:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12724:33;;12662:98;;;:::o;11735:432::-;11809:13;11869:26;11898:73;11952:16;11918:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11908:62;;;;;;11898:9;:73::i;:::-;11869:102;;12066:20;;;;;;;;;;;;;;;;;;;;;12056:31;;;;;;12038:12;12021:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12011:41;;;;;;:76;;12003:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12147:12;12140:19;;;11735:432;;;:::o;12431:111::-;12487:13;12511:12;;;;;;;;;;;:22;;;12534:4;12511:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12504:35;;12431:111;;;:::o

Swarm Source

ipfs://0f03519e3f86d2342b531cb3eca12b251ac7dc92f4e25244aff0bc8cfb6cafba

 Latest 25 blocks (From a total of 37 blocks with 2.39 Ether produced)

Block Transaction Difficulty Gas Used Reward
206310392024-08-29 1:42:59172 days ago1724895779890.00 TH6,725,746 (22.42%)
0.004208768129174647 ETH
193337502024-02-29 14:25:23353 days ago17092167232280.00 TH17,466,533 (58.22%)
0.084494087778304475 ETH
191858162024-02-08 20:27:11374 days ago17074240311330.00 TH10,423,526 (34.75%)
0.086055174663324627 ETH
183923172023-10-20 15:06:35485 days ago16978143952890.00 TH26,351,716 (87.84%)
0.064486663430664116 ETH
181287902023-09-13 17:12:35522 days ago16946251551360.00 TH11,719,151 (39.06%)
0.057343989666530624 ETH
180352842023-08-31 14:54:23535 days ago16934936631320.00 TH12,608,802 (42.03%)
0.022247479134064325 ETH
180042622023-08-27 6:37:47539 days ago1693118267860.00 TH6,852,660 (22.84%)
0.01190710697922715 ETH
179292922023-08-16 18:51:47550 days ago16922119071410.00 TH18,080,840 (60.27%)
0.066022650735919197 ETH
178507982023-08-05 19:16:35561 days ago16912629951180.00 TH17,163,762 (57.21%)
0.017322738120783763 ETH
177630402023-07-24 12:44:11573 days ago16902026511380.00 TH22,233,537 (74.11%)
0.056571633486878336 ETH
177208402023-07-18 14:55:59579 days ago16896921591620.00 TH18,748,726 (62.50%)
0.043894714321159664 ETH
177034162023-07-16 4:13:47582 days ago16894808271000.00 TH10,975,240 (36.58%)
0.130527657107242848 ETH
176497172023-07-08 14:44:47589 days ago16888274871150.00 TH9,345,674 (31.15%)
0.042574553275616209 ETH
175550472023-06-25 7:35:47602 days ago16876785471030.00 TH29,772,315 (99.24%)
0.051016398372952529 ETH
174226892023-06-06 16:48:35621 days ago16860701151350.00 TH9,263,835 (30.88%)
0.047713931524225023 ETH
173933132023-06-02 13:21:59625 days ago16857121191260.00 TH13,890,477 (46.30%)
0.100753210178943112 ETH
173743062023-05-30 21:06:59628 days ago16854808191160.00 TH11,669,888 (38.90%)
0.127283700838529588 ETH
173403822023-05-26 2:43:23633 days ago16850690031250.00 TH12,695,567 (42.32%)
0.079773569557754211 ETH
173333722023-05-25 3:03:59634 days ago16849838391270.00 TH11,493,445 (38.31%)
0.092824617646500117 ETH
173134512023-05-22 7:47:47636 days ago16847416671770.00 TH12,891,632 (42.97%)
0.048301248247030084 ETH
171969292023-05-05 20:52:47653 days ago16833199671560.00 TH11,830,171 (39.43%)
0.347815634490591454 ETH
171617272023-04-30 22:07:11658 days ago16828924311900.00 TH16,763,363 (55.88%)
0.037669508784588929 ETH
171430992023-04-28 7:19:35660 days ago16826663751040.00 TH9,158,106 (30.53%)
0.027783881845349052 ETH
171093032023-04-23 13:27:11665 days ago16822564311400.00 TH11,990,033 (39.97%)
0.096400326849943353 ETH
170538082023-04-15 17:15:11673 days ago16815789112090.00 TH14,431,514 (48.11%)
0.071051238773581892 ETH
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.