ETH Price: $1,928.54 (+1.77%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer213913582024-12-13 4:59:4792 days ago1734065987IN
0x27c229FE...741aA48c0
0.01397044 ETH0.0002482611.07355498
Transfer213910832024-12-13 4:04:3592 days ago1734062675IN
0x27c229FE...741aA48c0
0.05912217 ETH0.0002510711.19887479
Transfer213908602024-12-13 3:19:4792 days ago1734059987IN
0x27c229FE...741aA48c0
0.04907631 ETH0.0002659211.86088126
Transfer213907842024-12-13 3:04:3592 days ago1734059075IN
0x27c229FE...741aA48c0
0.02496016 ETH0.0002595411.57645329
Transfer213903452024-12-13 1:35:5992 days ago1734053759IN
0x27c229FE...741aA48c0
0.04003439 ETH0.0002361510.53339327
Transfer213900482024-12-13 0:36:1192 days ago1734050171IN
0x27c229FE...741aA48c0
0.05449749 ETH0.0002820212.57924827
Transfer213899792024-12-13 0:22:2392 days ago1734049343IN
0x27c229FE...741aA48c0
0.01976912 ETH0.000328814.66582409
Transfer213896082024-12-12 23:07:4792 days ago1734044867IN
0x27c229FE...741aA48c0
0.10188027 ETH0.0002859112.75260571
Transfer213894272024-12-12 22:31:2392 days ago1734042683IN
0x27c229FE...741aA48c0
0.03280613 ETH0.0003832517.09437875
Transfer213893612024-12-12 22:18:1192 days ago1734041891IN
0x27c229FE...741aA48c0
0.13518428 ETH0.0004562120.34866361
Transfer213891712024-12-12 21:39:4792 days ago1734039587IN
0x27c229FE...741aA48c0
0.02169594 ETH0.000450920.11185386
Transfer213890632024-12-12 21:17:5992 days ago1734038279IN
0x27c229FE...741aA48c0
0.04628497 ETH0.0004929521.98713621
Transfer213890142024-12-12 21:08:1192 days ago1734037691IN
0x27c229FE...741aA48c0
0.03587784 ETH0.0004998822.29637872
Transfer213886732024-12-12 19:59:5992 days ago1734033599IN
0x27c229FE...741aA48c0
0.0515182 ETH0.0006589429.39074945
Transfer213884212024-12-12 19:08:5992 days ago1734030539IN
0x27c229FE...741aA48c0
0.05358655 ETH0.0005433724.23628919
Transfer213883842024-12-12 19:01:3592 days ago1734030095IN
0x27c229FE...741aA48c0
0.0247831 ETH0.0005697725.41370658
Transfer213883722024-12-12 18:59:1192 days ago1734029951IN
0x27c229FE...741aA48c0
0.02957979 ETH0.0005625825.09306889
Transfer213882282024-12-12 18:30:1192 days ago1734028211IN
0x27c229FE...741aA48c0
0.05252589 ETH0.0005678925.32976595
Transfer213881512024-12-12 18:14:4792 days ago1734027287IN
0x27c229FE...741aA48c0
0.04010171 ETH0.0006498828.98667505
Transfer213878342024-12-12 17:11:1192 days ago1734023471IN
0x27c229FE...741aA48c0
0.09339126 ETH0.000642828.67106068
Transfer213878212024-12-12 17:08:3592 days ago1734023315IN
0x27c229FE...741aA48c0
0.0290314 ETH0.0005887326.25949776
Transfer213877322024-12-12 16:50:4792 days ago1734022247IN
0x27c229FE...741aA48c0
0.05129085 ETH0.000721532.18116373
Transfer213875312024-12-12 16:10:3592 days ago1734019835IN
0x27c229FE...741aA48c0
0.04865688 ETH0.0008715138.87224538
Transfer213875032024-12-12 16:04:5992 days ago1734019499IN
0x27c229FE...741aA48c0
0.08154994 ETH0.0009312141.53484178
Transfer213870702024-12-12 14:37:5992 days ago1734014279IN
0x27c229FE...741aA48c0
0.0259637 ETH0.0006285228.03401127
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer217190842025-01-27 23:16:1146 days ago1738019771
0x27c229FE...741aA48c0
120.02556528 ETH
Transfer212063152024-11-17 8:45:11117 days ago1731833111
0x27c229FE...741aA48c0
0.00020364 ETH
Transfer212063152024-11-17 8:45:11117 days ago1731833111
0x27c229FE...741aA48c0
0.01865347 ETH
Transfer210509002024-10-26 16:10:35139 days ago1729959035
0x27c229FE...741aA48c0
137.69386435 ETH
Transfer209503142024-10-12 15:08:11153 days ago1728745691
0x27c229FE...741aA48c0
0.033 ETH
Transfer209306652024-10-09 21:15:59156 days ago1728508559
0x27c229FE...741aA48c0
0.00107942 ETH
Transfer209306652024-10-09 21:15:59156 days ago1728508559
0x27c229FE...741aA48c0
0.0011 ETH
Transfer209306652024-10-09 21:15:59156 days ago1728508559
0x27c229FE...741aA48c0
0.068 ETH
Transfer208938582024-10-04 18:08:59161 days ago1728065339
0x27c229FE...741aA48c0
0.11374916 ETH
Transfer208264712024-09-25 8:36:47170 days ago1727253407
0x27c229FE...741aA48c0
0.00179107 ETH
Transfer208264712024-09-25 8:36:47170 days ago1727253407
0x27c229FE...741aA48c0
0.001 ETH
Transfer207976272024-09-21 8:01:59174 days ago1726905719
0x27c229FE...741aA48c0
0.0005 ETH
Transfer204827482024-08-08 8:43:47218 days ago1723106627
0x27c229FE...741aA48c0
30.61365928 ETH
Transfer203796032024-07-24 23:12:47233 days ago1721862767
0x27c229FE...741aA48c0
113.38809295 ETH
Transfer203415702024-07-19 15:47:23238 days ago1721404043
0x27c229FE...741aA48c0
0.12 ETH
Transfer202213362024-07-02 20:53:11255 days ago1719953591
0x27c229FE...741aA48c0
0.0005781 ETH
Transfer197790152024-05-02 0:58:35317 days ago1714611515
0x27c229FE...741aA48c0
46.29015529 ETH
Transfer197353552024-04-25 22:25:59323 days ago1714083959
0x27c229FE...741aA48c0
0.01260349 ETH
Transfer197278042024-04-24 21:06:35324 days ago1713992795
0x27c229FE...741aA48c0
0.00577062 ETH
Transfer197247972024-04-24 10:59:35324 days ago1713956375
0x27c229FE...741aA48c0
0.001 ETH
Transfer195457202024-03-30 8:55:11349 days ago1711788911
0x27c229FE...741aA48c0
0.00075712 ETH
Transfer195457202024-03-30 8:55:11349 days ago1711788911
0x27c229FE...741aA48c0
0.00283729 ETH
Transfer194894172024-03-22 9:56:59357 days ago1711101419
0x27c229FE...741aA48c0
0.01373044 ETH
Transfer194894172024-03-22 9:56:59357 days ago1711101419
0x27c229FE...741aA48c0
0.01839695 ETH
Transfer194738922024-03-20 5:40:11360 days ago1710913211
0x27c229FE...741aA48c0
0.09582472 ETH
View All Internal Transactions
Loading...
Loading

Minimal Proxy Contract for 0xd94c0ce4f8eefa4ebf44bf6665688edeef213b33

Contract Name:
SplitWallet

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 4 : SplitWallet.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.4;

import {ISplitMain} from './interfaces/ISplitMain.sol';
import {ERC20} from '@rari-capital/solmate/src/tokens/ERC20.sol';
import {SafeTransferLib} from '@rari-capital/solmate/src/utils/SafeTransferLib.sol';

/**
 * ERRORS
 */

/// @notice Unauthorized sender
error Unauthorized();

/**
 * @title SplitWallet
 * @author 0xSplits <[email protected]>
 * @notice The implementation logic for `SplitProxy`.
 * @dev `SplitProxy` handles `receive()` itself to avoid the gas cost with `DELEGATECALL`.
 */
contract SplitWallet {
  using SafeTransferLib for address;
  using SafeTransferLib for ERC20;

  /**
   * EVENTS
   */

  /** @notice emitted after each successful ETH transfer to proxy
   *  @param split Address of the split that received ETH
   *  @param amount Amount of ETH received
   */
  event ReceiveETH(address indexed split, uint256 amount);

  /**
   * STORAGE
   */

  /**
   * STORAGE - CONSTANTS & IMMUTABLES
   */

  /// @notice address of SplitMain for split distributions & EOA/SC withdrawals
  ISplitMain public immutable splitMain;

  /**
   * MODIFIERS
   */

  /// @notice Reverts if the sender isn't SplitMain
  modifier onlySplitMain() {
    if (msg.sender != address(splitMain)) revert Unauthorized();
    _;
  }

  /**
   * CONSTRUCTOR
   */

  constructor() {
    splitMain = ISplitMain(msg.sender);
  }

  /**
   * FUNCTIONS - PUBLIC & EXTERNAL
   */

  /** @notice Sends amount `amount` of ETH in proxy to SplitMain
   *  @dev payable reduces gas cost; no vulnerability to accidentally lock
   *  ETH introduced since fn call is restricted to SplitMain
   *  @param amount Amount to send
   */
  function sendETHToMain(uint256 amount) external payable onlySplitMain() {
    address(splitMain).safeTransferETH(amount);
  }

  /** @notice Sends amount `amount` of ERC20 `token` in proxy to SplitMain
   *  @dev payable reduces gas cost; no vulnerability to accidentally lock
   *  ETH introduced since fn call is restricted to SplitMain
   *  @param token Token to send
   *  @param amount Amount to send
   */
  function sendERC20ToMain(ERC20 token, uint256 amount)
    external
    payable
    onlySplitMain()
  {
    token.safeTransfer(address(splitMain), amount);
  }
}

File 2 of 4 : ISplitMain.sol
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity 0.8.4;

import {ERC20} from '@rari-capital/solmate/src/tokens/ERC20.sol';

/**
 * @title ISplitMain
 * @author 0xSplits <[email protected]>
 */
interface ISplitMain {
  /**
   * FUNCTIONS
   */

  function walletImplementation() external returns (address);

  function createSplit(
    address[] calldata accounts,
    uint32[] calldata percentAllocations,
    uint32 distributorFee,
    address controller
  ) external returns (address);

  function predictImmutableSplitAddress(
    address[] calldata accounts,
    uint32[] calldata percentAllocations,
    uint32 distributorFee
  ) external view returns (address);

  function updateSplit(
    address split,
    address[] calldata accounts,
    uint32[] calldata percentAllocations,
    uint32 distributorFee
  ) external;

  function transferControl(address split, address newController) external;

  function cancelControlTransfer(address split) external;

  function acceptControl(address split) external;

  function makeSplitImmutable(address split) external;

  function distributeETH(
    address split,
    address[] calldata accounts,
    uint32[] calldata percentAllocations,
    uint32 distributorFee,
    address distributorAddress
  ) external;

  function updateAndDistributeETH(
    address split,
    address[] calldata accounts,
    uint32[] calldata percentAllocations,
    uint32 distributorFee,
    address distributorAddress
  ) external;

  function distributeERC20(
    address split,
    ERC20 token,
    address[] calldata accounts,
    uint32[] calldata percentAllocations,
    uint32 distributorFee,
    address distributorAddress
  ) external;

  function updateAndDistributeERC20(
    address split,
    ERC20 token,
    address[] calldata accounts,
    uint32[] calldata percentAllocations,
    uint32 distributorFee,
    address distributorAddress
  ) external;

  function withdraw(
    address account,
    uint256 withdrawETH,
    ERC20[] calldata tokens
  ) external;

  /**
   * EVENTS
   */

  /** @notice emitted after each successful split creation
   *  @param split Address of the created split
   */
  event CreateSplit(address indexed split);

  /** @notice emitted after each successful split update
   *  @param split Address of the updated split
   */
  event UpdateSplit(address indexed split);

  /** @notice emitted after each initiated split control transfer
   *  @param split Address of the split control transfer was initiated for
   *  @param newPotentialController Address of the split's new potential controller
   */
  event InitiateControlTransfer(
    address indexed split,
    address indexed newPotentialController
  );

  /** @notice emitted after each canceled split control transfer
   *  @param split Address of the split control transfer was canceled for
   */
  event CancelControlTransfer(address indexed split);

  /** @notice emitted after each successful split control transfer
   *  @param split Address of the split control was transferred for
   *  @param previousController Address of the split's previous controller
   *  @param newController Address of the split's new controller
   */
  event ControlTransfer(
    address indexed split,
    address indexed previousController,
    address indexed newController
  );

  /** @notice emitted after each successful ETH balance split
   *  @param split Address of the split that distributed its balance
   *  @param amount Amount of ETH distributed
   *  @param distributorAddress Address to credit distributor fee to
   */
  event DistributeETH(
    address indexed split,
    uint256 amount,
    address indexed distributorAddress
  );

  /** @notice emitted after each successful ERC20 balance split
   *  @param split Address of the split that distributed its balance
   *  @param token Address of ERC20 distributed
   *  @param amount Amount of ERC20 distributed
   *  @param distributorAddress Address to credit distributor fee to
   */
  event DistributeERC20(
    address indexed split,
    ERC20 indexed token,
    uint256 amount,
    address indexed distributorAddress
  );

  /** @notice emitted after each successful withdrawal
   *  @param account Address that funds were withdrawn to
   *  @param ethAmount Amount of ETH withdrawn
   *  @param tokens Addresses of ERC20s withdrawn
   *  @param tokenAmounts Amounts of corresponding ERC20s withdrawn
   */
  event Withdrawal(
    address indexed account,
    uint256 ethAmount,
    ERC20[] tokens,
    uint256[] tokenAmounts
  );
}

File 3 of 4 : ERC20.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC20.sol)
/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)
/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.
abstract contract ERC20 {
    /*///////////////////////////////////////////////////////////////
                                  EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);

    /*///////////////////////////////////////////////////////////////
                             METADATA STORAGE
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    uint8 public immutable decimals;

    /*///////////////////////////////////////////////////////////////
                              ERC20 STORAGE
    //////////////////////////////////////////////////////////////*/

    uint256 public totalSupply;

    mapping(address => uint256) public balanceOf;

    mapping(address => mapping(address => uint256)) public allowance;

    /*///////////////////////////////////////////////////////////////
                             EIP-2612 STORAGE
    //////////////////////////////////////////////////////////////*/

    bytes32 public constant PERMIT_TYPEHASH =
        keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");

    uint256 internal immutable INITIAL_CHAIN_ID;

    bytes32 internal immutable INITIAL_DOMAIN_SEPARATOR;

    mapping(address => uint256) public nonces;

    /*///////////////////////////////////////////////////////////////
                               CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(
        string memory _name,
        string memory _symbol,
        uint8 _decimals
    ) {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;

        INITIAL_CHAIN_ID = block.chainid;
        INITIAL_DOMAIN_SEPARATOR = computeDomainSeparator();
    }

    /*///////////////////////////////////////////////////////////////
                              ERC20 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        balanceOf[msg.sender] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(msg.sender, to, amount);

        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        uint256 allowed = allowance[from][msg.sender]; // Saves gas for limited approvals.

        if (allowed != type(uint256).max) allowance[from][msg.sender] = allowed - amount;

        balanceOf[from] -= amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(from, to, amount);

        return true;
    }

    /*///////////////////////////////////////////////////////////////
                              EIP-2612 LOGIC
    //////////////////////////////////////////////////////////////*/

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) public virtual {
        require(deadline >= block.timestamp, "PERMIT_DEADLINE_EXPIRED");

        // Unchecked because the only math done is incrementing
        // the owner's nonce which cannot realistically overflow.
        unchecked {
            bytes32 digest = keccak256(
                abi.encodePacked(
                    "\x19\x01",
                    DOMAIN_SEPARATOR(),
                    keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))
                )
            );

            address recoveredAddress = ecrecover(digest, v, r, s);

            require(recoveredAddress != address(0) && recoveredAddress == owner, "INVALID_SIGNER");

            allowance[recoveredAddress][spender] = value;
        }

        emit Approval(owner, spender, value);
    }

    function DOMAIN_SEPARATOR() public view virtual returns (bytes32) {
        return block.chainid == INITIAL_CHAIN_ID ? INITIAL_DOMAIN_SEPARATOR : computeDomainSeparator();
    }

    function computeDomainSeparator() internal view virtual returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),
                    keccak256(bytes(name)),
                    keccak256("1"),
                    block.chainid,
                    address(this)
                )
            );
    }

    /*///////////////////////////////////////////////////////////////
                       INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 amount) internal virtual {
        totalSupply += amount;

        // Cannot overflow because the sum of all user
        // balances can't exceed the max uint256 value.
        unchecked {
            balanceOf[to] += amount;
        }

        emit Transfer(address(0), to, amount);
    }

    function _burn(address from, uint256 amount) internal virtual {
        balanceOf[from] -= amount;

        // Cannot underflow because a user's balance
        // will never be larger than the total supply.
        unchecked {
            totalSupply -= amount;
        }

        emit Transfer(from, address(0), amount);
    }
}

File 4 of 4 : SafeTransferLib.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

import {ERC20} from "../tokens/ERC20.sol";

/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/utils/SafeTransferLib.sol)
/// @author Modified from Gnosis (https://github.com/gnosis/gp-v2-contracts/blob/main/src/contracts/libraries/GPv2SafeERC20.sol)
/// @dev Use with caution! Some functions in this library knowingly create dirty bits at the destination of the free memory pointer.
library SafeTransferLib {
    /*///////////////////////////////////////////////////////////////
                            ETH OPERATIONS
    //////////////////////////////////////////////////////////////*/

    function safeTransferETH(address to, uint256 amount) internal {
        bool callStatus;

        assembly {
            // Transfer the ETH and store if it succeeded or not.
            callStatus := call(gas(), to, amount, 0, 0, 0, 0)
        }

        require(callStatus, "ETH_TRANSFER_FAILED");
    }

    /*///////////////////////////////////////////////////////////////
                           ERC20 OPERATIONS
    //////////////////////////////////////////////////////////////*/

    function safeTransferFrom(
        ERC20 token,
        address from,
        address to,
        uint256 amount
    ) internal {
        bool callStatus;

        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata to memory piece by piece:
            mstore(freeMemoryPointer, 0x23b872dd00000000000000000000000000000000000000000000000000000000) // Begin with the function selector.
            mstore(add(freeMemoryPointer, 4), and(from, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "from" argument.
            mstore(add(freeMemoryPointer, 36), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument.
            mstore(add(freeMemoryPointer, 68), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value.

            // Call the token and store if it succeeded or not.
            // We use 100 because the calldata length is 4 + 32 * 3.
            callStatus := call(gas(), token, 0, freeMemoryPointer, 100, 0, 0)
        }

        require(didLastOptionalReturnCallSucceed(callStatus), "TRANSFER_FROM_FAILED");
    }

    function safeTransfer(
        ERC20 token,
        address to,
        uint256 amount
    ) internal {
        bool callStatus;

        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata to memory piece by piece:
            mstore(freeMemoryPointer, 0xa9059cbb00000000000000000000000000000000000000000000000000000000) // Begin with the function selector.
            mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument.
            mstore(add(freeMemoryPointer, 36), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value.

            // Call the token and store if it succeeded or not.
            // We use 68 because the calldata length is 4 + 32 * 2.
            callStatus := call(gas(), token, 0, freeMemoryPointer, 68, 0, 0)
        }

        require(didLastOptionalReturnCallSucceed(callStatus), "TRANSFER_FAILED");
    }

    function safeApprove(
        ERC20 token,
        address to,
        uint256 amount
    ) internal {
        bool callStatus;

        assembly {
            // Get a pointer to some free memory.
            let freeMemoryPointer := mload(0x40)

            // Write the abi-encoded calldata to memory piece by piece:
            mstore(freeMemoryPointer, 0x095ea7b300000000000000000000000000000000000000000000000000000000) // Begin with the function selector.
            mstore(add(freeMemoryPointer, 4), and(to, 0xffffffffffffffffffffffffffffffffffffffff)) // Mask and append the "to" argument.
            mstore(add(freeMemoryPointer, 36), amount) // Finally append the "amount" argument. No mask as it's a full 32 byte value.

            // Call the token and store if it succeeded or not.
            // We use 68 because the calldata length is 4 + 32 * 2.
            callStatus := call(gas(), token, 0, freeMemoryPointer, 68, 0, 0)
        }

        require(didLastOptionalReturnCallSucceed(callStatus), "APPROVE_FAILED");
    }

    /*///////////////////////////////////////////////////////////////
                         INTERNAL HELPER LOGIC
    //////////////////////////////////////////////////////////////*/

    function didLastOptionalReturnCallSucceed(bool callStatus) private pure returns (bool success) {
        assembly {
            // Get how many bytes the call returned.
            let returnDataSize := returndatasize()

            // If the call reverted:
            if iszero(callStatus) {
                // Copy the revert message into memory.
                returndatacopy(0, 0, returnDataSize)

                // Revert with the same message.
                revert(0, returnDataSize)
            }

            switch returnDataSize
            case 32 {
                // Copy the return data into memory.
                returndatacopy(0, 0, returnDataSize)

                // Set success to whether it returned true.
                success := iszero(iszero(mload(0)))
            }
            case 0 {
                // There was no return data.
                success := 1
            }
            default {
                // It returned some malformed input.
                success := 0
            }
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"split","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ReceiveETH","type":"event"},{"inputs":[{"internalType":"contract ERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendERC20ToMain","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendETHToMain","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"splitMain","outputs":[{"internalType":"contract ISplitMain","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

 Latest 25 blocks (From a total of 181 blocks with 3.73 Ether produced)

Block Transaction Difficulty Gas Used Reward
213867912024-12-12 13:42:1192 days ago17340109311420.00 TH8,658,380 (28.86%)
0.017979567991061968 ETH
213641962024-12-09 9:57:4795 days ago17337382671560.00 TH10,291,642 (34.31%)
0.007929771299719541 ETH
213517922024-12-07 16:25:3597 days ago1733588735890.00 TH5,274,744 (17.58%)
0.008101301106014075 ETH
212587272024-11-24 16:13:47110 days ago17324648271330.00 TH8,752,683 (29.18%)
0.007822232792833381 ETH
212063152024-11-17 8:45:11117 days ago17318331111840.00 TH17,891,823 (59.64%)
0.061202307106396311 ETH
211796762024-11-13 15:30:35121 days ago17315118351140.00 TH6,798,778 (22.66%)
0.017989852659092991 ETH
211530062024-11-09 22:12:47125 days ago1731190367920.00 TH4,972,937 (16.58%)
0.006244991728213234 ETH
211157712024-11-04 17:26:59130 days ago1730741219880.00 TH7,108,383 (23.69%)
0.008407137573357025 ETH
211116842024-11-04 3:46:35131 days ago1730691995730.00 TH4,272,534 (14.24%)
0.002837190312426005 ETH
211066342024-11-03 10:51:35131 days ago1730631095770.00 TH6,014,976 (20.05%)
0.009328213518242406 ETH
211058712024-11-03 8:18:59131 days ago1730621939520.00 TH4,480,269 (14.93%)
0.004885917638495889 ETH
210963362024-11-02 0:19:35133 days ago17305067751090.00 TH7,439,817 (24.80%)
0.007748138165321735 ETH
210955572024-11-01 21:42:47133 days ago17304973672230.00 TH12,248,084 (40.83%)
0.008559567269049759 ETH
210941862024-11-01 17:07:23133 days ago1730480843910.00 TH6,633,366 (22.11%)
0.011584635267810095 ETH
210927692024-11-01 12:22:47133 days ago1730463767960.00 TH7,194,427 (23.98%)
0.005874223990345129 ETH
210788152024-10-30 13:41:23135 days ago17302956831060.00 TH5,956,696 (19.86%)
0.01705699221433834 ETH
210768502024-10-30 7:04:35135 days ago1730271875800.00 TH5,224,488 (17.41%)
0.008135204747738262 ETH
210656062024-10-28 17:24:59137 days ago1730136299620.00 TH3,334,209 (11.11%)
0.008219646021616073 ETH
210655712024-10-28 17:17:59137 days ago1730135879680.00 TH4,886,428 (16.29%)
0.015081312182913291 ETH
210377592024-10-24 20:10:11141 days ago1729800611780.00 TH6,550,719 (21.84%)
0.007231626020733296 ETH
210226382024-10-22 17:33:23143 days ago1729618403790.00 TH4,420,561 (14.74%)
0.027139276551015749 ETH
210211882024-10-22 12:42:11143 days ago1729600931880.00 TH6,277,513 (20.93%)
0.006849167579707426 ETH
209561802024-10-13 10:53:35152 days ago1728816815800.00 TH4,837,215 (16.12%)
0.020824963950822778 ETH
209503142024-10-12 15:08:11153 days ago17287456911070.00 TH14,502,236 (48.34%)
0.078062385294837998 ETH
209490742024-10-12 10:58:23153 days ago17287307031650.00 TH7,301,929 (24.34%)
0.005272300217740893 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
Loading...
Loading
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.