[
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bytes32",
                "name": ""
            }
        ],
        "name": "transactionHash",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "numMessagesSigned",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_message"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "sourceChainId",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [
            {
                "type": "bytes32",
                "name": ""
            }
        ],
        "name": "_sendMessage",
        "inputs": [
            {
                "type": "address",
                "name": "_contract"
            },
            {
                "type": "bytes",
                "name": "_data"
            },
            {
                "type": "uint256",
                "name": "_gas"
            },
            {
                "type": "uint256",
                "name": "_dataType"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bytes",
                "name": ""
            }
        ],
        "name": "signature",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_hash"
            },
            {
                "type": "uint256",
                "name": "_index"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [
            {
                "type": "bool",
                "name": ""
            }
        ],
        "name": "initialize",
        "inputs": [
            {
                "type": "uint256",
                "name": "_sourceChainId"
            },
            {
                "type": "uint256",
                "name": "_destinationChainId"
            },
            {
                "type": "address",
                "name": "_validatorContract"
            },
            {
                "type": "uint256",
                "name": "_maxGasPerTx"
            },
            {
                "type": "uint256",
                "name": "_gasPrice"
            },
            {
                "type": "uint256",
                "name": "_requiredBlockConfirmations"
            },
            {
                "type": "address",
                "name": "_owner"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bool",
                "name": ""
            }
        ],
        "name": "isInitialized",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "requiredBlockConfirmations",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "pure",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": "gas"
            }
        ],
        "name": "getMinimumGasUsage",
        "inputs": [
            {
                "type": "bytes",
                "name": "_data"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "address",
                "name": ""
            }
        ],
        "name": "failedMessageReceiver",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_messageId"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "pure",
        "payable": false,
        "outputs": [
            {
                "type": "bytes4",
                "name": "_data"
            }
        ],
        "name": "getBridgeMode",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [],
        "name": "setChainIds",
        "inputs": [
            {
                "type": "uint256",
                "name": "_sourceChainId"
            },
            {
                "type": "uint256",
                "name": "_destinationChainId"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bytes",
                "name": ""
            }
        ],
        "name": "message",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_hash"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "address",
                "name": ""
            }
        ],
        "name": "failedMessageSender",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_messageId"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [],
        "name": "submitSignature",
        "inputs": [
            {
                "type": "bytes",
                "name": "signature"
            },
            {
                "type": "bytes",
                "name": "message"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bytes32",
                "name": "id"
            }
        ],
        "name": "messageId",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "numAffirmationsSigned",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_hash"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bool",
                "name": ""
            }
        ],
        "name": "affirmationsSigned",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_hash"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [],
        "name": "setMaxGasPerTx",
        "inputs": [
            {
                "type": "uint256",
                "name": "_maxGasPerTx"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "requiredSignatures",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "address",
                "name": ""
            }
        ],
        "name": "owner",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bool",
                "name": ""
            }
        ],
        "name": "messagesSigned",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_message"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [
            {
                "type": "bytes32",
                "name": ""
            }
        ],
        "name": "requireToConfirmMessage",
        "inputs": [
            {
                "type": "address",
                "name": "_contract"
            },
            {
                "type": "bytes",
                "name": "_data"
            },
            {
                "type": "uint256",
                "name": "_gas"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "address",
                "name": ""
            }
        ],
        "name": "validatorContract",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "deployedAtBlock",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "pure",
        "payable": false,
        "outputs": [
            {
                "type": "uint64",
                "name": "major"
            },
            {
                "type": "uint64",
                "name": "minor"
            },
            {
                "type": "uint64",
                "name": "patch"
            }
        ],
        "name": "getBridgeInterfacesVersion",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": "id"
            }
        ],
        "name": "messageSourceChainId",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [],
        "name": "setRequiredBlockConfirmations",
        "inputs": [
            {
                "type": "uint256",
                "name": "_blockConfirmations"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "destinationChainId",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [],
        "name": "setGasPrice",
        "inputs": [
            {
                "type": "uint256",
                "name": "_gasPrice"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bool",
                "name": ""
            }
        ],
        "name": "messageCallStatus",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_messageId"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "address",
                "name": "sender"
            }
        ],
        "name": "messageSender",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "int256",
                "name": ""
            }
        ],
        "name": "decimalShift",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [
            {
                "type": "bytes32",
                "name": ""
            }
        ],
        "name": "requireToPassMessage",
        "inputs": [
            {
                "type": "address",
                "name": "_contract"
            },
            {
                "type": "bytes",
                "name": "_data"
            },
            {
                "type": "uint256",
                "name": "_gas"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "bytes32",
                "name": ""
            }
        ],
        "name": "failedMessageDataHash",
        "inputs": [
            {
                "type": "bytes32",
                "name": "_messageId"
            }
        ],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "maxGasPerTx",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [],
        "name": "executeAffirmation",
        "inputs": [
            {
                "type": "bytes",
                "name": "message"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "nonpayable",
        "payable": false,
        "outputs": [],
        "name": "transferOwnership",
        "inputs": [
            {
                "type": "address",
                "name": "newOwner"
            }
        ],
        "constant": false
    },
    {
        "type": "function",
        "stateMutability": "view",
        "payable": false,
        "outputs": [
            {
                "type": "uint256",
                "name": ""
            }
        ],
        "name": "gasPrice",
        "inputs": [],
        "constant": true
    },
    {
        "type": "function",
        "stateMutability": "pure",
        "payable": false,
        "outputs": [
            {
                "type": "bool",
                "name": ""
            }
        ],
        "name": "isAlreadyProcessed",
        "inputs": [
            {
                "type": "uint256",
                "name": "_number"
            }
        ],
        "constant": true
    },
    {
        "type": "event",
        "name": "UserRequestForSignature",
        "inputs": [
            {
                "type": "bytes32",
                "name": "messageId",
                "indexed": true
            },
            {
                "type": "bytes",
                "name": "encodedData",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "AffirmationCompleted",
        "inputs": [
            {
                "type": "address",
                "name": "sender",
                "indexed": true
            },
            {
                "type": "address",
                "name": "executor",
                "indexed": true
            },
            {
                "type": "bytes32",
                "name": "messageId",
                "indexed": true
            },
            {
                "type": "bool",
                "name": "status",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "SignedForUserRequest",
        "inputs": [
            {
                "type": "address",
                "name": "signer",
                "indexed": true
            },
            {
                "type": "bytes32",
                "name": "messageHash",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "SignedForAffirmation",
        "inputs": [
            {
                "type": "address",
                "name": "signer",
                "indexed": true
            },
            {
                "type": "bytes32",
                "name": "messageHash",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "CollectedSignatures",
        "inputs": [
            {
                "type": "address",
                "name": "authorityResponsibleForRelay",
                "indexed": false
            },
            {
                "type": "bytes32",
                "name": "messageHash",
                "indexed": false
            },
            {
                "type": "uint256",
                "name": "NumberOfCollectedSignatures",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "GasPriceChanged",
        "inputs": [
            {
                "type": "uint256",
                "name": "gasPrice",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "RequiredBlockConfirmationChanged",
        "inputs": [
            {
                "type": "uint256",
                "name": "requiredBlockConfirmations",
                "indexed": false
            }
        ],
        "anonymous": false
    },
    {
        "type": "event",
        "name": "OwnershipTransferred",
        "inputs": [
            {
                "type": "address",
                "name": "previousOwner",
                "indexed": false
            },
            {
                "type": "address",
                "name": "newOwner",
                "indexed": false
            }
        ],
        "anonymous": false
    }
]
