false
false

Contract Address Details
contract

0xb97FCb6adf4c4aF9981932a004e6CC47173d0Bfc

Contract Name
RealitioScalarAdapter
Creator
0x5d5fb4–92281c at 0x07bb34–ba83d4
Balance
0 xDai ( )
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
27072609
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
2021-01-12T21:16:45.282331Z

Constructor Arguments

000000000000000000000000ceafdd6bc0bef976fdcd1112955828e00543c0ce00000000000000000000000090a617ed516ab7faaba56cceda0c5d952f294d03

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

              

Contract source code

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
    );
  }
}
        

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

0x608060405234801561001057600080fd5b506040516109e83803806109e88339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610908806100e06000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635bd9e29914610051578063bc8802a21461009b578063c213c373146100e5578063fe0db7c114610127575b600080fd5b6100596101be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100a36101e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610125600480360360608110156100fb57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610209565b005b6101bc6004803603608081101561013d57600080fd5b81019080803590602001909291908035906020019064010000000081111561016457600080fd5b82018360208201111561017657600080fd5b8035906020019184600183028401116401000000008311171561019857600080fd5b90919293919293908035906020019092919080359060200190929190505050610285565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b82828260405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120837fab038c0885722fffdf6864cf016c56fa921a1506541dac4fcd59d65963916cb18484604051808381526020018281526020019250505060405180910390a3505050565b600060018060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e63fa6a886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d602081101561032557600080fd5b81019080805190602001909291905050508686604051602001808581526020018463ffffffff1663ffffffff1660e01b815260040183838082843780830192505050945050505050604051602081830303815290604052805190602001209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166351577ea9876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156103f857600080fd5b505afa15801561040c573d6000803e3d6000fd5b505050506040513d602081101561042257600080fd5b810190808051906020019092919050505081146104a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f436f6e74656e742068617368206d69736d61746368000000000000000000000081525060200191505060405180910390fd5b81831061051c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f52616e676520696e76616c69640000000000000000000000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156105b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c6964206869676820706f696e74000000000000000000000000000081525060200191505060405180910390fd5b606060026040519080825280602002602001820160405280156105e45781602001602082028038833980820191505090505b5090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d09cc57e896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d602081101561068657600080fd5b810190808051906020019092919050505060001c90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114156106ff576001826000815181106106d357fe5b6020026020010181815250506001826001815181106106ee57fe5b6020026020010181815250506107be565b8481116107415760018260008151811061071557fe5b60200260200101818152505060008260018151811061073057fe5b6020026020010181815250506107bd565b8381106107835760008260008151811061075757fe5b60200260200101818152505060018260018151811061077257fe5b6020026020010181815250506107bc565b8084038260008151811061079357fe5b602002602001018181525050848103826001815181106107af57fe5b6020026020010181815250505b5b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c49298ac89878760405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561088b578082015181840152602081019050610870565b505050509050019350505050600060405180830381600087803b1580156108b157600080fd5b505af11580156108c5573d6000803e3d6000fd5b50505050505050505050505056fea265627a7a723158206b1a89c8b5a8e59af16a44b87149d96f5842c4a6619cafb857deb99ff8992ea264736f6c634300050c0032000000000000000000000000ceafdd6bc0bef976fdcd1112955828e00543c0ce00000000000000000000000090a617ed516ab7faaba56cceda0c5d952f294d03

Deployed ByteCode

0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80635bd9e29914610051578063bc8802a21461009b578063c213c373146100e5578063fe0db7c114610127575b600080fd5b6100596101be565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100a36101e3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610125600480360360608110156100fb57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610209565b005b6101bc6004803603608081101561013d57600080fd5b81019080803590602001909291908035906020019064010000000081111561016457600080fd5b82018360208201111561017657600080fd5b8035906020019184600183028401116401000000008311171561019857600080fd5b90919293919293908035906020019092919080359060200190929190505050610285565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b82828260405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120837fab038c0885722fffdf6864cf016c56fa921a1506541dac4fcd59d65963916cb18484604051808381526020018281526020019250505060405180910390a3505050565b600060018060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e63fa6a886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156102fb57600080fd5b505afa15801561030f573d6000803e3d6000fd5b505050506040513d602081101561032557600080fd5b81019080805190602001909291905050508686604051602001808581526020018463ffffffff1663ffffffff1660e01b815260040183838082843780830192505050945050505050604051602081830303815290604052805190602001209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166351577ea9876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156103f857600080fd5b505afa15801561040c573d6000803e3d6000fd5b505050506040513d602081101561042257600080fd5b810190808051906020019092919050505081146104a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f436f6e74656e742068617368206d69736d61746368000000000000000000000081525060200191505060405180910390fd5b81831061051c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f52616e676520696e76616c69640000000000000000000000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156105b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f496e76616c6964206869676820706f696e74000000000000000000000000000081525060200191505060405180910390fd5b606060026040519080825280602002602001820160405280156105e45781602001602082028038833980820191505090505b5090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d09cc57e896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561065c57600080fd5b505afa158015610670573d6000803e3d6000fd5b505050506040513d602081101561068657600080fd5b810190808051906020019092919050505060001c90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114156106ff576001826000815181106106d357fe5b6020026020010181815250506001826001815181106106ee57fe5b6020026020010181815250506107be565b8481116107415760018260008151811061071557fe5b60200260200101818152505060008260018151811061073057fe5b6020026020010181815250506107bd565b8381106107835760008260008151811061075757fe5b60200260200101818152505060018260018151811061077257fe5b6020026020010181815250506107bc565b8084038260008151811061079357fe5b602002602001018181525050848103826001815181106107af57fe5b6020026020010181815250505b5b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c49298ac89878760405160200180848152602001838152602001828152602001935050505060405160208183030381529060405280519060200120846040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561088b578082015181840152602081019050610870565b505050509050019350505050600060405180830381600087803b1580156108b157600080fd5b505af11580156108c5573d6000803e3d6000fd5b50505050505050505050505056fea265627a7a723158206b1a89c8b5a8e59af16a44b87149d96f5842c4a6619cafb857deb99ff8992ea264736f6c634300050c0032