Новый для прочности и 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);
}
}
Я просто пытаюсь сделать умный контракт, могут совершать транзакции между отправителем и получателем, но балансы счетов не перемещаются. Являются ли эти функции абстрактными только для того, чтобы узнать, как работает твердость, или это может привести к изменению баланса? Спасибо за ваши ответы :)