Тестовый пример Solidity Transfer Token не работает нормально.

Я провожу тестирование смарт-контракта, когда пытаюсь передать токен с помощью https://remix.ethereum.org . Это работало нормально. Но теперь я хочу написать его тестовый пример, но он не работает нормально и не передает токены. Код:

 it('should properly [transfer] token', async function() {
    let recipient = "0xe0f5206bbd039e7b0592d8918820024e2a7437b9";
    let tokenWei = 1000000;
    let status = await contract.methods.transfer(recipient, tokenWei).call();
    console.log(status);

    let ownerBalance = await contract.methods.balanceOf(owner).call();
    let recipientBalance = await contract.methods.balanceOf("0xe0f5206bbd039e7b0592d8918820024e2a7437b9").call();
    console.log("Balance:"+ownerBalance +'----'+recipientBalance);
  });

Выход такой.

status = true
Balance:1705243055----100000000

Эти балансы точно такие же, как и раньше, что означает отсутствие вычета из учетной записи владельца и добавления в учетную запись получателя.

Любое руководство/помощь будут оценены.

Спасибо

Wie sendet man mit terminal? Не установить senden wie?
Привет и добро пожаловать в Ethereum StackExchange. Пожалуйста, говорите по-английски, чтобы пользователи могли вас понять.

Ответы (1)

Вы должны использовать отправку вместо вызова, так как вы меняете статус.

contract.methods.transfer(получатель, tokenWei).send({from: '0x123...'})
Спасибо, балансы отображаются правильно как 1704243055-101000000. Но когда я попробовал другой тестовый пример ниже тестового примера, который снова покажет начальный назначенный баланс в учетной записи владельца. Код it('Баланс владельца', async function() { let Balance = await Contract.methods.balanceOf(owner).call(); Balance = Balance.toString(); console.log(Balance); }) Вывод должен быть: 1704243055 Но показано: 1705243055 Итак, мой вопрос: есть ли проблема с областью действия, почему баланс снова отображается как назначено ранее в новом тестовом примере, или мне нужно записать один тестовый пример, как я уже упоминал в вопросе?
звучит странно. У меня нет ответа на этот вопрос, он должен работать правильно. Вы используете ганаш-кли?
Да, я использую ganache-cli
У вас есть пример тестовых случаев с кодом? Пожалуйста предоставьте.
вы можете поискать на github что-нибудь. es: github.com/gnosis/gnosis-contracts/tree/master/test/javascript