Discover more of Etherscan's tools and services in one place.
Sponsored
Contract Source Code:
File 1 of 1 : YoobaBatchTransfer
pragma solidity ^0.4.15; contract Utils { /** constructor */ function Utils() internal { } // validates an address - currently only checks that it isn't null modifier validAddress(address _address) { require(_address != 0x0); _; } // verifies that the address is different than this contract address modifier notThis(address _address) { require(_address != address(this)); _; } // Overflow protected math functions /** @dev returns the sum of _x and _y, asserts if the calculation overflows @param _x value 1 @param _y value 2 @return sum */ function safeAdd(uint256 _x, uint256 _y) internal pure returns (uint256) { uint256 z = _x + _y; assert(z >= _x); return z; } /** @dev returns the difference of _x minus _y, asserts if the subtraction results in a negative number @param _x minuend @param _y subtrahend @return difference */ function safeSub(uint256 _x, uint256 _y) internal pure returns (uint256) { assert(_x >= _y); return _x - _y; } /** @dev returns the product of multiplying _x by _y, asserts if the calculation overflows @param _x factor 1 @param _y factor 2 @return product */ function safeMul(uint256 _x, uint256 _y) internal pure returns (uint256) { uint256 z = _x * _y; assert(_x == 0 || z / _x == _y); return z; } } /* ERC20 Standard Token interface */ contract IERC20Token { // these functions aren't abstract since the compiler emits automatically generated getter functions as external function name() public constant returns (string) { name; } function symbol() public constant returns (string) { symbol; } function decimals() public constant returns (uint8) { decimals; } function totalSupply() public constant returns (uint256) { totalSupply; } function balanceOf(address _owner) public constant returns (uint256 balance); function allowance(address _owner, address _spender) public constant returns (uint256 remaining); function transfer(address _to, uint256 _value) public returns (bool success); function transferFrom(address _from, address _to, uint256 _value) public returns (bool success); function approve(address _spender, uint256 _value) public returns (bool success); } /* Owned contract interface */ contract IOwned { // this function isn't abstract since the compiler emits automatically generated getter functions as external function owner() public constant returns (address) { owner; } function transferOwnership(address _newOwner) public; function acceptOwnership() public; } /* Provides support and utilities for contract ownership */ contract Owned is IOwned { address public owner; address public newOwner; event OwnerUpdate(address _prevOwner, address _newOwner); /** @dev constructor */ function Owned() public { owner = msg.sender; } // allows execution by the owner only modifier ownerOnly { assert(msg.sender == owner); _; } /** @dev allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner @param _newOwner new contract owner */ function transferOwnership(address _newOwner) public ownerOnly { require(_newOwner != owner); newOwner = _newOwner; } /** @dev used by a new owner to accept an ownership transfer */ function acceptOwnership() public { require(msg.sender == newOwner); OwnerUpdate(owner, newOwner); owner = newOwner; newOwner = 0x0; } } contract YooStop is Owned{ bool public stopped = false; modifier stoppable { assert (!stopped); _; } function stop() public ownerOnly{ stopped = true; } function start() public ownerOnly{ stopped = false; } } contract YoobaBatchTransfer is Owned,YooStop,Utils { /** @dev constructor */ function YoobaBatchTransfer() public{ } function batchTransfer(IERC20Token _token,address[] _to,uint256 _amountOfEach) public ownerOnly stoppable validAddress(_token){ require(_to.length > 0 && _amountOfEach > 0 && _to.length * _amountOfEach <= _token.balanceOf(this) && _to.length < 10000); for(uint16 i = 0; i < _to.length ;i++){ assert(_token.transfer(_to[i],_amountOfEach)); } } function withdrawTo(address _to, uint256 _amount) public ownerOnly stoppable notThis(_to) { require(_amount <= this.balance); _to.transfer(_amount); // send the amount to the target account } function withdrawERC20TokenTo(IERC20Token _token, address _to, uint256 _amount) public ownerOnly validAddress(_token) validAddress(_to) notThis(_to) { assert(_token.transfer(_to, _amount)); } }
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.