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 Name
Type
Description
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",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1329:1:119",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "1317:13:119"
},
"loopExpression": {
"expression": {
"id": 52199,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "1347:3:119",
"subExpression": {
"id": 52198,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52192,
"src": "1347:1:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 52200,
"nodeType": "ExpressionStatement",
"src": "1347:3:119"
},
"nodeType": "ForStatement",
"src": "1312:189:119"
},
{
"expression": {
"id": 52220,
"name": "activeProviders",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52184,
"src": "1518:15:119",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
"functionReturnParameters": 52167,
"id": 52221,
"nodeType": "Return",
"src": "1511:22:119"
}
]
},
"baseFunctions": [
45735
],
"documentation": {
"id": 52161,
"nodeType": "StructuredDocumentation",
"src": "848:164:119",
"text": " @dev Returns the list of registered addresses provider\n @return The list of addresses provider, potentially containing address(0) elements*"
},
"functionSelector": "c4ea1e0d",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getAddressProvidersList",
"nameLocation": "1026:23:119",
"overrides": {
"id": 52163,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "1066:8:119"
},
"parameters": {
"id": 52162,
"nodeType": "ParameterList",
"parameters": [],
"src": "1049:2:119"
},
"returnParameters": {
"id": 52167,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52166,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 52223,
"src": "1084:16:119",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 52164,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1084:7:119",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 52165,
"nodeType": "ArrayTypeName",
"src": "1084:9:119",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"visibility": "internal"
}
],
"src": "1083:18:119"
},
"scope": 52339,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 52257,
"nodeType": "FunctionDefinition",
"src": "1760:305:119",
"nodes": [],
"body": {
"id": 52256,
"nodeType": "Block",
"src": "1851:214:119",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 52237,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 52235,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52228,
"src": "1869:2:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"hexValue": "30",
"id": 52236,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1875:1:119",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1869:7:119",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"expression": {
"id": 52238,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56338,
"src": "1878:6:119",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Errors_$56338_$",
"typeString": "type(library Errors)"
}
},
"id": 52239,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "1885:33:119",
"memberName": "LPAPR_INVALID_ADDRESS_PROVIDER_ID",
"nodeType": "MemberAccess",
"referencedDeclaration": 56274,
"src": "1878:40:119",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 52234,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1861:7:119",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 52240,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1861:58:119",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52241,
"nodeType": "ExpressionStatement",
"src": "1861:58:119"
},
{
"expression": {
"id": 52246,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 52242,
"name": "_addressProviders",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52157,
"src": "1930:17:119",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 52244,
"indexExpression": {
"id": 52243,
"name": "provider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52226,
"src": "1948:8:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1930:27:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 52245,
"name": "id",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52228,
"src": "1960:2:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1930:32:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 52247,
"nodeType": "ExpressionStatement",
"src": "1930:32:119"
},
{
"expression": {
"arguments": [
{
"id": 52249,
"name": "provider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52226,
"src": "1999:8:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 52248,
"name": "_addToAddressProvidersList",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52338,
"src": "1972:26:119",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 52250,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1972:36:119",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52251,
"nodeType": "ExpressionStatement",
"src": "1972:36:119"
},
{
"eventCall": {
"arguments": [
{
"id": 52253,
"name": "provider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52226,
"src": "2049:8:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 52252,
"name": "AddressProviderRegistered",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45725,
"src": "2023:25:119",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 52254,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2023:35:119",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52255,
"nodeType": "EmitStatement",
"src": "2018:40:119"
}
]
},
"baseFunctions": [
45749
],
"documentation": {
"id": 52224,
"nodeType": "StructuredDocumentation",
"src": "1546:209:119",
"text": " @dev Registers an addresses provider\n @param provider The address of the new AddressProvider\n @param id The id for the new AddressProvider, referring to the market it belongs to*"
},
"functionSelector": "9219d4f5",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 52232,
"kind": "modifierInvocation",
"modifierName": {
"id": 52231,
"name": "onlyOwner",
"nameLocations": [
"1841:9:119"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "1841:9:119"
},
"nodeType": "ModifierInvocation",
"src": "1841:9:119"
}
],
"name": "registerAddressProvider",
"nameLocation": "1769:23:119",
"overrides": {
"id": 52230,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "1832:8:119"
},
"parameters": {
"id": 52229,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52226,
"mutability": "mutable",
"name": "provider",
"nameLocation": "1801:8:119",
"nodeType": "VariableDeclaration",
"scope": 52257,
"src": "1793:16:119",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 52225,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1793:7:119",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 52228,
"mutability": "mutable",
"name": "id",
"nameLocation": "1819:2:119",
"nodeType": "VariableDeclaration",
"scope": 52257,
"src": "1811:10:119",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 52227,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1811:7:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1792:30:119"
},
"returnParameters": {
"id": 52233,
"nodeType": "ParameterList",
"parameters": [],
"src": "1851:0:119"
},
"scope": 52339,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 52287,
"nodeType": "FunctionDefinition",
"src": "2224:269:119",
"nodes": [],
"body": {
"id": 52286,
"nodeType": "Block",
"src": "2305:188:119",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 52271,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 52267,
"name": "_addressProviders",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52157,
"src": "2323:17:119",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 52269,
"indexExpression": {
"id": 52268,
"name": "provider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52260,
"src": "2341:8:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2323:27:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "30",
"id": 52270,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2353:1:119",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2323:31:119",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"expression": {
"id": 52272,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56338,
"src": "2356:6:119",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Errors_$56338_$",
"typeString": "type(library Errors)"
}
},
"id": 52273,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2363:29:119",
"memberName": "LPAPR_PROVIDER_NOT_REGISTERED",
"nodeType": "MemberAccess",
"referencedDeclaration": 56271,
"src": "2356:36:119",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 52266,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2315:7:119",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 52274,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2315:78:119",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52275,
"nodeType": "ExpressionStatement",
"src": "2315:78:119"
},
{
"expression": {
"id": 52280,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 52276,
"name": "_addressProviders",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52157,
"src": "2403:17:119",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 52278,
"indexExpression": {
"id": 52277,
"name": "provider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52260,
"src": "2421:8:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2403:27:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "30",
"id": 52279,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2433:1:119",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2403:31:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 52281,
"nodeType": "ExpressionStatement",
"src": "2403:31:119"
},
{
"eventCall": {
"arguments": [
{
"id": 52283,
"name": "provider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52260,
"src": "2477:8:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 52282,
"name": "AddressProviderUnregistered",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 45729,
"src": "2449:27:119",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
"typeString": "function (address)"
}
},
"id": 52284,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2449:37:119",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52285,
"nodeType": "EmitStatement",
"src": "2444:42:119"
}
]
},
"baseFunctions": [
45754
],
"documentation": {
"id": 52258,
"nodeType": "StructuredDocumentation",
"src": "2071:148:119",
"text": " @dev Removes a AddressProvider from the list of registered addresses provider\n @param provider The AddressProvider address*"
},
"functionSelector": "389140b8",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 52264,
"kind": "modifierInvocation",
"modifierName": {
"id": 52263,
"name": "onlyOwner",
"nameLocations": [
"2295:9:119"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30579,
"src": "2295:9:119"
},
"nodeType": "ModifierInvocation",
"src": "2295:9:119"
}
],
"name": "unregisterAddressProvider",
"nameLocation": "2233:25:119",
"overrides": {
"id": 52262,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "2286:8:119"
},
"parameters": {
"id": 52261,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52260,
"mutability": "mutable",
"name": "provider",
"nameLocation": "2267:8:119",
"nodeType": "VariableDeclaration",
"scope": 52287,
"src": "2259:16:119",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 52259,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2259:7:119",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "2258:18:119"
},
"returnParameters": {
"id": 52265,
"nodeType": "ParameterList",
"parameters": [],
"src": "2305:0:119"
},
"scope": 52339,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 52301,
"nodeType": "FunctionDefinition",
"src": "2643:163:119",
"nodes": [],
"body": {
"id": 52300,
"nodeType": "Block",
"src": "2748:58:119",
"nodes": [],
"statements": [
{
"expression": {
"baseExpression": {
"id": 52296,
"name": "_addressProviders",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52157,
"src": "2765:17:119",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 52298,
"indexExpression": {
"id": 52297,
"name": "addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52290,
"src": "2783:15:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2765:34:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 52295,
"id": 52299,
"nodeType": "Return",
"src": "2758:41:119"
}
]
},
"baseFunctions": [
45742
],
"documentation": {
"id": 52288,
"nodeType": "StructuredDocumentation",
"src": "2499:139:119",
"text": " @dev Returns the id on a registered AddressProvider\n @return The id or 0 if the AddressProvider is not registered*"
},
"functionSelector": "d1bb2da1",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getAddressProviderIdByAddress",
"nameLocation": "2652:29:119",
"overrides": {
"id": 52292,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "2721:8:119"
},
"parameters": {
"id": 52291,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52290,
"mutability": "mutable",
"name": "addressProvider",
"nameLocation": "2690:15:119",
"nodeType": "VariableDeclaration",
"scope": 52301,
"src": "2682:23:119",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 52289,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2682:7:119",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "2681:25:119"
},
"returnParameters": {
"id": 52295,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52294,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 52301,
"src": "2739:7:119",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 52293,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2739:7:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "2738:9:119"
},
"scope": 52339,
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"id": 52338,
"nodeType": "FunctionDefinition",
"src": "2812:336:119",
"nodes": [],
"body": {
"id": 52337,
"nodeType": "Block",
"src": "2875:273:119",
"nodes": [],
"statements": [
{
"assignments": [
52307
],
"declarations": [
{
"constant": false,
"id": 52307,
"mutability": "mutable",
"name": "providersCount",
"nameLocation": "2893:14:119",
"nodeType": "VariableDeclaration",
"scope": 52337,
"src": "2885:22:119",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 52306,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2885:7:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 52310,
"initialValue": {
"expression": {
"id": 52308,
"name": "_addressProvidersList",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52160,
"src": "2910:21:119",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 52309,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2932:6:119",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2910:28:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2885:53:119"
},
{
"body": {
"id": 52329,
"nodeType": "Block",
"src": "2994:101:119",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 52325,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 52321,
"name": "_addressProvidersList",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52160,
"src": "3012:21:119",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 52323,
"indexExpression": {
"id": 52322,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52312,
"src": "3034:1:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3012:24:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 52324,
"name": "provider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52303,
"src": "3040:8:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3012:36:119",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 52328,
"nodeType": "IfStatement",
"src": "3008:77:119",
"trueBody": {
"id": 52327,
"nodeType": "Block",
"src": "3050:35:119",
"statements": [
{
"functionReturnParameters": 52305,
"id": 52326,
"nodeType": "Return",
"src": "3064:7:119"
}
]
}
}
]
},
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 52317,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 52315,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52312,
"src": "2969:1:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"id": 52316,
"name": "providersCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52307,
"src": "2973:14:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2969:18:119",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 52330,
"initializationExpression": {
"assignments": [
52312
],
"declarations": [
{
"constant": false,
"id": 52312,
"mutability": "mutable",
"name": "i",
"nameLocation": "2962:1:119",
"nodeType": "VariableDeclaration",
"scope": 52330,
"src": "2954:9:119",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 52311,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2954:7:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 52314,
"initialValue": {
"hexValue": "30",
"id": 52313,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2966:1:119",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "2954:13:119"
},
"loopExpression": {
"expression": {
"id": 52319,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "2989:3:119",
"subExpression": {
"id": 52318,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52312,
"src": "2989:1:119",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 52320,
"nodeType": "ExpressionStatement",
"src": "2989:3:119"
},
"nodeType": "ForStatement",
"src": "2949:146:119"
},
{
"expression": {
"arguments": [
{
"id": 52334,
"name": "provider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52303,
"src": "3132:8:119",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"expression": {
"id": 52331,
"name": "_addressProvidersList",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 52160,
"src": "3105:21:119",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage",
"typeString": "address[] storage ref"
}
},
"id": 52333,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3127:4:119",
"memberName": "push",
"nodeType": "MemberAccess",
"src": "3105:26:119",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$bound_to$_t_array$_t_address_$dyn_storage_ptr_$",
"typeString": "function (address[] storage pointer,address)"
}
},
"id": 52335,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3105:36:119",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52336,
"nodeType": "ExpressionStatement",
"src": "3105:36:119"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_addToAddressProvidersList",
"nameLocation": "2821:26:119",
"parameters": {
"id": 52304,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 52303,
"mutability": "mutable",
"name": "provider",
"nameLocation": "2856:8:119",
"nodeType": "VariableDeclaration",
"scope": 52338,
"src": "2848:16:119",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 52302,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2848:7:119",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "2847:18:119"
},
"returnParameters": {
"id": 52305,
"nodeType": "ParameterList",
"parameters": [],
"src": "2875:0:119"
},
"scope": 52339,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
}
],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 52150,
"name": "Ownable",
"nameLocations": [
"703:7:119"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 30660,
"src": "703:7:119"
},
"id": 52151,
"nodeType": "InheritanceSpecifier",
"src": "703:7:119"
},
{
"baseName": {
"id": 52152,
"name": "IAddressProviderRegistry",
"nameLocations": [
"712:24:119"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 45755,
"src": "712:24:119"
},
"id": 52153,
"nodeType": "InheritanceSpecifier",
"src": "712:24:119"
}
],
"canonicalName": "AddressProviderRegistry",
"contractDependencies": [],
"contractKind": "contract",
"documentation": {
"id": 52149,
"nodeType": "StructuredDocumentation",
"src": "282:384:119",
"text": " @title AddressProviderRegistry contract\n @dev Main registry of AddressProvider of multiple FluidNFT protocol's markets\n - Used for indexing purposes of FluidNFT protocol's markets\n - The id assigned to a AddressProvider refers to the market it is connected with,\n for example with `1` for the FluidNFT main market and `2` for the next created\n @author FluidNFT*"
},
"fullyImplemented": true,
"linearizedBaseContracts": [
52339,
45755,
30660,
35271
],
"name": "AddressProviderRegistry",
"nameLocation": "676:23:119",
"scope": 52340,
"usedErrors": []
}
],
"license": "AGPL-3.0"
},
"id": 119
}
Last updated