Solidity msg.value不转移到所需地址

时间:2018-04-21 18:36:38

标签: blockchain ethereum solidity smartcontracts

我正在编写一个简单的可靠性函数,试图将某些值传递给骑士阵列中的特定地址。

我调用了giveToKnights()函数并输入了地址和索引,但没有值被转移到所需的骑士地址。

我不确定是不是因为合同没有以太实际给予选定的骑士?如果那个< - 这就是为什么我希望有人可以帮我告诉我如何用一些以太的方式提供合同。

很高兴澄清^是否不清楚。

address[] public knights = [0x14723a09acff6d2a60dcdf7aa4aff308fddc160c, 0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db, 0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db, 0xdd870fa1b7c4700f2bd7f44238821c26f7392148];


function giveToKnights(uint _knightIndex, address _knightPlayer) payable public {

      swipees[_swipeeIndex].transfer(msg.value);

}

1 个答案:

答案 0 :(得分:0)

我建议您使用带调试器的IDE,例如remix,它会直接显示代码问题:

browser/StackOverflow:7:11: DeclarationError: Undeclared identifier.
      swipees[_swipeeIndex].transfer(msg.value);
      ^-----^
browser/StackOverflow:7:19: DeclarationError: Undeclared identifier.
      swipees[_swipeeIndex].transfer(msg.value);
              ^----------^

您可能混淆了变量名称,以下编译:

pragma solidity ^0.4.9;

contract StackOverflow {
    address[] public knights = [0x14723a09acff6d2a60dcdf7aa4aff308fddc160c, 0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db, 0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db, 0xdd870fa1b7c4700f2bd7f44238821c26f7392148];

    function giveToKnights(uint _knightIndex, address _knightPlayer) payable public {
          knights[_knightIndex].transfer(msg.value);
    }
}

但是,_knightPlayer仍未使用。

browser/StackOverflow:6:47: Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.
function giveToKnights(uint _knightIndex, address _knightPlayer) payable public {
                                          ^-------------------^

我希望有所帮助。我建议在这种情况下直接将Ether发送到_knightPlayer,这会使数组过时。