Contract Address Details
contract
0x2bf1BFb0eB6276a4F4B60044068Cb8CdEB89f79B
- Contract Name
- RealitioProxy
- Creator
- 0x5d5fb4–92281c at 0xc57922–0b72d7
- Balance
- 0 xDai ( )
- Tokens
-
Fetching tokens...
- Transactions
- 0 Transactions
- Transfers
- 0 Transfers
- Gas Used
- Fetching gas used...
- Last Balance Update
- 27092267
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
- Contract name:
- RealitioProxy
- Optimization enabled
- false
- Compiler version
- v0.5.12+commit.7709ece9
- EVM Version
- default
- Verified at
- 2020-12-03T18:33:30.088307Z
Constructor Arguments
000000000000000000000000ceafdd6bc0bef976fdcd1112955828e00543c0ce00000000000000000000000090a617ed516ab7faaba56cceda0c5d952f294d030000000000000000000000000000000000000000000000000000000000000005
Arg [0] (address) : 0xceafdd6bc0bef976fdcd1112955828e00543c0ce
Arg [1] (address) : 0x90a617ed516ab7faaba56cceda0c5d952f294d03
Arg [2] (uint256) : 5
Contract source code
// File: contracts/Interfaces.sol 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); } // File: contracts/RealitioProxy.sol pragma solidity ^0.5.12; contract RealitioProxy { IConditionalTokens public conditionalTokens; IRealitio public realitio; uint256 public nuancedBinaryTemplateId; constructor( IConditionalTokens _conditionalTokens, IRealitio _realitio, uint256 _nuancedBinaryTemplateId ) public { conditionalTokens = _conditionalTokens; realitio = _realitio; nuancedBinaryTemplateId = _nuancedBinaryTemplateId; } function resolve( bytes32 questionId, uint256 templateId, string calldata question, uint256 numOutcomes ) external { // check that the given templateId and question match the questionId bytes32 contentHash = keccak256(abi.encodePacked(templateId, realitio.getOpeningTS(questionId), question)); require(contentHash == realitio.getContentHash(questionId), "Content hash mismatch"); uint256[] memory payouts; if (templateId == 0 || templateId == 2) { // binary or single-select payouts = getSingleSelectPayouts(questionId, numOutcomes); } else if (templateId == nuancedBinaryTemplateId) { payouts = getNuancedBinaryPayouts(questionId, numOutcomes); } else { revert("Unknown templateId"); } conditionalTokens.reportPayouts(questionId, payouts); } function getSingleSelectPayouts(bytes32 questionId, uint256 numOutcomes) internal view returns (uint256[] memory) { uint256[] memory payouts = new uint256[](numOutcomes); uint256 answer = uint256(realitio.resultFor(questionId)); if (answer == uint256(-1)) { for (uint256 i = 0; i < numOutcomes; i++) { payouts[i] = 1; } } else { require(answer < numOutcomes, "Answer must be between 0 and numOutcomes"); payouts[answer] = 1; } return payouts; } function getNuancedBinaryPayouts(bytes32 questionId, uint256 numOutcomes) internal view returns (uint256[] memory) { require(numOutcomes == 2, "Number of outcomes expected to be 2"); uint256[] memory payouts = new uint256[](2); uint256 answer = uint256(realitio.resultFor(questionId)); if (answer == uint256(-1)) { payouts[0] = 1; payouts[1] = 1; } else { require(answer < 5, "Answer must be between 0 and 4"); payouts[0] = 4 - answer; payouts[1] = answer; } return 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":"uint256","name":"_nuancedBinaryTemplateId","internalType":"uint256"}]},{"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":"uint256","name":"","internalType":"uint256"}],"name":"nuancedBinaryTemplateId","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":"uint256","name":"templateId","internalType":"uint256"},{"type":"string","name":"question","internalType":"string"},{"type":"uint256","name":"numOutcomes","internalType":"uint256"}],"constant":false}]
Contract Creation Code
0x608060405234801561001057600080fd5b50604051610b3a380380610b3a8339818101604052606081101561003357600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600281905550505050610a48806100f26000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635bd9e29914610051578063bc8802a21461009b578063d41f2556146100e5578063dbc0e6351461017c575b600080fd5b61005961019a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100a36101bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017a600480360360808110156100fb57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b9091929391929390803590602001909291905050506101e5565b005b610184610596565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600084600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e63fa6a886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561025b57600080fd5b505afa15801561026f573d6000803e3d6000fd5b505050506040513d602081101561028557600080fd5b81019080805190602001909291905050508585604051602001808581526020018463ffffffff1663ffffffff1660e01b815260040183838082843780830192505050945050505050604051602081830303815290604052805190602001209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166351577ea9876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561035857600080fd5b505afa15801561036c573d6000803e3d6000fd5b505050506040513d602081101561038257600080fd5b81019080805190602001909291905050508114610407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f436f6e74656e742068617368206d69736d61746368000000000000000000000081525060200191505060405180910390fd5b606060008614806104185750600286145b1561042e57610427878461059c565b90506104b8565b600254861415610449576104428784610767565b90506104b7565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e6b6e6f776e2074656d706c6174654964000000000000000000000000000081525060200191505060405180910390fd5b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c49298ac88836040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561054f578082015181840152602081019050610534565b505050509050019350505050600060405180830381600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b5050505050505050505050565b60025481565b606080826040519080825280602002602001820160405280156105ce5781602001602082028038833980820191505090505b5090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d09cc57e866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561064657600080fd5b505afa15801561065a573d6000803e3d6000fd5b505050506040513d602081101561067057600080fd5b810190808051906020019092919050505060001c90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114156106e95760008090505b848110156106e35760018382815181106106ca57fe5b60200260200101818152505080806001019150506106b4565b5061075c565b838110610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806109ec6028913960400191505060405180910390fd5b600182828151811061074f57fe5b6020026020010181815250505b819250505092915050565b6060600282146107c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806109c96023913960400191505060405180910390fd5b606060026040519080825280602002602001820160405280156107f45781602001602082028038833980820191505090505b5090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d09cc57e866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561086c57600080fd5b505afa158015610880573d6000803e3d6000fd5b505050506040513d602081101561089657600080fd5b810190808051906020019092919050505060001c90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81141561090f576001826000815181106108e357fe5b6020026020010181815250506001826001815181106108fe57fe5b6020026020010181815250506109bd565b60058110610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f416e73776572206d757374206265206265747765656e203020616e642034000081525060200191505060405180910390fd5b806004038260008151811061099657fe5b60200260200101818152505080826001815181106109b057fe5b6020026020010181815250505b81925050509291505056fe4e756d626572206f66206f7574636f6d657320657870656374656420746f2062652032416e73776572206d757374206265206265747765656e203020616e64206e756d4f7574636f6d6573a265627a7a72315820cea9fac4aa74e09d8481d2f0110b0f56fb771b8b5192f504939aaefd67d194e864736f6c634300050c0032000000000000000000000000ceafdd6bc0bef976fdcd1112955828e00543c0ce00000000000000000000000090a617ed516ab7faaba56cceda0c5d952f294d030000000000000000000000000000000000000000000000000000000000000005
Deployed ByteCode
0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80635bd9e29914610051578063bc8802a21461009b578063d41f2556146100e5578063dbc0e6351461017c575b600080fd5b61005961019a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100a36101bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61017a600480360360808110156100fb57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561012c57600080fd5b82018360208201111561013e57600080fd5b8035906020019184600183028401116401000000008311171561016057600080fd5b9091929391929390803590602001909291905050506101e5565b005b610184610596565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600084600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e63fa6a886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561025b57600080fd5b505afa15801561026f573d6000803e3d6000fd5b505050506040513d602081101561028557600080fd5b81019080805190602001909291905050508585604051602001808581526020018463ffffffff1663ffffffff1660e01b815260040183838082843780830192505050945050505050604051602081830303815290604052805190602001209050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166351577ea9876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561035857600080fd5b505afa15801561036c573d6000803e3d6000fd5b505050506040513d602081101561038257600080fd5b81019080805190602001909291905050508114610407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f436f6e74656e742068617368206d69736d61746368000000000000000000000081525060200191505060405180910390fd5b606060008614806104185750600286145b1561042e57610427878461059c565b90506104b8565b600254861415610449576104428784610767565b90506104b7565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f556e6b6e6f776e2074656d706c6174654964000000000000000000000000000081525060200191505060405180910390fd5b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c49298ac88836040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019060200280838360005b8381101561054f578082015181840152602081019050610534565b505050509050019350505050600060405180830381600087803b15801561057557600080fd5b505af1158015610589573d6000803e3d6000fd5b5050505050505050505050565b60025481565b606080826040519080825280602002602001820160405280156105ce5781602001602082028038833980820191505090505b5090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d09cc57e866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561064657600080fd5b505afa15801561065a573d6000803e3d6000fd5b505050506040513d602081101561067057600080fd5b810190808051906020019092919050505060001c90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114156106e95760008090505b848110156106e35760018382815181106106ca57fe5b60200260200101818152505080806001019150506106b4565b5061075c565b838110610741576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806109ec6028913960400191505060405180910390fd5b600182828151811061074f57fe5b6020026020010181815250505b819250505092915050565b6060600282146107c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806109c96023913960400191505060405180910390fd5b606060026040519080825280602002602001820160405280156107f45781602001602082028038833980820191505090505b5090506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d09cc57e866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561086c57600080fd5b505afa158015610880573d6000803e3d6000fd5b505050506040513d602081101561089657600080fd5b810190808051906020019092919050505060001c90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81141561090f576001826000815181106108e357fe5b6020026020010181815250506001826001815181106108fe57fe5b6020026020010181815250506109bd565b60058110610985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f416e73776572206d757374206265206265747765656e203020616e642034000081525060200191505060405180910390fd5b806004038260008151811061099657fe5b60200260200101818152505080826001815181106109b057fe5b6020026020010181815250505b81925050509291505056fe4e756d626572206f66206f7574636f6d657320657870656374656420746f2062652032416e73776572206d757374206265206265747765656e203020616e64206e756d4f7574636f6d6573a265627a7a72315820cea9fac4aa74e09d8481d2f0110b0f56fb771b8b5192f504939aaefd67d194e864736f6c634300050c0032