{
  "contractName": "SatWeiPriceFeed",
  "abi": [
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_tbtcSystemAddress",
          "type": "address"
        },
        {
          "internalType": "contract IMedianizer",
          "name": "_ETHBTCPriceFeed",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getWorkingEthBtcFeed",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract IMedianizer",
          "name": "_newEthBtcFeed",
          "type": "address"
        }
      ],
      "name": "addEthBtcFeed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IMedianizer\",\"name\":\"_newEthBtcFeed\",\"type\":\"address\"}],\"name\":\"addEthBtcFeed\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getWorkingEthBtcFeed\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_tbtcSystemAddress\",\"type\":\"address\"},{\"internalType\":\"contract IMedianizer\",\"name\":\"_ETHBTCPriceFeed\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Used ETH/USD medianizer values converted to sat/wei.\",\"methods\":{\"addEthBtcFeed(address)\":{\"details\":\"IMedianizer must be active in order to add.\"},\"getPrice()\":{\"details\":\"This does not account for any 'Flippening' event.\",\"return\":\"The price of one satoshi in wei.\"},\"getWorkingEthBtcFeed()\":{\"return\":\"The address of the first Active Medianizer. address(0) if none found\"},\"initialize(address,address)\":{\"params\":{\"_ETHBTCPriceFeed\":\"The ETHBTC price feed address.\",\"_tbtcSystemAddress\":\"Address of the `TBTCSystem` contract. Used for access control.\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{\"addEthBtcFeed(address)\":{\"notice\":\"Add _newEthBtcFeed to internal ethBtcFeeds array.\"},\"getPrice()\":{\"notice\":\"Get the current price of 1 satoshi in wei.\"},\"getWorkingEthBtcFeed()\":{\"notice\":\"Get the first active Medianizer contract from the ethBtcFeeds array.\"},\"initialize(address,address)\":{\"notice\":\"Initialises the addresses of the ETHBTC price feeds.\"}},\"notice\":\"satoshi/wei price feed.\"}},\"settings\":{\"compilationTarget\":{\"/home/runner/work/tbtc/tbtc/solidity/contracts/price-feed/SatWeiPriceFeed.sol\":\"SatWeiPriceFeed\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/runner/work/tbtc/tbtc/solidity/contracts/external/IMedianizer.sol\":{\"keccak256\":\"0xbe5c1dbd0f097ed0ef72e2a61ab54de315685a835e7dc7f5d3404b5158189c67\",\"urls\":[\"bzz-raw://0519b1ce42540d07debfa8b62a52c6c44b309ea549cc4d3166d4fd821aec9b79\",\"dweb:/ipfs/QmYD2cojTyk2ZDrWrTKSthVUAPydzAgPrpRWeiwJyksPJV\"]},\"/home/runner/work/tbtc/tbtc/solidity/contracts/interfaces/ISatWeiPriceFeed.sol\":{\"keccak256\":\"0x41bdcc0cfbd415d58fdc01cc54adeb832933f31895d1f9a26c8eab16518d6d96\",\"urls\":[\"bzz-raw://b4c69fdffa322a4276032fe2ee0cbb950c81afff7dcd78eb18dddabc4fe2d015\",\"dweb:/ipfs/QmaJUvL5HNChwyrNN82Es5vhVZ9pHwgdsj9uEcUhBFR43R\"]},\"/home/runner/work/tbtc/tbtc/solidity/contracts/price-feed/SatWeiPriceFeed.sol\":{\"keccak256\":\"0x64442314e5ddbc36ddd67173bc5dcadae0dcf177b34653491be370d17c2ae88d\",\"urls\":[\"bzz-raw://0f2e8aa93100a2528bd94bcd74553681d2f0df76541c25e52481baa8b898f280\",\"dweb:/ipfs/QmdAZ9fjgg24sEveyJSB7yizayuiayL9JcqJL4irxpEh9L\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzz-raw://cd3429aa9a4878dcf6c73faa32c3722f4013d4be012ece543b246faa6b50f55c\",\"dweb:/ipfs/QmS55hgTvNEAKinus19m65CB4wcymN8EiUPFpRx5tYJ1i2\"]}},\"version\":1}",
  "bytecode": "0x60806040526000805460ff60a01b1916905534801561001d57600080fd5b50600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3610906806100766000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806398d5fdca1161005b57806398d5fdca14610105578063d14dd4131461011f578063e6f5c60a14610145578063f2fde38b1461014d57610088565b8063485cc9551461008d578063715018a6146100bd5780638da5cb5b146100c55780638f32d59b146100e9575b600080fd5b6100bb600480360360408110156100a357600080fd5b506001600160a01b0381358116916020013516610173565b005b6100bb610294565b6100cd610337565b604080516001600160a01b039092168252519081900360200190f35b6100f1610347565b604080519115158252519081900360200190f35b61010d610358565b60408051918252519081900360200190f35b6100bb6004803603602081101561013557600080fd5b50356001600160a01b03166104dc565b6100cd610635565b6100bb6004803603602081101561016357600080fd5b50356001600160a01b031661071a565b61017b610347565b6101cc576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054600160a01b900460ff1615610222576040805162461bcd60e51b815260206004820152601460248201527320b63932b0b23c9034b734ba34b0b634bd32b21760611b604482015290519081900360640190fd5b600180546001600160a01b039384166001600160a01b031991821617825560028054928301815560009081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909201805493909416921691909117909155805460ff60a01b1916600160a01b179055565b61029c610347565b6102ed576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6001546000906001600160a01b031633146103a45760405162461bcd60e51b81526004018080602001828103825260228152602001806108b06022913960400191505060405180910390fd5b600080805b60025481101561045f57600281815481106103c057fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166359e02dd76040518163ffffffff1660e01b8152600401604080518083038186803b15801561041557600080fd5b505afa158015610429573d6000803e3d6000fd5b505050506040513d604081101561043f57600080fd5b5080516020909101519350915082156104575761045f565b6001016103a9565b50816104a7576040805162461bcd60e51b815260206004820152601260248201527150726963652066656564206f66666c696e6560701b604482015290519081900360640190fd5b6104d56b204fce5e3e250261100000006fffffffffffffffffffffffffffffffff831663ffffffff61077f16565b9250505090565b6001546001600160a01b031633146105255760405162461bcd60e51b81526004018080602001828103825260228152602001806108b06022913960400191505060405180910390fd5b6000816001600160a01b03166359e02dd76040518163ffffffff1660e01b8152600401604080518083038186803b15801561055f57600080fd5b505afa158015610573573d6000803e3d6000fd5b505050506040513d604081101561058957600080fd5b50602001519050806105e2576040805162461bcd60e51b815260206004820152601860248201527f43616e6e6f742061646420696e61637469766520666565640000000000000000604482015290519081900360640190fd5b50600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b600254811015610711576002818154811061065157fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166359e02dd76040518163ffffffff1660e01b8152600401604080518083038186803b1580156106a657600080fd5b505afa1580156106ba573d6000803e3d6000fd5b505050506040513d60408110156106d057600080fd5b50602001519150811561070957600281815481106106ea57fe5b6000918252602090912001546001600160a01b03169250610344915050565b60010161063a565b50600091505090565b610722610347565b610773576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61077c816107e9565b50565b60008082116107d5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816107e057fe5b04949350505050565b6001600160a01b03811661082e5760405162461bcd60e51b815260040180806020018281038252602681526020018061088a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616c6c6572206d757374206265207462746353797374656d20636f6e7472616374a265627a7a723158205d3ad45dc7c7f61befbb5e95173f8c52ed14bbae2a99ff8dbba0fce921357bf164736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806398d5fdca1161005b57806398d5fdca14610105578063d14dd4131461011f578063e6f5c60a14610145578063f2fde38b1461014d57610088565b8063485cc9551461008d578063715018a6146100bd5780638da5cb5b146100c55780638f32d59b146100e9575b600080fd5b6100bb600480360360408110156100a357600080fd5b506001600160a01b0381358116916020013516610173565b005b6100bb610294565b6100cd610337565b604080516001600160a01b039092168252519081900360200190f35b6100f1610347565b604080519115158252519081900360200190f35b61010d610358565b60408051918252519081900360200190f35b6100bb6004803603602081101561013557600080fd5b50356001600160a01b03166104dc565b6100cd610635565b6100bb6004803603602081101561016357600080fd5b50356001600160a01b031661071a565b61017b610347565b6101cc576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054600160a01b900460ff1615610222576040805162461bcd60e51b815260206004820152601460248201527320b63932b0b23c9034b734ba34b0b634bd32b21760611b604482015290519081900360640190fd5b600180546001600160a01b039384166001600160a01b031991821617825560028054928301815560009081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace909201805493909416921691909117909155805460ff60a01b1916600160a01b179055565b61029c610347565b6102ed576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b6001546000906001600160a01b031633146103a45760405162461bcd60e51b81526004018080602001828103825260228152602001806108b06022913960400191505060405180910390fd5b600080805b60025481101561045f57600281815481106103c057fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166359e02dd76040518163ffffffff1660e01b8152600401604080518083038186803b15801561041557600080fd5b505afa158015610429573d6000803e3d6000fd5b505050506040513d604081101561043f57600080fd5b5080516020909101519350915082156104575761045f565b6001016103a9565b50816104a7576040805162461bcd60e51b815260206004820152601260248201527150726963652066656564206f66666c696e6560701b604482015290519081900360640190fd5b6104d56b204fce5e3e250261100000006fffffffffffffffffffffffffffffffff831663ffffffff61077f16565b9250505090565b6001546001600160a01b031633146105255760405162461bcd60e51b81526004018080602001828103825260228152602001806108b06022913960400191505060405180910390fd5b6000816001600160a01b03166359e02dd76040518163ffffffff1660e01b8152600401604080518083038186803b15801561055f57600080fd5b505afa158015610573573d6000803e3d6000fd5b505050506040513d604081101561058957600080fd5b50602001519050806105e2576040805162461bcd60e51b815260206004820152601860248201527f43616e6e6f742061646420696e61637469766520666565640000000000000000604482015290519081900360640190fd5b50600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0392909216919091179055565b600080805b600254811015610711576002818154811061065157fe5b9060005260206000200160009054906101000a90046001600160a01b03166001600160a01b03166359e02dd76040518163ffffffff1660e01b8152600401604080518083038186803b1580156106a657600080fd5b505afa1580156106ba573d6000803e3d6000fd5b505050506040513d60408110156106d057600080fd5b50602001519150811561070957600281815481106106ea57fe5b6000918252602090912001546001600160a01b03169250610344915050565b60010161063a565b50600091505090565b610722610347565b610773576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61077c816107e9565b50565b60008082116107d5576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816107e057fe5b04949350505050565b6001600160a01b03811661082e5760405162461bcd60e51b815260040180806020018281038252602681526020018061088a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737343616c6c6572206d757374206265207462746353797374656d20636f6e7472616374a265627a7a723158205d3ad45dc7c7f61befbb5e95173f8c52ed14bbae2a99ff8dbba0fce921357bf164736f6c63430005110032",
  "sourceMap": "347:2811:13:-;;;468:5;440:33;;-1:-1:-1;;;;440:33:13;;;560:84;5:2:-1;;;;30:1;27;20:12;5:2;-1:-1;657:6:61;:19;;-1:-1:-1;;;;;;657:19:61;666:10;657:19;;;;691:40;;-1:-1:-1;;;;;724:6:61;;;;;657;691:40;;657:6;;691:40;347:2811:13;;;;;;",
  "deployedSourceMap": "347:2811:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;347:2811:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;879:303;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;879:303:13;;;;;;;;;;:::i;:::-;;1599:137:61;;;:::i;814:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;814:77:61;;;;;;;;;;;;;;1165:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;1359:620:13;;;:::i;:::-;;;;;;;;;;;;;;;;2627:260;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2627:260:13;-1:-1:-1;;;;;2627:260:13;;:::i;2155:343::-;;;:::i;1885:107:61:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:61;-1:-1:-1;;;;;1885:107:61;;:::i;879:303:13:-;1018:9:61;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;1010:54:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1017:12:13;;-1:-1:-1;;;1017:12:13;;;;1016:13;1008:46;;;;;-1:-1:-1;;;1008:46:13;;;;;;;;;;;;-1:-1:-1;;;1008:46:13;;;;;;;;;;;;;;;1064:17;:38;;-1:-1:-1;;;;;1064:38:13;;;-1:-1:-1;;;;;;1064:38:13;;;;;;1112:11;27:10:-1;;23:18;;;45:23;;1064:17:13;1112:34;;;;;;;;;;;;;;;;;;;;;;1156:19;;-1:-1:-1;;;;1156:19:13;-1:-1:-1;;;1156:19:13;;;879:303::o;1599:137:61:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;1010:54:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:61;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:61;;;1599:137::o;814:77::-;852:7;878:6;-1:-1:-1;;;;;878:6:61;814:77;;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:61;1228:10;:20;;1165:90::o;1359:620:13:-;3061:17;;1417:7;;-1:-1:-1;;;;;3061:17:13;3047:10;:31;3026:112;;;;-1:-1:-1;;;3026:112:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1436:17;;;1500:189;1524:11;:18;1520:22;;1500:189;;;1588:11;1600:1;1588:14;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1588:14:13;-1:-1:-1;;;;;1588:19:13;;:21;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1588:21:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1588:21:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1588:21:13;;;;;;;;-1:-1:-1;1588:21:13;-1:-1:-1;1623:56:13;;;;1659:5;;1623:56;1544:3;;1500:189;;;;1707:12;1699:43;;;;;-1:-1:-1;;;1699:43:13;;;;;;;;;;;;-1:-1:-1;;;1699:43:13;;;;;;;;;;;;;;;1927:45;1935:6;1947:24;;;1927:45;:19;:45;:::i;:::-;1920:52;;;;1359:620;:::o;2627:260::-;3061:17;;-1:-1:-1;;;;;3061:17:13;3047:10;:31;3026:112;;;;-1:-1:-1;;;3026:112:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:17;2758:14;-1:-1:-1;;;;;2758:19:13;;:21;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2758:21:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2758:21:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2758:21:13;;;;-1:-1:-1;2758:21:13;2789:49;;;;;-1:-1:-1;;;2789:49:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2848:11:13;27:10:-1;;39:1;23:18;;45:23;;-1:-1;2848:32:13;;;;;;;;-1:-1:-1;;;;;;2848:32:13;-1:-1:-1;;;;;2848:32:13;;;;;;;;;;2627:260::o;2155:343::-;2210:7;;;2257:208;2281:11;:18;2277:22;;2257:208;;;2339:11;2351:1;2339:14;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2339:14:13;-1:-1:-1;;;;;2339:19:13;;:21;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2339:21:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2339:21:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2339:21:13;;;;-1:-1:-1;2374:81:13;;;;2425:11;2437:1;2425:14;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2425:14:13;;-1:-1:-1;2410:30:13;;-1:-1:-1;;2410:30:13;2374:81;2301:3;;2257:208;;;;2489:1;2474:17;;;2155:343;:::o;1885:107:61:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;1010:54:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;2606:326:60:-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;2749:44:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:60:o;2093:225:61:-;-1:-1:-1;;;;;2166:22:61;;2158:73;;;;-1:-1:-1;;;2158:73:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:61;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:61;-1:-1:-1;;;;;2294:17:61;;;;;;;;;;2093:225::o",
  "source": "pragma solidity 0.5.17;\n\nimport {SafeMath} from \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"../external/IMedianizer.sol\";\nimport \"../interfaces/ISatWeiPriceFeed.sol\";\n\n/// @notice satoshi/wei price feed.\n/// @dev Used ETH/USD medianizer values converted to sat/wei.\ncontract SatWeiPriceFeed is Ownable, ISatWeiPriceFeed {\n    using SafeMath for uint256;\n\n    bool private _initialized = false;\n    address internal tbtcSystemAddress;\n\n    IMedianizer[] private ethBtcFeeds;\n\n    constructor() public {\n        // solium-disable-previous-line no-empty-blocks\n    }\n\n    /// @notice Initialises the addresses of the ETHBTC price feeds.\n    /// @param _tbtcSystemAddress Address of the `TBTCSystem` contract. Used for access control.\n    /// @param _ETHBTCPriceFeed The ETHBTC price feed address.\n    function initialize(\n        address _tbtcSystemAddress,\n        IMedianizer _ETHBTCPriceFeed\n    ) external onlyOwner {\n        require(!_initialized, \"Already initialized.\");\n        tbtcSystemAddress = _tbtcSystemAddress;\n        ethBtcFeeds.push(_ETHBTCPriceFeed);\n        _initialized = true;\n    }\n\n    /// @notice Get the current price of 1 satoshi in wei.\n    /// @dev This does not account for any 'Flippening' event.\n    /// @return The price of one satoshi in wei.\n    function getPrice() external view onlyTbtcSystem returns (uint256) {\n        bool ethBtcActive = false;\n        uint256 ethBtc = 0;\n\n        for (uint256 i = 0; i < ethBtcFeeds.length; i++) {\n            (ethBtc, ethBtcActive) = ethBtcFeeds[i].peek();\n            if (ethBtcActive) {\n                break;\n            }\n        }\n\n        require(ethBtcActive, \"Price feed offline\");\n\n        // convert eth/btc to sat/wei\n        // We typecast down to uint128, because the first 128 bits of\n        // the medianizer value is unrelated to the price.\n        return uint256(10**28).div(uint256(uint128(ethBtc)));\n    }\n\n    /// @notice Get the first active Medianizer contract from the ethBtcFeeds array.\n    /// @return The address of the first Active Medianizer. address(0) if none found\n    function getWorkingEthBtcFeed() external view returns (address) {\n        bool ethBtcActive;\n\n        for (uint256 i = 0; i < ethBtcFeeds.length; i++) {\n            (, ethBtcActive) = ethBtcFeeds[i].peek();\n            if (ethBtcActive) {\n                return address(ethBtcFeeds[i]);\n            }\n        }\n        return address(0);\n    }\n\n    /// @notice Add _newEthBtcFeed to internal ethBtcFeeds array.\n    /// @dev IMedianizer must be active in order to add.\n    function addEthBtcFeed(IMedianizer _newEthBtcFeed) external onlyTbtcSystem {\n        bool ethBtcActive;\n        (, ethBtcActive) = _newEthBtcFeed.peek();\n        require(ethBtcActive, \"Cannot add inactive feed\");\n        ethBtcFeeds.push(_newEthBtcFeed);\n    }\n\n    /// @notice Function modifier ensures modified function is only called by tbtcSystemAddress.\n    modifier onlyTbtcSystem() {\n        require(\n            msg.sender == tbtcSystemAddress,\n            \"Caller must be tbtcSystem contract\"\n        );\n        _;\n    }\n}\n",
  "sourcePath": "/home/runner/work/tbtc/tbtc/solidity/contracts/price-feed/SatWeiPriceFeed.sol",
  "ast": {
    "absolutePath": "/home/runner/work/tbtc/tbtc/solidity/contracts/price-feed/SatWeiPriceFeed.sol",
    "exportedSymbols": {
      "SatWeiPriceFeed": [
        5728
      ]
    },
    "id": 5729,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5527,
        "literals": [
          "solidity",
          "0.5",
          ".17"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:13"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 5529,
        "nodeType": "ImportDirective",
        "scope": 5729,
        "sourceUnit": 16856,
        "src": "25:75:13",
        "symbolAliases": [
          {
            "foreign": 5528,
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 5530,
        "nodeType": "ImportDirective",
        "scope": 5729,
        "sourceUnit": 16967,
        "src": "101:63:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/work/tbtc/tbtc/solidity/contracts/external/IMedianizer.sol",
        "file": "../external/IMedianizer.sol",
        "id": 5531,
        "nodeType": "ImportDirective",
        "scope": 5729,
        "sourceUnit": 5434,
        "src": "165:37:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/work/tbtc/tbtc/solidity/contracts/interfaces/ISatWeiPriceFeed.sol",
        "file": "../interfaces/ISatWeiPriceFeed.sol",
        "id": 5532,
        "nodeType": "ImportDirective",
        "scope": 5729,
        "sourceUnit": 5448,
        "src": "203:44:13",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 5533,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 16966,
              "src": "375:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$16966",
                "typeString": "contract Ownable"
              }
            },
            "id": 5534,
            "nodeType": "InheritanceSpecifier",
            "src": "375:7:13"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 5535,
              "name": "ISatWeiPriceFeed",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5447,
              "src": "384:16:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ISatWeiPriceFeed_$5447",
                "typeString": "contract ISatWeiPriceFeed"
              }
            },
            "id": 5536,
            "nodeType": "InheritanceSpecifier",
            "src": "384:16:13"
          }
        ],
        "contractDependencies": [
          5447,
          16966
        ],
        "contractKind": "contract",
        "documentation": "@notice satoshi/wei price feed.\n @dev Used ETH/USD medianizer values converted to sat/wei.",
        "fullyImplemented": true,
        "id": 5728,
        "linearizedBaseContracts": [
          5728,
          5447,
          16966
        ],
        "name": "SatWeiPriceFeed",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 5539,
            "libraryName": {
              "contractScope": null,
              "id": 5537,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 16855,
              "src": "413:8:13",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$16855",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "407:27:13",
            "typeName": {
              "id": 5538,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "426:7:13",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "constant": false,
            "id": 5542,
            "name": "_initialized",
            "nodeType": "VariableDeclaration",
            "scope": 5728,
            "src": "440:33:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 5540,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "440:4:13",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66616c7365",
              "id": 5541,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "bool",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "468:5:13",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              },
              "value": "false"
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 5544,
            "name": "tbtcSystemAddress",
            "nodeType": "VariableDeclaration",
            "scope": 5728,
            "src": "479:34:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 5543,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "479:7:13",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 5547,
            "name": "ethBtcFeeds",
            "nodeType": "VariableDeclaration",
            "scope": 5728,
            "src": "520:33:13",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage",
              "typeString": "contract IMedianizer[]"
            },
            "typeName": {
              "baseType": {
                "contractScope": null,
                "id": 5545,
                "name": "IMedianizer",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 5433,
                "src": "520:11:13",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IMedianizer_$5433",
                  "typeString": "contract IMedianizer"
                }
              },
              "id": 5546,
              "length": null,
              "nodeType": "ArrayTypeName",
              "src": "520:13:13",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage_ptr",
                "typeString": "contract IMedianizer[]"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 5550,
              "nodeType": "Block",
              "src": "581:63:13",
              "statements": []
            },
            "documentation": null,
            "id": 5551,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5548,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "571:2:13"
            },
            "returnParameters": {
              "id": 5549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "581:0:13"
            },
            "scope": 5728,
            "src": "560:84:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5580,
              "nodeType": "Block",
              "src": "998:184:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5562,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1016:13:13",
                        "subExpression": {
                          "argumentTypes": null,
                          "id": 5561,
                          "name": "_initialized",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5542,
                          "src": "1017:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "416c726561647920696e697469616c697a65642e",
                        "id": 5563,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1031:22:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_66c8c7088bcb7bdc5c99ac22cb75a134a8e0d8cc46ca1751e1f157b34ab8510f",
                          "typeString": "literal_string \"Already initialized.\""
                        },
                        "value": "Already initialized."
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_66c8c7088bcb7bdc5c99ac22cb75a134a8e0d8cc46ca1751e1f157b34ab8510f",
                          "typeString": "literal_string \"Already initialized.\""
                        }
                      ],
                      "id": 5560,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        18363,
                        18364
                      ],
                      "referencedDeclaration": 18364,
                      "src": "1008:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5564,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1008:46:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5565,
                  "nodeType": "ExpressionStatement",
                  "src": "1008:46:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5568,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5566,
                      "name": "tbtcSystemAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5544,
                      "src": "1064:17:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 5567,
                      "name": "_tbtcSystemAddress",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5553,
                      "src": "1084:18:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1064:38:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5569,
                  "nodeType": "ExpressionStatement",
                  "src": "1064:38:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5573,
                        "name": "_ETHBTCPriceFeed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5555,
                        "src": "1129:16:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IMedianizer_$5433",
                          "typeString": "contract IMedianizer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IMedianizer_$5433",
                          "typeString": "contract IMedianizer"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5570,
                        "name": "ethBtcFeeds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5547,
                        "src": "1112:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage",
                          "typeString": "contract IMedianizer[] storage ref"
                        }
                      },
                      "id": 5572,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1112:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IMedianizer_$5433_$returns$_t_uint256_$",
                        "typeString": "function (contract IMedianizer) returns (uint256)"
                      }
                    },
                    "id": 5574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1112:34:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5575,
                  "nodeType": "ExpressionStatement",
                  "src": "1112:34:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 5576,
                      "name": "_initialized",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5542,
                      "src": "1156:12:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 5577,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1171:4:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1156:19:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5579,
                  "nodeType": "ExpressionStatement",
                  "src": "1156:19:13"
                }
              ]
            },
            "documentation": "@notice Initialises the addresses of the ETHBTC price feeds.\n @param _tbtcSystemAddress Address of the `TBTCSystem` contract. Used for access control.\n @param _ETHBTCPriceFeed The ETHBTC price feed address.",
            "id": 5581,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 5558,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5557,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 16899,
                  "src": "988:9:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "988:9:13"
              }
            ],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5556,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5553,
                  "name": "_tbtcSystemAddress",
                  "nodeType": "VariableDeclaration",
                  "scope": 5581,
                  "src": "908:26:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5552,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "908:7:13",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5555,
                  "name": "_ETHBTCPriceFeed",
                  "nodeType": "VariableDeclaration",
                  "scope": 5581,
                  "src": "944:28:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IMedianizer_$5433",
                    "typeString": "contract IMedianizer"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5554,
                    "name": "IMedianizer",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5433,
                    "src": "944:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IMedianizer_$5433",
                      "typeString": "contract IMedianizer"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "898:80:13"
            },
            "returnParameters": {
              "id": 5559,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "998:0:13"
            },
            "scope": 5728,
            "src": "879:303:13",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5641,
              "nodeType": "Block",
              "src": "1426:553:13",
              "statements": [
                {
                  "assignments": [
                    5589
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5589,
                      "name": "ethBtcActive",
                      "nodeType": "VariableDeclaration",
                      "scope": 5641,
                      "src": "1436:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 5588,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "1436:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5591,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 5590,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1456:5:13",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1436:25:13"
                },
                {
                  "assignments": [
                    5593
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5593,
                      "name": "ethBtc",
                      "nodeType": "VariableDeclaration",
                      "scope": 5641,
                      "src": "1471:14:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 5592,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1471:7:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5595,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 5594,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1488:1:13",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1471:18:13"
                },
                {
                  "body": {
                    "id": 5621,
                    "nodeType": "Block",
                    "src": "1549:140:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5615,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 5607,
                                "name": "ethBtc",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5593,
                                "src": "1564:6:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 5608,
                                "name": "ethBtcActive",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5589,
                                "src": "1572:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 5609,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "1563:22:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                              "typeString": "tuple(uint256,bool)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5610,
                                  "name": "ethBtcFeeds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5547,
                                  "src": "1588:11:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage",
                                    "typeString": "contract IMedianizer[] storage ref"
                                  }
                                },
                                "id": 5612,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5611,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5597,
                                  "src": "1600:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1588:14:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IMedianizer_$5433",
                                  "typeString": "contract IMedianizer"
                                }
                              },
                              "id": 5613,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "peek",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5432,
                              "src": "1588:19:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$",
                                "typeString": "function () view external returns (uint256,bool)"
                              }
                            },
                            "id": 5614,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1588:21:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                              "typeString": "tuple(uint256,bool)"
                            }
                          },
                          "src": "1563:46:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5616,
                        "nodeType": "ExpressionStatement",
                        "src": "1563:46:13"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 5617,
                          "name": "ethBtcActive",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5589,
                          "src": "1627:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 5620,
                        "nodeType": "IfStatement",
                        "src": "1623:56:13",
                        "trueBody": {
                          "id": 5619,
                          "nodeType": "Block",
                          "src": "1641:38:13",
                          "statements": [
                            {
                              "id": 5618,
                              "nodeType": "Break",
                              "src": "1659:5:13"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5600,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5597,
                      "src": "1520:1:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5601,
                        "name": "ethBtcFeeds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5547,
                        "src": "1524:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage",
                          "typeString": "contract IMedianizer[] storage ref"
                        }
                      },
                      "id": 5602,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1524:18:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1520:22:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5622,
                  "initializationExpression": {
                    "assignments": [
                      5597
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5597,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 5622,
                        "src": "1505:9:13",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5596,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1505:7:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 5599,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1517:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1505:13:13"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 5605,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1544:3:13",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 5604,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5597,
                        "src": "1544:1:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5606,
                    "nodeType": "ExpressionStatement",
                    "src": "1544:3:13"
                  },
                  "nodeType": "ForStatement",
                  "src": "1500:189:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5624,
                        "name": "ethBtcActive",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5589,
                        "src": "1707:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "50726963652066656564206f66666c696e65",
                        "id": 5625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1721:20:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_cc057cd88f497c809c99fc27231bc9075071d4e5f3e4845e129fa4803aa47ef9",
                          "typeString": "literal_string \"Price feed offline\""
                        },
                        "value": "Price feed offline"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_cc057cd88f497c809c99fc27231bc9075071d4e5f3e4845e129fa4803aa47ef9",
                          "typeString": "literal_string \"Price feed offline\""
                        }
                      ],
                      "id": 5623,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        18363,
                        18364
                      ],
                      "referencedDeclaration": 18364,
                      "src": "1699:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1699:43:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5627,
                  "nodeType": "ExpressionStatement",
                  "src": "1699:43:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 5636,
                                "name": "ethBtc",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5593,
                                "src": "1963:6:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5635,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1955:7:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint128_$",
                                "typeString": "type(uint128)"
                              },
                              "typeName": "uint128"
                            },
                            "id": 5637,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1955:15:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          ],
                          "id": 5634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1947:7:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5638,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1947:24:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_rational_10000000000000000000000000000_by_1",
                              "typeString": "int_const 10000000000000000000000000000"
                            },
                            "id": 5631,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "hexValue": "3130",
                              "id": 5629,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1935:2:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_10_by_1",
                                "typeString": "int_const 10"
                              },
                              "value": "10"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "**",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "3238",
                              "id": 5630,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1939:2:13",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_28_by_1",
                                "typeString": "int_const 28"
                              },
                              "value": "28"
                            },
                            "src": "1935:6:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_10000000000000000000000000000_by_1",
                              "typeString": "int_const 10000000000000000000000000000"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_10000000000000000000000000000_by_1",
                              "typeString": "int_const 10000000000000000000000000000"
                            }
                          ],
                          "id": 5628,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1927:7:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": "uint256"
                        },
                        "id": 5632,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1927:15:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 5633,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "div",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 16833,
                      "src": "1927:19:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5639,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1927:45:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5587,
                  "id": 5640,
                  "nodeType": "Return",
                  "src": "1920:52:13"
                }
              ]
            },
            "documentation": "@notice Get the current price of 1 satoshi in wei.\n @dev This does not account for any 'Flippening' event.\n @return The price of one satoshi in wei.",
            "id": 5642,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 5584,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5583,
                  "name": "onlyTbtcSystem",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5727,
                  "src": "1393:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1393:14:13"
              }
            ],
            "name": "getPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1376:2:13"
            },
            "returnParameters": {
              "id": 5587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5586,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5642,
                  "src": "1417:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5585,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1417:7:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1416:9:13"
            },
            "scope": 5728,
            "src": "1359:620:13",
            "stateMutability": "view",
            "superFunction": 5441,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5685,
              "nodeType": "Block",
              "src": "2219:279:13",
              "statements": [
                {
                  "assignments": [
                    5648
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5648,
                      "name": "ethBtcActive",
                      "nodeType": "VariableDeclaration",
                      "scope": 5685,
                      "src": "2229:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 5647,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2229:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5649,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2229:17:13"
                },
                {
                  "body": {
                    "id": 5679,
                    "nodeType": "Block",
                    "src": "2306:159:13",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 5668,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "components": [
                              null,
                              {
                                "argumentTypes": null,
                                "id": 5661,
                                "name": "ethBtcActive",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5648,
                                "src": "2323:12:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              }
                            ],
                            "id": 5662,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "2320:16:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$_t_bool_$",
                              "typeString": "tuple(,bool)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 5663,
                                  "name": "ethBtcFeeds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5547,
                                  "src": "2339:11:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage",
                                    "typeString": "contract IMedianizer[] storage ref"
                                  }
                                },
                                "id": 5665,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 5664,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5651,
                                  "src": "2351:1:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2339:14:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IMedianizer_$5433",
                                  "typeString": "contract IMedianizer"
                                }
                              },
                              "id": 5666,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "peek",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5432,
                              "src": "2339:19:13",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$",
                                "typeString": "function () view external returns (uint256,bool)"
                              }
                            },
                            "id": 5667,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2339:21:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                              "typeString": "tuple(uint256,bool)"
                            }
                          },
                          "src": "2320:40:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5669,
                        "nodeType": "ExpressionStatement",
                        "src": "2320:40:13"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "id": 5670,
                          "name": "ethBtcActive",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5648,
                          "src": "2378:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 5678,
                        "nodeType": "IfStatement",
                        "src": "2374:81:13",
                        "trueBody": {
                          "id": 5677,
                          "nodeType": "Block",
                          "src": "2392:63:13",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 5672,
                                      "name": "ethBtcFeeds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5547,
                                      "src": "2425:11:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage",
                                        "typeString": "contract IMedianizer[] storage ref"
                                      }
                                    },
                                    "id": 5674,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 5673,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5651,
                                      "src": "2437:1:13",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "2425:14:13",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IMedianizer_$5433",
                                      "typeString": "contract IMedianizer"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_IMedianizer_$5433",
                                      "typeString": "contract IMedianizer"
                                    }
                                  ],
                                  "id": 5671,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "2417:7:13",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": "address"
                                },
                                "id": 5675,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2417:23:13",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "functionReturnParameters": 5646,
                              "id": 5676,
                              "nodeType": "Return",
                              "src": "2410:30:13"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5657,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 5654,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5651,
                      "src": "2277:1:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 5655,
                        "name": "ethBtcFeeds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5547,
                        "src": "2281:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage",
                          "typeString": "contract IMedianizer[] storage ref"
                        }
                      },
                      "id": 5656,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2281:18:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2277:22:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5680,
                  "initializationExpression": {
                    "assignments": [
                      5651
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5651,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 5680,
                        "src": "2262:9:13",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5650,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2262:7:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 5653,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 5652,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2274:1:13",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2262:13:13"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 5659,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2301:3:13",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 5658,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5651,
                        "src": "2301:1:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5660,
                    "nodeType": "ExpressionStatement",
                    "src": "2301:3:13"
                  },
                  "nodeType": "ForStatement",
                  "src": "2257:208:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 5682,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2489:1:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 5681,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2481:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 5683,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2481:10:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 5646,
                  "id": 5684,
                  "nodeType": "Return",
                  "src": "2474:17:13"
                }
              ]
            },
            "documentation": "@notice Get the first active Medianizer contract from the ethBtcFeeds array.\n @return The address of the first Active Medianizer. address(0) if none found",
            "id": 5686,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getWorkingEthBtcFeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5643,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2184:2:13"
            },
            "returnParameters": {
              "id": 5646,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5645,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5686,
                  "src": "2210:7:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5644,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2210:7:13",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2209:9:13"
            },
            "scope": 5728,
            "src": "2155:343:13",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5714,
              "nodeType": "Block",
              "src": "2702:185:13",
              "statements": [
                {
                  "assignments": [
                    5694
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5694,
                      "name": "ethBtcActive",
                      "nodeType": "VariableDeclaration",
                      "scope": 5714,
                      "src": "2712:17:13",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 5693,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "2712:4:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 5695,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2712:17:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 5701,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        null,
                        {
                          "argumentTypes": null,
                          "id": 5696,
                          "name": "ethBtcActive",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5694,
                          "src": "2742:12:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 5697,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2739:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$__$_t_bool_$",
                        "typeString": "tuple(,bool)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 5698,
                          "name": "_newEthBtcFeed",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5688,
                          "src": "2758:14:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IMedianizer_$5433",
                            "typeString": "contract IMedianizer"
                          }
                        },
                        "id": 5699,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "peek",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5432,
                        "src": "2758:19:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$_t_bool_$",
                          "typeString": "function () view external returns (uint256,bool)"
                        }
                      },
                      "id": 5700,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2758:21:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$",
                        "typeString": "tuple(uint256,bool)"
                      }
                    },
                    "src": "2739:40:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5702,
                  "nodeType": "ExpressionStatement",
                  "src": "2739:40:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5704,
                        "name": "ethBtcActive",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5694,
                        "src": "2797:12:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616e6e6f742061646420696e6163746976652066656564",
                        "id": 5705,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2811:26:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4973a1a6bce3b03a2fb578432748e4e8c87ac58dc28236886e6c6c2854cb675b",
                          "typeString": "literal_string \"Cannot add inactive feed\""
                        },
                        "value": "Cannot add inactive feed"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4973a1a6bce3b03a2fb578432748e4e8c87ac58dc28236886e6c6c2854cb675b",
                          "typeString": "literal_string \"Cannot add inactive feed\""
                        }
                      ],
                      "id": 5703,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        18363,
                        18364
                      ],
                      "referencedDeclaration": 18364,
                      "src": "2789:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5706,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2789:49:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5707,
                  "nodeType": "ExpressionStatement",
                  "src": "2789:49:13"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5711,
                        "name": "_newEthBtcFeed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5688,
                        "src": "2865:14:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IMedianizer_$5433",
                          "typeString": "contract IMedianizer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IMedianizer_$5433",
                          "typeString": "contract IMedianizer"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5708,
                        "name": "ethBtcFeeds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5547,
                        "src": "2848:11:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IMedianizer_$5433_$dyn_storage",
                          "typeString": "contract IMedianizer[] storage ref"
                        }
                      },
                      "id": 5710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2848:16:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IMedianizer_$5433_$returns$_t_uint256_$",
                        "typeString": "function (contract IMedianizer) returns (uint256)"
                      }
                    },
                    "id": 5712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2848:32:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5713,
                  "nodeType": "ExpressionStatement",
                  "src": "2848:32:13"
                }
              ]
            },
            "documentation": "@notice Add _newEthBtcFeed to internal ethBtcFeeds array.\n @dev IMedianizer must be active in order to add.",
            "id": 5715,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 5691,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 5690,
                  "name": "onlyTbtcSystem",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 5727,
                  "src": "2687:14:13",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2687:14:13"
              }
            ],
            "name": "addEthBtcFeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5689,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5688,
                  "name": "_newEthBtcFeed",
                  "nodeType": "VariableDeclaration",
                  "scope": 5715,
                  "src": "2650:26:13",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IMedianizer_$5433",
                    "typeString": "contract IMedianizer"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 5687,
                    "name": "IMedianizer",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 5433,
                    "src": "2650:11:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IMedianizer_$5433",
                      "typeString": "contract IMedianizer"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2649:28:13"
            },
            "returnParameters": {
              "id": 5692,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2702:0:13"
            },
            "scope": 5728,
            "src": "2627:260:13",
            "stateMutability": "nonpayable",
            "superFunction": 5446,
            "visibility": "external"
          },
          {
            "body": {
              "id": 5726,
              "nodeType": "Block",
              "src": "3016:140:13",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5721,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 5718,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18360,
                            "src": "3047:3:13",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 5719,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3047:10:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 5720,
                          "name": "tbtcSystemAddress",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5544,
                          "src": "3061:17:13",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "3047:31:13",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d757374206265207462746353797374656d20636f6e7472616374",
                        "id": 5722,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3092:36:13",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_34f16208e81741f0daa2d2dee420727a4d4a14dfbdc86819fa3495cd846a7336",
                          "typeString": "literal_string \"Caller must be tbtcSystem contract\""
                        },
                        "value": "Caller must be tbtcSystem contract"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_34f16208e81741f0daa2d2dee420727a4d4a14dfbdc86819fa3495cd846a7336",
                          "typeString": "literal_string \"Caller must be tbtcSystem contract\""
                        }
                      ],
                      "id": 5717,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        18363,
                        18364
                      ],
                      "referencedDeclaration": 18364,
                      "src": "3026:7:13",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5723,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3026:112:13",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5724,
                  "nodeType": "ExpressionStatement",
                  "src": "3026:112:13"
                },
                {
                  "id": 5725,
                  "nodeType": "PlaceholderStatement",
                  "src": "3148:1:13"
                }
              ]
            },
            "documentation": "@notice Function modifier ensures modified function is only called by tbtcSystemAddress.",
            "id": 5727,
            "name": "onlyTbtcSystem",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5716,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3013:2:13"
            },
            "src": "2990:166:13",
            "visibility": "internal"
          }
        ],
        "scope": 5729,
        "src": "347:2811:13"
      }
    ],
    "src": "0:3159:13"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "/home/runner/work/tbtc/tbtc/solidity/contracts/price-feed/SatWeiPriceFeed.sol",
      "exportedSymbols": {
        "SatWeiPriceFeed": [
          5728
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.5",
            ".17"
          ]
        },
        "id": 5527,
        "name": "PragmaDirective",
        "src": "0:23:13"
      },
      {
        "attributes": {
          "SourceUnit": 16856,
          "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
          "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
          "scope": 5729,
          "symbolAliases": [
            {
              "foreign": 5528,
              "local": null
            }
          ],
          "unitAlias": ""
        },
        "id": 5529,
        "name": "ImportDirective",
        "src": "25:75:13"
      },
      {
        "attributes": {
          "SourceUnit": 16967,
          "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
          "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
          "scope": 5729,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5530,
        "name": "ImportDirective",
        "src": "101:63:13"
      },
      {
        "attributes": {
          "SourceUnit": 5434,
          "absolutePath": "/home/runner/work/tbtc/tbtc/solidity/contracts/external/IMedianizer.sol",
          "file": "../external/IMedianizer.sol",
          "scope": 5729,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5531,
        "name": "ImportDirective",
        "src": "165:37:13"
      },
      {
        "attributes": {
          "SourceUnit": 5448,
          "absolutePath": "/home/runner/work/tbtc/tbtc/solidity/contracts/interfaces/ISatWeiPriceFeed.sol",
          "file": "../interfaces/ISatWeiPriceFeed.sol",
          "scope": 5729,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 5532,
        "name": "ImportDirective",
        "src": "203:44:13"
      },
      {
        "attributes": {
          "contractDependencies": [
            5447,
            16966
          ],
          "contractKind": "contract",
          "documentation": "@notice satoshi/wei price feed.\n @dev Used ETH/USD medianizer values converted to sat/wei.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            5728,
            5447,
            16966
          ],
          "name": "SatWeiPriceFeed",
          "scope": 5729
        },
        "children": [
          {
            "attributes": {
              "arguments": null
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "Ownable",
                  "referencedDeclaration": 16966,
                  "type": "contract Ownable"
                },
                "id": 5533,
                "name": "UserDefinedTypeName",
                "src": "375:7:13"
              }
            ],
            "id": 5534,
            "name": "InheritanceSpecifier",
            "src": "375:7:13"
          },
          {
            "attributes": {
              "arguments": null
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ISatWeiPriceFeed",
                  "referencedDeclaration": 5447,
                  "type": "contract ISatWeiPriceFeed"
                },
                "id": 5535,
                "name": "UserDefinedTypeName",
                "src": "384:16:13"
              }
            ],
            "id": 5536,
            "name": "InheritanceSpecifier",
            "src": "384:16:13"
          },
          {
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "SafeMath",
                  "referencedDeclaration": 16855,
                  "type": "library SafeMath"
                },
                "id": 5537,
                "name": "UserDefinedTypeName",
                "src": "413:8:13"
              },
              {
                "attributes": {
                  "name": "uint256",
                  "type": "uint256"
                },
                "id": 5538,
                "name": "ElementaryTypeName",
                "src": "426:7:13"
              }
            ],
            "id": 5539,
            "name": "UsingForDirective",
            "src": "407:27:13"
          },
          {
            "attributes": {
              "constant": false,
              "name": "_initialized",
              "scope": 5728,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bool",
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "name": "bool",
                  "type": "bool"
                },
                "id": 5540,
                "name": "ElementaryTypeName",
                "src": "440:4:13"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "hexvalue": "66616c7365",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "subdenomination": null,
                  "token": "bool",
                  "type": "bool",
                  "value": "false"
                },
                "id": 5541,
                "name": "Literal",
                "src": "468:5:13"
              }
            ],
            "id": 5542,
            "name": "VariableDeclaration",
            "src": "440:33:13"
          },
          {
            "attributes": {
              "constant": false,
              "name": "tbtcSystemAddress",
              "scope": 5728,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "address",
              "value": null,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "address",
                  "stateMutability": "nonpayable",
                  "type": "address"
                },
                "id": 5543,
                "name": "ElementaryTypeName",
                "src": "479:7:13"
              }
            ],
            "id": 5544,
            "name": "VariableDeclaration",
            "src": "479:34:13"
          },
          {
            "attributes": {
              "constant": false,
              "name": "ethBtcFeeds",
              "scope": 5728,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract IMedianizer[]",
              "value": null,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "length": null,
                  "type": "contract IMedianizer[]"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IMedianizer",
                      "referencedDeclaration": 5433,
                      "type": "contract IMedianizer"
                    },
                    "id": 5545,
                    "name": "UserDefinedTypeName",
                    "src": "520:11:13"
                  }
                ],
                "id": 5546,
                "name": "ArrayTypeName",
                "src": "520:13:13"
              }
            ],
            "id": 5547,
            "name": "VariableDeclaration",
            "src": "520:33:13"
          },
          {
            "attributes": {
              "documentation": null,
              "implemented": true,
              "isConstructor": true,
              "kind": "constructor",
              "modifiers": [
                null
              ],
              "name": "",
              "scope": 5728,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5548,
                "name": "ParameterList",
                "src": "571:2:13"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5549,
                "name": "ParameterList",
                "src": "581:0:13"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 5550,
                "name": "Block",
                "src": "581:63:13"
              }
            ],
            "id": 5551,
            "name": "FunctionDefinition",
            "src": "560:84:13"
          },
          {
            "attributes": {
              "documentation": "@notice Initialises the addresses of the ETHBTC price feeds.\n @param _tbtcSystemAddress Address of the `TBTCSystem` contract. Used for access control.\n @param _ETHBTCPriceFeed The ETHBTC price feed address.",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "name": "initialize",
              "scope": 5728,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_tbtcSystemAddress",
                      "scope": 5581,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 5552,
                        "name": "ElementaryTypeName",
                        "src": "908:7:13"
                      }
                    ],
                    "id": 5553,
                    "name": "VariableDeclaration",
                    "src": "908:26:13"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_ETHBTCPriceFeed",
                      "scope": 5581,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IMedianizer",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IMedianizer",
                          "referencedDeclaration": 5433,
                          "type": "contract IMedianizer"
                        },
                        "id": 5554,
                        "name": "UserDefinedTypeName",
                        "src": "944:11:13"
                      }
                    ],
                    "id": 5555,
                    "name": "VariableDeclaration",
                    "src": "944:28:13"
                  }
                ],
                "id": 5556,
                "name": "ParameterList",
                "src": "898:80:13"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5559,
                "name": "ParameterList",
                "src": "998:0:13"
              },
              {
                "attributes": {
                  "arguments": null
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 16899,
                      "type": "modifier ()",
                      "value": "onlyOwner"
                    },
                    "id": 5557,
                    "name": "Identifier",
                    "src": "988:9:13"
                  }
                ],
                "id": 5558,
                "name": "ModifierInvocation",
                "src": "988:9:13"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_66c8c7088bcb7bdc5c99ac22cb75a134a8e0d8cc46ca1751e1f157b34ab8510f",
                                  "typeString": "literal_string \"Already initialized.\""
                                }
                              ],
                              "overloadedDeclarations": [
                                18363,
                                18364
                              ],
                              "referencedDeclaration": 18364,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 5560,
                            "name": "Identifier",
                            "src": "1008:7:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!",
                              "prefix": true,
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5542,
                                  "type": "bool",
                                  "value": "_initialized"
                                },
                                "id": 5561,
                                "name": "Identifier",
                                "src": "1017:12:13"
                              }
                            ],
                            "id": 5562,
                            "name": "UnaryOperation",
                            "src": "1016:13:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "416c726561647920696e697469616c697a65642e",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"Already initialized.\"",
                              "value": "Already initialized."
                            },
                            "id": 5563,
                            "name": "Literal",
                            "src": "1031:22:13"
                          }
                        ],
                        "id": 5564,
                        "name": "FunctionCall",
                        "src": "1008:46:13"
                      }
                    ],
                    "id": 5565,
                    "name": "ExpressionStatement",
                    "src": "1008:46:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5544,
                              "type": "address",
                              "value": "tbtcSystemAddress"
                            },
                            "id": 5566,
                            "name": "Identifier",
                            "src": "1064:17:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5553,
                              "type": "address",
                              "value": "_tbtcSystemAddress"
                            },
                            "id": 5567,
                            "name": "Identifier",
                            "src": "1084:18:13"
                          }
                        ],
                        "id": 5568,
                        "name": "Assignment",
                        "src": "1064:38:13"
                      }
                    ],
                    "id": 5569,
                    "name": "ExpressionStatement",
                    "src": "1064:38:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IMedianizer_$5433",
                                  "typeString": "contract IMedianizer"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "push",
                              "referencedDeclaration": null,
                              "type": "function (contract IMedianizer) returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5547,
                                  "type": "contract IMedianizer[] storage ref",
                                  "value": "ethBtcFeeds"
                                },
                                "id": 5570,
                                "name": "Identifier",
                                "src": "1112:11:13"
                              }
                            ],
                            "id": 5572,
                            "name": "MemberAccess",
                            "src": "1112:16:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5555,
                              "type": "contract IMedianizer",
                              "value": "_ETHBTCPriceFeed"
                            },
                            "id": 5573,
                            "name": "Identifier",
                            "src": "1129:16:13"
                          }
                        ],
                        "id": 5574,
                        "name": "FunctionCall",
                        "src": "1112:34:13"
                      }
                    ],
                    "id": 5575,
                    "name": "ExpressionStatement",
                    "src": "1112:34:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5542,
                              "type": "bool",
                              "value": "_initialized"
                            },
                            "id": 5576,
                            "name": "Identifier",
                            "src": "1156:12:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "74727565",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "bool",
                              "type": "bool",
                              "value": "true"
                            },
                            "id": 5577,
                            "name": "Literal",
                            "src": "1171:4:13"
                          }
                        ],
                        "id": 5578,
                        "name": "Assignment",
                        "src": "1156:19:13"
                      }
                    ],
                    "id": 5579,
                    "name": "ExpressionStatement",
                    "src": "1156:19:13"
                  }
                ],
                "id": 5580,
                "name": "Block",
                "src": "998:184:13"
              }
            ],
            "id": 5581,
            "name": "FunctionDefinition",
            "src": "879:303:13"
          },
          {
            "attributes": {
              "documentation": "@notice Get the current price of 1 satoshi in wei.\n @dev This does not account for any 'Flippening' event.\n @return The price of one satoshi in wei.",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "name": "getPrice",
              "scope": 5728,
              "stateMutability": "view",
              "superFunction": 5441,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5582,
                "name": "ParameterList",
                "src": "1376:2:13"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5642,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 5585,
                        "name": "ElementaryTypeName",
                        "src": "1417:7:13"
                      }
                    ],
                    "id": 5586,
                    "name": "VariableDeclaration",
                    "src": "1417:7:13"
                  }
                ],
                "id": 5587,
                "name": "ParameterList",
                "src": "1416:9:13"
              },
              {
                "attributes": {
                  "arguments": null
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5727,
                      "type": "modifier ()",
                      "value": "onlyTbtcSystem"
                    },
                    "id": 5583,
                    "name": "Identifier",
                    "src": "1393:14:13"
                  }
                ],
                "id": 5584,
                "name": "ModifierInvocation",
                "src": "1393:14:13"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5589
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "ethBtcActive",
                          "scope": 5641,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bool",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bool",
                              "type": "bool"
                            },
                            "id": 5588,
                            "name": "ElementaryTypeName",
                            "src": "1436:4:13"
                          }
                        ],
                        "id": 5589,
                        "name": "VariableDeclaration",
                        "src": "1436:17:13"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "66616c7365",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "false"
                        },
                        "id": 5590,
                        "name": "Literal",
                        "src": "1456:5:13"
                      }
                    ],
                    "id": 5591,
                    "name": "VariableDeclarationStatement",
                    "src": "1436:25:13"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        5593
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "ethBtc",
                          "scope": 5641,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 5592,
                            "name": "ElementaryTypeName",
                            "src": "1471:7:13"
                          }
                        ],
                        "id": 5593,
                        "name": "VariableDeclaration",
                        "src": "1471:14:13"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "30",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "number",
                          "type": "int_const 0",
                          "value": "0"
                        },
                        "id": 5594,
                        "name": "Literal",
                        "src": "1488:1:13"
                      }
                    ],
                    "id": 5595,
                    "name": "VariableDeclarationStatement",
                    "src": "1471:18:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            5597
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "i",
                              "scope": 5622,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint256",
                                  "type": "uint256"
                                },
                                "id": 5596,
                                "name": "ElementaryTypeName",
                                "src": "1505:7:13"
                              }
                            ],
                            "id": 5597,
                            "name": "VariableDeclaration",
                            "src": "1505:9:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 5598,
                            "name": "Literal",
                            "src": "1517:1:13"
                          }
                        ],
                        "id": 5599,
                        "name": "VariableDeclarationStatement",
                        "src": "1505:13:13"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5597,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 5600,
                            "name": "Identifier",
                            "src": "1520:1:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5547,
                                  "type": "contract IMedianizer[] storage ref",
                                  "value": "ethBtcFeeds"
                                },
                                "id": 5601,
                                "name": "Identifier",
                                "src": "1524:11:13"
                              }
                            ],
                            "id": 5602,
                            "name": "MemberAccess",
                            "src": "1524:18:13"
                          }
                        ],
                        "id": 5603,
                        "name": "BinaryOperation",
                        "src": "1520:22:13"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5597,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 5604,
                                "name": "Identifier",
                                "src": "1544:1:13"
                              }
                            ],
                            "id": 5605,
                            "name": "UnaryOperation",
                            "src": "1544:3:13"
                          }
                        ],
                        "id": 5606,
                        "name": "ExpressionStatement",
                        "src": "1544:3:13"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "tuple()"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "tuple(uint256,bool)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5593,
                                          "type": "uint256",
                                          "value": "ethBtc"
                                        },
                                        "id": 5607,
                                        "name": "Identifier",
                                        "src": "1564:6:13"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 5589,
                                          "type": "bool",
                                          "value": "ethBtcActive"
                                        },
                                        "id": 5608,
                                        "name": "Identifier",
                                        "src": "1572:12:13"
                                      }
                                    ],
                                    "id": 5609,
                                    "name": "TupleExpression",
                                    "src": "1563:22:13"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "tuple(uint256,bool)",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "peek",
                                          "referencedDeclaration": 5432,
                                          "type": "function () view external returns (uint256,bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "contract IMedianizer"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5547,
                                                  "type": "contract IMedianizer[] storage ref",
                                                  "value": "ethBtcFeeds"
                                                },
                                                "id": 5610,
                                                "name": "Identifier",
                                                "src": "1588:11:13"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5597,
                                                  "type": "uint256",
                                                  "value": "i"
                                                },
                                                "id": 5611,
                                                "name": "Identifier",
                                                "src": "1600:1:13"
                                              }
                                            ],
                                            "id": 5612,
                                            "name": "IndexAccess",
                                            "src": "1588:14:13"
                                          }
                                        ],
                                        "id": 5613,
                                        "name": "MemberAccess",
                                        "src": "1588:19:13"
                                      }
                                    ],
                                    "id": 5614,
                                    "name": "FunctionCall",
                                    "src": "1588:21:13"
                                  }
                                ],
                                "id": 5615,
                                "name": "Assignment",
                                "src": "1563:46:13"
                              }
                            ],
                            "id": 5616,
                            "name": "ExpressionStatement",
                            "src": "1563:46:13"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5589,
                                  "type": "bool",
                                  "value": "ethBtcActive"
                                },
                                "id": 5617,
                                "name": "Identifier",
                                "src": "1627:12:13"
                              },
                              {
                                "children": [
                                  {
                                    "id": 5618,
                                    "name": "Break",
                                    "src": "1659:5:13"
                                  }
                                ],
                                "id": 5619,
                                "name": "Block",
                                "src": "1641:38:13"
                              }
                            ],
                            "id": 5620,
                            "name": "IfStatement",
                            "src": "1623:56:13"
                          }
                        ],
                        "id": 5621,
                        "name": "Block",
                        "src": "1549:140:13"
                      }
                    ],
                    "id": 5622,
                    "name": "ForStatement",
                    "src": "1500:189:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_cc057cd88f497c809c99fc27231bc9075071d4e5f3e4845e129fa4803aa47ef9",
                                  "typeString": "literal_string \"Price feed offline\""
                                }
                              ],
                              "overloadedDeclarations": [
                                18363,
                                18364
                              ],
                              "referencedDeclaration": 18364,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 5623,
                            "name": "Identifier",
                            "src": "1699:7:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5589,
                              "type": "bool",
                              "value": "ethBtcActive"
                            },
                            "id": 5624,
                            "name": "Identifier",
                            "src": "1707:12:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "50726963652066656564206f66666c696e65",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"Price feed offline\"",
                              "value": "Price feed offline"
                            },
                            "id": 5625,
                            "name": "Literal",
                            "src": "1721:20:13"
                          }
                        ],
                        "id": 5626,
                        "name": "FunctionCall",
                        "src": "1699:43:13"
                      }
                    ],
                    "id": 5627,
                    "name": "ExpressionStatement",
                    "src": "1699:43:13"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5587
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "div",
                              "referencedDeclaration": 16833,
                              "type": "function (uint256,uint256) pure returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint256",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_10000000000000000000000000000_by_1",
                                          "typeString": "int_const 10000000000000000000000000000"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint256)",
                                      "value": "uint256"
                                    },
                                    "id": 5628,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1927:7:13"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_rational_10000000000000000000000000000_by_1",
                                        "typeString": "int_const 10000000000000000000000000000"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "operator": "**",
                                      "type": "int_const 10000000000000000000000000000"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "3130",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 10",
                                          "value": "10"
                                        },
                                        "id": 5629,
                                        "name": "Literal",
                                        "src": "1935:2:13"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "3238",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "number",
                                          "type": "int_const 28",
                                          "value": "28"
                                        },
                                        "id": 5630,
                                        "name": "Literal",
                                        "src": "1939:2:13"
                                      }
                                    ],
                                    "id": 5631,
                                    "name": "BinaryOperation",
                                    "src": "1935:6:13"
                                  }
                                ],
                                "id": 5632,
                                "name": "FunctionCall",
                                "src": "1927:15:13"
                              }
                            ],
                            "id": 5633,
                            "name": "MemberAccess",
                            "src": "1927:19:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint128",
                                      "typeString": "uint128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)",
                                  "value": "uint256"
                                },
                                "id": 5634,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1947:7:13"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "uint128",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint128)",
                                      "value": "uint128"
                                    },
                                    "id": 5635,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1955:7:13"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5593,
                                      "type": "uint256",
                                      "value": "ethBtc"
                                    },
                                    "id": 5636,
                                    "name": "Identifier",
                                    "src": "1963:6:13"
                                  }
                                ],
                                "id": 5637,
                                "name": "FunctionCall",
                                "src": "1955:15:13"
                              }
                            ],
                            "id": 5638,
                            "name": "FunctionCall",
                            "src": "1947:24:13"
                          }
                        ],
                        "id": 5639,
                        "name": "FunctionCall",
                        "src": "1927:45:13"
                      }
                    ],
                    "id": 5640,
                    "name": "Return",
                    "src": "1920:52:13"
                  }
                ],
                "id": 5641,
                "name": "Block",
                "src": "1426:553:13"
              }
            ],
            "id": 5642,
            "name": "FunctionDefinition",
            "src": "1359:620:13"
          },
          {
            "attributes": {
              "documentation": "@notice Get the first active Medianizer contract from the ethBtcFeeds array.\n @return The address of the first Active Medianizer. address(0) if none found",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getWorkingEthBtcFeed",
              "scope": 5728,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5643,
                "name": "ParameterList",
                "src": "2184:2:13"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 5686,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 5644,
                        "name": "ElementaryTypeName",
                        "src": "2210:7:13"
                      }
                    ],
                    "id": 5645,
                    "name": "VariableDeclaration",
                    "src": "2210:7:13"
                  }
                ],
                "id": 5646,
                "name": "ParameterList",
                "src": "2209:9:13"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5648
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "ethBtcActive",
                          "scope": 5685,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bool",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bool",
                              "type": "bool"
                            },
                            "id": 5647,
                            "name": "ElementaryTypeName",
                            "src": "2229:4:13"
                          }
                        ],
                        "id": 5648,
                        "name": "VariableDeclaration",
                        "src": "2229:17:13"
                      }
                    ],
                    "id": 5649,
                    "name": "VariableDeclarationStatement",
                    "src": "2229:17:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            5651
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "name": "i",
                              "scope": 5680,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint256",
                                  "type": "uint256"
                                },
                                "id": 5650,
                                "name": "ElementaryTypeName",
                                "src": "2262:7:13"
                              }
                            ],
                            "id": 5651,
                            "name": "VariableDeclaration",
                            "src": "2262:9:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 5652,
                            "name": "Literal",
                            "src": "2274:1:13"
                          }
                        ],
                        "id": 5653,
                        "name": "VariableDeclarationStatement",
                        "src": "2262:13:13"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5651,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 5654,
                            "name": "Identifier",
                            "src": "2277:1:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5547,
                                  "type": "contract IMedianizer[] storage ref",
                                  "value": "ethBtcFeeds"
                                },
                                "id": 5655,
                                "name": "Identifier",
                                "src": "2281:11:13"
                              }
                            ],
                            "id": 5656,
                            "name": "MemberAccess",
                            "src": "2281:18:13"
                          }
                        ],
                        "id": 5657,
                        "name": "BinaryOperation",
                        "src": "2277:22:13"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5651,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 5658,
                                "name": "Identifier",
                                "src": "2301:1:13"
                              }
                            ],
                            "id": 5659,
                            "name": "UnaryOperation",
                            "src": "2301:3:13"
                          }
                        ],
                        "id": 5660,
                        "name": "ExpressionStatement",
                        "src": "2301:3:13"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "tuple()"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "components": [
                                        null,
                                        {
                                          "attributes": {
                                            "argumentTypes": null,
                                            "overloadedDeclarations": [
                                              null
                                            ],
                                            "referencedDeclaration": 5648,
                                            "type": "bool",
                                            "value": "ethBtcActive"
                                          },
                                          "id": 5661,
                                          "name": "Identifier",
                                          "src": "2323:12:13"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "tuple(,bool)"
                                    },
                                    "id": 5662,
                                    "name": "TupleExpression",
                                    "src": "2320:16:13"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "tuple(uint256,bool)",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "peek",
                                          "referencedDeclaration": 5432,
                                          "type": "function () view external returns (uint256,bool)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "contract IMedianizer"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5547,
                                                  "type": "contract IMedianizer[] storage ref",
                                                  "value": "ethBtcFeeds"
                                                },
                                                "id": 5663,
                                                "name": "Identifier",
                                                "src": "2339:11:13"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5651,
                                                  "type": "uint256",
                                                  "value": "i"
                                                },
                                                "id": 5664,
                                                "name": "Identifier",
                                                "src": "2351:1:13"
                                              }
                                            ],
                                            "id": 5665,
                                            "name": "IndexAccess",
                                            "src": "2339:14:13"
                                          }
                                        ],
                                        "id": 5666,
                                        "name": "MemberAccess",
                                        "src": "2339:19:13"
                                      }
                                    ],
                                    "id": 5667,
                                    "name": "FunctionCall",
                                    "src": "2339:21:13"
                                  }
                                ],
                                "id": 5668,
                                "name": "Assignment",
                                "src": "2320:40:13"
                              }
                            ],
                            "id": 5669,
                            "name": "ExpressionStatement",
                            "src": "2320:40:13"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5648,
                                  "type": "bool",
                                  "value": "ethBtcActive"
                                },
                                "id": 5670,
                                "name": "Identifier",
                                "src": "2378:12:13"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "functionReturnParameters": 5646
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "address",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_IMedianizer_$5433",
                                                  "typeString": "contract IMedianizer"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(address)",
                                              "value": "address"
                                            },
                                            "id": 5671,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "2417:7:13"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "contract IMedianizer"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5547,
                                                  "type": "contract IMedianizer[] storage ref",
                                                  "value": "ethBtcFeeds"
                                                },
                                                "id": 5672,
                                                "name": "Identifier",
                                                "src": "2425:11:13"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 5651,
                                                  "type": "uint256",
                                                  "value": "i"
                                                },
                                                "id": 5673,
                                                "name": "Identifier",
                                                "src": "2437:1:13"
                                              }
                                            ],
                                            "id": 5674,
                                            "name": "IndexAccess",
                                            "src": "2425:14:13"
                                          }
                                        ],
                                        "id": 5675,
                                        "name": "FunctionCall",
                                        "src": "2417:23:13"
                                      }
                                    ],
                                    "id": 5676,
                                    "name": "Return",
                                    "src": "2410:30:13"
                                  }
                                ],
                                "id": 5677,
                                "name": "Block",
                                "src": "2392:63:13"
                              }
                            ],
                            "id": 5678,
                            "name": "IfStatement",
                            "src": "2374:81:13"
                          }
                        ],
                        "id": 5679,
                        "name": "Block",
                        "src": "2306:159:13"
                      }
                    ],
                    "id": 5680,
                    "name": "ForStatement",
                    "src": "2257:208:13"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 5646
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "address payable",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(address)",
                              "value": "address"
                            },
                            "id": 5681,
                            "name": "ElementaryTypeNameExpression",
                            "src": "2481:7:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 5682,
                            "name": "Literal",
                            "src": "2489:1:13"
                          }
                        ],
                        "id": 5683,
                        "name": "FunctionCall",
                        "src": "2481:10:13"
                      }
                    ],
                    "id": 5684,
                    "name": "Return",
                    "src": "2474:17:13"
                  }
                ],
                "id": 5685,
                "name": "Block",
                "src": "2219:279:13"
              }
            ],
            "id": 5686,
            "name": "FunctionDefinition",
            "src": "2155:343:13"
          },
          {
            "attributes": {
              "documentation": "@notice Add _newEthBtcFeed to internal ethBtcFeeds array.\n @dev IMedianizer must be active in order to add.",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "name": "addEthBtcFeed",
              "scope": 5728,
              "stateMutability": "nonpayable",
              "superFunction": 5446,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_newEthBtcFeed",
                      "scope": 5715,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IMedianizer",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IMedianizer",
                          "referencedDeclaration": 5433,
                          "type": "contract IMedianizer"
                        },
                        "id": 5687,
                        "name": "UserDefinedTypeName",
                        "src": "2650:11:13"
                      }
                    ],
                    "id": 5688,
                    "name": "VariableDeclaration",
                    "src": "2650:26:13"
                  }
                ],
                "id": 5689,
                "name": "ParameterList",
                "src": "2649:28:13"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5692,
                "name": "ParameterList",
                "src": "2702:0:13"
              },
              {
                "attributes": {
                  "arguments": null
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 5727,
                      "type": "modifier ()",
                      "value": "onlyTbtcSystem"
                    },
                    "id": 5690,
                    "name": "Identifier",
                    "src": "2687:14:13"
                  }
                ],
                "id": 5691,
                "name": "ModifierInvocation",
                "src": "2687:14:13"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        5694
                      ],
                      "initialValue": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "ethBtcActive",
                          "scope": 5714,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bool",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bool",
                              "type": "bool"
                            },
                            "id": 5693,
                            "name": "ElementaryTypeName",
                            "src": "2712:4:13"
                          }
                        ],
                        "id": 5694,
                        "name": "VariableDeclaration",
                        "src": "2712:17:13"
                      }
                    ],
                    "id": 5695,
                    "name": "VariableDeclarationStatement",
                    "src": "2712:17:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "components": [
                                null,
                                {
                                  "attributes": {
                                    "argumentTypes": null,
                                    "overloadedDeclarations": [
                                      null
                                    ],
                                    "referencedDeclaration": 5694,
                                    "type": "bool",
                                    "value": "ethBtcActive"
                                  },
                                  "id": 5696,
                                  "name": "Identifier",
                                  "src": "2742:12:13"
                                }
                              ],
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "tuple(,bool)"
                            },
                            "id": 5697,
                            "name": "TupleExpression",
                            "src": "2739:16:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "arguments": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "tuple(uint256,bool)",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "peek",
                                  "referencedDeclaration": 5432,
                                  "type": "function () view external returns (uint256,bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 5688,
                                      "type": "contract IMedianizer",
                                      "value": "_newEthBtcFeed"
                                    },
                                    "id": 5698,
                                    "name": "Identifier",
                                    "src": "2758:14:13"
                                  }
                                ],
                                "id": 5699,
                                "name": "MemberAccess",
                                "src": "2758:19:13"
                              }
                            ],
                            "id": 5700,
                            "name": "FunctionCall",
                            "src": "2758:21:13"
                          }
                        ],
                        "id": 5701,
                        "name": "Assignment",
                        "src": "2739:40:13"
                      }
                    ],
                    "id": 5702,
                    "name": "ExpressionStatement",
                    "src": "2739:40:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_4973a1a6bce3b03a2fb578432748e4e8c87ac58dc28236886e6c6c2854cb675b",
                                  "typeString": "literal_string \"Cannot add inactive feed\""
                                }
                              ],
                              "overloadedDeclarations": [
                                18363,
                                18364
                              ],
                              "referencedDeclaration": 18364,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 5703,
                            "name": "Identifier",
                            "src": "2789:7:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5694,
                              "type": "bool",
                              "value": "ethBtcActive"
                            },
                            "id": 5704,
                            "name": "Identifier",
                            "src": "2797:12:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "43616e6e6f742061646420696e6163746976652066656564",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"Cannot add inactive feed\"",
                              "value": "Cannot add inactive feed"
                            },
                            "id": 5705,
                            "name": "Literal",
                            "src": "2811:26:13"
                          }
                        ],
                        "id": 5706,
                        "name": "FunctionCall",
                        "src": "2789:49:13"
                      }
                    ],
                    "id": 5707,
                    "name": "ExpressionStatement",
                    "src": "2789:49:13"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IMedianizer_$5433",
                                  "typeString": "contract IMedianizer"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "push",
                              "referencedDeclaration": null,
                              "type": "function (contract IMedianizer) returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5547,
                                  "type": "contract IMedianizer[] storage ref",
                                  "value": "ethBtcFeeds"
                                },
                                "id": 5708,
                                "name": "Identifier",
                                "src": "2848:11:13"
                              }
                            ],
                            "id": 5710,
                            "name": "MemberAccess",
                            "src": "2848:16:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 5688,
                              "type": "contract IMedianizer",
                              "value": "_newEthBtcFeed"
                            },
                            "id": 5711,
                            "name": "Identifier",
                            "src": "2865:14:13"
                          }
                        ],
                        "id": 5712,
                        "name": "FunctionCall",
                        "src": "2848:32:13"
                      }
                    ],
                    "id": 5713,
                    "name": "ExpressionStatement",
                    "src": "2848:32:13"
                  }
                ],
                "id": 5714,
                "name": "Block",
                "src": "2702:185:13"
              }
            ],
            "id": 5715,
            "name": "FunctionDefinition",
            "src": "2627:260:13"
          },
          {
            "attributes": {
              "documentation": "@notice Function modifier ensures modified function is only called by tbtcSystemAddress.",
              "name": "onlyTbtcSystem",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 5716,
                "name": "ParameterList",
                "src": "3013:2:13"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_34f16208e81741f0daa2d2dee420727a4d4a14dfbdc86819fa3495cd846a7336",
                                  "typeString": "literal_string \"Caller must be tbtcSystem contract\""
                                }
                              ],
                              "overloadedDeclarations": [
                                18363,
                                18364
                              ],
                              "referencedDeclaration": 18364,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 5717,
                            "name": "Identifier",
                            "src": "3026:7:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address payable"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 18360,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 5718,
                                    "name": "Identifier",
                                    "src": "3047:3:13"
                                  }
                                ],
                                "id": 5719,
                                "name": "MemberAccess",
                                "src": "3047:10:13"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 5544,
                                  "type": "address",
                                  "value": "tbtcSystemAddress"
                                },
                                "id": 5720,
                                "name": "Identifier",
                                "src": "3061:17:13"
                              }
                            ],
                            "id": 5721,
                            "name": "BinaryOperation",
                            "src": "3047:31:13"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "43616c6c6572206d757374206265207462746353797374656d20636f6e7472616374",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"Caller must be tbtcSystem contract\"",
                              "value": "Caller must be tbtcSystem contract"
                            },
                            "id": 5722,
                            "name": "Literal",
                            "src": "3092:36:13"
                          }
                        ],
                        "id": 5723,
                        "name": "FunctionCall",
                        "src": "3026:112:13"
                      }
                    ],
                    "id": 5724,
                    "name": "ExpressionStatement",
                    "src": "3026:112:13"
                  },
                  {
                    "id": 5725,
                    "name": "PlaceholderStatement",
                    "src": "3148:1:13"
                  }
                ],
                "id": 5726,
                "name": "Block",
                "src": "3016:140:13"
              }
            ],
            "id": 5727,
            "name": "ModifierDefinition",
            "src": "2990:166:13"
          }
        ],
        "id": 5728,
        "name": "ContractDefinition",
        "src": "347:2811:13"
      }
    ],
    "id": 5729,
    "name": "SourceUnit",
    "src": "0:3159:13"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.17+commit.d19bba13.Emscripten.clang"
  },
  "networks": {
    "3": {
      "events": {},
      "links": {},
      "address": "0xa06548e758BE012e391EcB78Dbd89D24FcDcd9d6",
      "transactionHash": "0x148c9231d09f3f6a83edc1d0d3f41dc3c4b0acc3e7d4265f85c18188fe821be3"
    }
  },
  "schemaVersion": "3.3.4",
  "updatedAt": "2021-11-23T12:02:26.768Z",
  "networkType": "ethereum",
  "devdoc": {
    "details": "Used ETH/USD medianizer values converted to sat/wei.",
    "methods": {
      "addEthBtcFeed(address)": {
        "details": "IMedianizer must be active in order to add."
      },
      "getPrice()": {
        "details": "This does not account for any 'Flippening' event.",
        "return": "The price of one satoshi in wei."
      },
      "getWorkingEthBtcFeed()": {
        "return": "The address of the first Active Medianizer. address(0) if none found"
      },
      "initialize(address,address)": {
        "params": {
          "_ETHBTCPriceFeed": "The ETHBTC price feed address.",
          "_tbtcSystemAddress": "Address of the `TBTCSystem` contract. Used for access control."
        }
      },
      "isOwner()": {
        "details": "Returns true if the caller is the current owner."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    }
  },
  "userdoc": {
    "methods": {
      "addEthBtcFeed(address)": {
        "notice": "Add _newEthBtcFeed to internal ethBtcFeeds array."
      },
      "getPrice()": {
        "notice": "Get the current price of 1 satoshi in wei."
      },
      "getWorkingEthBtcFeed()": {
        "notice": "Get the first active Medianizer contract from the ethBtcFeeds array."
      },
      "initialize(address,address)": {
        "notice": "Initialises the addresses of the ETHBTC price feeds."
      }
    },
    "notice": "satoshi/wei price feed."
  }
}