Oracles

不允許從“字元串記憶體”到“uint256”的顯式類型轉換

  • July 3, 2020

我正在使用 oracle 從自定義 api 中獲取結果。結果預設為字元串。我想把它轉換成 uint256,這樣我就可以執行基本的算術函式了。

這是我的程式碼:

function __callback(bytes32 myid, string result) public{
      if (msg.sender != provable_cbAddress()) revert();
      uint256 points = uint(result); //Error here
      balanceOf[pointsAllowance[myid]] = points;
      remSupply = remSupply - points;
      emit LogPriceUpdated(points);
}

你使用OraclizeLib圖書館正確嗎?如果是,則該庫已在其中定義parseInt了方法。然後你的函式可以毫無問題地像這樣使用:

function __callback(bytes32 myid, string result) public{
   if (msg.sender != provable_cbAddress()) revert();
   
   uint256 points = parseInt(result);
   balanceOf[pointsAllowance[myid]] = points;
   remSupply = remSupply - points;
   
   emit LogPriceUpdated(points);
}

引用自:https://ethereum.stackexchange.com/questions/84761