Solidity
函式在 ropsten 上不返回值
當我在 ganache 本地鏈上執行它時,這段程式碼完美地返回了地址,但是當我在 ropsten 上執行它時,它只返回一個“-”
知道問題是什麼嗎?
function newMatch(uint _matchId,uint _noOfGames,uint _oddsOfA, uint _oddsOfB) public returns(address newContract) { Match c = new Match(_matchId,_noOfGames,_oddsOfA,_oddsOfB); matchTracker[_matchId] = addr; count++; return address(c); }
您的函式很可能確實返回值,您只是無法擷取它。當從外部擁有的地址在鏈上呼叫函式時,擷取函式返回的值並不容易。嘗試從其他智能合約呼叫該函式。
另一種方法是在返回結果的同時記錄結果值,如下所示:
<!-- language: lang-solidity --> event NewMatch (address indexed match); function newMatch(uint _matchId,uint _noOfGames,uint _oddsOfA, uint _oddsOfB) public returns(address newContract) { Match c = new Match(_matchId,_noOfGames,_oddsOfA,_oddsOfB); matchTracker[_matchId] = addr; count++; emit NewMatch (address (c)); return address(c); }