andres.junge@consensys.net
contract Counter {
int private count = 0;
function incrementCounter() public {
count += 1;
}
function decrementCounter() public {
count -= 1;
}
function getCount() public constant returns (int) {
return count;
}
}pragma solidity ^0.4.0;
contract SimpleStorage {
uint storedData; // State variable
// ...
}pragma solidity ^0.4.0;
contract SimpleAuction {
function bid() public payable { // Function
// ...
}
}pragma solidity ^0.4.11;
contract Purchase {
address public seller;
modifier onlySeller() { // Modifier
require(msg.sender == seller);
_;
}
function abort() public onlySeller { // Modifier usage
// ...
}
}pragma solidity ^0.4.21;
contract SimpleAuction {
event HighestBidIncreased(address bidder, uint amount); // Event
function bid() public payable {
// ...
emit HighestBidIncreased(msg.sender, msg.value); // Triggering event
}
}pragma solidity ^0.4.0;
contract Ballot {
struct Voter { // Struct
uint weight;
bool voted;
address delegate;
uint vote;
}
}pragma solidity ^0.4.0;
contract Purchase {
enum State { Created, Locked, Inactive } // Enum
}pragma solidity ^0.4.8;
contract DemoToken {
function DemoToken(uint256 _totalSupply) public {
balances[msg.sender]=_totalSupply;
}
function transfer(address _to, uint256 _value) public returns (bool success) {
require(balances[msg.sender] >= _value);
balances[msg.sender] -= _value;
balances[_to] += _value;
emit Transfer(msg.sender, _to, _value);
return true;
}
function balanceOf(address _owner) view public returns (uint256 balance) {
return balances[_owner];
}
mapping (address => uint256) balances;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
}pragma solidity ^0.4.8;
import "./DemoToken.sol";
contract DemoEscrow {
address public tokenAddress;
address public comprador;
address public vendedor;
address public arbitro;
function DemoEscrow(address _tokenAddress) public {
tokenAddress = _tokenAddress;
arbitro = msg.sender;
}
... ...
function setComprador(address _comprador) public returns (bool success){
require(comprador == address(0));
comprador = _comprador;
return true;
}
function setVendedor(address _vendedor) public returns (bool success){
require(vendedor == address(0));
vendedor = _vendedor;
return true;
}
function setArbitro(address _arbitro) public returns (bool success){
require(arbitro == msg.sender);
arbitro = _arbitro;
return true;
}
function getEscrowBalance() view public returns (uint256 _saldo) {
DemoToken t = DemoToken(tokenAddress);
return t.balanceOf(this);
}
......
function cancel() public returns (bool success){
require( msg.sender == vendedor || msg.sender == arbitro);
DemoToken t = DemoToken(tokenAddress);
uint256 balance = t.balanceOf(this) ;
require( balance > 0);
return t.transfer(comprador,balance);
}
function finish() public returns (bool success){
require( msg.sender == comprador || msg.sender == arbitro);
DemoToken t = DemoToken(tokenAddress);
uint256 balance = t.balanceOf(this) ;
require( balance > 0);
return t.transfer(vendedor,balance);
}
}andres.junge@consensys.net