Address Provider Registry

A register of the active AddressProvider contracts, covering all markets. This contract is immutable and the address will never change. Also see Deployed Contracts section.

Methods

getAddressProvidersList()

function getAddressProvidersList()

Returns the list of active AddressProvider contracts.

getAddressProviderIdByAddress()

function getAddressProviderIdByAddress(address addressProvider)

Returns the ID of an AddressProvider

Parameter NameTypeDescription

provider

address

address of the address provider

ABI

Address Provider Registry ABI
{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "newAddress",
          "type": "address"
        }
      ],
      "name": "AddressProviderRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "newAddress",
          "type": "address"
        }
      ],
      "name": "AddressProviderUnregistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addressProvider",
          "type": "address"
        }
      ],
      "name": "getAddressProviderIdByAddress",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAddressProvidersList",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "provider",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "registerAddressProvider",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "provider",
          "type": "address"
        }
      ],
      "name": "unregisterAddressProvider",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107618061007e6000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80639219d4f51161005b5780639219d4f5146100bf578063c4ea1e0d146100d2578063d1bb2da1146100e7578063f2fde38b1461011e57600080fd5b8063389140b814610082578063715018a6146100975780638da5cb5b1461009f575b600080fd5b6100956100903660046105f1565b610131565b005b6100956101ea565b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100956100cd366004610613565b6101fe565b6100da61029b565b6040516100b6919061063d565b6101106100f53660046105f1565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100b6565b61009561012c3660046105f1565b610402565b61013961047b565b600060016000836001600160a01b03166001600160a01b0316815260200190815260200160002054116040518060400160405280600381526020016203736360ec1b815250906101a55760405162461bcd60e51b815260040161019c919061068a565b60405180910390fd5b506001600160a01b038116600081815260016020526040808220829055517fb0f75fa307bb6abb1589a2df17cb71944f67ecdd1a94630ae40485c3d135e9f29190a250565b6101f261047b565b6101fc60006104d5565b565b61020661047b565b60408051808201909152600381526237363160e81b60208201528161023e5760405162461bcd60e51b815260040161019c919061068a565b506001600160a01b038216600090815260016020526040902081905561026382610525565b6040516001600160a01b038316907f626e6d32e5330ca33125085e9eda609daa828213da74cb83cfb1139a77dc84c690600090a25050565b6060600060028054806020026020016040519081016040528092919081815260200182805480156102f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102d7575b5050505050905060008151905060008167ffffffffffffffff81111561031d5761031d6106d8565b604051908082528060200260200182016040528015610346578160200160208202803683370190505b50905060005b828110156103fa5760006001600086848151811061036c5761036c6106ee565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205411156103e8578381815181106103ad576103ad6106ee565b60200260200101518282815181106103c7576103c76106ee565b60200260200101906001600160a01b031690816001600160a01b0316815250505b806103f281610704565b91505061034c565b509392505050565b61040a61047b565b6001600160a01b03811661046f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161019c565b610478816104d5565b50565b6000546001600160a01b031633146101fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161019c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60025460005b8181101561058157826001600160a01b031660028281548110610550576105506106ee565b6000918252602090912001546001600160a01b03160361056f57505050565b8061057981610704565b91505061052b565b5050600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b03811681146105ec57600080fd5b919050565b60006020828403121561060357600080fd5b61060c826105d5565b9392505050565b6000806040838503121561062657600080fd5b61062f836105d5565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561067e5783516001600160a01b031683529284019291840191600101610659565b50909695505050505050565b600060208083528351808285015260005b818110156106b75785810183015185820160400152820161069b565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161072457634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212203281ced7d9c041d562de76e13f26135f9777f03bee78f08d46b6ac9bf1e31ffe64736f6c63430008100033",
    "sourceMap": "667:2483:119:-:0;;;;;;;;;;;;-1:-1:-1;936:32:41;719:10:65;936:18:41;:32::i;:::-;667:2483:119;;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;667:2483:119:-;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80639219d4f51161005b5780639219d4f5146100bf578063c4ea1e0d146100d2578063d1bb2da1146100e7578063f2fde38b1461011e57600080fd5b8063389140b814610082578063715018a6146100975780638da5cb5b1461009f575b600080fd5b6100956100903660046105f1565b610131565b005b6100956101ea565b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100956100cd366004610613565b6101fe565b6100da61029b565b6040516100b6919061063d565b6101106100f53660046105f1565b6001600160a01b031660009081526001602052604090205490565b6040519081526020016100b6565b61009561012c3660046105f1565b610402565b61013961047b565b600060016000836001600160a01b03166001600160a01b0316815260200190815260200160002054116040518060400160405280600381526020016203736360ec1b815250906101a55760405162461bcd60e51b815260040161019c919061068a565b60405180910390fd5b506001600160a01b038116600081815260016020526040808220829055517fb0f75fa307bb6abb1589a2df17cb71944f67ecdd1a94630ae40485c3d135e9f29190a250565b6101f261047b565b6101fc60006104d5565b565b61020661047b565b60408051808201909152600381526237363160e81b60208201528161023e5760405162461bcd60e51b815260040161019c919061068a565b506001600160a01b038216600090815260016020526040902081905561026382610525565b6040516001600160a01b038316907f626e6d32e5330ca33125085e9eda609daa828213da74cb83cfb1139a77dc84c690600090a25050565b6060600060028054806020026020016040519081016040528092919081815260200182805480156102f557602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102d7575b5050505050905060008151905060008167ffffffffffffffff81111561031d5761031d6106d8565b604051908082528060200260200182016040528015610346578160200160208202803683370190505b50905060005b828110156103fa5760006001600086848151811061036c5761036c6106ee565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205411156103e8578381815181106103ad576103ad6106ee565b60200260200101518282815181106103c7576103c76106ee565b60200260200101906001600160a01b031690816001600160a01b0316815250505b806103f281610704565b91505061034c565b509392505050565b61040a61047b565b6001600160a01b03811661046f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161019c565b610478816104d5565b50565b6000546001600160a01b031633146101fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161019c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60025460005b8181101561058157826001600160a01b031660028281548110610550576105506106ee565b6000918252602090912001546001600160a01b03160361056f57505050565b8061057981610704565b91505061052b565b5050600280546001810182556000919091527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b0392909216919091179055565b80356001600160a01b03811681146105ec57600080fd5b919050565b60006020828403121561060357600080fd5b61060c826105d5565b9392505050565b6000806040838503121561062657600080fd5b61062f836105d5565b946020939093013593505050565b6020808252825182820181905260009190848201906040850190845b8181101561067e5783516001600160a01b031683529284019291840191600101610659565b50909695505050505050565b600060208083528351808285015260005b818110156106b75785810183015185820160400152820161069b565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006001820161072457634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212203281ced7d9c041d562de76e13f26135f9777f03bee78f08d46b6ac9bf1e31ffe64736f6c63430008100033",
    "sourceMap": "667:2483:119:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2224:269;;;;;;:::i;:::-;;:::i;:::-;;1831:101:41;;;:::i;1201:85::-;1247:7;1273:6;1201:85;;-1:-1:-1;;;;;1273:6:41;;;529:51:176;;517:2;502:18;1201:85:41;;;;;;;;1760:305:119;;;;;;:::i;:::-;;:::i;1017:523::-;;;:::i;:::-;;;;;;;:::i;2643:163::-;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:34:119;2739:7;2765:34;;;:17;:34;;;;;;;2643:163;;;;1659:25:176;;;1647:2;1632:18;2643:163:119;1513:177:176;2081:198:41;;;;;;:::i;:::-;;:::i;2224:269:119:-;1094:13:41;:11;:13::i;:::-;2353:1:119::1;2323:17;:27;2341:8;-1:-1:-1::0;;;;;2323:27:119::1;-1:-1:-1::0;;;;;2323:27:119::1;;;;;;;;;;;;;:31;2356:36;;;;;;;;;;;;;-1:-1:-1::0;;;2356:36:119::1;;::::0;2315:78:::1;;;;;-1:-1:-1::0;;;2315:78:119::1;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;;;;;;2403:27:119;::::1;2433:1;2403:27:::0;;;:17:::1;:27;::::0;;;;;:31;;;2449:37;::::1;::::0;2433:1;2449:37:::1;2224:269:::0;:::o;1831:101:41:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1760:305:119:-;1094:13:41;:11;:13::i;:::-;1878:40:119::1;::::0;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;1878:40:119::1;::::0;::::1;::::0;1869:7;1861:58:::1;;;;-1:-1:-1::0;;;1861:58:119::1;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;;1930:27:119;::::1;;::::0;;;:17:::1;:27;::::0;;;;:32;;;1972:36:::1;1948:8:::0;1972:26:::1;:36::i;:::-;2023:35;::::0;-1:-1:-1;;;;;2023:35:119;::::1;::::0;::::1;::::0;;;::::1;1760:305:::0;;:::o;1017:523::-;1084:16;1112:37;1152:21;1112:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1112:61:119;;;;;;;;;;;;;;;;;;;;;;;1184:17;1204:20;:27;1184:47;;1242:32;1291:9;1277:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1277:24:119;;1242:59;;1317:9;1312:189;1336:9;1332:1;:13;1312:189;;;1415:1;1370:17;:42;1388:20;1409:1;1388:23;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1370:42:119;-1:-1:-1;;;;;1370:42:119;;;;;;;;;;;;;:46;1366:125;;;1453:20;1474:1;1453:23;;;;;;;;:::i;:::-;;;;;;;1432:15;1448:1;1432:18;;;;;;;;:::i;:::-;;;;;;:44;-1:-1:-1;;;;;1432:44:119;;;-1:-1:-1;;;;;1432:44:119;;;;;1366:125;1347:3;;;;:::i;:::-;;;;1312:189;;;-1:-1:-1;1518:15:119;1017:523;-1:-1:-1;;;1017:523:119:o;2081:198:41:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:41;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:41;;2951:2:176;2161:73:41::1;::::0;::::1;2933:21:176::0;2990:2;2970:18;;;2963:30;3029:34;3009:18;;;3002:62;-1:-1:-1;;;3080:18:176;;;3073:36;3126:19;;2161:73:41::1;2749:402:176::0;2161:73:41::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:41;719:10:65;1422:23:41;1414:68;;;;-1:-1:-1;;;1414:68:41;;3358:2:176;1414:68:41;;;3340:21:176;;;3377:18;;;3370:30;3436:34;3416:18;;;3409:62;3488:18;;1414:68:41;3156:356:176;2433:187:41;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:41;;;-1:-1:-1;;;;;;2541:17:41;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;2812:336:119:-;2910:21;:28;2885:22;2949:146;2973:14;2969:1;:18;2949:146;;;3040:8;-1:-1:-1;;;;;3012:36:119;:21;3034:1;3012:24;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;3012:24:119;:36;3008:77;;3064:7;;2812:336;:::o;3008:77::-;2989:3;;;;:::i;:::-;;;;2949:146;;;-1:-1:-1;;3105:21:119;:36;;;;;;;-1:-1:-1;3105:36:119;;;;;;;;-1:-1:-1;;;;;;3105:36:119;-1:-1:-1;;;;;3105:36:119;;;;;;;;;;2812:336::o;14:173:176:-;82:20;;-1:-1:-1;;;;;131:31:176;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:176:o;591:254::-;659:6;667;720:2;708:9;699:7;695:23;691:32;688:52;;;736:1;733;726:12;688:52;759:29;778:9;759:29;:::i;:::-;749:39;835:2;820:18;;;;807:32;;-1:-1:-1;;;591:254:176:o;850:658::-;1021:2;1073:21;;;1143:13;;1046:18;;;1165:22;;;992:4;;1021:2;1244:15;;;;1218:2;1203:18;;;992:4;1287:195;1301:6;1298:1;1295:13;1287:195;;;1366:13;;-1:-1:-1;;;;;1362:39:176;1350:52;;1457:15;;;;1422:12;;;;1398:1;1316:9;1287:195;;;-1:-1:-1;1499:3:176;;850:658;-1:-1:-1;;;;;;850:658:176:o;1695:548::-;1807:4;1836:2;1865;1854:9;1847:21;1897:6;1891:13;1940:6;1935:2;1924:9;1920:18;1913:34;1965:1;1975:140;1989:6;1986:1;1983:13;1975:140;;;2084:14;;;2080:23;;2074:30;2050:17;;;2069:2;2046:26;2039:66;2004:10;;1975:140;;;1979:3;2164:1;2159:2;2150:6;2139:9;2135:22;2131:31;2124:42;2234:2;2227;2223:7;2218:2;2210:6;2206:15;2202:29;2191:9;2187:45;2183:54;2175:62;;;;1695:548;;;;:::o;2248:127::-;2309:10;2304:3;2300:20;2297:1;2290:31;2340:4;2337:1;2330:15;2364:4;2361:1;2354:15;2380:127;2441:10;2436:3;2432:20;2429:1;2422:31;2472:4;2469:1;2462:15;2496:4;2493:1;2486:15;2512:232;2551:3;2572:17;;;2569:140;;2631:10;2626:3;2622:20;2619:1;2612:31;2666:4;2663:1;2656:15;2694:4;2691:1;2684:15;2569:140;-1:-1:-1;2736:1:176;2725:13;;2512:232::o",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "getAddressProviderIdByAddress(address)": "d1bb2da1",
    "getAddressProvidersList()": "c4ea1e0d",
    "owner()": "8da5cb5b",
    "registerAddressProvider(address,uint256)": "9219d4f5",
    "renounceOwnership()": "715018a6",
    "transferOwnership(address)": "f2fde38b",
    "unregisterAddressProvider(address)": "389140b8"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"AddressProviderRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"AddressProviderUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressProvider\",\"type\":\"address\"}],\"name\":\"getAddressProviderIdByAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAddressProvidersList\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"registerAddressProvider\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"}],\"name\":\"unregisterAddressProvider\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"FluidNFT*\",\"details\":\"Main registry of AddressProvider of multiple FluidNFT protocol's markets - Used for indexing purposes of FluidNFT protocol's markets - The id assigned to a AddressProvider refers to the market it is connected with,   for example with `1` for the FluidNFT main market and `2` for the next created\",\"kind\":\"dev\",\"methods\":{\"getAddressProviderIdByAddress(address)\":{\"details\":\"Returns the id on a registered AddressProvider\",\"returns\":{\"_0\":\"The id or 0 if the AddressProvider is not registered*\"}},\"getAddressProvidersList()\":{\"details\":\"Returns the list of registered addresses provider\",\"returns\":{\"_0\":\"The list of addresses provider, potentially containing address(0) elements*\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerAddressProvider(address,uint256)\":{\"details\":\"Registers an addresses provider\",\"params\":{\"id\":\"The id for the new AddressProvider, referring to the market it belongs to*\",\"provider\":\"The address of the new AddressProvider\"}},\"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.\"},\"unregisterAddressProvider(address)\":{\"details\":\"Removes a AddressProvider from the list of registered addresses provider\",\"params\":{\"provider\":\"The AddressProvider address*\"}}},\"title\":\"AddressProviderRegistry contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/protocol/governance/AddressProviderRegistry.sol\":\"AddressProviderRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/interfaces/IAddressProviderRegistry.sol\":{\"keccak256\":\"0x1a03fec8a99776cc581fe311dad785c49221005239c255e5dbdc210ea689d51f\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://5fb0350cfba70aae0c48c1840e2dde26253718f411948c331d67169db985fb67\",\"dweb:/ipfs/QmehHRWv9zXtVznwUrrjRWDM8PJrYv1QX8espfs7NkCdNe\"]},\"src/protocol/governance/AddressProviderRegistry.sol\":{\"keccak256\":\"0x1e60f8cfe7191c0ecb340dc6cb63f9d738cbec1937a44550b7e2848254d1e6a4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b3526844583c7e34eadb45d16a9182085b2ea056e112a87fd95ea1b36fcb94cb\",\"dweb:/ipfs/QmSQ3KQVNLf7vqcvBvuVHvvcJdJ7iQwTmtYFFongRztb4f\"]},\"src/protocol/libraries/helpers/Errors.sol\":{\"keccak256\":\"0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3\",\"dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.16+commit.07a7930e"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "newAddress",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "AddressProviderRegistered",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "newAddress",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "AddressProviderUnregistered",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "previousOwner",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "newOwner",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "OwnershipTransferred",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addressProvider",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getAddressProviderIdByAddress",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "getAddressProvidersList",
          "outputs": [
            {
              "internalType": "address[]",
              "name": "",
              "type": "address[]"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "owner",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "provider",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "registerAddressProvider"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "renounceOwnership"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "newOwner",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "transferOwnership"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "provider",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "unregisterAddressProvider"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "getAddressProviderIdByAddress(address)": {
            "details": "Returns the id on a registered AddressProvider",
            "returns": {
              "_0": "The id or 0 if the AddressProvider is not registered*"
            }
          },
          "getAddressProvidersList()": {
            "details": "Returns the list of registered addresses provider",
            "returns": {
              "_0": "The list of addresses provider, potentially containing address(0) elements*"
            }
          },
          "owner()": {
            "details": "Returns the address of the current owner."
          },
          "registerAddressProvider(address,uint256)": {
            "details": "Registers an addresses provider",
            "params": {
              "id": "The id for the new AddressProvider, referring to the market it belongs to*",
              "provider": "The address of the new AddressProvider"
            }
          },
          "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."
          },
          "unregisterAddressProvider(address)": {
            "details": "Removes a AddressProvider from the list of registered addresses provider",
            "params": {
              "provider": "The AddressProvider address*"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        ":@chainlink/=lib/chainlink/",
        ":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
        ":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        ":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/",
        ":ds-test/=lib/forge-std/lib/ds-test/src/",
        ":forge-std/=lib/forge-std/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "src/protocol/governance/AddressProviderRegistry.sol": "AddressProviderRegistry"
      },
      "libraries": {}
    },
    "sources": {
      "lib/openzeppelin-contracts/contracts/access/Ownable.sol": {
        "keccak256": "0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673",
        "urls": [
          "bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2",
          "dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/Context.sol": {
        "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
        "urls": [
          "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
          "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
        ],
        "license": "MIT"
      },
      "src/interfaces/IAddressProviderRegistry.sol": {
        "keccak256": "0x1a03fec8a99776cc581fe311dad785c49221005239c255e5dbdc210ea689d51f",
        "urls": [
          "bzz-raw://5fb0350cfba70aae0c48c1840e2dde26253718f411948c331d67169db985fb67",
          "dweb:/ipfs/QmehHRWv9zXtVznwUrrjRWDM8PJrYv1QX8espfs7NkCdNe"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/governance/AddressProviderRegistry.sol": {
        "keccak256": "0x1e60f8cfe7191c0ecb340dc6cb63f9d738cbec1937a44550b7e2848254d1e6a4",
        "urls": [
          "bzz-raw://b3526844583c7e34eadb45d16a9182085b2ea056e112a87fd95ea1b36fcb94cb",
          "dweb:/ipfs/QmSQ3KQVNLf7vqcvBvuVHvvcJdJ7iQwTmtYFFongRztb4f"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/libraries/helpers/Errors.sol": {
        "keccak256": "0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52",
        "urls": [
          "bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3",
          "dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM"
        ],
        "license": "AGPL-3.0"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "src/protocol/governance/AddressProviderRegistry.sol",
    "id": 52340,
    "exportedSymbols": {
      "AddressProviderRegistry": [
        52339
      ],
      "Errors": [
        56338
      ],
      "IAddressProviderRegistry": [
        45755
      ],
      "Ownable": [
        30660
      ]
    },
    "nodeType": "SourceUnit",
    "src": "37:3114:119",
    "nodes": [
      {
        "id": 52142,
        "nodeType": "PragmaDirective",
        "src": "37:23:119",
        "nodes": [],
        "literals": [
          "solidity",
          "0.8",
          ".16"
        ]
      },
      {
        "id": 52144,
        "nodeType": "ImportDirective",
        "src": "62:89:119",
        "nodes": [],
        "absolutePath": "src/interfaces/IAddressProviderRegistry.sol",
        "file": "../../interfaces/IAddressProviderRegistry.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 52340,
        "sourceUnit": 45756,
        "symbolAliases": [
          {
            "foreign": {
              "id": 52143,
              "name": "IAddressProviderRegistry",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 45755,
              "src": "71:24:119",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 52146,
        "nodeType": "ImportDirective",
        "src": "152:57:119",
        "nodes": [],
        "absolutePath": "src/protocol/libraries/helpers/Errors.sol",
        "file": "../libraries/helpers/Errors.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 52340,
        "sourceUnit": 56339,
        "symbolAliases": [
          {
            "foreign": {
              "id": 52145,
              "name": "Errors",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 56338,
              "src": "161:6:119",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 52148,
        "nodeType": "ImportDirective",
        "src": "211:69:119",
        "nodes": [],
        "absolutePath": "lib/openzeppelin-contracts/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 52340,
        "sourceUnit": 30661,
        "symbolAliases": [
          {
            "foreign": {
              "id": 52147,
              "name": "Ownable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 30660,
              "src": "220:7:119",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 52339,
        "nodeType": "ContractDefinition",
        "src": "667:2483:119",
        "nodes": [
          {
            "id": 52157,
            "nodeType": "VariableDeclaration",
            "src": "743:53:119",
            "nodes": [],
            "constant": false,
            "mutability": "mutable",
            "name": "_addressProviders",
            "nameLocation": "779:17:119",
            "scope": 52339,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 52156,
              "keyType": {
                "id": 52154,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "751:7:119",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "743:27:119",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 52155,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "762:7:119",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "private"
          },
          {
            "id": 52160,
            "nodeType": "VariableDeclaration",
            "src": "802:39:119",
            "nodes": [],
            "constant": false,
            "mutability": "mutable",
            "name": "_addressProvidersList",
            "nameLocation": "820:21:119",
            "scope": 52339,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_address_$dyn_storage",
              "typeString": "address[]"
            },
            "typeName": {
              "baseType": {
                "id": 52158,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "802:7:119",
                "stateMutability": "nonpayable",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "id": 52159,
              "nodeType": "ArrayTypeName",
              "src": "802:9:119",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                "typeString": "address[]"
              }
            },
            "visibility": "private"
          },
          {
            "id": 52223,
            "nodeType": "FunctionDefinition",
            "src": "1017:523:119",
            "nodes": [],
            "body": {
              "id": 52222,
              "nodeType": "Block",
              "src": "1102:438:119",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    52172
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 52172,
                      "mutability": "mutable",
                      "name": "addressProvidersList",
                      "nameLocation": "1129:20:119",
                      "nodeType": "VariableDeclaration",
                      "scope": 52222,
                      "src": "1112:37:119",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 52170,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1112:7:119",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 52171,
                        "nodeType": "ArrayTypeName",
                        "src": "1112:9:119",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 52174,
                  "initialValue": {
                    "id": 52173,
                    "name": "_addressProvidersList",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 52160,
                    "src": "1152:21:119",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                      "typeString": "address[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1112:61:119"
                },
                {
                  "assignments": [
                    52176
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 52176,
                      "mutability": "mutable",
                      "name": "maxLength",
                      "nameLocation": "1192:9:119",
                      "nodeType": "VariableDeclaration",
                      "scope": 52222,
                      "src": "1184:17:119",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 52175,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1184:7:119",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 52179,
                  "initialValue": {
                    "expression": {
                      "id": 52177,
                      "name": "addressProvidersList",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 52172,
                      "src": "1204:20:119",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "id": 52178,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "1225:6:119",
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "1204:27:119",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1184:47:119"
                },
                {
                  "assignments": [
                    52184
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 52184,
                      "mutability": "mutable",
                      "name": "activeProviders",
                      "nameLocation": "1259:15:119",
                      "nodeType": "VariableDeclaration",
                      "scope": 52222,
                      "src": "1242:32:119",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 52182,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1242:7:119",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 52183,
                        "nodeType": "ArrayTypeName",
                        "src": "1242:9:119",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 52190,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 52188,
                        "name": "maxLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 52176,
                        "src": "1291:9:119",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 52187,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "1277:13:119",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 52185,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1281:7:119",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 52186,
                        "nodeType": "ArrayTypeName",
                        "src": "1281:9:119",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 52189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1277:24:119",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1242:59:119"
                },
                {
                  "body": {
                    "id": 52218,
                    "nodeType": "Block",
                    "src": "1352:149:119",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 52207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 52201,
                              "name": "_addressProviders",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 52157,
                              "src": "1370:17:119",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 52205,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 52202,
                                "name": "addressProvidersList",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 52172,
                                "src": "1388:20:119",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 52204,
                              "indexExpression": {
                                "id": 52203,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 52192,
                                "src": "1409:1:119",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1388:23:119",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1370:42:119",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 52206,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1415:1:119",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1370:46:119",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 52217,
                        "nodeType": "IfStatement",
                        "src": "1366:125:119",
                        "trueBody": {
                          "id": 52216,
                          "nodeType": "Block",
                          "src": "1418:73:119",
                          "statements": [
                            {
                              "expression": {
                                "id": 52214,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 52208,
                                    "name": "activeProviders",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 52184,
                                    "src": "1432:15:119",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 52210,
                                  "indexExpression": {
                                    "id": 52209,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 52192,
                                    "src": "1448:1:119",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "1432:18:119",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 52211,
                                    "name": "addressProvidersList",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 52172,
                                    "src": "1453:20:119",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                      "typeString": "address[] memory"
                                    }
                                  },
                                  "id": 52213,
                                  "indexExpression": {
                                    "id": 52212,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 52192,
                                    "src": "1474:1:119",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1453:23:119",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "1432:44:119",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 52215,
                              "nodeType": "ExpressionStatement",
                              "src": "1432:44:119"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 52197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 52195,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 52192,
                      "src": "1332:1:119",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 52196,
                      "name": "maxLength",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 52176,
                      "src": "1336:9:119",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1332:13:119",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 52219,
                  "initializationExpression": {
                    "assignments": [
                      52192
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 52192,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "1325:1:119",
                        "nodeType": "VariableDeclaration",
                        "scope": 52219,
                        "src": "1317:9:119",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 52191,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1317:7:119",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 52194,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 52193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",