Ich erhalte also den folgenden Fehler, wenn ich versuche, die Coins an eine andere Adresse zu senden, und mit dem Debugger kann ich nicht herausfinden, wo das Problem liegt. Was mache ich falsch? (Ich habe erst vor ein paar Tagen angefangen, Solidität zu lernen).
Pragma Solidität ^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;
}
}
Fehler:
Ok, ich habe es behoben, indem ich msg.sender durch die im Konstruktor deklarierte Eigentümeradresse var ersetzt habe. Weiß jemand warum es jetzt funktioniert?
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;
}
}
Ajoy Bhatia