{
  "contractName": "RegistryStorage",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "betKernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "betOracle",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "proxyRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "betTerms",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "betPayments",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unpause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betKernel",
          "type": "address"
        }
      ],
      "name": "setBetKernel",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betPayments",
          "type": "address"
        }
      ],
      "name": "setBetPayments",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betOracle",
          "type": "address"
        }
      ],
      "name": "setBetOracle",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_betTerms",
          "type": "address"
        }
      ],
      "name": "setBetTerms",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260008060146101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c2c8061006d6000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806308fb0970146100e0578063171f1af1146101235780633f4ba83a146101665780634c98ee7b1461017d5780635c975abb146101d4578063715018a61461020357806380fabc911461021a5780638456cb59146102715780638da5cb5b14610288578063b50cbd9f146102df578063bad07ee714610336578063ca033e7d14610379578063dd943d04146103d0578063e7ae81f714610427578063f2fde38b1461046a575b600080fd5b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104ad565b005b34801561012f57600080fd5b50610164600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061054c565b005b34801561017257600080fd5b5061017b6105eb565b005b34801561018957600080fd5b506101926106a9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e057600080fd5b506101e96106cf565b604051808215151515815260200191505060405180910390f35b34801561020f57600080fd5b506102186106e2565b005b34801561022657600080fd5b5061022f6107e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027d57600080fd5b5061028661080a565b005b34801561029457600080fd5b5061029d6108ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102eb57600080fd5b506102f46108ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034257600080fd5b50610377600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610915565b005b34801561038557600080fd5b5061038e6109b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103dc57600080fd5b506103e56109da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043357600080fd5b50610468600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a00565b005b34801561047657600080fd5b506104ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a9f565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561050857600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105a757600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561064657600080fd5b600060149054906101000a900460ff16151561066157600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561073d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086557600080fd5b600060149054906101000a900460ff1615151561088157600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561097057600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a5b57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610afa57600080fd5b610b0381610b06565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b4257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820b2d256b5252be18adf4e46f7b8cd903eda76d8a67bfeeb6e8699acc93f8c191b0029",
  "deployedBytecode": "0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806308fb0970146100e0578063171f1af1146101235780633f4ba83a146101665780634c98ee7b1461017d5780635c975abb146101d4578063715018a61461020357806380fabc911461021a5780638456cb59146102715780638da5cb5b14610288578063b50cbd9f146102df578063bad07ee714610336578063ca033e7d14610379578063dd943d04146103d0578063e7ae81f714610427578063f2fde38b1461046a575b600080fd5b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104ad565b005b34801561012f57600080fd5b50610164600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061054c565b005b34801561017257600080fd5b5061017b6105eb565b005b34801561018957600080fd5b506101926106a9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e057600080fd5b506101e96106cf565b604051808215151515815260200191505060405180910390f35b34801561020f57600080fd5b506102186106e2565b005b34801561022657600080fd5b5061022f6107e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027d57600080fd5b5061028661080a565b005b34801561029457600080fd5b5061029d6108ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102eb57600080fd5b506102f46108ef565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561034257600080fd5b50610377600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610915565b005b34801561038557600080fd5b5061038e6109b4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103dc57600080fd5b506103e56109da565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043357600080fd5b50610468600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a00565b005b34801561047657600080fd5b506104ab600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a9f565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561050857600080fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105a757600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561064657600080fd5b600060149054906101000a900460ff16151561066157600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561073d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561086557600080fd5b600060149054906101000a900460ff1615151561088157600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561097057600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a5b57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610afa57600080fd5b610b0381610b06565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610b4257600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820b2d256b5252be18adf4e46f7b8cd903eda76d8a67bfeeb6e8699acc93f8c191b0029",
  "sourceMap": "105:2019:24:-;;;268:5:28;247:26;;;;;;;;;;;;;;;;;;;;575:10:30;567:5;;:18;;;;;;;;;;;;;;;;;;105:2019:24;;;;;;",
  "deployedSourceMap": "105:2019:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2008:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2008:114:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1178:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1178:118:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;838:92:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:92:28;;;;;;173:24:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;173:24:24;;;;;;;;;;;;;;;;;;;;;;;;;;;247:26:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;247:26:28;;;;;;;;;;;;;;;;;;;;;;;;;;;827:111:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:30;;;;;;235:24:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;235:24:24;;;;;;;;;;;;;;;;;;;;;;;;;;;666:90:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;666:90:28;;;;;;238:20:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:30;;;;;;;;;;;;;;;;;;;;;;;;;;;294:28:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;294:28:24;;;;;;;;;;;;;;;;;;;;;;;;;;;1457:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1457:126:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;265:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:23:24;;;;;;;;;;;;;;;;;;;;;;;;;;;203:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:26:24;;;;;;;;;;;;;;;;;;;;;;;;;;;1738:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1738:118:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:103:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:103:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;2008:114:24;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;2106:9:24;2095:8;;:20;;;;;;;;;;;;;;;;;;2008:114;:::o;1178:118::-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1279:10:24;1267:9;;:22;;;;;;;;;;;;;;;;;;1178:118;:::o;838:92:28:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;568:6:28;;;;;;;;;;;560:15;;;;;;;;900:5;891:6;;:14;;;;;;;;;;;;;;;;;;916:9;;;;;;;;;;838:92::o;173:24:24:-;;;;;;;;;;;;;:::o;247:26:28:-;;;;;;;;;;;;;:::o;827:111:30:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;903:5;;;;;;;;;;;884:25;;;;;;;;;;;;931:1;915:5;;:18;;;;;;;;;;;;;;;;;;827:111::o;235:24:24:-;;;;;;;;;;;;;:::o;666:90:28:-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;416:6:28;;;;;;;;;;;415:7;407:16;;;;;;;;729:4;720:6;;:13;;;;;;;;;;;;;;;;;;744:7;;;;;;;;;;666:90::o;238:20:30:-;;;;;;;;;;;;;:::o;294:28:24:-;;;;;;;;;;;;;:::o;1457:126::-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1564:12:24;1550:11;;:26;;;;;;;;;;;;;;;;;;1457:126;:::o;265:23::-;;;;;;;;;;;;;:::o;203:26::-;;;;;;;;;;;;;:::o;1738:118::-;719:5:30;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1839:10:24;1827:9;;:22;;;;;;;;;;;;;;;;;;1738:118;:::o;1100:103:30:-;719:5;;;;;;;;;;;705:19;;:10;:19;;;697:28;;;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;1338:171::-;1429:1;1408:23;;:9;:23;;;;1400:32;;;;;;;;1471:9;1443:38;;1464:5;;;;;;;;;;;1443:38;;;;;;;;;;;;1495:9;1487:5;;:17;;;;;;;;;;;;;;;;;;1338:171;:::o",
  "source": "pragma solidity ^0.4.24;\n\n// External\nimport \"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\";\n\n\ncontract RegistryStorage is Pausable {\n    // Allowed Contracts\n    address public betKernel;\n    address public betPayments;\n    address public betOracle;\n    address public betTerms;\n    address public proxyRegistry;\n\n    // Storage\n    struct BetEntry {\n        address kernelProxy;\n        address paymentsProxy;\n        address paymentsToken;\n        address oracleProxy;\n        address termsProxy;\n        bytes32 termsHash;\n        string title;\n        uint datetime;\n        address creator;\n        mapping(bytes32 => PlayerBet) playerBets;\n        mapping(uint => uint) principalInOption;\n        mapping(uint => string) optionTitles;\n        uint totalPrincipal;\n    }\n\n    struct PlayerBet {\n        address player;\n        uint option;\n        uint principal;\n        bool returned;\n    }\n\n    // Primary registry mapping the events with their hash\n    mapping(bytes32 => BetEntry) internal betRegistry;\n\n    /**\n      * @dev Function to change the bet kernel contract address\n      * @param _betKernel address the address of the new bet kernel\n      */\n    function setBetKernel(address _betKernel)\n        public\n        onlyOwner\n    {\n        betKernel = _betKernel;\n    }\n\n    /**\n      * @dev Function to change the bet payments contract address\n      * @param _betPayments address the address of the new bet payments\n      */\n    function setBetPayments(address _betPayments)\n        public\n        onlyOwner\n    {\n        betPayments = _betPayments;\n    }\n\n    /**\n      * @dev Function to change the bet oracle contract address\n      * @param _betOracle address the address of the new bet oracle\n      */\n    function setBetOracle(address _betOracle)\n        public\n        onlyOwner\n    {\n        betOracle = _betOracle;\n    }\n\n    /**\n      * @dev Function to change the bet terms contract address\n      * @param _betTerms address the address of the new bet terms\n      */\n    function setBetTerms(address _betTerms)\n        public\n        onlyOwner\n    {\n        betTerms = _betTerms;\n    }\n}\n",
  "sourcePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/RegistryStorage.sol",
  "ast": {
    "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/RegistryStorage.sol",
    "exportedSymbols": {
      "RegistryStorage": [
        3833
      ]
    },
    "id": 3834,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3725,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:24"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "file": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "id": 3726,
        "nodeType": "ImportDirective",
        "scope": 3834,
        "sourceUnit": 4188,
        "src": "38:64:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3727,
              "name": "Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4187,
              "src": "133:8:24",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Pausable_$4187",
                "typeString": "contract Pausable"
              }
            },
            "id": 3728,
            "nodeType": "InheritanceSpecifier",
            "src": "133:8:24"
          }
        ],
        "contractDependencies": [
          4187,
          4367
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 3833,
        "linearizedBaseContracts": [
          3833,
          4187,
          4367
        ],
        "name": "RegistryStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 3730,
            "name": "betKernel",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "173:24:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3729,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "173:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3732,
            "name": "betPayments",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "203:26:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3731,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "203:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3734,
            "name": "betOracle",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "235:24:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3733,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "235:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3736,
            "name": "betTerms",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "265:23:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3735,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "265:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3738,
            "name": "proxyRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "294:28:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3737,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "294:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "RegistryStorage.BetEntry",
            "id": 3771,
            "members": [
              {
                "constant": false,
                "id": 3740,
                "name": "kernelProxy",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "370:19:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3739,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "370:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3742,
                "name": "paymentsProxy",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "399:21:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3741,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "399:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3744,
                "name": "paymentsToken",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "430:21:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3743,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "430:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3746,
                "name": "oracleProxy",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "461:19:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3745,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "461:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3748,
                "name": "termsProxy",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "490:18:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3747,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "490:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3750,
                "name": "termsHash",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "518:17:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 3749,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "518:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3752,
                "name": "title",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "545:12:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 3751,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "545:6:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3754,
                "name": "datetime",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "567:13:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3753,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "567:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3756,
                "name": "creator",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "590:15:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3755,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "590:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3760,
                "name": "playerBets",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "615:40:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3780_storage_$",
                  "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet)"
                },
                "typeName": {
                  "id": 3759,
                  "keyType": {
                    "id": 3757,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "623:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "615:29:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3780_storage_$",
                    "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 3758,
                    "name": "PlayerBet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3780,
                    "src": "634:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PlayerBet_$3780_storage_ptr",
                      "typeString": "struct RegistryStorage.PlayerBet"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3764,
                "name": "principalInOption",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "665:39:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                  "typeString": "mapping(uint256 => uint256)"
                },
                "typeName": {
                  "id": 3763,
                  "keyType": {
                    "id": 3761,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "673:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "665:21:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                    "typeString": "mapping(uint256 => uint256)"
                  },
                  "valueType": {
                    "id": 3762,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "681:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3768,
                "name": "optionTitles",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "714:36:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                  "typeString": "mapping(uint256 => string)"
                },
                "typeName": {
                  "id": 3767,
                  "keyType": {
                    "id": 3765,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "722:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "714:23:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                    "typeString": "mapping(uint256 => string)"
                  },
                  "valueType": {
                    "id": 3766,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "730:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3770,
                "name": "totalPrincipal",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "760:19:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3769,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "760:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "BetEntry",
            "nodeType": "StructDefinition",
            "scope": 3833,
            "src": "344:442:24",
            "visibility": "public"
          },
          {
            "canonicalName": "RegistryStorage.PlayerBet",
            "id": 3780,
            "members": [
              {
                "constant": false,
                "id": 3773,
                "name": "player",
                "nodeType": "VariableDeclaration",
                "scope": 3780,
                "src": "819:14:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3772,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "819:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3775,
                "name": "option",
                "nodeType": "VariableDeclaration",
                "scope": 3780,
                "src": "843:11:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3774,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "843:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3777,
                "name": "principal",
                "nodeType": "VariableDeclaration",
                "scope": 3780,
                "src": "864:14:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3776,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "864:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3779,
                "name": "returned",
                "nodeType": "VariableDeclaration",
                "scope": 3780,
                "src": "888:13:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 3778,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "888:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PlayerBet",
            "nodeType": "StructDefinition",
            "scope": 3833,
            "src": "792:116:24",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3784,
            "name": "betRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "973:49:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3771_storage_$",
              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry)"
            },
            "typeName": {
              "id": 3783,
              "keyType": {
                "id": 3781,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "981:7:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "973:28:24",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3771_storage_$",
                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 3782,
                "name": "BetEntry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 3771,
                "src": "992:8:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_BetEntry_$3771_storage_ptr",
                  "typeString": "struct RegistryStorage.BetEntry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3795,
              "nodeType": "Block",
              "src": "1257:39:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3793,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3791,
                      "name": "betKernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3730,
                      "src": "1267:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3792,
                      "name": "_betKernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3786,
                      "src": "1279:10:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1267:22:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3794,
                  "nodeType": "ExpressionStatement",
                  "src": "1267:22:24"
                }
              ]
            },
            "documentation": "@dev Function to change the bet kernel contract address\n@param _betKernel address the address of the new bet kernel",
            "id": 3796,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3789,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3788,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4315,
                  "src": "1243:9:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1243:9:24"
              }
            ],
            "name": "setBetKernel",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3787,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3786,
                  "name": "_betKernel",
                  "nodeType": "VariableDeclaration",
                  "scope": 3796,
                  "src": "1200:18:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3785,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1200:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1199:20:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 3790,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1257:0:24"
            },
            "scope": 3833,
            "src": "1178:118:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3807,
              "nodeType": "Block",
              "src": "1540:43:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3805,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3803,
                      "name": "betPayments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3732,
                      "src": "1550:11:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3804,
                      "name": "_betPayments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3798,
                      "src": "1564:12:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1550:26:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3806,
                  "nodeType": "ExpressionStatement",
                  "src": "1550:26:24"
                }
              ]
            },
            "documentation": "@dev Function to change the bet payments contract address\n@param _betPayments address the address of the new bet payments",
            "id": 3808,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3801,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3800,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4315,
                  "src": "1526:9:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1526:9:24"
              }
            ],
            "name": "setBetPayments",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3798,
                  "name": "_betPayments",
                  "nodeType": "VariableDeclaration",
                  "scope": 3808,
                  "src": "1481:20:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3797,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1481:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1480:22:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 3802,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1540:0:24"
            },
            "scope": 3833,
            "src": "1457:126:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3819,
              "nodeType": "Block",
              "src": "1817:39:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3815,
                      "name": "betOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3734,
                      "src": "1827:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3816,
                      "name": "_betOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3810,
                      "src": "1839:10:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1827:22:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3818,
                  "nodeType": "ExpressionStatement",
                  "src": "1827:22:24"
                }
              ]
            },
            "documentation": "@dev Function to change the bet oracle contract address\n@param _betOracle address the address of the new bet oracle",
            "id": 3820,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3813,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3812,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4315,
                  "src": "1803:9:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1803:9:24"
              }
            ],
            "name": "setBetOracle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3810,
                  "name": "_betOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 3820,
                  "src": "1760:18:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3809,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1760:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1759:20:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 3814,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1817:0:24"
            },
            "scope": 3833,
            "src": "1738:118:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3831,
              "nodeType": "Block",
              "src": "2085:37:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3829,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3827,
                      "name": "betTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3736,
                      "src": "2095:8:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3828,
                      "name": "_betTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3822,
                      "src": "2106:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2095:20:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3830,
                  "nodeType": "ExpressionStatement",
                  "src": "2095:20:24"
                }
              ]
            },
            "documentation": "@dev Function to change the bet terms contract address\n@param _betTerms address the address of the new bet terms",
            "id": 3832,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3825,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3824,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4315,
                  "src": "2071:9:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2071:9:24"
              }
            ],
            "name": "setBetTerms",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3823,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3822,
                  "name": "_betTerms",
                  "nodeType": "VariableDeclaration",
                  "scope": 3832,
                  "src": "2029:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3821,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2029:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2028:19:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 3826,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2085:0:24"
            },
            "scope": 3833,
            "src": "2008:114:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3834,
        "src": "105:2019:24"
      }
    ],
    "src": "0:2125:24"
  },
  "legacyAST": {
    "absolutePath": "/Users/carlosgonzalezjuarez/Documents/Development/GuesserProtocol/contracts/RegistryStorage.sol",
    "exportedSymbols": {
      "RegistryStorage": [
        3833
      ]
    },
    "id": 3834,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3725,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:24"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "file": "openzeppelin-solidity/contracts/lifecycle/Pausable.sol",
        "id": 3726,
        "nodeType": "ImportDirective",
        "scope": 3834,
        "sourceUnit": 4188,
        "src": "38:64:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 3727,
              "name": "Pausable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4187,
              "src": "133:8:24",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Pausable_$4187",
                "typeString": "contract Pausable"
              }
            },
            "id": 3728,
            "nodeType": "InheritanceSpecifier",
            "src": "133:8:24"
          }
        ],
        "contractDependencies": [
          4187,
          4367
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 3833,
        "linearizedBaseContracts": [
          3833,
          4187,
          4367
        ],
        "name": "RegistryStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 3730,
            "name": "betKernel",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "173:24:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3729,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "173:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3732,
            "name": "betPayments",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "203:26:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3731,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "203:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3734,
            "name": "betOracle",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "235:24:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3733,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "235:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3736,
            "name": "betTerms",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "265:23:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3735,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "265:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3738,
            "name": "proxyRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "294:28:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 3737,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "294:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "RegistryStorage.BetEntry",
            "id": 3771,
            "members": [
              {
                "constant": false,
                "id": 3740,
                "name": "kernelProxy",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "370:19:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3739,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "370:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3742,
                "name": "paymentsProxy",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "399:21:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3741,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "399:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3744,
                "name": "paymentsToken",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "430:21:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3743,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "430:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3746,
                "name": "oracleProxy",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "461:19:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3745,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "461:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3748,
                "name": "termsProxy",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "490:18:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3747,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "490:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3750,
                "name": "termsHash",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "518:17:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 3749,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "518:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3752,
                "name": "title",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "545:12:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 3751,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "545:6:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3754,
                "name": "datetime",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "567:13:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3753,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "567:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3756,
                "name": "creator",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "590:15:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3755,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "590:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3760,
                "name": "playerBets",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "615:40:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3780_storage_$",
                  "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet)"
                },
                "typeName": {
                  "id": 3759,
                  "keyType": {
                    "id": 3757,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "623:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "615:29:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_PlayerBet_$3780_storage_$",
                    "typeString": "mapping(bytes32 => struct RegistryStorage.PlayerBet)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 3758,
                    "name": "PlayerBet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3780,
                    "src": "634:9:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PlayerBet_$3780_storage_ptr",
                      "typeString": "struct RegistryStorage.PlayerBet"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3764,
                "name": "principalInOption",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "665:39:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                  "typeString": "mapping(uint256 => uint256)"
                },
                "typeName": {
                  "id": 3763,
                  "keyType": {
                    "id": 3761,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "673:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "665:21:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                    "typeString": "mapping(uint256 => uint256)"
                  },
                  "valueType": {
                    "id": 3762,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "681:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3768,
                "name": "optionTitles",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "714:36:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                  "typeString": "mapping(uint256 => string)"
                },
                "typeName": {
                  "id": 3767,
                  "keyType": {
                    "id": 3765,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "722:4:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "714:23:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                    "typeString": "mapping(uint256 => string)"
                  },
                  "valueType": {
                    "id": 3766,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "730:6:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3770,
                "name": "totalPrincipal",
                "nodeType": "VariableDeclaration",
                "scope": 3771,
                "src": "760:19:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3769,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "760:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "BetEntry",
            "nodeType": "StructDefinition",
            "scope": 3833,
            "src": "344:442:24",
            "visibility": "public"
          },
          {
            "canonicalName": "RegistryStorage.PlayerBet",
            "id": 3780,
            "members": [
              {
                "constant": false,
                "id": 3773,
                "name": "player",
                "nodeType": "VariableDeclaration",
                "scope": 3780,
                "src": "819:14:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3772,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "819:7:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3775,
                "name": "option",
                "nodeType": "VariableDeclaration",
                "scope": 3780,
                "src": "843:11:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3774,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "843:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3777,
                "name": "principal",
                "nodeType": "VariableDeclaration",
                "scope": 3780,
                "src": "864:14:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3776,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "864:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3779,
                "name": "returned",
                "nodeType": "VariableDeclaration",
                "scope": 3780,
                "src": "888:13:24",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 3778,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "888:4:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PlayerBet",
            "nodeType": "StructDefinition",
            "scope": 3833,
            "src": "792:116:24",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3784,
            "name": "betRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 3833,
            "src": "973:49:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3771_storage_$",
              "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry)"
            },
            "typeName": {
              "id": 3783,
              "keyType": {
                "id": 3781,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "981:7:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "973:28:24",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_BetEntry_$3771_storage_$",
                "typeString": "mapping(bytes32 => struct RegistryStorage.BetEntry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 3782,
                "name": "BetEntry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 3771,
                "src": "992:8:24",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_BetEntry_$3771_storage_ptr",
                  "typeString": "struct RegistryStorage.BetEntry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3795,
              "nodeType": "Block",
              "src": "1257:39:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3793,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3791,
                      "name": "betKernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3730,
                      "src": "1267:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3792,
                      "name": "_betKernel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3786,
                      "src": "1279:10:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1267:22:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3794,
                  "nodeType": "ExpressionStatement",
                  "src": "1267:22:24"
                }
              ]
            },
            "documentation": "@dev Function to change the bet kernel contract address\n@param _betKernel address the address of the new bet kernel",
            "id": 3796,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3789,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3788,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4315,
                  "src": "1243:9:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1243:9:24"
              }
            ],
            "name": "setBetKernel",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3787,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3786,
                  "name": "_betKernel",
                  "nodeType": "VariableDeclaration",
                  "scope": 3796,
                  "src": "1200:18:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3785,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1200:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1199:20:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 3790,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1257:0:24"
            },
            "scope": 3833,
            "src": "1178:118:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3807,
              "nodeType": "Block",
              "src": "1540:43:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3805,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3803,
                      "name": "betPayments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3732,
                      "src": "1550:11:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3804,
                      "name": "_betPayments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3798,
                      "src": "1564:12:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1550:26:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3806,
                  "nodeType": "ExpressionStatement",
                  "src": "1550:26:24"
                }
              ]
            },
            "documentation": "@dev Function to change the bet payments contract address\n@param _betPayments address the address of the new bet payments",
            "id": 3808,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3801,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3800,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4315,
                  "src": "1526:9:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1526:9:24"
              }
            ],
            "name": "setBetPayments",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3798,
                  "name": "_betPayments",
                  "nodeType": "VariableDeclaration",
                  "scope": 3808,
                  "src": "1481:20:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3797,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1481:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1480:22:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 3802,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1540:0:24"
            },
            "scope": 3833,
            "src": "1457:126:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3819,
              "nodeType": "Block",
              "src": "1817:39:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3815,
                      "name": "betOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3734,
                      "src": "1827:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3816,
                      "name": "_betOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3810,
                      "src": "1839:10:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1827:22:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3818,
                  "nodeType": "ExpressionStatement",
                  "src": "1827:22:24"
                }
              ]
            },
            "documentation": "@dev Function to change the bet oracle contract address\n@param _betOracle address the address of the new bet oracle",
            "id": 3820,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3813,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3812,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4315,
                  "src": "1803:9:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1803:9:24"
              }
            ],
            "name": "setBetOracle",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3810,
                  "name": "_betOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 3820,
                  "src": "1760:18:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3809,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1760:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1759:20:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 3814,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1817:0:24"
            },
            "scope": 3833,
            "src": "1738:118:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3831,
              "nodeType": "Block",
              "src": "2085:37:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3829,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3827,
                      "name": "betTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3736,
                      "src": "2095:8:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3828,
                      "name": "_betTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3822,
                      "src": "2106:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2095:20:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 3830,
                  "nodeType": "ExpressionStatement",
                  "src": "2095:20:24"
                }
              ]
            },
            "documentation": "@dev Function to change the bet terms contract address\n@param _betTerms address the address of the new bet terms",
            "id": 3832,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 3825,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3824,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4315,
                  "src": "2071:9:24",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2071:9:24"
              }
            ],
            "name": "setBetTerms",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3823,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3822,
                  "name": "_betTerms",
                  "nodeType": "VariableDeclaration",
                  "scope": 3832,
                  "src": "2029:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3821,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2029:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2028:19:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 3826,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2085:0:24"
            },
            "scope": 3833,
            "src": "2008:114:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 3834,
        "src": "105:2019:24"
      }
    ],
    "src": "0:2125:24"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-11-01T18:10:50.808Z"
}