Как исправить ошибку "VM: неверный код операции. Неверный код операции" - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь создать функцию под названием join, которая позволяет игрокам присоединяться к игре.Каждый раз, когда кто-то присоединяется к игре.функция проверит, существует ли этот игрок уже, если он / она существует в игре, функция автоматически пополнит баланс этого конкретного игрока.В противном случае функция добавит нового игрока в объект отображения, называемый Players.Но когда я пытаюсь запустить функцию в режиме ремикса, она возвращает ошибку следующим образом:

VM error: invalid opcode.
       invalid opcode   
       The execution might have thrown.
       Debug the transaction to get more information.

Ниже приведен мой код:

    pragma solidity >=0.5.0;


    contract lotteryAdvanced {
        address public manager;
        mapping(address=>uint) public players;
        uint public totalAmount = 0;
        uint public numPlayers = 0;
        address[] public users;
        modifier managerOnly() {
            require(msg.sender == manager, 'You are not the manager of this game');
            _;
        }
        constructor() public{
            manager = msg.sender;
        }


        function join() public payable{
            require(msg.value >= 100000000000000000 wei, 'Please enter a number within the provided range');
            for( uint i = 0; i <= uint(users.length) ; i++)
            {
              if(msg.sender == users[i]) {
                players[msg.sender] = players[msg.sender] + msg.value;
              }
              players[msg.sender] = msg.value;
              users.push(msg.sender);
            }
            numPlayers++;
        }
    ```
...