Я пытаюсь следовать этому учебнику здесь :
Но в уроке он не указывает, как выполнить контракт. Поэтому я попытался сделать это, используя трюфель и ганаш-кли. В тесте трюфеля я попытался использовать следующий код:
const amount = web3.toWei(5, 'ether');
const Contract = await GmsPay.new({from : Sender, value : web3.toWei(10, 'ether')});
const hash = Web3Beta.utils.soliditySha3(
{t : 'address', v : Recipient},
{t : 'uint256', v : amount},
{t : 'uint256', v : 1},
{t : 'address', v : Contract.address}
);
const sig = await Web3Beta.eth.sign(hash, Sender);
const res = await Contract.claimPayment(amount, 1, sig, {from : Recipient});
Но я продолжаю получать сообщение: «Ошибка: исключение виртуальной машины при обработке транзакции: возврат». Используя отладчик, я вижу, что мой код выполняется до:
require(recoverSigner(message, sig) == owner);
Даже если я вычеркну эту строку, последняя строка все равно не работает. Что я делаю неправильно? Любая помощь будет принята с благодарностью.