[
    {
        "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"
    }
]
