Go-Ethereum
是否應該從 web3 API 上的 MyContract.new 和 MyContract.myFunction 呼叫兩次回調?
當我像這樣使用 myContract.new() 實例化契約時:
MyContract.new({ from: addr, data: code, gas: gas, gasPrice: price }, function (error, contract) { if (!error) { if (typeof contract.address != 'undefined') { console.log("second call"); console.log('Confirmed. address: ' + contract.address + ' transactionHash: ' + contract.transactionHash); } else { console.log("first call"); } } else { console.log('geth callback error: ' + error); } });
..該函式被呼叫兩次。第一個是交易雜湊(未顯示),第二個是合約地址(顯示)。
我是否應該期望後續使用具有事務性的合約方法來呼叫回調兩次?
var myContract = MyContract.at(cAddr); myContract.myFunction(par1, par2, { from: addr, data: code, gas: gas, gasPrice: price }, function (error, obj) { if (error) { console.log("whoops!"); } else { console.log("myFunction called"); } });
呼叫一次的合約方法只會觸發一次回調。
對於
.new
,回調被觸發兩次是正確的:通常,第一次使用事務雜湊,第二次使用已部署合約的地址。