Я хочу использовать Oraclize в Remix, чтобы протестировать его. Я слишком глуп, чтобы использовать их примеры.
Как я могу сделать эту работу?
Из их Github я взял код YouTube-Views и скопировал его в Remix
pragma solidity >= 0.5.0 < 0.6.0;
import "github.com/oraclize/ethereum-api/oraclizeAPI.sol";
contract YoutubeViews is usingOraclize {
string public viewsCount;
event LogYoutubeViewCount(string views);
event LogNewOraclizeQuery(string description);
constructor()
public
{
update(); // Update views on contract creation...
}
function __callback(
bytes32 _myid,
string memory _result
)
public
{
require(msg.sender == oraclize_cbAddress());
viewsCount = _result;
emit LogYoutubeViewCount(viewsCount);
// Do something with viewsCount, like tipping the author if viewsCount > X?
}
function update()
public
payable
{
emit LogNewOraclizeQuery("Oraclize query was sent, standing by for the answer...");
oraclize_query("URL", 'html(https://www.youtube.com/watch?v=9bZkp7q19f0).xpath(//*[contains(@class, "watch-view-count")]/text())');
}
}
Когда я использую viewCount, он возвращает:
0: строка:
Это происходит и со всеми остальными примерами.
С WolframAlpha напр. Я также получаю следующую ошибку:
транзакция в WolframAlpha.update с ошибкой: ошибка виртуальной машины: возврат.
revert Транзакция была возвращена в исходное состояние.
Примечание. Конструктор должен быть платным, если вы отправляете значение. Отладка транзакции для получения дополнительной информации.