账户
0xe1...6208
0xe1...6208

0xe1...6208

$500
此合同的源代码已经过验证!
合同元数据
编译器
0.6.12+commit.27d51765
语言
Solidity
合同源代码
文件 1 的 2:ethvindexv1.sol
pragma solidity ^0.6.0;

import "https://raw.githubusercontent.com/provable-things/ethereum-api/master/provableAPI_0.6.sol";

// import "@openzeppelin/contracts/access/Ownable.sol";

contract APIConsumer is usingProvable {
    string public ethv;
    address public owner;

    event Publish(string ethv, uint256 timestamp);
    event LogNewProvableQuery(string description);
    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function updateETHV() public payable {
        if (provable_getPrice("URL") > address(this).balance) {
          emit LogNewProvableQuery("Provable query was NOT sent, please send some ETH to cover for the query fee");
        }
         else {
           LogNewProvableQuery("Provable query sent, standing by for the answer..");
           provable_query("URL", "https://volmex-labs.firebaseio.com/current_evix/evix.json");
       }

    }

    /**
     * Receive the response in the form of uint256
     */

    function __callback (bytes32 _requestId, string memory curr_ethv) public override
    {
        if (msg.sender != provable_cbAddress()) revert();
        ethv = curr_ethv;
        emit Publish(ethv, block.timestamp);
    }

}
合同源代码
文件 2 的 2:provableAPI_0.6.sol
设置
{
  "compilationTarget": {
    "browser/ethvindexv1.sol": "APIConsumer"
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"description","type":"string"}],"name":"LogNewProvableQuery","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"ethv","type":"string"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Publish","type":"event"},{"inputs":[{"internalType":"bytes32","name":"_requestId","type":"bytes32"},{"internalType":"string","name":"curr_ethv","type":"string"}],"name":"__callback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_myid","type":"bytes32"},{"internalType":"string","name":"_result","type":"string"},{"internalType":"bytes","name":"_proof","type":"bytes"}],"name":"__callback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ethv","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"updateETHV","outputs":[],"stateMutability":"payable","type":"function"}]