РЕДАКТИРОВАТЬ Разрешение установлено, проблема заключается только в том, что метамаска не обнаруживает ни имени токена, ни разрешенной суммы.
В моем HTML/JS
amount = parseInt(web3.toWei(amount, "ether" ));
tokeninstance.approve(mainadd,amount,function(error, transactionHash){
if (!error){
$("#allowanceresult").html("TX hash: "+transactionHash+"<br>")
toastr.success("Approval successfull!")
}else{
$("#allowanceresult").html("Error: "+error+"<br>")
toastr.error("Approval failed!");
}
В интерфейсе Solidity
function approve(address guy, uint wad) public returns (bool);
Выполнение функции утверждения в ремиксе работает вручную, я нахожусь на ropsten, но использую метамаску + функцию децентрализованного приложения HTML/JS, получая пользовательский ввод (правильно показывать в вэй) и ввод предопределенного адреса (правильный формат), метамаска показывает мне это , еще на ропстене:
Я что-то пропустил? Я всегда делал свои функции send() web3.js, я использую тот же файл web3.js, что и всегда.
Проверяя ropsten на обоих параллельных событиях (из ремикса и метамаски), ясно, что вводятся одни и те же данные, один и тот же адрес и один и тот же вес. :(
При вызове функции смарт-контракта из javascript отправьте uint
аргумент как BigNumber . Я думаю, вы можете попробовать это?
amount = new BigNumber(web3.toWei(amount, "ether" ));
Сибири PR