Created
April 27, 2018 03:16
-
-
Save naveensrinivasan/f8a559966b9c814e11392c162a3634c4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma solidity ^0.4.23; | |
contract Splitter { | |
address sender; | |
address public receiver1; | |
address public receiver2; | |
event AmountTransferred(address owner, uint amount); | |
constructor(address _sender,address _receiver1, address _receiver2) public{ | |
sender = _sender; | |
receiver1 = _receiver1; | |
receiver2 = _receiver2; | |
} | |
modifier amountGreaterThanOne() { | |
require(msg.value > 1); | |
_; | |
} | |
modifier onlySender() { | |
require(msg.sender == sender); | |
_; | |
} | |
function getreceiver1Balance() public view returns (uint) { | |
return receiver1.balance; | |
} | |
function getreceiver2Balance() public view returns (uint) { | |
return receiver2.balance; | |
} | |
function payReceivers() payable public onlySender amountGreaterThanOne { | |
uint amount = msg.value/2; | |
receiver1.transfer(amount); | |
emit AmountTransferred(receiver1,amount); | |
receiver2.transfer(amount); | |
emit AmountTransferred(receiver2,amount); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Line 26 & 30 ... these functions that return
<address>balance
don't do anything useful because everyone everywhere can check can check anyone's balance without our help. You will see something very similar in the actual solution that solves for DoS.