[
  {
    "name": "NewExchange",
    "inputs": [
      { "type": "address", "name": "token", "indexed": true },
      { "type": "address", "name": "exchange", "indexed": true }
    ],
    "anonymous": false,
    "type": "event"
  },
  {
    "name": "initializeFactory",
    "outputs": [],
    "inputs": [{ "type": "address", "name": "template" }],
    "constant": false,
    "payable": false,
    "type": "function"
  },
  {
    "name": "createExchange",
    "outputs": [{ "type": "address", "name": "out" }],
    "inputs": [{ "type": "address", "name": "token" }],
    "constant": false,
    "payable": false,
    "type": "function"
  },
  {
    "name": "getExchange",
    "outputs": [{ "type": "address", "name": "out" }],
    "inputs": [{ "type": "address", "name": "token" }],
    "constant": true,
    "payable": false,
    "type": "function"
  },
  {
    "name": "getToken",
    "outputs": [{ "type": "address", "name": "out" }],
    "inputs": [{ "type": "address", "name": "exchange" }],
    "constant": true,
    "payable": false,
    "type": "function"
  },
  {
    "name": "getTokenWithId",
    "outputs": [{ "type": "address", "name": "out" }],
    "inputs": [{ "type": "uint256", "name": "token_id" }],
    "constant": true,
    "payable": false,
    "type": "function"
  },
  {
    "name": "exchangeTemplate",
    "outputs": [{ "type": "address", "name": "out" }],
    "inputs": [],
    "constant": true,
    "payable": false,
    "type": "function"
  },
  {
    "name": "tokenCount",
    "outputs": [{ "type": "uint256", "name": "out" }],
    "inputs": [],
    "constant": true,
    "payable": false,
    "type": "function"
  }
]
