Discover more of Etherscan's tools and services in one place.
Sponsored
Contract Source Code:
File 1 of 1 : Multiplexer
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); } }
Please enter a contract address above to load the contract details and source code.
Please DO NOT store any passwords or private keys here. A private note (up to 100 characters) can be saved and is useful for transaction tracking.
My Name Tag:
Private Note:
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.