false
false
The Sokol Testnet is currently lacking validators. Please consider using Goerli or Mumbai for testing purposes.

Contract Address Details
contract

0x1D369EEC97cF2E62c8DBB804b3998Bf15bcb67dB

Contract Name
RealitioScalarAdapter
Creator
0xa493f3–b1b2b8 at 0xd0f043–995a54
Balance
0 SPOA
Tokens
Fetching tokens...
Transactions
1 Transactions
Transfers
0 Transfers
Gas Used
115,808
Last Balance Update
27736955
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
RealitioScalarAdapter




Optimization enabled
false
Compiler version
v0.5.12+commit.7709ece9




EVM Version
default




Verified at
2023-11-11T13:48:39.253954Z

Constructor Arguments

0000000000000000000000000db8c35045a830dc7f2a4dd87ef90e7a9cd0534f00000000000000000000000090a617ed516ab7faaba56cceda0c5d952f294d03

Arg [0] (address) : 0x0db8c35045a830dc7f2a4dd87ef90e7a9cd0534f
Arg [1] (address) : 0x90a617ed516ab7faaba56cceda0c5d952f294d03

              

.sol

Sol2uml
new
pragma solidity ^0.5.12;

interface IConditionalTokens {
    function reportPayouts(bytes32 questionId, uint256[] calldata payouts) external;
}

interface IRealitio {
    function getContentHash(bytes32 questionId) external view returns (bytes32);
    function getOpeningTS(bytes32 questionId) external view returns (uint32);
    function resultFor(bytes32 questionId) external view returns (bytes32);
}

contract RealitioScalarAdapter {
  IConditionalTokens public conditionalTokens;
  IRealitio public realitio;

  constructor(
    IConditionalTokens _conditionalTokens,
    IRealitio _realitio
  ) public {
    conditionalTokens = _conditionalTokens;
    realitio = _realitio;
  }

  event QuestionIdAnnouncement(
    bytes32 indexed realitioQuestionId,
    bytes32 indexed conditionQuestionId,
    uint256 low,
    uint256 high
  );

  function announceConditionQuestionId(
    bytes32 questionId,
    uint256 low,
    uint256 high
  ) external {
    emit QuestionIdAnnouncement(
      questionId,
      keccak256(abi.encode(
        questionId,
        low,
        high
      )),
      low,
      high
    );
  }

  function resolve(
    bytes32 questionId,
    string calldata question,
    uint256 low,
    uint256 high
  ) external {
    // check that the given templateId and question match the questionId
    bytes32 contentHash = keccak256(abi.encodePacked(
      uint256(1),
      realitio.getOpeningTS(questionId),
      question
    ));

    require(contentHash == realitio.getContentHash(questionId), "Content hash mismatch");
    require(low < high, "Range invalid");
    require(high != uint256(-1), "Invalid high point");

    uint256[] memory payouts = new uint256[](2);

    uint256 answer = uint256(realitio.resultFor(questionId));

    if (answer == uint256(-1)) {
      payouts[0] = 1;
      payouts[1] = 1;
    } else if (answer <= low) {
      payouts[0] = 1;
      payouts[1] = 0;
    } else if (answer >= high) {
      payouts[0] = 0;
      payouts[1] = 1;
    } else {
      payouts[0] = high - answer;
      payouts[1] = answer - low;
    }

    conditionalTokens.reportPayouts(
      keccak256(abi.encode(
        questionId,
        low,
        high
      )),
      payouts
    );
  }
}
        

Compiler Settings

{"outputSelection":{"*":{"*":["*"],"":["*"]}},"optimizer":{"runs":200,"enabled":false},"libraries":{}}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","payable":false,"inputs":[{"type":"address","name":"_conditionalTokens","internalType":"contract IConditionalTokens"},{"type":"address","name":"_realitio","internalType":"contract IRealitio"}]},{"type":"event","name":"QuestionIdAnnouncement","inputs":[{"type":"bytes32","name":"realitioQuestionId","internalType":"bytes32","indexed":true},{"type":"bytes32","name":"conditionQuestionId","internalType":"bytes32","indexed":true},{"type":"uint256","name":"low","internalType":"uint256","indexed":false},{"type":"uint256","name":"high","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"announceConditionQuestionId","inputs":[{"type":"bytes32","name":"questionId","internalType":"bytes32"},{"type":"uint256","name":"low","internalType":"uint256"},{"type":"uint256","name":"high","internalType":"uint256"}],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":"","internalType":"contract IConditionalTokens"}],"name":"conditionalTokens","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":"","internalType":"contract IRealitio"}],"name":"realitio","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"resolve","inputs":[{"type":"bytes32","name":"questionId","internalType":"bytes32"},{"type":"string","name":"question","internalType":"string"},{"type":"uint256","name":"low","internalType":"uint256"},{"type":"uint256","name":"high","internalType":"uint256"}],"constant":false}]
              

Contract Creation Code

