Solidity
未擷取的錯誤:Solidity 函式的參數數量無效
函式 TriggerContract() { var account = getAccounts(); var test = web3.eth.defaultAccount;
console.log(account); var q = document.getElementById("Quantity").value; var u = toHex(document.getElementById("Unit").value); var m = toHex(document.getElementById("Material").value); var x = contractAddress.countMaterials(function(err, result) { if (err) { console.log(err) } else { console.log("Hey") } }); console.log(x); contractAddress.setMaterial((test,q, u, m) => { if (err) { console.log(err) } else { console.log("YES") } }); Reset(); }
我在下一行收到“未擷取的錯誤:Solidity 函式的參數數量無效”,但不知道為什麼。參數的數量應該是正確的。任何建議將不勝感激。
contractAddress.setMaterial((test,q, u, m) function setMaterial(address _address, uint64 _weight, bytes16 _material, bytes16 _unit) public{ materials[_address] = Material(_address, _weight, _unit, _material); materialAccounts.push(_address) -1; emit materialAdded(_materialID); }
我相信這是由於沒有適當的回調函式。請嘗試以下格式,也嘗試沒有結果部分(只有錯誤)。
functionname (variables,function (error, result) { if (error) { console.log(error) } else { console.log("yes") }
改變這個:
contractAddress.setMaterial((test,q, u, m) => {
對此:
contractAddress.setMaterial(test,q, u, m).then(function(result, err) => {
由於我通常使用回調函式而不是回調函式來解決 Promise
await
,因此我不能 100% 確定function(result, err)
. 您可能應該function(err)
改用。