小编Tor*_*rof的帖子

确定性,成员"转移"在参数依赖后未找到或不可见

使用Solidity ^ 0.5.0,我实际上是在尝试实现在^ 0.4.17中使用的旧代码,但它在Remix上引发了错误.我检查了语法和一切,但只是无法捕捉到什么是错的.任何帮助高度赞赏.

pragma solidity ^0.5.0;

contract Lottery{
  address public manager;
  address[] public players;

  constructor() public {
      manager = msg.sender;
  }

   function participate() public payable {
       require(msg.value > .01 ether);
       players.push(msg.sender);
  }

   function pseudoRandom() private view returns(uint){
    return uint(keccak256(abi.encodePacked(block.difficulty, now, players)));
  }

  function pickWinner() public {
    uint index = pseudoRandom() % players.length;
    players[index].transfer(address(this).balance);
  }
}
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

browser/Lottery.sol:22:8:TypeError:在地址中依赖于参数的查找后,未找到或未显示成员"transfer".

玩家[指数] .transfer(地址(msg.sender).balance);

^ ^ ---------------------

ethereum solidity smartcontracts

3
推荐指数
1
解决办法
2444
查看次数

Solidity v^0.5.0 编译器错误 [指定的回调无效]

我正在尝试编译我的合同,但出现此错误:

AssertionError [ERR_ASSERTION]: Invalid callback specified.
Run Code Online (Sandbox Code Playgroud)

一种答案是更改编译器的版本,但我的版本是最新的(0.5.0)。我实际上正在尝试使用旧代码(0.4.17)并升级它。尝试了2天,一直失败。

这是我的合同:

pragma solidity ^0.5.0;

contract Lottery{
 address public manager;
 address payable [] public players;

 modifier restricted {
     require(msg.sender == manager);
     _;
 }

 constructor() public {
     manager = msg.sender;
 }

 function participate() public payable {
     require(msg.value > .01 ether);
     players.push(msg.sender);
 }

 function pseudoRandom() private view returns(uint){
     return uint(keccak256(abi.encodePacked(block.difficulty, now, players)));
 }

 function pickWinner() public restricted {
     require(msg.sender == manager);
     uint index = pseudoRandom() % players.length;
     address(players[index]).transfer(address(this).balance);
     (players) = new address payable[](0);
 }

 function getPlayers() …
Run Code Online (Sandbox Code Playgroud)

ethereum solidity

2
推荐指数
1
解决办法
2489
查看次数

标签 统计

ethereum ×2

solidity ×2

smartcontracts ×1