2016-07-19 9 views
1

Новый для прочности и geth для моей стажировки, я начал развертывать контрукты, используя встроенную среду IDE и режим geth dev. Моя проблема в том, что я попробовал несколько разных способов сделать это, но ничего не работает.Создайте «транзакционный обработчик» умный контракт

Код:

contract Transaction { 
    address public owner; 
    mapping (address => uint) public balances; 

    function Transaction() { 
     owner = msg.sender; 
    } 

    function validateTransaction (address receiver, uint amount) constant returns (bool) { 
    if (balances[owner] < amount || owner == receiver || amount == 0) 
     return (false); 
    balances[owner] -= msg.value; 
    return (true); 
    } 

    function transact (address receiver, uint amount) { 
    if (!validateTransaction(receiver, amount)) 
     return ; 
    balances[receiver] += msg.value; 
    } 

    function remove() { 
     if (msg.sender == owner) 
     selfdestruct(owner); 
    } 
} 

Я также попробовал этот договор в солидности учебник, но он также не работает, как ожидалось:

contract Coin { 
    // The keyword "public" makes those variables 
    // readable from outside. 
    address public minter; 
    mapping (address => uint) public balances; 

    // Events allow light clients to react on 
    // changes efficiently. 
    event Sent(address from, address to, uint amount); 

    // This is the constructor whose code is 
    // run only when the contract is created. 
    function Coin() { 
     minter = msg.sender; 
    } 

    function mint(address receiver, uint amount) { 
     if (msg.sender != minter) return; 
     balances[receiver] += amount; 
    } 

    function send(address receiver, uint amount) { 
     if (balances[msg.sender] < amount) return; 
     balances[msg.sender] -= amount; 
     balances[receiver] += amount; 
     Sent(msg.sender, receiver, amount); 
    } 
} 

Я просто пытаюсь сделать умный контракт, могут совершать транзакции между отправителем и получателем, но балансы счетов не перемещаются. Являются ли эти функции абстрактными только для того, чтобы узнать, как работает твердость, или это может привести к изменению баланса? Спасибо за ваши ответы :)

ответ

1

После того, как вы искали и работали глубже по прочности, я обнаружил, что действительно этот договор делает абстрактные транзакции в HIS-данные. Таким образом, эфир не отправляется верно, а переменная баланса является локальной для этого контракта.