github.com/shyftnetwork/go-empyrean@v1.8.3-0.20191127201940-fbfca9338f04/shyft-config/shyft-cli/web3/transfer-through-master/contracts/Transfers.sol (about)

     1  pragma solidity ^0.4.19;
     2  
     3  import "./Transfers2.sol";
     4  
     5  contract Transfers {
     6  	mapping (address => uint) public balance;
     7  	Transfers2 t;
     8  	address t_addr;
     9  
    10  	function Transfers() public {
    11  		t = new Transfers2();
    12  		t_addr = address(t);
    13  	}
    14  
    15  	function transfer(address _addr, uint _value) public {
    16  		require(balance[msg.sender] >= _value);
    17  		bytes4 sig = bytes4(keccak256("transfer(address)"));
    18  		t_addr.call.value(_value)(sig, _addr);		
    19  	}
    20  
    21  	function myBalance() public returns (uint) {
    22  		return balance[msg.sender];
    23  	}
    24  
    25  	function deposit() public payable returns (uint) {
    26  		balance[msg.sender] += msg.value;
    27  		return balance[msg.sender];
    28  	}
    29  
    30  	function withdraw(address _addr, uint _value) public {
    31  		require(balance[msg.sender] >= _value);
    32  		balance[msg.sender] -= _value;
    33  		_addr.transfer(_value);
    34  	}
    35  
    36  	function withdrawMulti(address[] _addrs, uint _value) public {
    37  		uint l = _addrs.length;
    38  		require(balance[msg.sender] >= _value * l);
    39  		balance[msg.sender] -= _value * l;
    40  		for (uint i = 0; i < l; i++){
    41  			_addrs[i].transfer(_value);
    42  		}
    43  	}
    44  }