Verwenden Sie den folgenden Code und fügen Sie ihn ein, um einen neuen Vertrag bereitzustellen.
Wenn ich versuche, den Code auf Etherscan zu verifizieren, sagt er, dass er nicht mit dem Code des Vertrags übereinstimmt?
Hier ist der Etherscan-Link:
https://etherscan.io/address/0x84f7f794867642a47ce577fe0d9745da6ac37c44
Und hier ist der Code, den ich in den Deployment-Vertragsteil der Ethereum-Brieftasche eingefügt habe.
pragma solidity ^0.4.16;
contract MyKidsEducationFund {
string public constant symbol = "MKEF";
string public constant name = "MyKidsEducationFund";
uint8 public constant decimals = 18;
address owner = 0x3755530e18033E3EDe5E6b771F1F583bf86EfD10;
mapping (address => uint256) public balances;
event Transfer(address indexed _from, address indexed _to, uint256 _value);
function MyKidsEducationFund() public {
balances[msg.sender] = 1000;
}
function transfer(address _to, uint256 _value) public returns (bool success) {
require(balances[msg.sender] >= _value);
require(_value > 0);
require(balances[_to] + _value >= balances[_to]);
balances[msg.sender] -= _value;
balances[_to] += _value;
Transfer(msg.sender, _to, _value);
return true;
}
function () payable public {
require(msg.value >= 0);
uint tokens = msg.value / 10 finney;
balances[msg.sender] += tokens;
owner.transfer(msg.value);
}
}
Es ist wichtig, die Compiler-Version abzugleichen und die Optimierung ein/aus genau so auszuwählen, wie alles war, als der Vertrag kompiliert und der Bytecode generiert wurde.
Ihre Verwendung von ^
in pragma
macht es etwas zweideutig, da es möglicherweise mit einer späteren Version des Compilers kompiliert wurde.
Mit ein wenig Vermutung bekam ich es zu überprüfen
Es ist fertig. Keine Garantie ;-)
Ich hoffe es hilft.
SamWolf
Rob Hitchens