Mist

不能在使用 Etherscan 在乙太坊錢包中創建合約,

  • December 15, 2017

使用以下程式碼,將其放入以部署新合約。

當我嘗試驗證 etherscan 上的程式碼時,它說它與契約的程式碼不匹配?

這是 Etherscan 連結:

https://etherscan.io/address/0x84f7f794867642a47ce577fe0d9745da6ac37c44

這是我在乙太坊錢包的部署合約部分插入的程式碼。

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);
 }
}

匹配編譯器版本並選擇優化開/關非常重要,就像編譯合約和生成字節碼時的一切一樣。

您對^in 的使用pragma使它有點模棱兩可,因為它可能已經用任何更高版本的編譯器編譯。

稍加猜測,我得到了驗證

  • 編譯器版本:v0.4.16+commit.d7661dd9
  • 啟用優化:1

完成。沒有保修 ;-)

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/31637