{
  "contractName": "Market",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "creator",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "marketMaker",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "createdAtBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "netOutcomeTokensSold",
      "outputs": [
        {
          "name": "",
          "type": "int256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "stage",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "funding",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "fee",
      "outputs": [
        {
          "name": "",
          "type": "uint24"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "eventContract",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "funding",
          "type": "uint256"
        }
      ],
      "name": "MarketFunding",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "MarketClosing",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "fees",
          "type": "uint256"
        }
      ],
      "name": "FeeWithdrawal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "buyer",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCost",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "marketFees",
          "type": "uint256"
        }
      ],
      "name": "OutcomeTokenPurchase",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "seller",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "outcomeTokenProfit",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "marketFees",
          "type": "uint256"
        }
      ],
      "name": "OutcomeTokenSale",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "buyer",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "indexed": false,
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "cost",
          "type": "uint256"
        }
      ],
      "name": "OutcomeTokenShortSale",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_funding",
          "type": "uint256"
        }
      ],
      "name": "fund",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "close",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "withdrawFees",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "name": "maxCost",
          "type": "uint256"
        }
      ],
      "name": "buy",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "name": "minProfit",
          "type": "uint256"
        }
      ],
      "name": "sell",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "outcomeTokenIndex",
          "type": "uint8"
        },
        {
          "name": "outcomeTokenCount",
          "type": "uint256"
        },
        {
          "name": "minProfit",
          "type": "uint256"
        }
      ],
      "name": "shortSell",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "outcomeTokenCost",
          "type": "uint256"
        }
      ],
      "name": "calcMarketFee",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity ^0.4.15;\nimport \"../Events/Event.sol\";\nimport \"../MarketMakers/MarketMaker.sol\";\n\n\n/// @title Abstract market contract - Functions to be implemented by market contracts\ncontract Market {\n\n    /*\n     *  Events\n     */\n    event MarketFunding(uint funding);\n    event MarketClosing();\n    event FeeWithdrawal(uint fees);\n    event OutcomeTokenPurchase(address indexed buyer, uint8 outcomeTokenIndex, uint outcomeTokenCount, uint outcomeTokenCost, uint marketFees);\n    event OutcomeTokenSale(address indexed seller, uint8 outcomeTokenIndex, uint outcomeTokenCount, uint outcomeTokenProfit, uint marketFees);\n    event OutcomeTokenShortSale(address indexed buyer, uint8 outcomeTokenIndex, uint outcomeTokenCount, uint cost);\n\n    /*\n     *  Storage\n     */\n    address public creator;\n    uint public createdAtBlock;\n    Event public eventContract;\n    MarketMaker public marketMaker;\n    uint24 public fee;\n    uint public funding;\n    int[] public netOutcomeTokensSold;\n    Stages public stage;\n\n    enum Stages {\n        MarketCreated,\n        MarketFunded,\n        MarketClosed\n    }\n\n    /*\n     *  Public functions\n     */\n    function fund(uint _funding) public;\n    function close() public;\n    function withdrawFees() public returns (uint);\n    function buy(uint8 outcomeTokenIndex, uint outcomeTokenCount, uint maxCost) public returns (uint);\n    function sell(uint8 outcomeTokenIndex, uint outcomeTokenCount, uint minProfit) public returns (uint);\n    function shortSell(uint8 outcomeTokenIndex, uint outcomeTokenCount, uint minProfit) public returns (uint);\n    function calcMarketFee(uint outcomeTokenCost) public constant returns (uint);\n}\n",
  "sourcePath": "@gnosis.pm/pm-contracts/contracts/Markets/Market.sol",
  "ast": {
    "absolutePath": "@gnosis.pm/pm-contracts/contracts/Markets/Market.sol",
    "exportedSymbols": {
      "Market": [
        2374
      ]
    },
    "id": 2375,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2253,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".15"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:9"
      },
      {
        "absolutePath": "@gnosis.pm/pm-contracts/contracts/Events/Event.sol",
        "file": "../Events/Event.sol",
        "id": 2254,
        "nodeType": "ImportDirective",
        "scope": 2375,
        "sourceUnit": 1681,
        "src": "25:29:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@gnosis.pm/pm-contracts/contracts/MarketMakers/MarketMaker.sol",
        "file": "../MarketMakers/MarketMaker.sol",
        "id": 2255,
        "nodeType": "ImportDirective",
        "scope": 2375,
        "sourceUnit": 2252,
        "src": "55:41:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Abstract market contract - Functions to be implemented by market contracts",
        "fullyImplemented": false,
        "id": 2374,
        "linearizedBaseContracts": [
          2374
        ],
        "name": "Market",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 2259,
            "name": "MarketFunding",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2258,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2257,
                  "indexed": false,
                  "name": "funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 2259,
                  "src": "258:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2256,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "258:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "257:14:9"
            },
            "src": "238:34:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2261,
            "name": "MarketClosing",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2260,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "296:2:9"
            },
            "src": "277:22:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2265,
            "name": "FeeWithdrawal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2263,
                  "indexed": false,
                  "name": "fees",
                  "nodeType": "VariableDeclaration",
                  "scope": 2265,
                  "src": "324:9:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2262,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "324:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "323:11:9"
            },
            "src": "304:31:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2277,
            "name": "OutcomeTokenPurchase",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2267,
                  "indexed": true,
                  "name": "buyer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "367:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2266,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "367:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2269,
                  "indexed": false,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "390:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2268,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "390:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2271,
                  "indexed": false,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "415:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2270,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "415:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2273,
                  "indexed": false,
                  "name": "outcomeTokenCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "439:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2272,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "439:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2275,
                  "indexed": false,
                  "name": "marketFees",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "462:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2274,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "462:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "366:112:9"
            },
            "src": "340:139:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2289,
            "name": "OutcomeTokenSale",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2279,
                  "indexed": true,
                  "name": "seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "507:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2278,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "507:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2281,
                  "indexed": false,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "531:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2280,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "531:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2283,
                  "indexed": false,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "556:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2282,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "556:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2285,
                  "indexed": false,
                  "name": "outcomeTokenProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "580:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2284,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "580:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2287,
                  "indexed": false,
                  "name": "marketFees",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "605:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2286,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "605:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "506:115:9"
            },
            "src": "484:138:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2299,
            "name": "OutcomeTokenShortSale",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2291,
                  "indexed": true,
                  "name": "buyer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2299,
                  "src": "655:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2290,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "655:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2293,
                  "indexed": false,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2299,
                  "src": "678:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2292,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "678:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2295,
                  "indexed": false,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2299,
                  "src": "703:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2294,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "703:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2297,
                  "indexed": false,
                  "name": "cost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2299,
                  "src": "727:9:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2296,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "727:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "654:83:9"
            },
            "src": "627:111:9"
          },
          {
            "constant": false,
            "id": 2301,
            "name": "creator",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "775:22:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2300,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "775:7:9",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2303,
            "name": "createdAtBlock",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "803:26:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2302,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "803:4:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2305,
            "name": "eventContract",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "835:26:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Event_$1680",
              "typeString": "contract Event"
            },
            "typeName": {
              "contractScope": null,
              "id": 2304,
              "name": "Event",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1680,
              "src": "835:5:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Event_$1680",
                "typeString": "contract Event"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2307,
            "name": "marketMaker",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "867:30:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_MarketMaker_$2251",
              "typeString": "contract MarketMaker"
            },
            "typeName": {
              "contractScope": null,
              "id": 2306,
              "name": "MarketMaker",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2251,
              "src": "867:11:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MarketMaker_$2251",
                "typeString": "contract MarketMaker"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2309,
            "name": "fee",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "903:17:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint24",
              "typeString": "uint24"
            },
            "typeName": {
              "id": 2308,
              "name": "uint24",
              "nodeType": "ElementaryTypeName",
              "src": "903:6:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint24",
                "typeString": "uint24"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2311,
            "name": "funding",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "926:19:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2310,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "926:4:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2314,
            "name": "netOutcomeTokensSold",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "951:33:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_int256_$dyn_storage",
              "typeString": "int256[]"
            },
            "typeName": {
              "baseType": {
                "id": 2312,
                "name": "int",
                "nodeType": "ElementaryTypeName",
                "src": "951:3:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_int256",
                  "typeString": "int256"
                }
              },
              "id": 2313,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "951:5:9",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                "typeString": "int256[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2316,
            "name": "stage",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "990:19:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_Stages_$2320",
              "typeString": "enum Market.Stages"
            },
            "typeName": {
              "contractScope": null,
              "id": 2315,
              "name": "Stages",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2320,
              "src": "990:6:9",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Stages_$2320",
                "typeString": "enum Market.Stages"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "Market.Stages",
            "id": 2320,
            "members": [
              {
                "id": 2317,
                "name": "MarketCreated",
                "nodeType": "EnumValue",
                "src": "1038:13:9"
              },
              {
                "id": 2318,
                "name": "MarketFunded",
                "nodeType": "EnumValue",
                "src": "1061:12:9"
              },
              {
                "id": 2319,
                "name": "MarketClosed",
                "nodeType": "EnumValue",
                "src": "1083:12:9"
              }
            ],
            "name": "Stages",
            "nodeType": "EnumDefinition",
            "src": "1016:85:9"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2325,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "fund",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2323,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2322,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 2325,
                  "src": "1161:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2321,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1161:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1160:15:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2324,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1182:0:9"
            },
            "scope": 2374,
            "src": "1147:36:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2328,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "close",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2326,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1202:2:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2327,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1211:0:9"
            },
            "scope": 2374,
            "src": "1188:24:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2333,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "withdrawFees",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2329,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1238:2:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2331,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2333,
                  "src": "1257:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2330,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1257:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1256:6:9"
            },
            "scope": 2374,
            "src": "1217:46:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2344,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "buy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2335,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "1281:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2334,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1281:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2337,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "1306:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2336,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1306:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2339,
                  "name": "maxCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "1330:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2338,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1330:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1280:63:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2343,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2342,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "1360:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2341,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1360:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1359:6:9"
            },
            "scope": 2374,
            "src": "1268:98:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2355,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "sell",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2351,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2346,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2355,
                  "src": "1385:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2345,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1385:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2348,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2355,
                  "src": "1410:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2347,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1410:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2350,
                  "name": "minProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 2355,
                  "src": "1434:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2349,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1434:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1384:65:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2354,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2353,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2355,
                  "src": "1466:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2352,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1466:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1465:6:9"
            },
            "scope": 2374,
            "src": "1371:101:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2366,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "shortSell",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2362,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2357,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "1496:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2356,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1496:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2359,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "1521:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2358,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1521:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2361,
                  "name": "minProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "1545:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2360,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1545:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1495:65:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2364,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "1577:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2363,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1577:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1576:6:9"
            },
            "scope": 2374,
            "src": "1477:106:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2373,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "calcMarketFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2369,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2368,
                  "name": "outcomeTokenCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2373,
                  "src": "1611:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2367,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1611:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1610:23:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2372,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2371,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2373,
                  "src": "1659:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2370,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1659:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1658:6:9"
            },
            "scope": 2374,
            "src": "1588:77:9",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2375,
        "src": "185:1482:9"
      }
    ],
    "src": "0:1668:9"
  },
  "legacyAST": {
    "absolutePath": "@gnosis.pm/pm-contracts/contracts/Markets/Market.sol",
    "exportedSymbols": {
      "Market": [
        2374
      ]
    },
    "id": 2375,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2253,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".15"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:9"
      },
      {
        "absolutePath": "@gnosis.pm/pm-contracts/contracts/Events/Event.sol",
        "file": "../Events/Event.sol",
        "id": 2254,
        "nodeType": "ImportDirective",
        "scope": 2375,
        "sourceUnit": 1681,
        "src": "25:29:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@gnosis.pm/pm-contracts/contracts/MarketMakers/MarketMaker.sol",
        "file": "../MarketMakers/MarketMaker.sol",
        "id": 2255,
        "nodeType": "ImportDirective",
        "scope": 2375,
        "sourceUnit": 2252,
        "src": "55:41:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Abstract market contract - Functions to be implemented by market contracts",
        "fullyImplemented": false,
        "id": 2374,
        "linearizedBaseContracts": [
          2374
        ],
        "name": "Market",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 2259,
            "name": "MarketFunding",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2258,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2257,
                  "indexed": false,
                  "name": "funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 2259,
                  "src": "258:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2256,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "258:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "257:14:9"
            },
            "src": "238:34:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2261,
            "name": "MarketClosing",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2260,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "296:2:9"
            },
            "src": "277:22:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2265,
            "name": "FeeWithdrawal",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2263,
                  "indexed": false,
                  "name": "fees",
                  "nodeType": "VariableDeclaration",
                  "scope": 2265,
                  "src": "324:9:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2262,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "324:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "323:11:9"
            },
            "src": "304:31:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2277,
            "name": "OutcomeTokenPurchase",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2267,
                  "indexed": true,
                  "name": "buyer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "367:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2266,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "367:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2269,
                  "indexed": false,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "390:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2268,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "390:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2271,
                  "indexed": false,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "415:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2270,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "415:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2273,
                  "indexed": false,
                  "name": "outcomeTokenCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "439:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2272,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "439:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2275,
                  "indexed": false,
                  "name": "marketFees",
                  "nodeType": "VariableDeclaration",
                  "scope": 2277,
                  "src": "462:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2274,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "462:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "366:112:9"
            },
            "src": "340:139:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2289,
            "name": "OutcomeTokenSale",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2279,
                  "indexed": true,
                  "name": "seller",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "507:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2278,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "507:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2281,
                  "indexed": false,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "531:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2280,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "531:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2283,
                  "indexed": false,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "556:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2282,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "556:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2285,
                  "indexed": false,
                  "name": "outcomeTokenProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "580:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2284,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "580:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2287,
                  "indexed": false,
                  "name": "marketFees",
                  "nodeType": "VariableDeclaration",
                  "scope": 2289,
                  "src": "605:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2286,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "605:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "506:115:9"
            },
            "src": "484:138:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2299,
            "name": "OutcomeTokenShortSale",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2291,
                  "indexed": true,
                  "name": "buyer",
                  "nodeType": "VariableDeclaration",
                  "scope": 2299,
                  "src": "655:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2290,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "655:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2293,
                  "indexed": false,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2299,
                  "src": "678:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2292,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "678:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2295,
                  "indexed": false,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2299,
                  "src": "703:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2294,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "703:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2297,
                  "indexed": false,
                  "name": "cost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2299,
                  "src": "727:9:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2296,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "727:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "654:83:9"
            },
            "src": "627:111:9"
          },
          {
            "constant": false,
            "id": 2301,
            "name": "creator",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "775:22:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 2300,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "775:7:9",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2303,
            "name": "createdAtBlock",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "803:26:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2302,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "803:4:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2305,
            "name": "eventContract",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "835:26:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Event_$1680",
              "typeString": "contract Event"
            },
            "typeName": {
              "contractScope": null,
              "id": 2304,
              "name": "Event",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1680,
              "src": "835:5:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Event_$1680",
                "typeString": "contract Event"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2307,
            "name": "marketMaker",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "867:30:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_MarketMaker_$2251",
              "typeString": "contract MarketMaker"
            },
            "typeName": {
              "contractScope": null,
              "id": 2306,
              "name": "MarketMaker",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2251,
              "src": "867:11:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MarketMaker_$2251",
                "typeString": "contract MarketMaker"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2309,
            "name": "fee",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "903:17:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint24",
              "typeString": "uint24"
            },
            "typeName": {
              "id": 2308,
              "name": "uint24",
              "nodeType": "ElementaryTypeName",
              "src": "903:6:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint24",
                "typeString": "uint24"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2311,
            "name": "funding",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "926:19:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 2310,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "926:4:9",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2314,
            "name": "netOutcomeTokensSold",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "951:33:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_int256_$dyn_storage",
              "typeString": "int256[]"
            },
            "typeName": {
              "baseType": {
                "id": 2312,
                "name": "int",
                "nodeType": "ElementaryTypeName",
                "src": "951:3:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_int256",
                  "typeString": "int256"
                }
              },
              "id": 2313,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "951:5:9",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_int256_$dyn_storage_ptr",
                "typeString": "int256[]"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 2316,
            "name": "stage",
            "nodeType": "VariableDeclaration",
            "scope": 2374,
            "src": "990:19:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_Stages_$2320",
              "typeString": "enum Market.Stages"
            },
            "typeName": {
              "contractScope": null,
              "id": 2315,
              "name": "Stages",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2320,
              "src": "990:6:9",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Stages_$2320",
                "typeString": "enum Market.Stages"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "Market.Stages",
            "id": 2320,
            "members": [
              {
                "id": 2317,
                "name": "MarketCreated",
                "nodeType": "EnumValue",
                "src": "1038:13:9"
              },
              {
                "id": 2318,
                "name": "MarketFunded",
                "nodeType": "EnumValue",
                "src": "1061:12:9"
              },
              {
                "id": 2319,
                "name": "MarketClosed",
                "nodeType": "EnumValue",
                "src": "1083:12:9"
              }
            ],
            "name": "Stages",
            "nodeType": "EnumDefinition",
            "src": "1016:85:9"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2325,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "fund",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2323,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2322,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 2325,
                  "src": "1161:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2321,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1161:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1160:15:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2324,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1182:0:9"
            },
            "scope": 2374,
            "src": "1147:36:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2328,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "close",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2326,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1202:2:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2327,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1211:0:9"
            },
            "scope": 2374,
            "src": "1188:24:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2333,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "withdrawFees",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2329,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1238:2:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2331,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2333,
                  "src": "1257:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2330,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1257:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1256:6:9"
            },
            "scope": 2374,
            "src": "1217:46:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2344,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "buy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2335,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "1281:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2334,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1281:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2337,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "1306:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2336,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1306:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2339,
                  "name": "maxCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "1330:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2338,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1330:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1280:63:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2343,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2342,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2344,
                  "src": "1360:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2341,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1360:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1359:6:9"
            },
            "scope": 2374,
            "src": "1268:98:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2355,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "sell",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2351,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2346,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2355,
                  "src": "1385:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2345,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1385:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2348,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2355,
                  "src": "1410:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2347,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1410:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2350,
                  "name": "minProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 2355,
                  "src": "1434:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2349,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1434:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1384:65:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2354,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2353,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2355,
                  "src": "1466:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2352,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1466:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1465:6:9"
            },
            "scope": 2374,
            "src": "1371:101:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2366,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "shortSell",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2362,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2357,
                  "name": "outcomeTokenIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "1496:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2356,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1496:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2359,
                  "name": "outcomeTokenCount",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "1521:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2358,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1521:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2361,
                  "name": "minProfit",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "1545:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2360,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1545:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1495:65:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2364,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "1577:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2363,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1577:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1576:6:9"
            },
            "scope": 2374,
            "src": "1477:106:9",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2373,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "calcMarketFee",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2369,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2368,
                  "name": "outcomeTokenCost",
                  "nodeType": "VariableDeclaration",
                  "scope": 2373,
                  "src": "1611:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2367,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1611:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1610:23:9"
            },
            "payable": false,
            "returnParameters": {
              "id": 2372,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2371,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2373,
                  "src": "1659:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2370,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1659:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1658:6:9"
            },
            "scope": 2374,
            "src": "1588:77:9",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 2375,
        "src": "185:1482:9"
      }
    ],
    "src": "0:1668:9"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.0-beta.1",
  "updatedAt": "2018-10-27T21:23:29.096Z"
}