[
    {
        "type": "constructor",
        "payable": false,
        "inputs": [{ "type": "address", "name": "tokenReceiver_" }]
    },
    {
        "type": "event",
        "anonymous": false,
        "name": "Approval",
        "inputs": [
            { "type": "address", "name": "owner", "indexed": true },
            { "type": "address", "name": "spender", "indexed": true },
            { "type": "uint256", "name": "value", "indexed": false }
        ]
    },
    {
        "type": "event",
        "anonymous": false,
        "name": "DelegateChanged",
        "inputs": [
            { "type": "address", "name": "delegator", "indexed": true },
            { "type": "address", "name": "fromDelegate", "indexed": true },
            { "type": "address", "name": "toDelegate", "indexed": true }
        ]
    },
    {
        "type": "event",
        "anonymous": false,
        "name": "DelegateVotesChanged",
        "inputs": [
            { "type": "address", "name": "delegate", "indexed": true },
            { "type": "uint256", "name": "previousBalance", "indexed": false },
            { "type": "uint256", "name": "newBalance", "indexed": false }
        ]
    },
    {
        "type": "event",
        "anonymous": false,
        "name": "Transfer",
        "inputs": [
            { "type": "address", "name": "from", "indexed": true },
            { "type": "address", "name": "to", "indexed": true },
            { "type": "uint256", "name": "value", "indexed": false }
        ]
    },
    {
        "type": "function",
        "name": "DOMAIN_SEPARATOR",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [],
        "outputs": [{ "type": "bytes32" }]
    },
    {
        "type": "function",
        "name": "allowance",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [
            { "type": "address", "name": "owner" },
            { "type": "address", "name": "spender" }
        ],
        "outputs": [{ "type": "uint256" }]
    },
    {
        "type": "function",
        "name": "approve",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "spender" },
            { "type": "uint256", "name": "amount" }
        ],
        "outputs": [{ "type": "bool" }]
    },
    {
        "type": "function",
        "name": "balanceOf",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [{ "type": "address", "name": "account" }],
        "outputs": [{ "type": "uint256" }]
    },
    {
        "type": "function",
        "name": "burn",
        "constant": false,
        "payable": false,
        "inputs": [{ "type": "uint256", "name": "amount" }],
        "outputs": []
    },
    {
        "type": "function",
        "name": "burnFrom",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "account" },
            { "type": "uint256", "name": "amount" }
        ],
        "outputs": []
    },
    {
        "type": "function",
        "name": "checkpoints",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [
            { "type": "address", "name": "account" },
            { "type": "uint32", "name": "pos" }
        ],
        "outputs": [
            {
                "type": "tuple",
                "components": [
                    { "type": "uint32", "name": "fromBlock" },
                    { "type": "uint224", "name": "votes" }
                ]
            }
        ]
    },
    {
        "type": "function",
        "name": "decimals",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [],
        "outputs": [{ "type": "uint8" }]
    },
    {
        "type": "function",
        "name": "decreaseAllowance",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "spender" },
            { "type": "uint256", "name": "subtractedValue" }
        ],
        "outputs": [{ "type": "bool" }]
    },
    {
        "type": "function",
        "name": "delegate",
        "constant": false,
        "payable": false,
        "inputs": [{ "type": "address", "name": "delegatee" }],
        "outputs": []
    },
    {
        "type": "function",
        "name": "delegateBySig",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "delegatee" },
            { "type": "uint256", "name": "nonce" },
            { "type": "uint256", "name": "expiry" },
            { "type": "uint8", "name": "v" },
            { "type": "bytes32", "name": "r" },
            { "type": "bytes32", "name": "s" }
        ],
        "outputs": []
    },
    {
        "type": "function",
        "name": "delegates",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [{ "type": "address", "name": "account" }],
        "outputs": [{ "type": "address" }]
    },
    {
        "type": "function",
        "name": "getPastTotalSupply",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [{ "type": "uint256", "name": "blockNumber" }],
        "outputs": [{ "type": "uint256" }]
    },
    {
        "type": "function",
        "name": "getPastVotes",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [
            { "type": "address", "name": "account" },
            { "type": "uint256", "name": "blockNumber" }
        ],
        "outputs": [{ "type": "uint256" }]
    },
    {
        "type": "function",
        "name": "getVotes",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [{ "type": "address", "name": "account" }],
        "outputs": [{ "type": "uint256" }]
    },
    {
        "type": "function",
        "name": "increaseAllowance",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "spender" },
            { "type": "uint256", "name": "addedValue" }
        ],
        "outputs": [{ "type": "bool" }]
    },
    {
        "type": "function",
        "name": "name",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [],
        "outputs": [{ "type": "string" }]
    },
    {
        "type": "function",
        "name": "nonces",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [{ "type": "address", "name": "owner" }],
        "outputs": [{ "type": "uint256" }]
    },
    {
        "type": "function",
        "name": "numCheckpoints",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [{ "type": "address", "name": "account" }],
        "outputs": [{ "type": "uint32" }]
    },
    {
        "type": "function",
        "name": "permit",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "owner" },
            { "type": "address", "name": "spender" },
            { "type": "uint256", "name": "value" },
            { "type": "uint256", "name": "deadline" },
            { "type": "uint8", "name": "v" },
            { "type": "bytes32", "name": "r" },
            { "type": "bytes32", "name": "s" }
        ],
        "outputs": []
    },
    {
        "type": "function",
        "name": "symbol",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [],
        "outputs": [{ "type": "string" }]
    },
    {
        "type": "function",
        "name": "totalSupply",
        "constant": true,
        "stateMutability": "view",
        "payable": false,
        "inputs": [],
        "outputs": [{ "type": "uint256" }]
    },
    {
        "type": "function",
        "name": "transfer",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "to" },
            { "type": "uint256", "name": "amount" }
        ],
        "outputs": [{ "type": "bool" }]
    },
    {
        "type": "function",
        "name": "transferFrom",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "from" },
            { "type": "address", "name": "to" },
            { "type": "uint256", "name": "amount" }
        ],
        "outputs": [{ "type": "bool" }]
    },
    {
        "type": "function",
        "name": "transferFromWithPermit",
        "constant": false,
        "payable": false,
        "inputs": [
            { "type": "address", "name": "from_" },
            { "type": "address", "name": "to_" },
            { "type": "address", "name": "spender_" },
            { "type": "uint256", "name": "value_" },
            { "type": "uint256", "name": "deadline_" },
            { "type": "uint8", "name": "v_" },
            { "type": "bytes32", "name": "r_" },
            { "type": "bytes32", "name": "s_" }
        ],
        "outputs": []
    }
]
