169 похожих чатов

Hy guys! I have pretty strange problem. Let me explain: So,

I have a method, where I'm getting an object from another contract, then I'm adding msg.value to the one of the field of this object and then I'm just update this value:
function doVote(uint voteID, address voteFor)
external
payable
valueIsEnough
{
IVoteStorager.VoteData memory voteData = voteStorager.getVote(voteID);
// some not important code
voteData.pool += msg.value;
// some not important code
voteStorager.updateVote(voteID, voteData);
}

updateVote method actually pretty simple:
function updateVote(uint voteID, VoteData calldata vote) external voteIsExists(voteID) override {
votes[voteID] = vote;
}

And when I'm calling this method (I use web3.js) I'm getting an error:
Error: Returned error: VM Exception while processing transaction: revert

When I change voteData.pool += msg.value; on the voteData.pool += 123; everything is works fine. I guess it is problem because of how I'm sending value. I use this:
const gasAmount = await contract.methods.doVote(taskArgs.voteId, taskArgs.participant).estimateGas({from: signer.address});
await contract.methods.doVote(taskArgs.voteId, taskArgs.participant)
.send({
from: signer.address,
gas: gasAmount,
value: 100
})

But also seems like everything is fine here also. Could anybody help me guys? I'm trying to fix it whole day and I can't find any info about this. Thanks!

2 ответов

15 просмотров

try it on remix and see if it works there. if it does, then the problem is in your js script

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта