{
    "CustomToken": {
        "abi": [
            {
                "constant": true,
                "inputs": [],
                "name": "name",
                "outputs": [
                    {
                        "name": "",
                        "type": "string"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_spender",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "approve",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [],
                "name": "mint",
                "outputs": [],
                "payable": true,
                "stateMutability": "payable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "totalSupply",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "multiplier",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_from",
                        "type": "address"
                    },
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "transferFrom",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "decimals",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint8"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [],
                "name": "transferFunds",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "version",
                "outputs": [
                    {
                        "name": "",
                        "type": "string"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_owner",
                        "type": "address"
                    }
                ],
                "name": "balanceOf",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "owner_address",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "symbol",
                "outputs": [
                    {
                        "name": "",
                        "type": "string"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "transfer",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    },
                    {
                        "name": "_data",
                        "type": "bytes"
                    }
                ],
                "name": "transfer",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_owner",
                        "type": "address"
                    },
                    {
                        "name": "_spender",
                        "type": "address"
                    }
                ],
                "name": "allowance",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "inputs": [
                    {
                        "name": "initial_supply",
                        "type": "uint256"
                    },
                    {
                        "name": "token_name",
                        "type": "string"
                    },
                    {
                        "name": "token_symbol",
                        "type": "string"
                    },
                    {
                        "name": "decimal_units",
                        "type": "uint8"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "constructor"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_num",
                        "type": "uint256"
                    }
                ],
                "name": "Minted",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_from",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "Transfer",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_owner",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_spender",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "Approval",
                "type": "event"
            }
        ],
        "bytecode": "[encoded data, 11568 characters]",
        "bytecode_runtime": "[encoded data, 10330 characters]",
        "devdoc": {
            "methods": {
                "allowance(address,address)": {
                    "details": "Returns number of allowed tokens that a spender can transfer on behalf of a token owner.",
                    "params": {
                        "_owner": "Address of token owner.",
                        "_spender": "Address of token spender."
                    },
                    "return": "Returns remaining allowance for spender."
                },
                "approve(address,uint256)": {
                    "details": "Sets approved amount of tokens for spender. Returns success.",
                    "params": {
                        "_spender": "Address of allowed account.",
                        "_value": "Number of approved tokens."
                    },
                    "return": "Returns success of function call."
                },
                "balanceOf(address)": {
                    "details": "Returns number of tokens owned by the given address.",
                    "params": {
                        "_owner": "Address of token owner."
                    },
                    "return": "Returns balance of owner."
                },
                "transfer(address,uint256)": {
                    "details": "Transfers sender's tokens to a given address. Returns success.",
                    "params": {
                        "_to": "Address of token receiver.",
                        "_value": "Number of tokens to transfer."
                    },
                    "return": "Returns success of function call."
                },
                "transfer(address,uint256,bytes)": {
                    "details": "Function that is called when a user or another contract wants to transfer funds.",
                    "params": {
                        "_data": "Data to be sent to tokenFallback",
                        "_to": "Address of token receiver.",
                        "_value": "Number of tokens to transfer."
                    },
                    "return": "Returns success of function call."
                },
                "transferFrom(address,address,uint256)": {
                    "details": "Allows for an approved third party to transfer tokens from one address to another. Returns success.",
                    "params": {
                        "_from": "Address from where tokens are withdrawn.",
                        "_to": "Address to where tokens are sent.",
                        "_value": "Number of tokens to transfer."
                    },
                    "return": "Returns success of function call."
                }
            },
            "title": "CustomToken"
        },
        "direct_dependencies": [],
        "full_dependencies": [],
        "linkrefs": [],
        "linkrefs_runtime": [],
        "metadata": {
            "compiler": {
                "version": "0.4.17+commit.bdeb9e52"
            },
            "language": "Solidity",
            "output": {
                "abi": [
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "name",
                        "outputs": [
                            {
                                "name": "",
                                "type": "string"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_spender",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "approve",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [],
                        "name": "mint",
                        "outputs": [],
                        "payable": true,
                        "stateMutability": "payable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "totalSupply",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint256"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "multiplier",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint256"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_from",
                                "type": "address"
                            },
                            {
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "transferFrom",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "decimals",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint8"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [],
                        "name": "transferFunds",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "version",
                        "outputs": [
                            {
                                "name": "",
                                "type": "string"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_owner",
                                "type": "address"
                            }
                        ],
                        "name": "balanceOf",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint256"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "owner_address",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "symbol",
                        "outputs": [
                            {
                                "name": "",
                                "type": "string"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "transfer",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint256"
                            },
                            {
                                "name": "_data",
                                "type": "bytes"
                            }
                        ],
                        "name": "transfer",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_owner",
                                "type": "address"
                            },
                            {
                                "name": "_spender",
                                "type": "address"
                            }
                        ],
                        "name": "allowance",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint256"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "inputs": [
                            {
                                "name": "initial_supply",
                                "type": "uint256"
                            },
                            {
                                "name": "token_name",
                                "type": "string"
                            },
                            {
                                "name": "token_symbol",
                                "type": "string"
                            },
                            {
                                "name": "decimal_units",
                                "type": "uint8"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "constructor"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_num",
                                "type": "uint256"
                            }
                        ],
                        "name": "Minted",
                        "type": "event"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_from",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "indexed": false,
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "Transfer",
                        "type": "event"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_owner",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_spender",
                                "type": "address"
                            },
                            {
                                "indexed": false,
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "Approval",
                        "type": "event"
                    }
                ],
                "devdoc": {
                    "methods": {
                        "allowance(address,address)": {
                            "details": "Returns number of allowed tokens that a spender can transfer on behalf of a token owner.",
                            "params": {
                                "_owner": "Address of token owner.",
                                "_spender": "Address of token spender."
                            },
                            "return": "Returns remaining allowance for spender."
                        },
                        "approve(address,uint256)": {
                            "details": "Sets approved amount of tokens for spender. Returns success.",
                            "params": {
                                "_spender": "Address of allowed account.",
                                "_value": "Number of approved tokens."
                            },
                            "return": "Returns success of function call."
                        },
                        "balanceOf(address)": {
                            "details": "Returns number of tokens owned by the given address.",
                            "params": {
                                "_owner": "Address of token owner."
                            },
                            "return": "Returns balance of owner."
                        },
                        "transfer(address,uint256)": {
                            "details": "Transfers sender's tokens to a given address. Returns success.",
                            "params": {
                                "_to": "Address of token receiver.",
                                "_value": "Number of tokens to transfer."
                            },
                            "return": "Returns success of function call."
                        },
                        "transfer(address,uint256,bytes)": {
                            "details": "Function that is called when a user or another contract wants to transfer funds.",
                            "params": {
                                "_data": "Data to be sent to tokenFallback",
                                "_to": "Address of token receiver.",
                                "_value": "Number of tokens to transfer."
                            },
                            "return": "Returns success of function call."
                        },
                        "transferFrom(address,address,uint256)": {
                            "details": "Allows for an approved third party to transfer tokens from one address to another. Returns success.",
                            "params": {
                                "_from": "Address from where tokens are withdrawn.",
                                "_to": "Address to where tokens are sent.",
                                "_value": "Number of tokens to transfer."
                            },
                            "return": "Returns success of function call."
                        }
                    },
                    "title": "CustomToken"
                },
                "userdoc": {
                    "methods": {
                        "approve(address,uint256)": {
                            "notice": "Allows `_spender` to transfer `_value` tokens from `msg.sender` to any address."
                        },
                        "mint()": {
                            "notice": "Allows tokens to be minted and assigned to `msg.sender` For `msg.value >= 100 finney`, the sender receives 50 tokens"
                        },
                        "transfer(address,uint256)": {
                            "notice": "Send `_value` tokens to `_to` from `msg.sender`."
                        },
                        "transfer(address,uint256,bytes)": {
                            "notice": "Send `_value` tokens to `_to` from `msg.sender` and trigger tokenFallback if sender is a contract."
                        },
                        "transferFrom(address,address,uint256)": {
                            "notice": "Transfer `_value` tokens from `_from` to `_to` if `msg.sender` is allowed."
                        },
                        "transferFunds()": {
                            "notice": "Transfers the collected ETH to the contract owner."
                        }
                    }
                }
            },
            "settings": {
                "compilationTarget": {
                    "contracts/test/CustomToken.sol": "CustomToken"
                },
                "libraries": {},
                "optimizer": {
                    "enabled": false,
                    "runs": 200
                },
                "remappings": []
            },
            "sources": {
                "contracts/Token.sol": {
                    "keccak256": "0x1e5e5ba7b6f38523dc1faa1e2c0af2c78614b64143e3b209095982c5ec657bf0",
                    "urls": [
                        "bzzr://c54e35e2b7062c8d3da72f884ce75ace360922cf7b2abf035dbc4ec0ff6a9597"
                    ]
                },
                "contracts/test/CustomToken.sol": {
                    "keccak256": "0x351018010e4959fc4ad1d91b922de1fdb9e64e699bd5b5527934602b041bfa2a",
                    "urls": [
                        "bzzr://0e14e38f066d12be7215ce153fd554b697645ffc0d00290738352fe37b4bd0f5"
                    ]
                },
                "contracts/test/ERC223ReceivingContract.sol": {
                    "keccak256": "0xc1e82e44f83aead783d0088b50e88caf9c39e21288985eaa207768d5db604f35",
                    "urls": [
                        "bzzr://2abdc354558b80f5e3ec08e4ca6e9a1b7cacf45c726a4b0b93d27cecd6e338d2"
                    ]
                },
                "contracts/test/StandardToken.sol": {
                    "keccak256": "0x4e5fe4180c1409652b9950e64cde6ea860a4917a061b486af769a6a88e24f798",
                    "urls": [
                        "bzzr://0bb170e4b6e73cdcbb7f3d18459200695f39bddafdf4d9774c0f3b010f4a9a45"
                    ]
                }
            },
            "version": 1
        },
        "name": "CustomToken",
        "ordered_full_dependencies": [],
        "source_path": "contracts/test/CustomToken.sol",
        "userdoc": {
            "methods": {
                "approve(address,uint256)": {
                    "notice": "Allows `_spender` to transfer `_value` tokens from `msg.sender` to any address."
                },
                "mint()": {
                    "notice": "Allows tokens to be minted and assigned to `msg.sender` For `msg.value >= 100 finney`, the sender receives 50 tokens"
                },
                "transfer(address,uint256)": {
                    "notice": "Send `_value` tokens to `_to` from `msg.sender`."
                },
                "transfer(address,uint256,bytes)": {
                    "notice": "Send `_value` tokens to `_to` from `msg.sender` and trigger tokenFallback if sender is a contract."
                },
                "transferFrom(address,address,uint256)": {
                    "notice": "Transfer `_value` tokens from `_from` to `_to` if `msg.sender` is allowed."
                },
                "transferFunds()": {
                    "notice": "Transfers the collected ETH to the contract owner."
                }
            }
        }
    },
    "Delegate": {
        "abi": [
            {
                "constant": true,
                "inputs": [],
                "name": "microraiden",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_deposit",
                        "type": "uint192"
                    },
                    {
                        "name": "_data",
                        "type": "bytes"
                    }
                ],
                "name": "createChannelERC223",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "name": "_deposit",
                        "type": "uint192"
                    }
                ],
                "name": "topUpERC20",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_token_address",
                        "type": "address"
                    },
                    {
                        "name": "_microraiden_contract",
                        "type": "address"
                    }
                ],
                "name": "setup",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_deposit",
                        "type": "uint192"
                    }
                ],
                "name": "createChannelERC20",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_deposit",
                        "type": "uint192"
                    },
                    {
                        "name": "_data",
                        "type": "bytes"
                    }
                ],
                "name": "topUpERC223",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "token",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            }
        ],
        "bytecode": "[encoded data, 6178 characters]",
        "bytecode_runtime": "[encoded data, 6118 characters]",
        "devdoc": {
            "methods": {}
        },
        "direct_dependencies": [],
        "full_dependencies": [],
        "linkrefs": [],
        "linkrefs_runtime": [],
        "metadata": {
            "compiler": {
                "version": "0.4.17+commit.bdeb9e52"
            },
            "language": "Solidity",
            "output": {
                "abi": [
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "microraiden",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_deposit",
                                "type": "uint192"
                            },
                            {
                                "name": "_data",
                                "type": "bytes"
                            }
                        ],
                        "name": "createChannelERC223",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "name": "_deposit",
                                "type": "uint192"
                            }
                        ],
                        "name": "topUpERC20",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_token_address",
                                "type": "address"
                            },
                            {
                                "name": "_microraiden_contract",
                                "type": "address"
                            }
                        ],
                        "name": "setup",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_deposit",
                                "type": "uint192"
                            }
                        ],
                        "name": "createChannelERC20",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_deposit",
                                "type": "uint192"
                            },
                            {
                                "name": "_data",
                                "type": "bytes"
                            }
                        ],
                        "name": "topUpERC223",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "token",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    }
                ],
                "devdoc": {
                    "methods": {}
                },
                "userdoc": {
                    "methods": {}
                }
            },
            "settings": {
                "compilationTarget": {
                    "contracts/test/Delegate.sol": "Delegate"
                },
                "libraries": {},
                "optimizer": {
                    "enabled": false,
                    "runs": 200
                },
                "remappings": []
            },
            "sources": {
                "contracts/RaidenMicroTransferChannels.sol": {
                    "keccak256": "0x800f427a20e76615a414077b37cd97400fc1a3a10bd5c7ad6f1cc669c4ad4237",
                    "urls": [
                        "bzzr://0be9942b781d0db0e881275ef3d86ade24b47e01fd4d65db74836dd92d724010"
                    ]
                },
                "contracts/Token.sol": {
                    "keccak256": "0x1e5e5ba7b6f38523dc1faa1e2c0af2c78614b64143e3b209095982c5ec657bf0",
                    "urls": [
                        "bzzr://c54e35e2b7062c8d3da72f884ce75ace360922cf7b2abf035dbc4ec0ff6a9597"
                    ]
                },
                "contracts/lib/ECVerify.sol": {
                    "keccak256": "0x299e3d97791734a4c2a5b8e6a3610220633f0ca1552d73532b59b302b047b2db",
                    "urls": [
                        "bzzr://18bbecd14c52b2bf69556cd93c9428ed8e5c8bad4a5afd045847649e375cc673"
                    ]
                },
                "contracts/test/Delegate.sol": {
                    "keccak256": "0x91025a9c024cef3cc1648e8cca9926a181fcc7bd85198c0020ebcddca4aec979",
                    "urls": [
                        "bzzr://1277ebfd0d11262ae3ab2c1a35a5dada2277980a10b5e7f95fe564a0eccf8524"
                    ]
                }
            },
            "version": 1
        },
        "name": "Delegate",
        "ordered_full_dependencies": [],
        "source_path": "contracts/test/Delegate.sol",
        "userdoc": {
            "methods": {}
        }
    },
    "ECVerify": {
        "abi": [],
        "bytecode": "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058201f321030e4cc5f3f0f5638dc97f8e362afd07a10a9287b7c39ea6fb0b386d2600029",
        "bytecode_runtime": "0x6060604052600080fd00a165627a7a723058201f321030e4cc5f3f0f5638dc97f8e362afd07a10a9287b7c39ea6fb0b386d2600029",
        "devdoc": {
            "methods": {}
        },
        "direct_dependencies": [],
        "full_dependencies": [],
        "linkrefs": [],
        "linkrefs_runtime": [],
        "metadata": {
            "compiler": {
                "version": "0.4.17+commit.bdeb9e52"
            },
            "language": "Solidity",
            "output": {
                "abi": [],
                "devdoc": {
                    "methods": {}
                },
                "userdoc": {
                    "methods": {}
                }
            },
            "settings": {
                "compilationTarget": {
                    "contracts/lib/ECVerify.sol": "ECVerify"
                },
                "libraries": {},
                "optimizer": {
                    "enabled": false,
                    "runs": 200
                },
                "remappings": []
            },
            "sources": {
                "contracts/lib/ECVerify.sol": {
                    "keccak256": "0x299e3d97791734a4c2a5b8e6a3610220633f0ca1552d73532b59b302b047b2db",
                    "urls": [
                        "bzzr://18bbecd14c52b2bf69556cd93c9428ed8e5c8bad4a5afd045847649e375cc673"
                    ]
                }
            },
            "version": 1
        },
        "name": "ECVerify",
        "ordered_full_dependencies": [],
        "source_path": "contracts/lib/ECVerify.sol",
        "userdoc": {
            "methods": {}
        }
    },
    "ECVerifyTest": {
        "abi": [
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_message",
                        "type": "bytes32"
                    },
                    {
                        "name": "_signed_message",
                        "type": "bytes"
                    }
                ],
                "name": "verify",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "hash",
                        "type": "bytes32"
                    },
                    {
                        "name": "r",
                        "type": "bytes32"
                    },
                    {
                        "name": "s",
                        "type": "bytes32"
                    },
                    {
                        "name": "v",
                        "type": "uint8"
                    }
                ],
                "name": "verify_ecrecover_output",
                "outputs": [
                    {
                        "name": "signature_address",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_address",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint32"
                    },
                    {
                        "name": "_value2",
                        "type": "uint192"
                    },
                    {
                        "name": "_balance_msg_sig",
                        "type": "bytes"
                    }
                ],
                "name": "verifyEthSignedTypedData",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            }
        ],
        "bytecode": "0x6060604052341561000f57600080fd5b6106328061001e6000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063258ae582146100535780639c1eddbc146100fd578063ae7a44e21461018a57600080fd5b341561005e57600080fd5b6100bb60048080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610278565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561010857600080fd5b610148600480803560001916906020019091908035600019169060200190919080356000191690602001909190803560ff16906020019091905050610291565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561019557600080fd5b610236600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803563ffffffff1690602001909190803577ffffffffffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061034d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008061028584846104ea565b90508091505092915050565b6000600185838686604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561031157600080fd5b505060206040510351905060008173ffffffffffffffffffffffffffffffffffffffff161415151561034257600080fd5b809050949350505050565b600080600060405180807f6164647265737320416464726573730000000000000000000000000000000000815250600f01807f75696e7433322056616c75650000000000000000000000000000000000000000815250600c01807f75696e743139322056616c756532000000000000000000000000000000000000815250600e0190506040518091039020878787604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018363ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018277ffffffffffffffffffffffffffffffffffffffffffffffff1677ffffffffffffffffffffffffffffffffffffffffffffffff166801000000000000000002815260180193505050506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902091506104db82856104ea565b90508092505050949350505050565b6000806000806041855114151561050057600080fd5b6020850151925060408501519150606085015160001a9050601b8160ff16101561052b57601b810190505b601b8160ff1614806105405750601c8160ff16145b151561054b57600080fd5b600186828585604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156105c957600080fd5b505060206040510351935060008473ffffffffffffffffffffffffffffffffffffffff16141515156105fa57600080fd5b839350505050929150505600a165627a7a72305820d6fd99bb7a93315bd8dc37ae5e791a1a6ec23fd32dcc2cc8334866a552915cb60029",
        "bytecode_runtime": "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063258ae582146100535780639c1eddbc146100fd578063ae7a44e21461018a57600080fd5b341561005e57600080fd5b6100bb60048080356000191690602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610278565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561010857600080fd5b610148600480803560001916906020019091908035600019169060200190919080356000191690602001909190803560ff16906020019091905050610291565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561019557600080fd5b610236600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803563ffffffff1690602001909190803577ffffffffffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061034d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008061028584846104ea565b90508091505092915050565b6000600185838686604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f1151561031157600080fd5b505060206040510351905060008173ffffffffffffffffffffffffffffffffffffffff161415151561034257600080fd5b809050949350505050565b600080600060405180807f6164647265737320416464726573730000000000000000000000000000000000815250600f01807f75696e7433322056616c75650000000000000000000000000000000000000000815250600c01807f75696e743139322056616c756532000000000000000000000000000000000000815250600e0190506040518091039020878787604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018363ffffffff1663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018277ffffffffffffffffffffffffffffffffffffffffffffffff1677ffffffffffffffffffffffffffffffffffffffffffffffff166801000000000000000002815260180193505050506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902091506104db82856104ea565b90508092505050949350505050565b6000806000806041855114151561050057600080fd5b6020850151925060408501519150606085015160001a9050601b8160ff16101561052b57601b810190505b601b8160ff1614806105405750601c8160ff16145b151561054b57600080fd5b600186828585604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f115156105c957600080fd5b505060206040510351935060008473ffffffffffffffffffffffffffffffffffffffff16141515156105fa57600080fd5b839350505050929150505600a165627a7a72305820d6fd99bb7a93315bd8dc37ae5e791a1a6ec23fd32dcc2cc8334866a552915cb60029",
        "devdoc": {
            "methods": {}
        },
        "direct_dependencies": [],
        "full_dependencies": [],
        "linkrefs": [],
        "linkrefs_runtime": [],
        "metadata": {
            "compiler": {
                "version": "0.4.17+commit.bdeb9e52"
            },
            "language": "Solidity",
            "output": {
                "abi": [
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_message",
                                "type": "bytes32"
                            },
                            {
                                "name": "_signed_message",
                                "type": "bytes"
                            }
                        ],
                        "name": "verify",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "hash",
                                "type": "bytes32"
                            },
                            {
                                "name": "r",
                                "type": "bytes32"
                            },
                            {
                                "name": "s",
                                "type": "bytes32"
                            },
                            {
                                "name": "v",
                                "type": "uint8"
                            }
                        ],
                        "name": "verify_ecrecover_output",
                        "outputs": [
                            {
                                "name": "signature_address",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_address",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint32"
                            },
                            {
                                "name": "_value2",
                                "type": "uint192"
                            },
                            {
                                "name": "_balance_msg_sig",
                                "type": "bytes"
                            }
                        ],
                        "name": "verifyEthSignedTypedData",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    }
                ],
                "devdoc": {
                    "methods": {}
                },
                "userdoc": {
                    "methods": {}
                }
            },
            "settings": {
                "compilationTarget": {
                    "contracts/test/ECVerifyTest.sol": "ECVerifyTest"
                },
                "libraries": {},
                "optimizer": {
                    "enabled": false,
                    "runs": 200
                },
                "remappings": []
            },
            "sources": {
                "contracts/lib/ECVerify.sol": {
                    "keccak256": "0x299e3d97791734a4c2a5b8e6a3610220633f0ca1552d73532b59b302b047b2db",
                    "urls": [
                        "bzzr://18bbecd14c52b2bf69556cd93c9428ed8e5c8bad4a5afd045847649e375cc673"
                    ]
                },
                "contracts/test/ECVerifyTest.sol": {
                    "keccak256": "0x59c060f1cfcf9200ebcfd19bb3f53b5638fdc9d6b053285ad5192ca9418d9e44",
                    "urls": [
                        "bzzr://c0e7a9fd28efdce240efa36190551f9bf2867cbf4e0ef86752939cc98c9084fc"
                    ]
                }
            },
            "version": 1
        },
        "name": "ECVerifyTest",
        "ordered_full_dependencies": [],
        "source_path": "contracts/test/ECVerifyTest.sol",
        "userdoc": {
            "methods": {}
        }
    },
    "ERC223ReceivingContract": {
        "abi": [
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_from",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    },
                    {
                        "name": "_data",
                        "type": "bytes"
                    }
                ],
                "name": "tokenFallback",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            }
        ],
        "bytecode": "0x",
        "bytecode_runtime": "0x",
        "devdoc": {
            "methods": {
                "tokenFallback(address,uint256,bytes)": {
                    "details": "Function that is called when a user or another contract wants to transfer funds.",
                    "params": {
                        "_data": "Data containig a function signature and/or parameters",
                        "_from": "Transaction initiator, analogue of msg.sender",
                        "_value": "Number of tokens to transfer."
                    }
                }
            },
            "title": "ERC223ReceivingContract - contract implementation for compatibility with ERC223 tokens."
        },
        "direct_dependencies": [],
        "full_dependencies": [],
        "linkrefs": [],
        "linkrefs_runtime": [],
        "metadata": null,
        "name": "ERC223ReceivingContract",
        "ordered_full_dependencies": [],
        "source_path": "contracts/test/ERC223ReceivingContract.sol",
        "userdoc": {
            "methods": {}
        }
    },
    "RaidenMicroTransferChannels": {
        "abi": [
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "name": "_added_deposit",
                        "type": "uint192"
                    }
                ],
                "name": "topUp",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "challenge_period",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint32"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    }
                ],
                "name": "getChannelInfo",
                "outputs": [
                    {
                        "name": "",
                        "type": "bytes32"
                    },
                    {
                        "name": "",
                        "type": "uint192"
                    },
                    {
                        "name": "",
                        "type": "uint32"
                    },
                    {
                        "name": "",
                        "type": "uint192"
                    },
                    {
                        "name": "",
                        "type": "uint192"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "name": "_balance",
                        "type": "uint192"
                    },
                    {
                        "name": "_balance_msg_sig",
                        "type": "bytes"
                    }
                ],
                "name": "extractBalanceProofSignature",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "name": "_balance",
                        "type": "uint192"
                    },
                    {
                        "name": "_balance_msg_sig",
                        "type": "bytes"
                    },
                    {
                        "name": "_closing_sig",
                        "type": "bytes"
                    }
                ],
                "name": "cooperativeClose",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "name": "_balance",
                        "type": "uint192"
                    },
                    {
                        "name": "_closing_sig",
                        "type": "bytes"
                    }
                ],
                "name": "extractClosingSignature",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_trusted_contracts",
                        "type": "address[]"
                    }
                ],
                "name": "removeTrustedContracts",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "",
                        "type": "bytes32"
                    }
                ],
                "name": "withdrawn_balances",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint192"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "name": "_balance",
                        "type": "uint192"
                    }
                ],
                "name": "uncooperativeClose",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "version",
                "outputs": [
                    {
                        "name": "",
                        "type": "string"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    }
                ],
                "name": "settle",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "channel_deposit_bugbounty_limit",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "",
                        "type": "bytes32"
                    }
                ],
                "name": "closing_requests",
                "outputs": [
                    {
                        "name": "closing_balance",
                        "type": "uint192"
                    },
                    {
                        "name": "settle_block_number",
                        "type": "uint32"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "name": "_added_deposit",
                        "type": "uint192"
                    }
                ],
                "name": "topUpDelegate",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "",
                        "type": "bytes32"
                    }
                ],
                "name": "channels",
                "outputs": [
                    {
                        "name": "deposit",
                        "type": "uint192"
                    },
                    {
                        "name": "open_block_number",
                        "type": "uint32"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    }
                ],
                "name": "getKey",
                "outputs": [
                    {
                        "name": "data",
                        "type": "bytes32"
                    }
                ],
                "payable": false,
                "stateMutability": "pure",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "owner_address",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_trusted_contracts",
                        "type": "address[]"
                    }
                ],
                "name": "addTrustedContracts",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "name": "trusted_contracts",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "name": "_balance",
                        "type": "uint192"
                    },
                    {
                        "name": "_balance_msg_sig",
                        "type": "bytes"
                    }
                ],
                "name": "withdraw",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_deposit",
                        "type": "uint192"
                    }
                ],
                "name": "createChannel",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "name": "_deposit",
                        "type": "uint256"
                    },
                    {
                        "name": "_data",
                        "type": "bytes"
                    }
                ],
                "name": "tokenFallback",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "token",
                "outputs": [
                    {
                        "name": "",
                        "type": "address"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "name": "_deposit",
                        "type": "uint192"
                    }
                ],
                "name": "createChannelDelegate",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "inputs": [
                    {
                        "name": "_token_address",
                        "type": "address"
                    },
                    {
                        "name": "_challenge_period",
                        "type": "uint32"
                    },
                    {
                        "name": "_trusted_contracts",
                        "type": "address[]"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "constructor"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "_deposit",
                        "type": "uint192"
                    }
                ],
                "name": "ChannelCreated",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "indexed": false,
                        "name": "_added_deposit",
                        "type": "uint192"
                    }
                ],
                "name": "ChannelToppedUp",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "indexed": false,
                        "name": "_balance",
                        "type": "uint192"
                    }
                ],
                "name": "ChannelCloseRequested",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "indexed": false,
                        "name": "_balance",
                        "type": "uint192"
                    },
                    {
                        "indexed": false,
                        "name": "_receiver_tokens",
                        "type": "uint192"
                    }
                ],
                "name": "ChannelSettled",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_sender_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_receiver_address",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_open_block_number",
                        "type": "uint32"
                    },
                    {
                        "indexed": false,
                        "name": "_withdrawn_balance",
                        "type": "uint192"
                    }
                ],
                "name": "ChannelWithdraw",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_trusted_contract_address",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "_trusted_status",
                        "type": "bool"
                    }
                ],
                "name": "TrustedContract",
                "type": "event"
            }
        ],
        "bytecode": "[encoded data, 29774 characters]",
        "bytecode_runtime": "[encoded data, 27772 characters]",
        "devdoc": {
            "methods": {
                "addTrustedContracts(address[])": {
                    "params": {
                        "_trusted_contracts": "Array of contract addresses that can be trusted to open and top up channels on behalf of a sender."
                    }
                },
                "cooperativeClose(address,uint32,uint192,bytes,bytes)": {
                    "params": {
                        "_balance": "The amount of tokens owed by the sender to the receiver.",
                        "_balance_msg_sig": "The balance message signed by the sender.",
                        "_closing_sig": "The receiver's signed balance message, containing the sender's address.",
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_receiver_address": "The address that receives tokens."
                    }
                },
                "createChannel(address,uint192)": {
                    "params": {
                        "_deposit": "The amount of tokens that the sender escrows.",
                        "_receiver_address": "The address that receives tokens."
                    }
                },
                "createChannelDelegate(address,address,uint192)": {
                    "params": {
                        "_deposit": "The amount of tokens that the sender escrows.",
                        "_receiver_address": "The address that receives tokens.",
                        "_sender_address": "The sender's address in behalf of whom the delegate sends tokens."
                    }
                },
                "extractBalanceProofSignature(address,uint32,uint192,bytes)": {
                    "params": {
                        "_balance": "The amount of tokens owed by the sender to the receiver.",
                        "_balance_msg_sig": "The balance message signed by the sender.",
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_receiver_address": "The address that receives tokens."
                    },
                    "return": "Address of the balance proof signer."
                },
                "extractClosingSignature(address,uint32,uint192,bytes)": {
                    "details": "Returns the receiver address extracted from the closing signature. Works with eth_signTypedData https://github.com/ethereum/EIPs/pull/712.",
                    "params": {
                        "_balance": "The amount of tokens owed by the sender to the receiver.",
                        "_closing_sig": "The receiver's signed balance message, containing the sender's address.",
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_sender_address": "The address that sends tokens."
                    },
                    "return": "Address of the closing signature signer."
                },
                "getChannelInfo(address,address,uint32)": {
                    "params": {
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_receiver_address": "The address that receives tokens.",
                        "_sender_address": "The address that sends tokens."
                    },
                    "return": "Channel information: unique_identifier, deposit, settle_block_number, closing_balance, withdrawn balance)."
                },
                "getKey(address,address,uint32)": {
                    "params": {
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_receiver_address": "The address that receives tokens.",
                        "_sender_address": "The address that sends tokens."
                    },
                    "return": "Unique channel identifier."
                },
                "removeTrustedContracts(address[])": {
                    "params": {
                        "_trusted_contracts": "Array of contract addresses to be removed from the trusted_contracts mapping."
                    }
                },
                "settle(address,uint32)": {
                    "params": {
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_receiver_address": "The address that receives tokens."
                    }
                },
                "tokenFallback(address,uint256,bytes)": {
                    "details": "Can only be called from the trusted Token contract.",
                    "params": {
                        "_data": "Data needed for either creating a channel or topping it up. It always contains the sender and receiver addresses +/- a block number.",
                        "_deposit": "The amount of tokens that the sender escrows.",
                        "_sender_address": "The address that sent the tokens to this contract."
                    }
                },
                "topUp(address,uint32,uint192)": {
                    "params": {
                        "_added_deposit": "The added token deposit with which the current deposit is increased.",
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_receiver_address": "The address that receives tokens."
                    }
                },
                "topUpDelegate(address,address,uint32,uint192)": {
                    "params": {
                        "_added_deposit": "The added token deposit with which the current deposit is increased.",
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_receiver_address": "The address that receives tokens.",
                        "_sender_address": "The sender's address in behalf of whom the delegate sends tokens."
                    }
                },
                "uncooperativeClose(address,uint32,uint192)": {
                    "params": {
                        "_balance": "The amount of tokens owed by the sender to the receiver.",
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                        "_receiver_address": "The address that receives tokens."
                    }
                },
                "withdraw(uint32,uint192,bytes)": {
                    "params": {
                        "_balance": "Partial or total amount of tokens owed by the sender to the receiver. Has to be smaller or equal to the channel deposit. Has to match the balance value from `_balance_msg_sig` - the balance message signed by the sender. Has to be smaller or equal to the channel deposit.",
                        "_balance_msg_sig": "The balance message signed by the sender.",
                        "_open_block_number": "The block number at which a channel between the sender and receiver was created."
                    }
                }
            },
            "title": "Raiden MicroTransfer Channels Contract."
        },
        "direct_dependencies": [],
        "full_dependencies": [],
        "linkrefs": [],
        "linkrefs_runtime": [],
        "metadata": {
            "compiler": {
                "version": "0.4.17+commit.bdeb9e52"
            },
            "language": "Solidity",
            "output": {
                "abi": [
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "name": "_added_deposit",
                                "type": "uint192"
                            }
                        ],
                        "name": "topUp",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "challenge_period",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint32"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            }
                        ],
                        "name": "getChannelInfo",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bytes32"
                            },
                            {
                                "name": "",
                                "type": "uint192"
                            },
                            {
                                "name": "",
                                "type": "uint32"
                            },
                            {
                                "name": "",
                                "type": "uint192"
                            },
                            {
                                "name": "",
                                "type": "uint192"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "name": "_balance",
                                "type": "uint192"
                            },
                            {
                                "name": "_balance_msg_sig",
                                "type": "bytes"
                            }
                        ],
                        "name": "extractBalanceProofSignature",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "name": "_balance",
                                "type": "uint192"
                            },
                            {
                                "name": "_balance_msg_sig",
                                "type": "bytes"
                            },
                            {
                                "name": "_closing_sig",
                                "type": "bytes"
                            }
                        ],
                        "name": "cooperativeClose",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "name": "_balance",
                                "type": "uint192"
                            },
                            {
                                "name": "_closing_sig",
                                "type": "bytes"
                            }
                        ],
                        "name": "extractClosingSignature",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_trusted_contracts",
                                "type": "address[]"
                            }
                        ],
                        "name": "removeTrustedContracts",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "",
                                "type": "bytes32"
                            }
                        ],
                        "name": "withdrawn_balances",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint192"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "name": "_balance",
                                "type": "uint192"
                            }
                        ],
                        "name": "uncooperativeClose",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "version",
                        "outputs": [
                            {
                                "name": "",
                                "type": "string"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            }
                        ],
                        "name": "settle",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "channel_deposit_bugbounty_limit",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint256"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "",
                                "type": "bytes32"
                            }
                        ],
                        "name": "closing_requests",
                        "outputs": [
                            {
                                "name": "closing_balance",
                                "type": "uint192"
                            },
                            {
                                "name": "settle_block_number",
                                "type": "uint32"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "name": "_added_deposit",
                                "type": "uint192"
                            }
                        ],
                        "name": "topUpDelegate",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "",
                                "type": "bytes32"
                            }
                        ],
                        "name": "channels",
                        "outputs": [
                            {
                                "name": "deposit",
                                "type": "uint192"
                            },
                            {
                                "name": "open_block_number",
                                "type": "uint32"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            }
                        ],
                        "name": "getKey",
                        "outputs": [
                            {
                                "name": "data",
                                "type": "bytes32"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "pure",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "owner_address",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_trusted_contracts",
                                "type": "address[]"
                            }
                        ],
                        "name": "addTrustedContracts",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "name": "trusted_contracts",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "name": "_balance",
                                "type": "uint192"
                            },
                            {
                                "name": "_balance_msg_sig",
                                "type": "bytes"
                            }
                        ],
                        "name": "withdraw",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_deposit",
                                "type": "uint192"
                            }
                        ],
                        "name": "createChannel",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "name": "_deposit",
                                "type": "uint256"
                            },
                            {
                                "name": "_data",
                                "type": "bytes"
                            }
                        ],
                        "name": "tokenFallback",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "token",
                        "outputs": [
                            {
                                "name": "",
                                "type": "address"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "name": "_deposit",
                                "type": "uint192"
                            }
                        ],
                        "name": "createChannelDelegate",
                        "outputs": [],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "inputs": [
                            {
                                "name": "_token_address",
                                "type": "address"
                            },
                            {
                                "name": "_challenge_period",
                                "type": "uint32"
                            },
                            {
                                "name": "_trusted_contracts",
                                "type": "address[]"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "constructor"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "indexed": false,
                                "name": "_deposit",
                                "type": "uint192"
                            }
                        ],
                        "name": "ChannelCreated",
                        "type": "event"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "indexed": false,
                                "name": "_added_deposit",
                                "type": "uint192"
                            }
                        ],
                        "name": "ChannelToppedUp",
                        "type": "event"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "indexed": false,
                                "name": "_balance",
                                "type": "uint192"
                            }
                        ],
                        "name": "ChannelCloseRequested",
                        "type": "event"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "indexed": false,
                                "name": "_balance",
                                "type": "uint192"
                            },
                            {
                                "indexed": false,
                                "name": "_receiver_tokens",
                                "type": "uint192"
                            }
                        ],
                        "name": "ChannelSettled",
                        "type": "event"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_sender_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_receiver_address",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_open_block_number",
                                "type": "uint32"
                            },
                            {
                                "indexed": false,
                                "name": "_withdrawn_balance",
                                "type": "uint192"
                            }
                        ],
                        "name": "ChannelWithdraw",
                        "type": "event"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_trusted_contract_address",
                                "type": "address"
                            },
                            {
                                "indexed": false,
                                "name": "_trusted_status",
                                "type": "bool"
                            }
                        ],
                        "name": "TrustedContract",
                        "type": "event"
                    }
                ],
                "devdoc": {
                    "methods": {
                        "addTrustedContracts(address[])": {
                            "params": {
                                "_trusted_contracts": "Array of contract addresses that can be trusted to open and top up channels on behalf of a sender."
                            }
                        },
                        "cooperativeClose(address,uint32,uint192,bytes,bytes)": {
                            "params": {
                                "_balance": "The amount of tokens owed by the sender to the receiver.",
                                "_balance_msg_sig": "The balance message signed by the sender.",
                                "_closing_sig": "The receiver's signed balance message, containing the sender's address.",
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_receiver_address": "The address that receives tokens."
                            }
                        },
                        "createChannel(address,uint192)": {
                            "params": {
                                "_deposit": "The amount of tokens that the sender escrows.",
                                "_receiver_address": "The address that receives tokens."
                            }
                        },
                        "createChannelDelegate(address,address,uint192)": {
                            "params": {
                                "_deposit": "The amount of tokens that the sender escrows.",
                                "_receiver_address": "The address that receives tokens.",
                                "_sender_address": "The sender's address in behalf of whom the delegate sends tokens."
                            }
                        },
                        "extractBalanceProofSignature(address,uint32,uint192,bytes)": {
                            "params": {
                                "_balance": "The amount of tokens owed by the sender to the receiver.",
                                "_balance_msg_sig": "The balance message signed by the sender.",
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_receiver_address": "The address that receives tokens."
                            },
                            "return": "Address of the balance proof signer."
                        },
                        "extractClosingSignature(address,uint32,uint192,bytes)": {
                            "details": "Returns the receiver address extracted from the closing signature. Works with eth_signTypedData https://github.com/ethereum/EIPs/pull/712.",
                            "params": {
                                "_balance": "The amount of tokens owed by the sender to the receiver.",
                                "_closing_sig": "The receiver's signed balance message, containing the sender's address.",
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_sender_address": "The address that sends tokens."
                            },
                            "return": "Address of the closing signature signer."
                        },
                        "getChannelInfo(address,address,uint32)": {
                            "params": {
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_receiver_address": "The address that receives tokens.",
                                "_sender_address": "The address that sends tokens."
                            },
                            "return": "Channel information: unique_identifier, deposit, settle_block_number, closing_balance, withdrawn balance)."
                        },
                        "getKey(address,address,uint32)": {
                            "params": {
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_receiver_address": "The address that receives tokens.",
                                "_sender_address": "The address that sends tokens."
                            },
                            "return": "Unique channel identifier."
                        },
                        "removeTrustedContracts(address[])": {
                            "params": {
                                "_trusted_contracts": "Array of contract addresses to be removed from the trusted_contracts mapping."
                            }
                        },
                        "settle(address,uint32)": {
                            "params": {
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_receiver_address": "The address that receives tokens."
                            }
                        },
                        "tokenFallback(address,uint256,bytes)": {
                            "details": "Can only be called from the trusted Token contract.",
                            "params": {
                                "_data": "Data needed for either creating a channel or topping it up. It always contains the sender and receiver addresses +/- a block number.",
                                "_deposit": "The amount of tokens that the sender escrows.",
                                "_sender_address": "The address that sent the tokens to this contract."
                            }
                        },
                        "topUp(address,uint32,uint192)": {
                            "params": {
                                "_added_deposit": "The added token deposit with which the current deposit is increased.",
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_receiver_address": "The address that receives tokens."
                            }
                        },
                        "topUpDelegate(address,address,uint32,uint192)": {
                            "params": {
                                "_added_deposit": "The added token deposit with which the current deposit is increased.",
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_receiver_address": "The address that receives tokens.",
                                "_sender_address": "The sender's address in behalf of whom the delegate sends tokens."
                            }
                        },
                        "uncooperativeClose(address,uint32,uint192)": {
                            "params": {
                                "_balance": "The amount of tokens owed by the sender to the receiver.",
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created.",
                                "_receiver_address": "The address that receives tokens."
                            }
                        },
                        "withdraw(uint32,uint192,bytes)": {
                            "params": {
                                "_balance": "Partial or total amount of tokens owed by the sender to the receiver. Has to be smaller or equal to the channel deposit. Has to match the balance value from `_balance_msg_sig` - the balance message signed by the sender. Has to be smaller or equal to the channel deposit.",
                                "_balance_msg_sig": "The balance message signed by the sender.",
                                "_open_block_number": "The block number at which a channel between the sender and receiver was created."
                            }
                        }
                    },
                    "title": "Raiden MicroTransfer Channels Contract."
                },
                "userdoc": {
                    "methods": {
                        "addTrustedContracts(address[])": {
                            "notice": "Function for adding trusted contracts. Can only be called by owner_address."
                        },
                        "cooperativeClose(address,uint32,uint192,bytes,bytes)": {
                            "notice": "Function called by the sender, receiver or a delegate, with all the needed signatures to close the channel and settle immediately."
                        },
                        "createChannel(address,uint192)": {
                            "notice": "Creates a new channel between `msg.sender` and `_receiver_address` and transfers the `_deposit` token deposit to this contract. Compatibility with ERC20 tokens."
                        },
                        "createChannelDelegate(address,address,uint192)": {
                            "notice": "Function that allows a delegate contract to create a new channel between `_sender_address` and `_receiver_address` and transfers the token deposit to this contract. Can only be called by a trusted contract. Compatibility with ERC20 tokens."
                        },
                        "extractBalanceProofSignature(address,uint32,uint192,bytes)": {
                            "notice": "Returns the sender address extracted from the balance proof. dev Works with eth_signTypedData https://github.com/ethereum/EIPs/pull/712."
                        },
                        "getChannelInfo(address,address,uint32)": {
                            "notice": "Function for retrieving information about a channel."
                        },
                        "getKey(address,address,uint32)": {
                            "notice": "Returns the unique channel identifier used in the contract."
                        },
                        "removeTrustedContracts(address[])": {
                            "notice": "Function for removing trusted contracts. Can only be called by owner_address."
                        },
                        "settle(address,uint32)": {
                            "notice": "Function called by the sender after the challenge period has ended, in order to settle and delete the channel, in case the receiver has not closed the channel himself."
                        },
                        "tokenFallback(address,uint256,bytes)": {
                            "notice": "Opens a new channel or tops up an existing one, compatibility with ERC 223."
                        },
                        "topUp(address,uint32,uint192)": {
                            "notice": "Increase the channel deposit with `_added_deposit`."
                        },
                        "topUpDelegate(address,address,uint32,uint192)": {
                            "notice": "Function that allows a delegate contract to increase the channel deposit with `_added_deposit`. Can only be called by a trusted contract. Compatibility with ERC20 tokens."
                        },
                        "uncooperativeClose(address,uint32,uint192)": {
                            "notice": "Sender requests the closing of the channel and starts the challenge period. This can only happen once."
                        },
                        "withdraw(uint32,uint192,bytes)": {
                            "notice": "Allows channel receiver to withdraw tokens."
                        }
                    }
                }
            },
            "settings": {
                "compilationTarget": {
                    "contracts/RaidenMicroTransferChannels.sol": "RaidenMicroTransferChannels"
                },
                "libraries": {},
                "optimizer": {
                    "enabled": false,
                    "runs": 200
                },
                "remappings": []
            },
            "sources": {
                "contracts/RaidenMicroTransferChannels.sol": {
                    "keccak256": "0x800f427a20e76615a414077b37cd97400fc1a3a10bd5c7ad6f1cc669c4ad4237",
                    "urls": [
                        "bzzr://0be9942b781d0db0e881275ef3d86ade24b47e01fd4d65db74836dd92d724010"
                    ]
                },
                "contracts/Token.sol": {
                    "keccak256": "0x1e5e5ba7b6f38523dc1faa1e2c0af2c78614b64143e3b209095982c5ec657bf0",
                    "urls": [
                        "bzzr://c54e35e2b7062c8d3da72f884ce75ace360922cf7b2abf035dbc4ec0ff6a9597"
                    ]
                },
                "contracts/lib/ECVerify.sol": {
                    "keccak256": "0x299e3d97791734a4c2a5b8e6a3610220633f0ca1552d73532b59b302b047b2db",
                    "urls": [
                        "bzzr://18bbecd14c52b2bf69556cd93c9428ed8e5c8bad4a5afd045847649e375cc673"
                    ]
                }
            },
            "version": 1
        },
        "name": "RaidenMicroTransferChannels",
        "ordered_full_dependencies": [],
        "source_path": "contracts/RaidenMicroTransferChannels.sol",
        "userdoc": {
            "methods": {
                "addTrustedContracts(address[])": {
                    "notice": "Function for adding trusted contracts. Can only be called by owner_address."
                },
                "cooperativeClose(address,uint32,uint192,bytes,bytes)": {
                    "notice": "Function called by the sender, receiver or a delegate, with all the needed signatures to close the channel and settle immediately."
                },
                "createChannel(address,uint192)": {
                    "notice": "Creates a new channel between `msg.sender` and `_receiver_address` and transfers the `_deposit` token deposit to this contract. Compatibility with ERC20 tokens."
                },
                "createChannelDelegate(address,address,uint192)": {
                    "notice": "Function that allows a delegate contract to create a new channel between `_sender_address` and `_receiver_address` and transfers the token deposit to this contract. Can only be called by a trusted contract. Compatibility with ERC20 tokens."
                },
                "extractBalanceProofSignature(address,uint32,uint192,bytes)": {
                    "notice": "Returns the sender address extracted from the balance proof. dev Works with eth_signTypedData https://github.com/ethereum/EIPs/pull/712."
                },
                "getChannelInfo(address,address,uint32)": {
                    "notice": "Function for retrieving information about a channel."
                },
                "getKey(address,address,uint32)": {
                    "notice": "Returns the unique channel identifier used in the contract."
                },
                "removeTrustedContracts(address[])": {
                    "notice": "Function for removing trusted contracts. Can only be called by owner_address."
                },
                "settle(address,uint32)": {
                    "notice": "Function called by the sender after the challenge period has ended, in order to settle and delete the channel, in case the receiver has not closed the channel himself."
                },
                "tokenFallback(address,uint256,bytes)": {
                    "notice": "Opens a new channel or tops up an existing one, compatibility with ERC 223."
                },
                "topUp(address,uint32,uint192)": {
                    "notice": "Increase the channel deposit with `_added_deposit`."
                },
                "topUpDelegate(address,address,uint32,uint192)": {
                    "notice": "Function that allows a delegate contract to increase the channel deposit with `_added_deposit`. Can only be called by a trusted contract. Compatibility with ERC20 tokens."
                },
                "uncooperativeClose(address,uint32,uint192)": {
                    "notice": "Sender requests the closing of the channel and starts the challenge period. This can only happen once."
                },
                "withdraw(uint32,uint192,bytes)": {
                    "notice": "Allows channel receiver to withdraw tokens."
                }
            }
        }
    },
    "StandardToken": {
        "abi": [
            {
                "constant": true,
                "inputs": [],
                "name": "name",
                "outputs": [
                    {
                        "name": "",
                        "type": "string"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_spender",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "approve",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "totalSupply",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_from",
                        "type": "address"
                    },
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "transferFrom",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "decimals",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint8"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_owner",
                        "type": "address"
                    }
                ],
                "name": "balanceOf",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "symbol",
                "outputs": [
                    {
                        "name": "",
                        "type": "string"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "transfer",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    },
                    {
                        "name": "_data",
                        "type": "bytes"
                    }
                ],
                "name": "transfer",
                "outputs": [
                    {
                        "name": "",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_owner",
                        "type": "address"
                    },
                    {
                        "name": "_spender",
                        "type": "address"
                    }
                ],
                "name": "allowance",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_from",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "Transfer",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_owner",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_spender",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "Approval",
                "type": "event"
            }
        ],
        "bytecode": "[encoded data, 8132 characters]",
        "bytecode_runtime": "[encoded data, 8072 characters]",
        "devdoc": {
            "methods": {
                "allowance(address,address)": {
                    "details": "Returns number of allowed tokens that a spender can transfer on behalf of a token owner.",
                    "params": {
                        "_owner": "Address of token owner.",
                        "_spender": "Address of token spender."
                    },
                    "return": "Returns remaining allowance for spender."
                },
                "approve(address,uint256)": {
                    "details": "Sets approved amount of tokens for spender. Returns success.",
                    "params": {
                        "_spender": "Address of allowed account.",
                        "_value": "Number of approved tokens."
                    },
                    "return": "Returns success of function call."
                },
                "balanceOf(address)": {
                    "details": "Returns number of tokens owned by the given address.",
                    "params": {
                        "_owner": "Address of token owner."
                    },
                    "return": "Returns balance of owner."
                },
                "transfer(address,uint256)": {
                    "details": "Transfers sender's tokens to a given address. Returns success.",
                    "params": {
                        "_to": "Address of token receiver.",
                        "_value": "Number of tokens to transfer."
                    },
                    "return": "Returns success of function call."
                },
                "transfer(address,uint256,bytes)": {
                    "details": "Function that is called when a user or another contract wants to transfer funds.",
                    "params": {
                        "_data": "Data to be sent to tokenFallback",
                        "_to": "Address of token receiver.",
                        "_value": "Number of tokens to transfer."
                    },
                    "return": "Returns success of function call."
                },
                "transferFrom(address,address,uint256)": {
                    "details": "Allows for an approved third party to transfer tokens from one address to another. Returns success.",
                    "params": {
                        "_from": "Address from where tokens are withdrawn.",
                        "_to": "Address to where tokens are sent.",
                        "_value": "Number of tokens to transfer."
                    },
                    "return": "Returns success of function call."
                }
            },
            "title": "Standard token contract - Standard token implementation."
        },
        "direct_dependencies": [],
        "full_dependencies": [],
        "linkrefs": [],
        "linkrefs_runtime": [],
        "metadata": {
            "compiler": {
                "version": "0.4.17+commit.bdeb9e52"
            },
            "language": "Solidity",
            "output": {
                "abi": [
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "name",
                        "outputs": [
                            {
                                "name": "",
                                "type": "string"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_spender",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "approve",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "totalSupply",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint256"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_from",
                                "type": "address"
                            },
                            {
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "transferFrom",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "decimals",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint8"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_owner",
                                "type": "address"
                            }
                        ],
                        "name": "balanceOf",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint256"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [],
                        "name": "symbol",
                        "outputs": [
                            {
                                "name": "",
                                "type": "string"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "transfer",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": false,
                        "inputs": [
                            {
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "name": "_value",
                                "type": "uint256"
                            },
                            {
                                "name": "_data",
                                "type": "bytes"
                            }
                        ],
                        "name": "transfer",
                        "outputs": [
                            {
                                "name": "",
                                "type": "bool"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "nonpayable",
                        "type": "function"
                    },
                    {
                        "constant": true,
                        "inputs": [
                            {
                                "name": "_owner",
                                "type": "address"
                            },
                            {
                                "name": "_spender",
                                "type": "address"
                            }
                        ],
                        "name": "allowance",
                        "outputs": [
                            {
                                "name": "",
                                "type": "uint256"
                            }
                        ],
                        "payable": false,
                        "stateMutability": "view",
                        "type": "function"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_from",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_to",
                                "type": "address"
                            },
                            {
                                "indexed": false,
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "Transfer",
                        "type": "event"
                    },
                    {
                        "anonymous": false,
                        "inputs": [
                            {
                                "indexed": true,
                                "name": "_owner",
                                "type": "address"
                            },
                            {
                                "indexed": true,
                                "name": "_spender",
                                "type": "address"
                            },
                            {
                                "indexed": false,
                                "name": "_value",
                                "type": "uint256"
                            }
                        ],
                        "name": "Approval",
                        "type": "event"
                    }
                ],
                "devdoc": {
                    "methods": {
                        "allowance(address,address)": {
                            "details": "Returns number of allowed tokens that a spender can transfer on behalf of a token owner.",
                            "params": {
                                "_owner": "Address of token owner.",
                                "_spender": "Address of token spender."
                            },
                            "return": "Returns remaining allowance for spender."
                        },
                        "approve(address,uint256)": {
                            "details": "Sets approved amount of tokens for spender. Returns success.",
                            "params": {
                                "_spender": "Address of allowed account.",
                                "_value": "Number of approved tokens."
                            },
                            "return": "Returns success of function call."
                        },
                        "balanceOf(address)": {
                            "details": "Returns number of tokens owned by the given address.",
                            "params": {
                                "_owner": "Address of token owner."
                            },
                            "return": "Returns balance of owner."
                        },
                        "transfer(address,uint256)": {
                            "details": "Transfers sender's tokens to a given address. Returns success.",
                            "params": {
                                "_to": "Address of token receiver.",
                                "_value": "Number of tokens to transfer."
                            },
                            "return": "Returns success of function call."
                        },
                        "transfer(address,uint256,bytes)": {
                            "details": "Function that is called when a user or another contract wants to transfer funds.",
                            "params": {
                                "_data": "Data to be sent to tokenFallback",
                                "_to": "Address of token receiver.",
                                "_value": "Number of tokens to transfer."
                            },
                            "return": "Returns success of function call."
                        },
                        "transferFrom(address,address,uint256)": {
                            "details": "Allows for an approved third party to transfer tokens from one address to another. Returns success.",
                            "params": {
                                "_from": "Address from where tokens are withdrawn.",
                                "_to": "Address to where tokens are sent.",
                                "_value": "Number of tokens to transfer."
                            },
                            "return": "Returns success of function call."
                        }
                    },
                    "title": "Standard token contract - Standard token implementation."
                },
                "userdoc": {
                    "methods": {
                        "approve(address,uint256)": {
                            "notice": "Allows `_spender` to transfer `_value` tokens from `msg.sender` to any address."
                        },
                        "transfer(address,uint256)": {
                            "notice": "Send `_value` tokens to `_to` from `msg.sender`."
                        },
                        "transfer(address,uint256,bytes)": {
                            "notice": "Send `_value` tokens to `_to` from `msg.sender` and trigger tokenFallback if sender is a contract."
                        },
                        "transferFrom(address,address,uint256)": {
                            "notice": "Transfer `_value` tokens from `_from` to `_to` if `msg.sender` is allowed."
                        }
                    }
                }
            },
            "settings": {
                "compilationTarget": {
                    "contracts/test/StandardToken.sol": "StandardToken"
                },
                "libraries": {},
                "optimizer": {
                    "enabled": false,
                    "runs": 200
                },
                "remappings": []
            },
            "sources": {
                "contracts/Token.sol": {
                    "keccak256": "0x1e5e5ba7b6f38523dc1faa1e2c0af2c78614b64143e3b209095982c5ec657bf0",
                    "urls": [
                        "bzzr://c54e35e2b7062c8d3da72f884ce75ace360922cf7b2abf035dbc4ec0ff6a9597"
                    ]
                },
                "contracts/test/ERC223ReceivingContract.sol": {
                    "keccak256": "0xc1e82e44f83aead783d0088b50e88caf9c39e21288985eaa207768d5db604f35",
                    "urls": [
                        "bzzr://2abdc354558b80f5e3ec08e4ca6e9a1b7cacf45c726a4b0b93d27cecd6e338d2"
                    ]
                },
                "contracts/test/StandardToken.sol": {
                    "keccak256": "0x4e5fe4180c1409652b9950e64cde6ea860a4917a061b486af769a6a88e24f798",
                    "urls": [
                        "bzzr://0bb170e4b6e73cdcbb7f3d18459200695f39bddafdf4d9774c0f3b010f4a9a45"
                    ]
                }
            },
            "version": 1
        },
        "name": "StandardToken",
        "ordered_full_dependencies": [],
        "source_path": "contracts/test/StandardToken.sol",
        "userdoc": {
            "methods": {
                "approve(address,uint256)": {
                    "notice": "Allows `_spender` to transfer `_value` tokens from `msg.sender` to any address."
                },
                "transfer(address,uint256)": {
                    "notice": "Send `_value` tokens to `_to` from `msg.sender`."
                },
                "transfer(address,uint256,bytes)": {
                    "notice": "Send `_value` tokens to `_to` from `msg.sender` and trigger tokenFallback if sender is a contract."
                },
                "transferFrom(address,address,uint256)": {
                    "notice": "Transfer `_value` tokens from `_from` to `_to` if `msg.sender` is allowed."
                }
            }
        }
    },
    "Token": {
        "abi": [
            {
                "constant": true,
                "inputs": [],
                "name": "name",
                "outputs": [
                    {
                        "name": "",
                        "type": "string"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_spender",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "approve",
                "outputs": [
                    {
                        "name": "success",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "totalSupply",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_from",
                        "type": "address"
                    },
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "transferFrom",
                "outputs": [
                    {
                        "name": "success",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "decimals",
                "outputs": [
                    {
                        "name": "",
                        "type": "uint8"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_owner",
                        "type": "address"
                    }
                ],
                "name": "balanceOf",
                "outputs": [
                    {
                        "name": "balance",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "symbol",
                "outputs": [
                    {
                        "name": "",
                        "type": "string"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "transfer",
                "outputs": [
                    {
                        "name": "success",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    {
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "name": "_value",
                        "type": "uint256"
                    },
                    {
                        "name": "_data",
                        "type": "bytes"
                    }
                ],
                "name": "transfer",
                "outputs": [
                    {
                        "name": "success",
                        "type": "bool"
                    }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "name": "_owner",
                        "type": "address"
                    },
                    {
                        "name": "_spender",
                        "type": "address"
                    }
                ],
                "name": "allowance",
                "outputs": [
                    {
                        "name": "remaining",
                        "type": "uint256"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_from",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_to",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "Transfer",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    {
                        "indexed": true,
                        "name": "_owner",
                        "type": "address"
                    },
                    {
                        "indexed": true,
                        "name": "_spender",
                        "type": "address"
                    },
                    {
                        "indexed": false,
                        "name": "_value",
                        "type": "uint256"
                    }
                ],
                "name": "Approval",
                "type": "event"
            }
        ],
        "bytecode": "0x",
        "bytecode_runtime": "0x",
        "devdoc": {
            "methods": {
                "allowance(address,address)": {
                    "params": {
                        "_owner": "The address of the account owning tokens.",
                        "_spender": "The address of the account able to transfer the tokens."
                    },
                    "return": "Amount of remaining tokens allowed to spent."
                },
                "approve(address,uint256)": {
                    "params": {
                        "_spender": "The address of the account able to transfer the tokens.",
                        "_value": "The amount of tokens to be approved for transfer."
                    },
                    "return": "Whether the approval was successful or not."
                },
                "balanceOf(address)": {
                    "params": {
                        "_owner": "The address from which the balance will be retrieved."
                    },
                    "return": "The balance."
                },
                "transfer(address,uint256)": {
                    "params": {
                        "_to": "The address of the recipient.",
                        "_value": "The amount of token to be transferred."
                    },
                    "return": "Whether the transfer was successful or not."
                },
                "transfer(address,uint256,bytes)": {
                    "params": {
                        "_data": "Data to be sent to `tokenFallback.",
                        "_to": "The address of the recipient.",
                        "_value": "The amount of token to be transferred."
                    },
                    "return": "Returns success of function call."
                },
                "transferFrom(address,address,uint256)": {
                    "params": {
                        "_from": "The address of the sender.",
                        "_to": "The address of the recipient.",
                        "_value": "The amount of token to be transferred."
                    },
                    "return": "Whether the transfer was successful or not."
                }
            },
            "title": "Base Token contract - Functions to be implemented by token contracts."
        },
        "direct_dependencies": [],
        "full_dependencies": [],
        "linkrefs": [],
        "linkrefs_runtime": [],
        "metadata": null,
        "name": "Token",
        "ordered_full_dependencies": [],
        "source_path": "contracts/Token.sol",
        "userdoc": {
            "methods": {
                "approve(address,uint256)": {
                    "notice": "`msg.sender` approves `_spender` to spend `_value` tokens."
                },
                "transfer(address,uint256)": {
                    "notice": "send `_value` token to `_to` from `msg.sender`."
                },
                "transfer(address,uint256,bytes)": {
                    "notice": "send `_value` token to `_to` from `msg.sender`."
                },
                "transferFrom(address,address,uint256)": {
                    "notice": "send `_value` token to `_to` from `_from` on the condition it is approved by `_from`."
                }
            }
        }
    }
}