{
  "name":"transfer_channel",
  "abi":[
    {
      "constant": true,
      "inputs": [
        {
          "name": "_receiver_address",
          "type": "address"
        },
        {
          "name": "_open_block_number",
          "type": "uint32"
        },
        {
          "name": "_balance",
          "type": "uint256"
        },
        {
          "name": "_balance_msg_sig",
          "type": "bytes"
        }
      ],
      "name": "extractBalanceProofSignature",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "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": "uint256"
        },
        {
          "name": "",
          "type": "uint32"
        },
        {
          "name": "",
          "type": "uint256"
        },
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_receiver_address",
          "type": "address"
        },
        {
          "name": "_open_block_number",
          "type": "uint32"
        },
        {
          "name": "_balance",
          "type": "uint256"
        }
      ],
      "name": "uncooperativeClose",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "withdrawn_balances",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_receiver_address",
          "type": "address"
        },
        {
          "name": "_open_block_number",
          "type": "uint32"
        },
        {
          "name": "_balance",
          "type": "uint256"
        },
        {
          "name": "_balance_msg_sig",
          "type": "bytes"
        },
        {
          "name": "_closing_sig",
          "type": "bytes"
        }
      ],
      "name": "cooperativeClose",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_open_block_number",
          "type": "uint32"
        },
        {
          "name": "_balance",
          "type": "uint256"
        },
        {
          "name": "_balance_msg_sig",
          "type": "bytes"
        }
      ],
      "name": "withdraw",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "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": false,
      "inputs": [
        {
          "name": "_receiver_address",
          "type": "address"
        }
      ],
      "name": "createChannel",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "closing_requests",
      "outputs": [
        {
          "name": "closing_balance",
          "type": "uint256"
        },
        {
          "name": "settle_block_number",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "channels",
      "outputs": [
        {
          "name": "deposit",
          "type": "uint256"
        },
        {
          "name": "open_block_number",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_receiver_address",
          "type": "address"
        },
        {
          "name": "_open_block_number",
          "type": "uint32"
        }
      ],
      "name": "topUp",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "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": "_sender_address",
          "type": "address"
        },
        {
          "name": "_open_block_number",
          "type": "uint32"
        },
        {
          "name": "_balance",
          "type": "uint256"
        },
        {
          "name": "_closing_sig",
          "type": "bytes"
        }
      ],
      "name": "extractClosingSignature",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "challengePeriod",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_sender_address",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_receiver_address",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_deposit",
          "type": "uint256"
        }
      ],
      "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": "uint256"
        }
      ],
      "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": "uint256"
        }
      ],
      "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": "uint256"
        },
        {
          "indexed": false,
          "name": "_receiver_remaining_balance",
          "type": "uint256"
        }
      ],
      "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": "uint256"
        }
      ],
      "name": "ChannelWithdraw",
      "type": "event"
    }
  ]
}
