Суперблоки: возвращают значение и отображают его из функции в js. файле в смарт-контракт

#solidity #web3js

#solidity #web3js

Вопрос:

Я выполняю простое вычислительное приложение в Superblocks, кто-нибудь здесь знает, как получить значение обратно из функции смарт-контракта, у меня это выглядит так: В моем js. файле :

 //js. file 

function multiply () { let val = parseInt($("#cal").val());
instance.multiply.sendTransaction(val,{ from: accounts[0], gas : 300000}, 
function(error, result){
 if (error){
  alert(error);
    }
    else {
  $("#message").html(result.toString());
    }
  

}

 //smart contract function
function multiply (uint num) public returns (uint){
num = testNum;
testNum  = 1 ;
return testNum;
}
  

в котором я думал, что это вернет результат (testNum = 1), но он возвращает TxHash … Как я могу передать значение функции smart contract из моего js. функция, которая возвращает его обратно, а затем отображает? Извините за вопрос новичка, я новичок в суперблоках и разработке Dapp, буду признателен за любую помощь 😉

Комментарии:

1. Транзакции не имеют возвращаемых значений. Одна из возможностей — выдать событие из вашей функции со значением, которое вы хотите «вернуть», и искать это событие на клиенте.

2. ага, так в чем разница между значениями: instance.multiply.sendTransaction(val,{ from: accounts[0], gas : 300000} и instance.multiply.sendTransaction(val,{ from: accounts[0], gas: 30000, value : val}, я передаю первое значение функции в качестве аргумента, а второе доступно в функции только по msg.value ?