[{
  "name": "getBtcBlockchainBestChainHeight",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int"
  }]
}, {
  "name": "getStateForDebugging",
  "type": "function",
  "constant": "true",
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getBtcBlockchainInitialBlockHeight",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int"
  }]
}, {
  "name": "getBtcBlockchainBlockHashAtDepth",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "depth",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getBtcTxHashProcessedHeight",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "hash",
    "type": "string"
  }],
  "outputs": [{
    "name": "",
    "type": "int64"
  }]
}, {
  "name": "isBtcTxHashAlreadyProcessed",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "hash",
    "type": "string"
  }],
  "outputs": [{
    "name": "",
    "type": "bool"
  }]
}, {
  "name": "getFederationAddress",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "string"
  }]
}, {
  "name": "registerBtcTransaction",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "tx",
    "type": "bytes"
  }, {
    "name": "height",
    "type": "int256"
  }, {
    "name": "pmt",
    "type": "bytes"
  }],
  "outputs": []
}, {
  "name": "addSignature",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "pubkey",
    "type": "bytes"
  }, {
    "name": "signatures",
    "type": "bytes[]"
  }, {
    "name": "txhash",
    "type": "bytes"
  }],
  "outputs": []
}, {
  "name": "receiveHeaders",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "blocks",
    "type": "bytes[]"
  }],
  "outputs": []
}, {
  "name": "getFederationSize",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getFederationThreshold",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getFederatorPublicKey",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "index",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getFederatorPublicKeyOfType",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "index",
    "type": "int256"
  }, {
    "name": "type",
    "type": "string"
  }],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getFederationCreationTime",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getFederationCreationBlockNumber",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getRetiringFederationAddress",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "string"
  }]
}, {
  "name": "getRetiringFederationSize",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getRetiringFederationThreshold",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getRetiringFederatorPublicKey",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "index",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getRetiringFederatorPublicKeyOfType",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "index",
    "type": "int256"
  }, {
    "name": "type",
    "type": "string"
  }],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getRetiringFederationCreationTime",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getRetiringFederationCreationBlockNumber",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "createFederation",
  "type": "function",
  "constant": false,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "addFederatorPublicKey",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "key",
    "type": "bytes"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "addFederatorPublicKeyMultikey",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "btcKey",
    "type": "bytes"
  }, {
    "name": "rskKey",
    "type": "bytes"
  }, {
    "name": "mstKey",
    "type": "bytes"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "commitFederation",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "hash",
    "type": "bytes"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "rollbackFederation",
  "type": "function",
  "constant": false,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getPendingFederationHash",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getPendingFederationSize",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getPendingFederatorPublicKey",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "index",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getPendingFederatorPublicKeyOfType",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "index",
    "type": "int256"
  }, {
    "name": "type",
    "type": "string"
  }],
  "outputs": [{
    "name": "",
    "type": "bytes"
  }]
}, {
  "name": "getLockWhitelistSize",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getLockWhitelistAddress",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "index",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "string"
  }]
}, {
  "name": "getLockWhitelistEntryByAddress",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "address",
    "type": "string"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "addLockWhitelistAddress",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "address",
    "type": "string"
  },{
    "name": "maxTransferValue",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "addOneOffLockWhitelistAddress",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "address",
    "type": "string"
  },{
    "name": "maxTransferValue",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "addUnlimitedLockWhitelistAddress",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "address",
    "type": "string"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "removeLockWhitelistAddress",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "address",
    "type": "string"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "setLockWhitelistDisableBlockDelay",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "disableDelay",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getFeePerKb",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "voteFeePerKbChange",
  "type": "function",
  "constant": false,
  "inputs": [{
    "name": "feePerKb",
    "type": "int256"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "updateCollections",
  "type": "function",
  "constant": false,
  "inputs": [],
  "outputs": []
}, {
  "name": "getMinimumLockTxValue",
  "type": "function",
  "constant": true,
  "inputs": [],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}, {
  "name": "getBtcTransactionConfirmations",
  "type": "function",
  "constant": true,
  "inputs": [{
    "name": "txHash",
    "type": "bytes32"
  }, {
    "name": "blockHash",
    "type": "bytes32"
  }, {
    "name": "merkleBranchPath",
    "type": "uint256"
  }, {
    "name": "merkleBranchHashes",
    "type": "bytes32[]"
  }],
  "outputs": [{
    "name": "",
    "type": "int256"
  }]
}]