Итак, я получаю сообщение об ошибке ниже при попытке отправить монеты на другой адрес, и с помощью отладчика я не могу понять, в чем проблема. Что я делаю не так? (Я только начал изучать твердость несколько дней назад).
прочность прагмы ^0,4,0;
contract HelloWorld {
mapping (address => uint) balances;
address owner;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
function HelloWorld() {
balances[msg.sender] = 1500;
owner = msg.sender;
}
function getBalances(address addr) returns(uint) {
return balances[addr];
}
function getOwner() returns(address) {
return owner;
}
function sendCoin(address receiver, uint amount) returns(bool success) {
if(balances[msg.sender] < amount) return false; // Check amount of coins
balances[msg.sender] -= amount;
balances[receiver] += amount;
Transfer(msg.sender, receiver, amount);
return true;
}
}
Ошибка:
Хорошо, я исправил это, заменив msg.sender адресом владельца var, объявленным в конструкторе. Кто-нибудь знает, почему теперь это работает?
contract HelloWorld {
mapping (address => uint) balances;
address owner;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
function HelloWorld() {
balances[msg.sender] = 1500;
owner = msg.sender;
}
function getBalance(address addr) returns(uint) {
return balances[addr];
}
function getOwner() returns(address) {
return owner;
}
function sendCoin(address receiver, uint amount) returns(bool success) {
if(amount > balances[owner]) return false; // Check balance
balances[owner] -= amount;
balances[receiver] += amount;
Transfer(owner, receiver, amount);
return true;
}
}
Аджой Бхатия