ETH Price: $1,975.65 (+0.29%)

Transaction Decoder

Block:
9137796 at Dec-20-2019 11:01:54 PM +UTC
Transaction Fee:
0.00015811 ETH $0.31
Gas Used:
31,622 Gas / 5 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x6B87700a...8E0521f00
0.1 Eth
Nonce: 0
0.540608582210382956 Eth
Nonce: 1
0.440608582210382956
0x7b138cc8...B2ec6682E
(Bitpie: Batch Sender)
0.440766692210382956 Eth0 Eth0.440766692210382956
(Ethermine)
386.661986110068424048 Eth386.662144220068424048 Eth0.00015811

Execution Trace

ETH 0.0000250775 Multiplexer.sendEth( _to=[0x6B87700a8bF94A7eE272674A8964CA48E0521f00], _value=[440791769710382956] ) => ( _success=True )
  • ETH 0.440791769710382956 0x6b87700a8bf94a7ee272674a8964ca48e0521f00.CALL( )
    pragma solidity ^0.4.15;
    contract Ownable {
        address public owner;
        function Ownable() public {
            owner = msg.sender;
        }
        modifier onlyOwner() {
            require(msg.sender == owner);
            _;
        }
    }
    contract Feeable is Ownable {
        uint8 public feePercent;
        function Feeable() public {
            feePercent = 50;
        }
        function setFeePercent(uint8 _feePercent) public onlyOwner {
            feePercent = _feePercent;
        }
        function minFee() public view returns(uint256) {
            return tx.gasprice * msg.gas * feePercent / 100;
        }
    }
    contract ERC20 {
        function balanceOf(address who) public view returns (uint256);
        function transfer(address to, uint256 value) public returns (bool);
        function transferFrom( address from, address to, uint value) returns (bool ok);
    }
    contract Multiplexer is Feeable {
        function sendEth(address[] _to, uint256[] _value) payable returns (bool _success) {
            assert(_to.length == _value.length);
            assert(_to.length <= 255);
            require(msg.value >= minFee());
            for (uint8 i = 0; i < _to.length; i++) {
                _to[i].transfer(_value[i]);
            }
            return true;
        }
        function sendErc20(address _tokenAddress, address[] _to, uint256[] _value) payable returns (bool _success) {
            assert(_to.length == _value.length);
            assert(_to.length <= 255);
            require(msg.value >= minFee());
            ERC20 token = ERC20(_tokenAddress);
            for (uint8 i = 0; i < _to.length; i++) {
                assert(token.transferFrom(msg.sender, _to[i], _value[i]) == true);
            }
            return true;
        }
        function claim(address _token) public onlyOwner {
            if (_token == 0x0) {
                owner.transfer(this.balance);
                return;
            }
            ERC20 erc20token = ERC20(_token);
            uint256 balance = erc20token.balanceOf(this);
            erc20token.transfer(owner, balance);
        }
    }