0x608060405234801561001057600080fd5b506040516109e83803806109e88339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610908806100e06000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635bd9e29914610051578063bc8802a21461009b578063c213c373146100e5578063fe0db7c114610127575b600080fd5b6100596101be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100a36101e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610125600480360360608110156100fb57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610209565b005b6101bc6004803603608081101561013d57600080fd5b81019080803590602001909291908035906020019064010000000081111561016457600080fd5b82018360208201111561017657600080fd5b8035906020019184600183028401116401000000008311171561019857600080fd5b90919293919293908035906020019092919080359060200190929190505050610285565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b82828260405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120837fab038c0885722fffdf6864cf016c56fa921a1506541dac4fcd59d65963916cb18484604051808381526020018281526020019250505060405180910390a3505050565b600060018060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e63fa6a886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d602081101561032557600080fd5b81019080805190602001909291905050508686604051602001808581526020018463ffffffff1663ffffffff1660e01b815260040183838082843780830192505050945050505050604051602081830303815290604052805190602001209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166351577ea9876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156103f857600080fd5b505afa15801561040c573d6000803e3d6000fd5b505050506040513d602081101561042257600080fd5b810190808051906020019092919050505081146104a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f436f6e74656e742068617368206d69736d61746368000000000000000000000081525060200191505060405180910390fd5b81831061051c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f52616e676520696e76616c69640000000000000000000000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156105b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c6964206869676820706f696e74000000000000000000000000000081525060200191505060405180910390fd5b606060026040519080825280602002602001820160405280156105e45781602001602082028038833980820191505090505b5090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d09cc57e896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d602081101561068657600080fd5b810190808051906020019092919050505060001c90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114156106ff576001826000815181106106d357fe5b6020026020010181815250506001826001815181106106ee57fe5b6020026020010181815250506107be565b8481116107415760018260008151811061071557fe5b60200260200101818152505060008260018151811061073057fe5b6020026020010181815250506107bd565b8381106107835760008260008151811061075757fe5b60200260200101818152505060018260018151811061077257fe5b6020026020010181815250506107bc565b8084038260008151811061079357fe5b602002602001018181525050848103826001815181106107af57fe5b6020026020010181815250505b5b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c49298ac89878760405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561088b578082015181840152602081019050610870565b505050509050019350505050600060405180830381600087803b1580156108b157600080fd5b505af11580156108c5573d6000803e3d6000fd5b50505050505050505050505056fea265627a7a72315820f688294be646d24bcfaa9053ec7f018036424f51656f29ba34b314dc3282985064736f6c634300050c00320000000000000000000000000db8c35045a830dc7f2a4dd87ef90e7a9cd0534f00000000000000000000000090a617ed516ab7faaba56cceda0c5d952f294d03

Deployed ByteCode

0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80635bd9e29914610051578063bc8802a21461009b578063c213c373146100e5578063fe0db7c114610127575b600080fd5b6100596101be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100a36101e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610125600480360360608110156100fb57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610209565b005b6101bc6004803603608081101561013d57600080fd5b81019080803590602001909291908035906020019064010000000081111561016457600080fd5b82018360208201111561017657600080fd5b8035906020019184600183028401116401000000008311171561019857600080fd5b90919293919293908035906020019092919080359060200190929190505050610285565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b82828260405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120837fab038c0885722fffdf6864cf016c56fa921a1506541dac4fcd59d65963916cb18484604051808381526020018281526020019250505060405180910390a3505050565b600060018060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e63fa6a886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d602081101561032557600080fd5b81019080805190602001909291905050508686604051602001808581526020018463ffffffff1663ffffffff1660e01b815260040183838082843780830192505050945050505050604051602081830303815290604052805190602001209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166351577ea9876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156103f857600080fd5b505afa15801561040c573d6000803e3d6000fd5b505050506040513d602081101561042257600080fd5b810190808051906020019092919050505081146104a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f436f6e74656e742068617368206d69736d61746368000000000000000000000081525060200191505060405180910390fd5b81831061051c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f52616e676520696e76616c69640000000000000000000000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156105b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c6964206869676820706f696e74000000000000000000000000000081525060200191505060405180910390fd5b606060026040519080825280602002602001820160405280156105e45781602001602082028038833980820191505090505b5090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d09cc57e896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d602081101561068657600080fd5b810190808051906020019092919050505060001c90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114156106ff576001826000815181106106d357fe5b6020026020010181815250506001826001815181106106ee57fe5b6020026020010181815250506107be565b8481116107415760018260008151811061071557fe5b60200260200101818152505060008260018151811061073057fe5b6020026020010181815250506107bd565b8381106107835760008260008151811061075757fe5b60200260200101818152505060018260018151811061077257fe5b6020026020010181815250506107bc565b8084038260008151811061079357fe5b602002602001018181525050848103826001815181106107af57fe5b6020026020010181815250505b5b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c49298ac89878760405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561088b578082015181840152602081019050610870565b505050509050019350505050600060405180830381600087803b1580156108b157600080fd5b505af11580156108c5573d6000803e3d6000fd5b50505050505050505050505056fea265627a7a72315820f688294be646d24bcfaa9053ec7f018036424f51656f29ba34b314dc3282985064736f6c634300050c0032